Class: PaperTrail::Events::Update Private

Inherits:
Base
  • Object
show all
Defined in:
lib/mongo_trails/events/update.rb

Overview

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

See docs in Base.

Constant Summary

Constants inherited from Base

Base::RAILS_GTE_5_1

Instance Method Summary collapse

Methods inherited from Base

#changed_notably?

Constructor Details

#initialize(record, in_after_callback, is_touch, force_changes) ⇒ Update

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

  • is_touch - [boolean] - Used in the two situations that are touch-like:

    • after_touch we call ‘RecordTrail#record_update`

  • force_changes - [Hash] - Only used by ‘RecordTrail#update_columns`, because there dirty-tracking is off, so it has to track its own changes.



17
18
19
20
21
# File 'lib/mongo_trails/events/update.rb', line 17

def initialize(record, in_after_callback, is_touch, force_changes)
  super(record, in_after_callback)
  @is_touch = is_touch
  @force_changes = force_changes
end

Instance Method Details

#dataObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Return attributes of nascent Version record.



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/mongo_trails/events/update.rb', line 26

def data
  data = {
    item: @record,
    event: @record.paper_trail_event || "update",
    whodunnit: PaperTrail.request.whodunnit
  }
  if @record.respond_to?(:updated_at)
    data[:created_at] = @record.updated_at
  end
  if record_object?
    data[:object] = recordable_object(@is_touch)
  end
  if record_object_changes?
    changes = @force_changes.nil? ? notable_changes : @force_changes
    data[:object_changes] = prepare_object_changes(changes)
  end
  merge_item_subtype_into(data)
  (data)
end