Recalculate the column value hashes after updating.
# File lib/sequel/plugins/modification_detection.rb, line 48 def after_update super recalculate_values_hashes end
Calculate the column hash values if they haven't been already calculated.
# File lib/sequel/plugins/modification_detection.rb, line 54 def calculate_values_hashes @values_hashes || recalculate_values_hashes 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 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
Recalculate the column value hashes after manually refreshing.
# File lib/sequel/plugins/modification_detection.rb, line 80 def _refresh(dataset) super recalculate_values_hashes end
Recalculate the column value hashes after refreshing after saving a new object.
# File lib/sequel/plugins/modification_detection.rb, line 86 def _save_refresh super recalculate_values_hashes end
Recalculate the column value hashes, caching them for later use.
# File lib/sequel/plugins/modification_detection.rb, line 92 def recalculate_values_hashes vh = {} @values.each do |k,v| vh[k] = v.hash end @values_hashes = vh.freeze end