Sha256: 908260f01a17095b73dd48a08f89a70c1a86e1cffeca21ccd196a586f35c3ffd

Contents?: true

Size: 1003 Bytes

Versions: 12

Compression:

Stored size: 1003 Bytes

Contents

# frozen_string_literal: true

require "singleton"
require "paper_trail/serializers/yaml"

module PaperTrail
  # Global configuration affecting all threads. Some thread-specific
  # configuration can be found in `paper_trail.rb`, others in `controller.rb`.
  class Config
    include Singleton

    attr_accessor(
      :association_reify_error_behaviour,
      :object_changes_adapter,
      :serializer,
      :version_limit,
      :has_paper_trail_defaults
    )

    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.
      @serializer = PaperTrail::Serializers::YAML
      @has_paper_trail_defaults = {}
    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

Version data entries

12 entries across 12 versions & 2 rubygems

Version Path
paper_trail-15.2.0 lib/paper_trail/config.rb
blacklight-spotlight-3.6.0.beta8 vendor/bundle/ruby/3.2.0/gems/paper_trail-12.3.0/lib/paper_trail/config.rb
paper_trail-15.1.0 lib/paper_trail/config.rb
paper_trail-15.0.0 lib/paper_trail/config.rb
paper_trail-14.0.0 lib/paper_trail/config.rb
paper_trail-13.0.0 lib/paper_trail/config.rb
paper_trail-12.3.0 lib/paper_trail/config.rb
paper_trail-12.2.0 lib/paper_trail/config.rb
paper_trail-12.1.0 lib/paper_trail/config.rb
paper_trail-12.0.0 lib/paper_trail/config.rb
paper_trail-11.1.0 lib/paper_trail/config.rb
paper_trail-11.0.0 lib/paper_trail/config.rb