lib/sequel/plugins/bitemporal.rb in sequel_bitemporal-0.8.3 vs lib/sequel/plugins/bitemporal.rb in sequel_bitemporal-0.8.4

- old
+ new

@@ -395,9 +395,28 @@ end & (valid_from <= n) end.order(Sequel.desc(:valid_to), Sequel.desc(:created_at)).first end end + def next_version + @next_version ||= begin + return if new? + t = ::Sequel::Plugins::Bitemporal.point_in_time + n = ::Sequel::Plugins::Bitemporal.now + if use_ranges = self.class.use_ranges + range_conditions = self.class.existence_range_contains t + end + versions_dataset.where do + if use_ranges + range_conditions + else + (created_at <= t) & + Sequel.|({expired_at=>nil}, expired_at > t) + end & (valid_from > n) + end.order(Sequel.asc(:valid_to), Sequel.desc(:created_at)).first + end + end + def restore(attrs={}) return false unless deleted? last_version_attributes = if last_version last_version.columns.each_with_object({}) do |column, hash| unless excluded_columns.include? column