1
0
Fork 0
mirror of https://github.com/paper-trail-gem/paper_trail.git synced 2022-11-09 11:33:19 -05:00
paper-trail-gem--paper_trail/lib/paper_trail/config.rb
2016-04-07 15:09:58 +09:00

52 lines
1.3 KiB
Ruby

require "singleton"
require "paper_trail/serializers/yaml"
module PaperTrail
class Config
include Singleton
attr_accessor :timestamp_field, :serializer, :version_limit
attr_writer :track_associations
def initialize
# Variables which affect all threads, whose access is synchronized.
@mutex = Mutex.new
@enabled = true
# Variables which affect all threads, whose access is *not* synchronized.
@timestamp_field = :created_at
@serializer = PaperTrail::Serializers::YAML
end
def serialized_attributes
ActiveSupport::Deprecation.warn(
"PaperTrail.config.serialized_attributes is deprecated without " +
"replacement and always returns false."
)
false
end
def serialized_attributes=(_)
ActiveSupport::Deprecation.warn(
"PaperTrail.config.serialized_attributes= is deprecated without " +
"replacement and no longer has any effect."
)
end
def track_associations?
if @track_associations.nil?
PaperTrail::VersionAssociation.table_exists?
else
@track_associations
end
end
# Indicates whether PaperTrail is on or off. Default: true.
def enabled
@mutex.synchronize { !!@enabled }
end
def enabled=(enable)
@mutex.synchronize { @enabled = enable }
end
end
end