Refactor common transaction_id logic into a method

This commit is contained in:
Mike Dillon 2016-05-18 08:49:40 -07:00
parent a184c37750
commit 71b93758bf
1 changed files with 8 additions and 9 deletions

View File

@ -375,9 +375,7 @@ module PaperTrail
if pt_record_object_changes? && changed_notably? if pt_record_object_changes? && changed_notably?
data[:object_changes] = pt_recordable_object_changes data[:object_changes] = pt_recordable_object_changes
end end
if self.class.paper_trail_version_class.column_names.include?("transaction_id") add_transaction_id_to(data)
data[:transaction_id] = PaperTrail.transaction_id
end
version = send(self.class.versions_association_name).create! merge_metadata(data) version = send(self.class.versions_association_name).create! merge_metadata(data)
update_transaction_id(version) update_transaction_id(version)
save_associations(version) save_associations(version)
@ -397,9 +395,7 @@ module PaperTrail
if pt_record_object_changes? if pt_record_object_changes?
data[:object_changes] = pt_recordable_object_changes data[:object_changes] = pt_recordable_object_changes
end end
if self.class.paper_trail_version_class.column_names.include?("transaction_id") add_transaction_id_to(data)
data[:transaction_id] = PaperTrail.transaction_id
end
version = send(self.class.versions_association_name).create merge_metadata(data) version = send(self.class.versions_association_name).create merge_metadata(data)
update_transaction_id(version) update_transaction_id(version)
save_associations(version) save_associations(version)
@ -478,9 +474,7 @@ module PaperTrail
object: pt_recordable_object, object: pt_recordable_object,
whodunnit: PaperTrail.whodunnit whodunnit: PaperTrail.whodunnit
} }
if self.class.paper_trail_version_class.column_names.include?("transaction_id") add_transaction_id_to(data)
data[:transaction_id] = PaperTrail.transaction_id
end
version = self.class.paper_trail_version_class.create(merge_metadata(data)) version = self.class.paper_trail_version_class.create(merge_metadata(data))
send("#{self.class.version_association_name}=", version) send("#{self.class.version_association_name}=", version)
send(self.class.versions_association_name).send :load_target send(self.class.versions_association_name).send :load_target
@ -638,6 +632,11 @@ module PaperTrail
(if_condition.blank? || if_condition.call(self)) && !unless_condition.try(:call, self) (if_condition.blank? || if_condition.call(self)) && !unless_condition.try(:call, self)
end end
def add_transaction_id_to(data)
return unless self.class.paper_trail_version_class.column_names.include?("transaction_id")
data[:transaction_id] = PaperTrail.transaction_id
end
# @api private # @api private
def update_transaction_id(version) def update_transaction_id(version)
return unless self.class.paper_trail_version_class.column_names.include?("transaction_id") return unless self.class.paper_trail_version_class.column_names.include?("transaction_id")