Audited::Auditor::AuditedInstanceMethods

Public Instance Methods

audited_attributes() click to toggle source

List of attributes that are audited.

# File lib/audited/auditor.rb, line 143
def audited_attributes
  attributes.except(*non_audited_columns)
end
revision(version) click to toggle source

Get a specific revision specified by the version number, or :previous

# File lib/audited/auditor.rb, line 132
def revision(version)
  revision_with Audited.audit_class.reconstruct_attributes(audits_to(version))
end
revision_at(date_or_time) click to toggle source

Find the oldest revision recorded prior to the date/time provided.

# File lib/audited/auditor.rb, line 137
def revision_at(date_or_time)
  audits = self.audits.up_until(date_or_time)
  revision_with Audited.audit_class.reconstruct_attributes(audits) unless audits.empty?
end
revisions(from_version = 1) click to toggle source

Gets an array of the revisions available

user.revisions.each do |revision|
  user.name
  user.version
end
# File lib/audited/auditor.rb, line 121
def revisions(from_version = 1)
  audits = self.audits.from_version(from_version)
  return [] if audits.empty?
  revisions = []
  audits.each do |audit|
    revisions << audit.revision
  end
  revisions
end
save_without_auditing() click to toggle source

Temporarily turns off auditing while saving.

# File lib/audited/auditor.rb, line 100
def save_without_auditing
  without_auditing { save }
end
without_auditing(&block) click to toggle source

Executes the block with the auditing callbacks disabled.

@foo.without_auditing do
  @foo.save
end
# File lib/audited/auditor.rb, line 110
def without_auditing(&block)
  self.class.without_auditing(&block)
end

Protected Instance Methods

revision_with(attributes) click to toggle source
# File lib/audited/auditor.rb, line 149
def revision_with(attributes)
  self.dup.tap do |revision|
    revision.id = id
    revision.send :instance_variable_set, '@attributes', self.attributes
    revision.send :instance_variable_set, '@new_record', self.destroyed?
    revision.send :instance_variable_set, '@persisted', !self.destroyed?
    revision.send :instance_variable_set, '@readonly', false
    revision.send :instance_variable_set, '@destroyed', false
    revision.send :instance_variable_set, '@_destroyed', false
    revision.send :instance_variable_set, '@marked_for_destruction', false
    Audited.audit_class.assign_revision_attributes(revision, attributes)

    # Remove any association proxies so that they will be recreated
    # and reference the correct object for this revision. The only way
    # to determine if an instance variable is a proxy object is to
    # see if it responds to certain methods, as it forwards almost
    # everything to its target.
    for ivar in revision.instance_variables
      proxy = revision.instance_variable_get ivar
      if !proxy.nil? and proxy.respond_to? :proxy_respond_to?
        revision.instance_variable_set ivar, nil
      end
    end
  end
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.