Class: AuditedModelsObserver::WhatBuilder
- Inherits:
-
Object
- Object
- AuditedModelsObserver::WhatBuilder
- Defined in:
- lib/audit_log/observer.rb
Instance Attribute Summary collapse
-
#changes ⇒ Object
Returns the value of attribute changes.
Instance Method Summary collapse
- #build ⇒ Object
-
#initialize(changes) ⇒ WhatBuilder
constructor
A new instance of WhatBuilder.
Constructor Details
#initialize(changes) ⇒ WhatBuilder
Returns a new instance of WhatBuilder.
189 190 191 |
# File 'lib/audit_log/observer.rb', line 189 def initialize(changes) self.changes = changes end |
Instance Attribute Details
#changes ⇒ Object
Returns the value of attribute changes.
187 188 189 |
# File 'lib/audit_log/observer.rb', line 187 def changes @changes end |
Instance Method Details
#build ⇒ Object
193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 |
# File 'lib/audit_log/observer.rb', line 193 def build what = {id: changes[:model].id, event: :update} changes[:fields_updates].each{|field_name, old_and_new_values| what[field_name] = old_and_new_values } changes[:has_many].each{|association_name, changes_list| what[association_name] = [] unless changes_list.empty? changes_list.each{|nested_changes| what_nested = {id: nested_changes[:model].id, event: nested_changes[:event]} nested_changes[:fields_updates].each{|field_name, old_and_new_values| what_nested[field_name] = old_and_new_values } if nested_changes[:fields_updates] what[association_name] << what_nested } } changes[:has_one].each{|association_name, nested_changes| if nested_changes[:model] what_nested = {id: nested_changes[:model].id, event: nested_changes[:event]} nested_changes[:fields_updates].each{|field_name, old_and_new_values| what_nested[field_name] = old_and_new_values } if nested_changes[:fields_updates] what[association_name] = what_nested end } what end |