Module | Sequel::Plugins::ModificationDetection::InstanceMethods |
In: |
lib/sequel/plugins/modification_detection.rb
|
Recalculate the column value hashes after updating.
# File lib/sequel/plugins/modification_detection.rb, line 48 48: def after_update 49: super 50: recalculate_values_hashes 51: end
Calculate the column hash values if they haven‘t been already calculated.
# File lib/sequel/plugins/modification_detection.rb, line 54 54: def calculate_values_hashes 55: @values_hashes || recalculate_values_hashes 56: end
Detect which columns have been modified by comparing the cached hash value to the hash of the current value.
# File lib/sequel/plugins/modification_detection.rb, line 60 60: def changed_columns 61: changed = super 62: if vh = @values_hashes 63: values = @values 64: changed = changed.dup if frozen? 65: vh.each do |c, v| 66: match = values.has_key?(c) && v == values[c].hash 67: if changed.include?(c) 68: changed.delete(c) if match 69: else 70: changed << c unless match 71: end 72: end 73: end 74: changed 75: end