Make Config.enabled backed by a thread variable #539
This commit is contained in:
parent
74d8e69b57
commit
71faed3a04
|
@ -3,12 +3,11 @@ require 'singleton'
|
|||
module PaperTrail
|
||||
class Config
|
||||
include Singleton
|
||||
attr_accessor :enabled, :timestamp_field, :serializer, :version_limit
|
||||
attr_accessor :timestamp_field, :serializer, :version_limit
|
||||
attr_reader :serialized_attributes
|
||||
attr_writer :track_associations
|
||||
|
||||
def initialize
|
||||
@enabled = true # Indicates whether PaperTrail is on or off.
|
||||
@timestamp_field = :created_at
|
||||
@serializer = PaperTrail::Serializers::YAML
|
||||
|
||||
|
@ -33,5 +32,14 @@ module PaperTrail
|
|||
@track_associations ||= PaperTrail::VersionAssociation.table_exists?
|
||||
end
|
||||
alias_method :track_associations?, :track_associations
|
||||
|
||||
# Indicates whether PaperTrail is on or off.
|
||||
def enabled
|
||||
PaperTrail.paper_trail_store[:paper_trail_enabled].nil? || PaperTrail.paper_trail_store[:paper_trail_enabled]
|
||||
end
|
||||
|
||||
def enabled= enable
|
||||
PaperTrail.paper_trail_store[:paper_trail_enabled] = enable
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -8,6 +8,13 @@ class PaperTrailTest < ActiveSupport::TestCase
|
|||
test 'Version Number' do
|
||||
assert PaperTrail.const_defined?(:VERSION)
|
||||
end
|
||||
|
||||
test 'enabled is thread-safe' do
|
||||
Thread.new do
|
||||
PaperTrail.enabled = false
|
||||
end.join
|
||||
assert PaperTrail.enabled?
|
||||
end
|
||||
|
||||
test 'create with plain model class' do
|
||||
widget = Widget.create
|
||||
|
|
Loading…
Reference in New Issue