Sha256: 71dcc82be2e0459d8c64c2107cdd47a6c2b129ae7db1cf7ad0cdb478a31654a8
Contents?: true
Size: 864 Bytes
Versions: 2
Compression:
Stored size: 864 Bytes
Contents
require "ar_transaction_changes/version" require "active_record" module ArTransactionChanges def _run_commit_callbacks super ensure @transaction_changed_attributes = nil end def _run_rollback_callbacks super ensure @transaction_changed_attributes = nil end def transaction_changed_attributes @transaction_changed_attributes ||= HashWithIndifferentAccess.new end method_name = if ActiveRecord.gem_version >= Gem::Version.new("5.2.0.beta1") "_write_attribute" else "write_attribute" end define_method(method_name) do |attr_name, value| attr_name = attr_name.to_s old_value = read_attribute(attr_name) ret = super(attr_name, value) unless transaction_changed_attributes.key?(attr_name) || value == old_value transaction_changed_attributes[attr_name] = old_value end ret end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ar_transaction_changes-1.1.4 | lib/ar_transaction_changes.rb |
ar_transaction_changes-1.1.3 | lib/ar_transaction_changes.rb |