Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 31 additions & 2 deletions lib/audited.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,12 @@ class RequestStore < ActiveSupport::CurrentAttributes

class << self
attr_accessor \
:auditing_enabled,
:current_user_method,
:ignored_attributes,
:ignored_default_callbacks,
:max_audits,
:store_synthesized_enums
attr_writer :audit_class
attr_writer :auditing_enabled, :audit_class

def audit_class
# The audit_class is set as String in the initializer. It can not be constantized during initialization and must
Expand All @@ -34,6 +33,36 @@ def store
RequestStore.audited_store ||= {}
end

def auditing_enabled
store.key?(:auditing_enabled) ? store[:auditing_enabled] : @auditing_enabled
end

def with_auditing
before_value_in_store = store.delete(:auditing_enabled)
store[:auditing_enabled] = true

begin
result = yield
ensure
store[:auditing_enabled] = before_value_in_store unless before_value_in_store.nil?
end

result
end

def without_auditing
before_value_in_store = store.delete(:auditing_enabled)
store[:auditing_enabled] = false

begin
result = yield
ensure
store[:auditing_enabled] = before_value_in_store unless before_value_in_store.nil?
end

result
end

def config
yield(self)
end
Expand Down