lib/sequel/plugins/bitemporal.rb in sequel_bitemporal-0.8.8 vs lib/sequel/plugins/bitemporal.rb in sequel_bitemporal-0.8.9

- old
+ new

@@ -499,11 +499,12 @@ to_check_columns = self.class.version_class.columns - excluded_columns updated_by = (send(self.class.audit_updated_by_method) if audited?) previous_values = @current_version_values || {} current_version_values = {} - pending_version.columns.each do |column| + columns = pending_version.columns - excluded_columns_for_changes + columns.each do |column| current_version_values[column] = pending_version.public_send(column) end futures.each do |future_version| attrs = {} @@ -586,13 +587,14 @@ def pending_version_holds_changes? return false unless @pending_version return true unless current_version? @current_version_values = current_version.values - pending_version.columns.detect do |key| - new_value = pending_version.send key - case key + columns = pending_version.columns - excluded_columns_for_changes + columns.detect do |column| + new_value = pending_version.send column + case column when :id, :master_id, :created_at, :expired_at false when :valid_from pending_version.values.has_key?(:valid_from) && ( new_value<current_version.valid_from || @@ -605,21 +607,25 @@ pending_version.values.has_key?(:valid_to) && new_value!=current_version.valid_to else if model.version_uses_string_nilifier if current_version.respond_to? :nil_string? - new_value = nil if current_version.nil_string? key, new_value - elsif !model.version_class.skip_input_transformer?(:string_nilifier, key) + new_value = nil if current_version.nil_string? column, new_value + elsif !model.version_class.skip_input_transformer?(:string_nilifier, column) new_value = model.version_class.input_transformers[:string_nilifier].call(new_value) end end - current_version.send(key)!=new_value + current_version.send(column)!=new_value end end end def excluded_columns self.class.excluded_columns + end + + def excluded_columns_for_changes + [] end def initial_version @initial_version ||= model.version_class.new end