sequel_bitemporal 0.6.14 → 0.6.15
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.
- data/lib/sequel/plugins/bitemporal.rb +1 -1
- data/sequel_bitemporal.gemspec +1 -1
- data/spec/bitemporal_date_spec.rb +20 -15
- data/spec/bitemporal_time_spec.rb +1 -15
- data/spec/support/bitemporal_matchers.rb +2 -1
- metadata +23 -29
@@ -423,7 +423,7 @@ module Sequel
|
|
423
423
|
|
424
424
|
to_check_columns = self.class.version_class.columns - excluded_columns
|
425
425
|
updated_by = (send(self.class.audit_updated_by_method) if audited?)
|
426
|
-
previous_values = @current_version_values
|
426
|
+
previous_values = @current_version_values || {}
|
427
427
|
current_version_values = pending_version.values
|
428
428
|
|
429
429
|
futures.each do |future_version|
|
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.6.
|
6
|
+
s.version = "0.6.15"
|
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"
|
@@ -360,7 +360,7 @@ describe "Sequel::Plugins::Bitemporal" do
|
|
360
360
|
| Single Standard | 12 | 1 | 1 | 2009-11-30 | 2009-12-01 | 2009-12-01 | 2009-12-02 | |
|
361
361
|
| Single Standard | 12 | | 1 | 2009-12-01 | | 2009-11-28 | 2009-11-30 | |
|
362
362
|
| Single Standard | 12 | 3 | 4 | 2009-12-01 | | 2009-11-30 | 2009-12-01 | |
|
363
|
-
| Single Standard | 12 |
|
363
|
+
| Single Standard | 12 | 3 | 4 | 2009-12-01 | | 2009-12-01 | 2009-12-02 | |
|
364
364
|
}
|
365
365
|
ensure
|
366
366
|
@master_class.instance_variable_set :@propagate_per_column, propagate_per_column
|
@@ -405,6 +405,24 @@ describe "Sequel::Plugins::Bitemporal" do
|
|
405
405
|
master.pending_or_current_version.name.should == "King Size"
|
406
406
|
master.name.should == "King Size"
|
407
407
|
end
|
408
|
+
it "allows creating a new version before all other versions in case of propagation per column" do
|
409
|
+
propagate_per_column = @master_class.propagate_per_column
|
410
|
+
begin
|
411
|
+
@master_class.instance_variable_set :@propagate_per_column, true
|
412
|
+
master = @master_class.new
|
413
|
+
master.update_attributes name: "Single Standard", price: 98
|
414
|
+
Timecop.freeze Date.today - 100 do
|
415
|
+
master.update_attributes name: "Single Standard", price: 95
|
416
|
+
end
|
417
|
+
master.should have_versions %Q{
|
418
|
+
| name | price | created_at | expired_at | valid_from | valid_to | current |
|
419
|
+
| Single Standard | 98 | 2009-11-28 | | 2009-11-28 | MAX DATE | true |
|
420
|
+
| Single Standard | 95 | 2009-08-20 | | 2009-08-20 | 2009-11-28 | |
|
421
|
+
}
|
422
|
+
ensure
|
423
|
+
@master_class.instance_variable_set :@propagate_per_column, propagate_per_column
|
424
|
+
end
|
425
|
+
end
|
408
426
|
it "allows to go back in time" do
|
409
427
|
master = @master_class.new
|
410
428
|
master.update_attributes name: "Single Standard", price: 98, valid_to: Date.today+1
|
@@ -755,20 +773,7 @@ describe "Sequel::Plugins::Bitemporal", "with audit, specifying how to get the a
|
|
755
773
|
)
|
756
774
|
master.update_attributes name: "Single Standard", price: 98
|
757
775
|
end
|
758
|
-
it "generates a new audit on
|
759
|
-
master = @master_class.new
|
760
|
-
master.should_receive(:author).twice.and_return author
|
761
|
-
master.update_attributes name: "Single Standard", price: 98
|
762
|
-
@audit_class.should_receive(:audit).with(
|
763
|
-
master,
|
764
|
-
hash_including({name: "Single Standard", price: 98}),
|
765
|
-
hash_including({name: "King size", price: 98}),
|
766
|
-
Date.today,
|
767
|
-
author
|
768
|
-
)
|
769
|
-
master.update_attributes name: "King size", price: 98
|
770
|
-
end
|
771
|
-
it "generates a new audit on partial update" do
|
776
|
+
it "generates a new audit on update" do
|
772
777
|
master = @master_class.new
|
773
778
|
master.should_receive(:author).twice.and_return author
|
774
779
|
master.update_attributes name: "Single Standard", price: 98
|
@@ -459,21 +459,7 @@ describe "Sequel::Plugins::Bitemporal", "with audit, specifying how to get the a
|
|
459
459
|
)
|
460
460
|
master.update_attributes name: "Single Standard", price: 98
|
461
461
|
end
|
462
|
-
it "generates a new audit on
|
463
|
-
master = @master_class.new
|
464
|
-
master.should_receive(:author).twice.and_return author
|
465
|
-
@audit_class.stub(:audit)
|
466
|
-
master.update_attributes name: "Single Standard", price: 98
|
467
|
-
@audit_class.should_receive(:audit).with(
|
468
|
-
master,
|
469
|
-
hash_including({name: "Single Standard", price: 98}),
|
470
|
-
hash_including({name: "King size", price: 98}),
|
471
|
-
Time.now,
|
472
|
-
author
|
473
|
-
)
|
474
|
-
master.update_attributes name: "King size", price: 98
|
475
|
-
end
|
476
|
-
it "generates a new audit on partial update" do
|
462
|
+
it "generates a new audit on update" do
|
477
463
|
master = @master_class.new
|
478
464
|
master.should_receive(:author).twice.and_return author
|
479
465
|
@audit_class.stub(:audit)
|
@@ -4,11 +4,12 @@ RSpec::Matchers.define :have_versions do |versions_str|
|
|
4
4
|
@last_version = nil
|
5
5
|
match do |master|
|
6
6
|
versions = master.versions_dataset.order(:id).all
|
7
|
+
columns = @table.first.keys.collect &:to_sym
|
7
8
|
versions.size == @table.size && @table.each.with_index.all? do |version, index|
|
8
9
|
@last_index = index
|
9
10
|
@last_version = version
|
10
11
|
master_version = versions[index]
|
11
|
-
|
12
|
+
columns.all? do |column|
|
12
13
|
if column==:current
|
13
14
|
found = master_version.current?
|
14
15
|
expected = (version[column.to_s]=="true").to_s
|
metadata
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sequel_bitemporal
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.6.15
|
4
5
|
prerelease:
|
5
|
-
version: 0.6.14
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Joseph HALTER
|
@@ -10,104 +10,104 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2013-
|
13
|
+
date: 2013-07-16 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: sequel
|
17
17
|
requirement: !ruby/object:Gem::Requirement
|
18
|
+
none: false
|
18
19
|
requirements:
|
19
20
|
- - ~>
|
20
21
|
- !ruby/object:Gem::Version
|
21
22
|
version: '3.30'
|
22
|
-
none: false
|
23
23
|
type: :runtime
|
24
|
+
prerelease: false
|
24
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
25
27
|
requirements:
|
26
28
|
- - ~>
|
27
29
|
- !ruby/object:Gem::Version
|
28
30
|
version: '3.30'
|
29
|
-
none: false
|
30
|
-
prerelease: false
|
31
31
|
- !ruby/object:Gem::Dependency
|
32
32
|
name: sqlite3
|
33
33
|
requirement: !ruby/object:Gem::Requirement
|
34
|
+
none: false
|
34
35
|
requirements:
|
35
36
|
- - ! '>='
|
36
37
|
- !ruby/object:Gem::Version
|
37
38
|
version: '0'
|
38
|
-
none: false
|
39
39
|
type: :development
|
40
|
+
prerelease: false
|
40
41
|
version_requirements: !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
41
43
|
requirements:
|
42
44
|
- - ! '>='
|
43
45
|
- !ruby/object:Gem::Version
|
44
46
|
version: '0'
|
45
|
-
none: false
|
46
|
-
prerelease: false
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: pg
|
49
49
|
requirement: !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
50
51
|
requirements:
|
51
52
|
- - ! '>='
|
52
53
|
- !ruby/object:Gem::Version
|
53
54
|
version: '0'
|
54
|
-
none: false
|
55
55
|
type: :development
|
56
|
+
prerelease: false
|
56
57
|
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
57
59
|
requirements:
|
58
60
|
- - ! '>='
|
59
61
|
- !ruby/object:Gem::Version
|
60
62
|
version: '0'
|
61
|
-
none: false
|
62
|
-
prerelease: false
|
63
63
|
- !ruby/object:Gem::Dependency
|
64
64
|
name: rspec
|
65
65
|
requirement: !ruby/object:Gem::Requirement
|
66
|
+
none: false
|
66
67
|
requirements:
|
67
68
|
- - ~>
|
68
69
|
- !ruby/object:Gem::Version
|
69
70
|
version: 2.10.0
|
70
|
-
none: false
|
71
71
|
type: :development
|
72
|
+
prerelease: false
|
72
73
|
version_requirements: !ruby/object:Gem::Requirement
|
74
|
+
none: false
|
73
75
|
requirements:
|
74
76
|
- - ~>
|
75
77
|
- !ruby/object:Gem::Version
|
76
78
|
version: 2.10.0
|
77
|
-
none: false
|
78
|
-
prerelease: false
|
79
79
|
- !ruby/object:Gem::Dependency
|
80
80
|
name: timecop
|
81
81
|
requirement: !ruby/object:Gem::Requirement
|
82
|
+
none: false
|
82
83
|
requirements:
|
83
84
|
- - ! '>='
|
84
85
|
- !ruby/object:Gem::Version
|
85
86
|
version: '0'
|
86
|
-
none: false
|
87
87
|
type: :development
|
88
|
+
prerelease: false
|
88
89
|
version_requirements: !ruby/object:Gem::Requirement
|
90
|
+
none: false
|
89
91
|
requirements:
|
90
92
|
- - ! '>='
|
91
93
|
- !ruby/object:Gem::Version
|
92
94
|
version: '0'
|
93
|
-
none: false
|
94
|
-
prerelease: false
|
95
95
|
- !ruby/object:Gem::Dependency
|
96
96
|
name: rake
|
97
97
|
requirement: !ruby/object:Gem::Requirement
|
98
|
+
none: false
|
98
99
|
requirements:
|
99
100
|
- - ! '>='
|
100
101
|
- !ruby/object:Gem::Version
|
101
102
|
version: '0'
|
102
|
-
none: false
|
103
103
|
type: :development
|
104
|
+
prerelease: false
|
104
105
|
version_requirements: !ruby/object:Gem::Requirement
|
106
|
+
none: false
|
105
107
|
requirements:
|
106
108
|
- - ! '>='
|
107
109
|
- !ruby/object:Gem::Version
|
108
110
|
version: '0'
|
109
|
-
none: false
|
110
|
-
prerelease: false
|
111
111
|
description: Bitemporal versioning for sequel, fully tested.
|
112
112
|
email:
|
113
113
|
- joseph.halter@thetalentbox.com
|
@@ -139,26 +139,20 @@ rdoc_options: []
|
|
139
139
|
require_paths:
|
140
140
|
- lib
|
141
141
|
required_ruby_version: !ruby/object:Gem::Requirement
|
142
|
+
none: false
|
142
143
|
requirements:
|
143
144
|
- - ! '>='
|
144
145
|
- !ruby/object:Gem::Version
|
145
|
-
segments:
|
146
|
-
- 0
|
147
|
-
hash: 1292693480009936684
|
148
146
|
version: '0'
|
149
|
-
none: false
|
150
147
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
148
|
+
none: false
|
151
149
|
requirements:
|
152
150
|
- - ! '>='
|
153
151
|
- !ruby/object:Gem::Version
|
154
|
-
segments:
|
155
|
-
- 0
|
156
|
-
hash: 1292693480009936684
|
157
152
|
version: '0'
|
158
|
-
none: false
|
159
153
|
requirements: []
|
160
154
|
rubyforge_project:
|
161
|
-
rubygems_version: 1.8.
|
155
|
+
rubygems_version: 1.8.23
|
162
156
|
signing_key:
|
163
157
|
specification_version: 3
|
164
158
|
summary: Bitemporal versioning for sequel.
|