lib/sequel/plugins/bitemporal.rb in sequel_bitemporal-0.8.1 vs lib/sequel/plugins/bitemporal.rb in sequel_bitemporal-0.8.2
- old
+ new
@@ -84,24 +84,25 @@
end
end
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
+ t = Sequel.delay{ ::Sequel::Plugins::Bitemporal.point_in_time }
+ n = Sequel.delay{ ::Sequel::Plugins::Bitemporal.now }
if master.use_ranges
- master.existence_range_contains(t, j) & master.validity_range_contains(n, j)
+ master.existence_range_contains(t, j) &
+ master.validity_range_contains(n, j)
else
e = Sequel.qualify j, :expired_at
(Sequel.qualify(j, :created_at) <= t) &
(Sequel.|({e=>nil}, e > t)) &
(Sequel.qualify(j, :valid_from) <= n) &
(Sequel.qualify(j, :valid_to) > n)
end
end) do |ds|
- t = ::Sequel::Plugins::Bitemporal.point_in_time
- n = ::Sequel::Plugins::Bitemporal.now
+ t = Sequel.delay{ ::Sequel::Plugins::Bitemporal.point_in_time }
+ n = Sequel.delay{ ::Sequel::Plugins::Bitemporal.now }
if master.use_ranges
ds.where(master.existence_range_contains(t) & master.validity_range_contains(n))
else
ds.where do
(created_at <= t) &
@@ -117,26 +118,26 @@
Sequel.qualify(model.current_version_alias, :id) => nil
)
)
end
master.one_to_many :current_or_future_versions, class: version, key: :master_id, :graph_block=>(proc do |j, lj, js|
- t = ::Sequel::Plugins::Bitemporal.point_in_time
- n = ::Sequel::Plugins::Bitemporal.now
+ t = Sequel.delay{ ::Sequel::Plugins::Bitemporal.point_in_time }
+ n = Sequel.delay{ ::Sequel::Plugins::Bitemporal.now }
if master.use_ranges
master.existence_range_contains(t, j) &
(Sequel.qualify(j, :valid_to) > n)
else
e = Sequel.qualify j, :expired_at
(Sequel.qualify(j, :created_at) <= t) &
Sequel.|({e=>nil}, e > t) &
(Sequel.qualify(j, :valid_to) > n)
end
end) do |ds|
- t = ::Sequel::Plugins::Bitemporal.point_in_time
- n = ::Sequel::Plugins::Bitemporal.now
+ t = Sequel.delay{ ::Sequel::Plugins::Bitemporal.point_in_time }
+ n = Sequel.delay{ ::Sequel::Plugins::Bitemporal.now }
if master.use_ranges
- existence_conditions = master.existence_range_contains t, j
+ existence_conditions = master.existence_range_contains t
ds.where{ existence_conditions & (:valid_to > n) }
else
ds.where do
(created_at <= t) &
Sequel.|({expired_at=>nil}, expired_at > t) &
@@ -149,10 +150,10 @@
Sequel.negate(current_or_future_versions__id: nil)
)
end
version.many_to_one :master, class: master, key: :master_id
version.class_eval do
- if Sequel::Plugins::Bitemporal.pg_jdbc?(db)
+ if Sequel::Plugins::Bitemporal.pg_jdbc?(master.db)
plugin :pg_typecast_on_load, *columns
elsif Sequel::Plugins::Bitemporal.jdbc?(master.db)
plugin :typecast_on_load, *columns
end