Class: Audited::Adapters::MongoMapper::Audit
- Inherits:
-
Object
- Object
- Audited::Adapters::MongoMapper::Audit
- Includes:
- ActiveModel::Observing, Audited::Audit, MongoMapper::Document
- Defined in:
- lib/audited/adapters/mongo_mapper/audit.rb
Overview
Audit saves the changes to ActiveRecord models. It has the following attributes:
-
auditable
: the ActiveRecord model that was changed -
user
: the user that performed the change; a string or an ActiveRecord model -
action
: one of create, update, or delete -
audited_changes
: a serialized hash of all the changes -
comment
: a comment set with the audit -
created_at
: Time that the change was performed
Class Method Summary collapse
- .acending ⇒ Object
- .ascending ⇒ Object
- .creates ⇒ Object
- .descending ⇒ Object
- .destroys ⇒ Object
- .from_version(version) ⇒ Object
- .sanitize_for_time_with_zone(value) ⇒ Object
- .to_version(version) ⇒ Object
- .up_until(date_or_time) ⇒ Object
- .updates ⇒ Object
Instance Method Summary collapse
-
#ancestors ⇒ Object
Return all audits older than the current one.
- #audited_changes=(value) ⇒ Object
- #set_created_at ⇒ Object
- #user_as_string ⇒ Object (also: #user)
-
#user_as_string=(user) ⇒ Object
(also: #user=)
Allows user to be set to either a string or an ActiveRecord object.
Class Method Details
.acending ⇒ Object
39 |
# File 'lib/audited/adapters/mongo_mapper/audit.rb', line 39 def self.acending; sort(:version.asc); end |
.ascending ⇒ Object
40 |
# File 'lib/audited/adapters/mongo_mapper/audit.rb', line 40 def self.ascending; sort(:version.asc); end |
.creates ⇒ Object
42 |
# File 'lib/audited/adapters/mongo_mapper/audit.rb', line 42 def self.creates; where(:action => 'create'); end |
.descending ⇒ Object
41 |
# File 'lib/audited/adapters/mongo_mapper/audit.rb', line 41 def self.descending; sort(:version.desc); end |
.destroys ⇒ Object
44 |
# File 'lib/audited/adapters/mongo_mapper/audit.rb', line 44 def self.destroys; where(:action => 'destroy'); end |
.from_version(version) ⇒ Object
47 |
# File 'lib/audited/adapters/mongo_mapper/audit.rb', line 47 def self.from_version(version); where(:version.gte => version); end |
.sanitize_for_time_with_zone(value) ⇒ Object
53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/audited/adapters/mongo_mapper/audit.rb', line 53 def sanitize_for_time_with_zone(value) case value when Hash value.inject({}){|h,(k,v)| h[k] = sanitize_for_time_with_zone(v); h } when Array value.map{|v| sanitize_for_time_with_zone(v) } when ActiveSupport::TimeWithZone value.utc else value end end |
.to_version(version) ⇒ Object
48 |
# File 'lib/audited/adapters/mongo_mapper/audit.rb', line 48 def self.to_version(version); where(:version.lte => version); end |
.up_until(date_or_time) ⇒ Object
46 |
# File 'lib/audited/adapters/mongo_mapper/audit.rb', line 46 def self.up_until(date_or_time); where(:created_at.lte => date_or_time); end |
.updates ⇒ Object
43 |
# File 'lib/audited/adapters/mongo_mapper/audit.rb', line 43 def self.updates; where(:action => 'update'); end |
Instance Method Details
#ancestors ⇒ Object
Return all audits older than the current one.
91 92 93 |
# File 'lib/audited/adapters/mongo_mapper/audit.rb', line 91 def ancestors self.class.where(:auditable_id => auditable_id, :auditable_type => auditable_type, :version.lte => version) end |
#audited_changes=(value) ⇒ Object
67 68 69 |
# File 'lib/audited/adapters/mongo_mapper/audit.rb', line 67 def audited_changes=(value) self[:audited_changes] = self.class.sanitize_for_time_with_zone(value) end |
#set_created_at ⇒ Object
95 96 97 |
# File 'lib/audited/adapters/mongo_mapper/audit.rb', line 95 def set_created_at self[:created_at] = Time.now.utc if !persisted? && !created_at? end |
#user_as_string ⇒ Object Also known as: user
84 85 86 |
# File 'lib/audited/adapters/mongo_mapper/audit.rb', line 84 def user_as_string self.user_as_model || self.username end |
#user_as_string=(user) ⇒ Object Also known as: user=
Allows user to be set to either a string or an ActiveRecord object
73 74 75 76 77 78 79 |
# File 'lib/audited/adapters/mongo_mapper/audit.rb', line 73 def user_as_string=(user) # reset both either way self.user_as_model = self.username = nil user.is_a?(::MongoMapper::Document) ? self.user_as_model = user : self.username = user end |