module Audited::Auditor::AuditedClassMethods

Public Instance Methods

audit_as(user, &block) click to toggle source

All audit operations during the block are recorded as being made by user. This is not model specific, the method is a convenience wrapper around @see Audit#as_user.

# File lib/audited/auditor.rb, line 407
def audit_as(user, &block)
  Audited.audit_class.as_user(user, &block)
end
audited_columns() click to toggle source

Returns an array of columns that are audited. See non_audited_columns

# File lib/audited/auditor.rb, line 353
def audited_columns
  @audited_columns ||= column_names - non_audited_columns
end
auditing_enabled() click to toggle source
# File lib/audited/auditor.rb, line 411
def auditing_enabled
  Audited.store.fetch("#{table_name}_auditing_enabled", true) && Audited.auditing_enabled
end
auditing_enabled=(val) click to toggle source
# File lib/audited/auditor.rb, line 415
def auditing_enabled=(val)
  Audited.store["#{table_name}_auditing_enabled"] = val
end
default_ignored_attributes() click to toggle source
# File lib/audited/auditor.rb, line 419
def default_ignored_attributes
  [primary_key, inheritance_column] | Audited.ignored_attributes
end
disable_auditing() click to toggle source
# File lib/audited/auditor.rb, line 395
def disable_auditing
  self.auditing_enabled = false
end
enable_auditing() click to toggle source
# File lib/audited/auditor.rb, line 399
def enable_auditing
  self.auditing_enabled = true
end
non_audited_columns() click to toggle source

We have to calculate this here since column_names may not be available when `audited` is called

# File lib/audited/auditor.rb, line 358
def non_audited_columns
  @non_audited_columns ||= calculate_non_audited_columns
end
non_audited_columns=(columns) click to toggle source
# File lib/audited/auditor.rb, line 362
def non_audited_columns=(columns)
  @audited_columns = nil # reset cached audited columns on assignment
  @non_audited_columns = columns.map(&:to_s)
end
with_auditing() { || ... } click to toggle source

Executes the block with auditing enabled.

Foo.with_auditing do
  @foo.save
end
# File lib/audited/auditor.rb, line 387
def with_auditing
  auditing_was_enabled = auditing_enabled
  enable_auditing
  yield
ensure
  disable_auditing unless auditing_was_enabled
end
without_auditing() { || ... } click to toggle source

Executes the block with auditing disabled.

Foo.without_auditing do
  @foo.save
end
# File lib/audited/auditor.rb, line 373
def without_auditing
  auditing_was_enabled = auditing_enabled
  disable_auditing
  yield
ensure
  enable_auditing if auditing_was_enabled
end

Protected Instance Methods

calculate_non_audited_columns() click to toggle source
# File lib/audited/auditor.rb, line 434
def calculate_non_audited_columns
  if audited_options[:only].present?
    (column_names | default_ignored_attributes) - audited_options[:only]
  elsif audited_options[:except].present?
    default_ignored_attributes | audited_options[:except]
  else
    default_ignored_attributes
  end
end
normalize_audited_options() click to toggle source
# File lib/audited/auditor.rb, line 425
def normalize_audited_options
  audited_options[:on] = Array.wrap(audited_options[:on])
  audited_options[:on] = [:create, :update, :destroy] if audited_options[:on].empty?
  audited_options[:only] = Array.wrap(audited_options[:only]).map(&:to_s)
  audited_options[:except] = Array.wrap(audited_options[:except]).map(&:to_s)
  max_audits = audited_options[:max_audits] || Audited.max_audits
  audited_options[:max_audits] = Integer(max_audits).abs if max_audits
end