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