lib/sequel/plugins/bitemporal.rb in sequel_bitemporal-0.6.5 vs lib/sequel/plugins/bitemporal.rb in sequel_bitemporal-0.6.6

- old
+ new

@@ -50,10 +50,11 @@ @versions_alias = "#{base_alias}_versions".to_sym @current_version_alias = "#{base_alias}_current_version".to_sym @audit_class = opts[:audit_class] @audit_updated_by_method = opts.fetch(:audit_updated_by_method){ :updated_by } @propagate_per_column = opts.fetch(:propagate_per_column, false) + @version_uses_string_nilifier = version.plugins.map(&:to_s).include? "Sequel::Plugins::StringNilifier" end master.one_to_many :versions, class: version, key: :master_id, graph_alias_base: master.versions_alias master.one_to_one :current_version, class: version, key: :master_id, graph_alias_base: master.current_version_alias, :graph_block=>(proc do |j, lj, js| t = ::Sequel::Plugins::Bitemporal.point_in_time n = ::Sequel::Plugins::Bitemporal.now @@ -107,13 +108,13 @@ EOS end end end module ClassMethods - attr_reader :version_class, :versions_alias, :current_version_alias - attr_reader :propagate_per_column - attr_reader :audit_class, :audit_updated_by_method + attr_reader :version_class, :versions_alias, :current_version_alias, + :propagate_per_column, :audit_class, :audit_updated_by_method, + :version_uses_string_nilifier end module DatasetMethods end module InstanceMethods attr_reader :pending_version @@ -384,9 +385,12 @@ ) ) when :valid_to new_value || new_value!=current_version.valid_to else + if model.version_uses_string_nilifier + new_value = nil if current_version.nil_string? new_value + end current_version.send(key)!=new_value end end end