Module ActsAsAudited::Auditor::InstanceMethods
In: lib/acts_as_audited/auditor.rb

Methods

Public Instance methods

List of attributes that are audited.

[Source]

     # File lib/acts_as_audited/auditor.rb, line 147
147:       def audited_attributes
148:         attributes.except(*non_audited_columns)
149:       end

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

[Source]

     # File lib/acts_as_audited/auditor.rb, line 136
136:       def revision(version)
137:         revision_with Audit.reconstruct_attributes(audits_to(version))
138:       end

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

[Source]

     # File lib/acts_as_audited/auditor.rb, line 141
141:       def revision_at(date_or_time)
142:         audits = self.audits.where("created_at <= ?", date_or_time)
143:         revision_with Audit.reconstruct_attributes(audits) unless audits.empty?
144:       end

Gets an array of the revisions available

  user.revisions.each do |revision|
    user.name
    user.version
  end

[Source]

     # File lib/acts_as_audited/auditor.rb, line 125
125:       def revisions(from_version = 1)
126:         audits = self.audits.where(['version >= ?', from_version])
127:         return [] if audits.empty?
128:         revisions = []
129:         audits.each do |audit|
130:           revisions << audit.revision
131:         end
132:         revisions
133:       end

Temporarily turns off auditing while saving.

[Source]

     # File lib/acts_as_audited/auditor.rb, line 104
104:       def save_without_auditing
105:         without_auditing { save }
106:       end

Executes the block with the auditing callbacks disabled.

  @foo.without_auditing do
    @foo.save
  end

[Source]

     # File lib/acts_as_audited/auditor.rb, line 114
114:       def without_auditing(&block)
115:         self.class.without_auditing(&block)
116:       end

Protected Instance methods

[Source]

     # File lib/acts_as_audited/auditor.rb, line 153
153:       def revision_with(attributes)
154:         self.dup.tap do |revision|
155:           revision.send :instance_variable_set, '@attributes', self.attributes_before_type_cast
156:           revision.send :instance_variable_set, '@new_record', self.destroyed?
157:           revision.send :instance_variable_set, '@persisted', !self.destroyed?
158:           revision.send :instance_variable_set, '@readonly', false
159:           revision.send :instance_variable_set, '@destroyed', false
160:           revision.send :instance_variable_set, '@marked_for_destruction', false
161:           Audit.assign_revision_attributes(revision, attributes)
162: 
163:           # Remove any association proxies so that they will be recreated
164:           # and reference the correct object for this revision. The only way
165:           # to determine if an instance variable is a proxy object is to
166:           # see if it responds to certain methods, as it forwards almost
167:           # everything to its target.
168:           for ivar in revision.instance_variables
169:             proxy = revision.instance_variable_get ivar
170:             if !proxy.nil? and proxy.respond_to? :proxy_respond_to?
171:               revision.instance_variable_set ivar, nil
172:             end
173:           end
174:         end
175:       end

[Validate]