Module | ActsAsAudited::Auditor::InstanceMethods |
In: |
lib/acts_as_audited/auditor.rb
|
List of attributes that are audited.
# File lib/acts_as_audited/auditor.rb, line 147 147: def audited_attributes 148: attributes.except(*non_audited_columns) 149: end
Find the oldest revision recorded prior to the date/time provided.
# 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
# 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.
# 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
# File lib/acts_as_audited/auditor.rb, line 114 114: def without_auditing(&block) 115: self.class.without_auditing(&block) 116: end
# 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