sequel_bitemporal 0.8.5 → 0.8.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.travis.yml +6 -1
- data/lib/sequel/plugins/bitemporal.rb +7 -4
- data/sequel_bitemporal.gemspec +1 -1
- data/spec/bitemporal_date_spec.rb +5 -0
- data/spec/bitemporal_serialization_spec.rb +9 -8
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: da30635c93f697ffa73f2d8de2ff9f5fdaef6d5a
|
4
|
+
data.tar.gz: cb7e8e67c49db3021b41783be19afb29e1b62e4b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a36ca71c07f927b9426d5ad3bed86dcb7e3e04e81e21ee0f54c8655887d8044e78b8284dee721f827b44122ba1a567b95c7fc4fe394b0a8a7637ae6571273fab
|
7
|
+
data.tar.gz: ea977f5d0dba283b01b72cce00f659c895f2d1a9104bf29fa7b888678bf76e6057830bb519268b853f1c7a38b797fa556c7e39bdf968f845f5ed55bf62ac07b4
|
data/.travis.yml
CHANGED
@@ -126,24 +126,27 @@ module Sequel
|
|
126
126
|
n = Sequel.delay{ ::Sequel::Plugins::Bitemporal.now }
|
127
127
|
if master.use_ranges
|
128
128
|
master.existence_range_contains(t, j) &
|
129
|
-
(Sequel.qualify(j, :valid_to) > n)
|
129
|
+
(Sequel.qualify(j, :valid_to) > n) &
|
130
|
+
(Sequel.qualify(j, :valid_from) != Sequel.qualify(j, :valid_to))
|
130
131
|
else
|
131
132
|
e = Sequel.qualify j, :expired_at
|
132
133
|
(Sequel.qualify(j, :created_at) <= t) &
|
133
134
|
Sequel.|({e=>nil}, e > t) &
|
134
|
-
(Sequel.qualify(j, :valid_to) > n)
|
135
|
+
(Sequel.qualify(j, :valid_to) > n) &
|
136
|
+
(Sequel.qualify(j, :valid_from) != Sequel.qualify(j, :valid_to))
|
135
137
|
end
|
136
138
|
end) do |ds|
|
137
139
|
t = Sequel.delay{ ::Sequel::Plugins::Bitemporal.point_in_time }
|
138
140
|
n = Sequel.delay{ ::Sequel::Plugins::Bitemporal.now }
|
139
141
|
if master.use_ranges
|
140
142
|
existence_conditions = master.existence_range_contains t
|
141
|
-
ds.where{ existence_conditions & (:valid_to > n) }
|
143
|
+
ds.where{ existence_conditions & (:valid_to > n) & (:valid_from != :valid_to) }
|
142
144
|
else
|
143
145
|
ds.where do
|
144
146
|
(created_at <= t) &
|
145
147
|
Sequel.|({expired_at=>nil}, expired_at > t) &
|
146
|
-
(valid_to > n)
|
148
|
+
(valid_to > n) &
|
149
|
+
(valid_from != valid_to)
|
147
150
|
end
|
148
151
|
end
|
149
152
|
end
|
data/sequel_bitemporal.gemspec
CHANGED
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
|
|
3
3
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = "sequel_bitemporal"
|
6
|
-
s.version = "0.8.
|
6
|
+
s.version = "0.8.6"
|
7
7
|
s.authors = ["Joseph HALTER", "Jonathan TRON"]
|
8
8
|
s.email = ["joseph.halter@thetalentbox.com", "jonathan.tron@thetalentbox.com"]
|
9
9
|
s.homepage = "https://github.com/TalentBox/sequel_bitemporal"
|
@@ -523,6 +523,11 @@ describe "Sequel::Plugins::Bitemporal" do
|
|
523
523
|
master.destroy
|
524
524
|
expect(@master_class.eager_graph(:current_or_future_versions).where(Sequel.negate(current_or_future_versions__id: nil)).all).to be_empty
|
525
525
|
end
|
526
|
+
it "association current or future versions ignores versions with valid_from==valid_to" do
|
527
|
+
master = @master_class.new
|
528
|
+
master.update_attributes name: "Single Standard", price: 99, valid_to: Date.today
|
529
|
+
expect(master.current_or_future_versions).to be_empty
|
530
|
+
end
|
526
531
|
it "allows loading masters with current or future versions" do
|
527
532
|
master_destroyed = @master_class.new
|
528
533
|
master_destroyed.update_attributes name: "Single Standard", price: 98
|
@@ -58,14 +58,15 @@ describe "Sequel::Plugins::Bitemporal", :skip_jdbc_sqlite do
|
|
58
58
|
master.update_attributes valid_from: initial_today+2, length: 3, width: 4
|
59
59
|
expect(master.propagated_during_last_save.size).to eq(1)
|
60
60
|
end
|
61
|
-
|
62
|
-
expect(
|
63
|
-
expect(
|
64
|
-
expect(
|
65
|
-
expect(
|
66
|
-
expect(
|
67
|
-
expect(
|
68
|
-
expect(
|
61
|
+
versions = master.versions_dataset.order(:id).all
|
62
|
+
expect(versions[0].name).to eq({"full_name" => "Single Standard"})
|
63
|
+
expect(versions[1].name).to eq({"full_name" => "Single Standard"})
|
64
|
+
expect(versions[2].name).to eq({"full_name" => "King Size"})
|
65
|
+
expect(versions[3].name).to eq({"full_name" => "Single Standard"})
|
66
|
+
expect(versions[4].name).to eq({"full_name" => "Single Standard"})
|
67
|
+
expect(versions[5].name).to eq({"full_name" => "Single Standard"})
|
68
|
+
expect(versions[6].name).to eq({"full_name" => "Single Standard"})
|
69
|
+
expect(versions[7].name).to eq({"full_name" => "Single Standard"})
|
69
70
|
ensure
|
70
71
|
@master_class.instance_variable_set :@propagate_per_column, propagate_per_column
|
71
72
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sequel_bitemporal
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joseph HALTER
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2016-08-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: sequel
|