Module: FastVersioning::PaperTrailExtensions

Extended by:
ActiveSupport::Concern
Defined in:
lib/fast_versioning/paper_trail_extensions.rb

Instance Method Summary collapse

Instance Method Details

#create_fast_versions ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/fast_versioning/paper_trail_extensions.rb', line 10

def create_fast_versions
  if item.respond_to?(:fast_version_for, true)
    value_change = FastVersioning::ValueChange.new(version: self)

    item.send(:fast_version_for).each do |tracked_attribute|
      if value_change.value_was(tracked_attribute.name) != value_change.value_became(tracked_attribute.name)
        fast_versions.create(
          item_id: item_id,
          item_type: item_type,
          whodunnit_id: whodunnit.to_i,
          whodunnit_type: whodunnit_type,
          name: tracked_attribute.name,
          value: value_change.value_became(tracked_attribute.name),
          prev_value: value_change.value_was(tracked_attribute.name),
          meta: tracked_attribute.meta,
          created_at: created_at
        )
      end
    end
  end
  true
end

#recreate_fast_versions! ⇒ Object



33
34
35
36
# File 'lib/fast_versioning/paper_trail_extensions.rb', line 33

def recreate_fast_versions!
  fast_versions.destroy_all
  create_fast_versions
end