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