Add tests, show papertrail whodunnit properly on repp api

This commit is contained in:
Karl Erik Õunapuu 2020-11-18 12:35:11 +02:00
parent 7d08e22f6f
commit 38f86225ca
No known key found for this signature in database
GPG key ID: C9DD647298A34764
3 changed files with 28 additions and 3 deletions

View file

@ -1,10 +1,9 @@
module ObjectVersionsHelper
def attach_existing_fields(version, new_object)
destroy_event = version.event == 'destroy'
version.object_changes.to_h.each do |key, value|
method_name = "#{key}=".to_sym
if new_object.respond_to?(method_name)
new_object.public_send(method_name, destroy_event ? value.first : value.last)
new_object.public_send(method_name, event_value(event, value))
end
end
end
@ -13,4 +12,10 @@ module ObjectVersionsHelper
field_names = model.column_names
version.object.to_h.select { |key, _value| field_names.include?(key) }
end
private
def event_value(version, val)
version.event == 'destroy' ? val.first : val.last
end
end