10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# 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|
name = tracked_attribute.name
new_value = value_change.value_became(name)
prev_value = value_change.value_was(name)
next if prev_value == new_value
fast_versions.create(
item_id: item_id,
item_type: item_type,
whodunnit_id: whodunnit&.to_i,
whodunnit_type: whodunnit_type,
name: name,
value: new_value,
prev_value: prev_value,
meta: tracked_attribute.meta,
created_at: created_at
)
end
end
true
end
|