sequel_bitemporal 0.4.9 → 0.4.10

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.
@@ -215,7 +215,9 @@ module Sequel
215
215
  end
216
216
 
217
217
  def expire_previous_versions
218
+ master_changes = values.select{|k| changed_columns.include? k}
218
219
  lock!
220
+ set master_changes
219
221
  expired = versions_dataset.where expired_at: nil
220
222
  expired = expired.exclude "valid_from=valid_to"
221
223
  expired = expired.exclude "valid_to<=?", pending_version.valid_from
@@ -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.4.9"
6
+ s.version = "0.4.10"
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"
@@ -18,7 +18,7 @@ Gem::Specification.new do |s|
18
18
  s.add_runtime_dependency "sequel", "~> 3.30.0"
19
19
 
20
20
  s.add_development_dependency "sqlite3"
21
- s.add_development_dependency "rspec", "~> 2.8.0.rc1"
21
+ s.add_development_dependency "rspec", "~> 2.10.0"
22
22
  s.add_development_dependency "timecop"
23
23
  s.add_development_dependency "rake"
24
24
  end
@@ -298,6 +298,20 @@ describe "Sequel::Plugins::Bitemporal" do
298
298
  | King Size | 94 | 2009-11-29 | | 2009-11-29 | MAX DATE | true |
299
299
  }
300
300
  end
301
+ it "can expire invalid versions" do
302
+ master = @master_class.new.update_attributes name: "Single Standard", price: 98
303
+ master.current_version.price = nil
304
+ master.current_version.should_not be_valid
305
+ master.current_version.save validate: false
306
+ Timecop.freeze Date.today+1
307
+ master.update_attributes price: 94, partial_update: true
308
+ master.should have_versions %Q{
309
+ | name | price | created_at | expired_at | valid_from | valid_to | current |
310
+ | Single Standard | | 2009-11-28 | 2009-11-29 | 2009-11-28 | MAX DATE | |
311
+ | Single Standard | | 2009-11-29 | | 2009-11-28 | 2009-11-29 | |
312
+ | Single Standard | 94 | 2009-11-29 | | 2009-11-29 | MAX DATE | true |
313
+ }
314
+ end
301
315
  it "allows eager loading with conditions on current version" do
302
316
  master = @master_class.new
303
317
  master.update_attributes name: "Single Standard", price: 98
@@ -432,6 +446,12 @@ describe "Sequel::Plugins::Bitemporal" do
432
446
  Object.send :remove_const, :MyName
433
447
  Object.send :remove_const, :MyNameVersion
434
448
  end
449
+ it "can update master and current version at the same time" do
450
+ master = @master_class.new.update_attributes name: "Single Standard", price: 98
451
+ master.disabled = true
452
+ master.update_attributes price: 94, partial_update: true
453
+ master.reload.disabled.should be_true
454
+ end
435
455
  end
436
456
 
437
457
  describe "Sequel::Plugins::Bitemporal", "with audit" do
data/spec/support/db.rb CHANGED
@@ -12,6 +12,7 @@ module DbHelpers
12
12
  DB.drop_table(:rooms) if DB.table_exists?(:rooms)
13
13
  DB.create_table! :rooms do
14
14
  primary_key :id
15
+ Boolean :disabled, null: false, default: false
15
16
  end
16
17
  DB.create_table! :room_versions do
17
18
  primary_key :id
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.4.9
4
+ version: 0.4.10
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,11 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-02-06 00:00:00.000000000 Z
13
+ date: 2012-05-22 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: sequel
17
- requirement: &2152325260 !ruby/object:Gem::Requirement
17
+ requirement: !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ~>
@@ -22,10 +22,15 @@ dependencies:
22
22
  version: 3.30.0
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *2152325260
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ~>
29
+ - !ruby/object:Gem::Version
30
+ version: 3.30.0
26
31
  - !ruby/object:Gem::Dependency
27
32
  name: sqlite3
28
- requirement: &2152324380 !ruby/object:Gem::Requirement
33
+ requirement: !ruby/object:Gem::Requirement
29
34
  none: false
30
35
  requirements:
31
36
  - - ! '>='
@@ -33,21 +38,31 @@ dependencies:
33
38
  version: '0'
34
39
  type: :development
35
40
  prerelease: false
36
- version_requirements: *2152324380
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ! '>='
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
37
47
  - !ruby/object:Gem::Dependency
38
48
  name: rspec
39
- requirement: &2152323660 !ruby/object:Gem::Requirement
49
+ requirement: !ruby/object:Gem::Requirement
40
50
  none: false
41
51
  requirements:
42
52
  - - ~>
43
53
  - !ruby/object:Gem::Version
44
- version: 2.8.0.rc1
54
+ version: 2.10.0
45
55
  type: :development
46
56
  prerelease: false
47
- version_requirements: *2152323660
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ~>
61
+ - !ruby/object:Gem::Version
62
+ version: 2.10.0
48
63
  - !ruby/object:Gem::Dependency
49
64
  name: timecop
50
- requirement: &2152323060 !ruby/object:Gem::Requirement
65
+ requirement: !ruby/object:Gem::Requirement
51
66
  none: false
52
67
  requirements:
53
68
  - - ! '>='
@@ -55,10 +70,15 @@ dependencies:
55
70
  version: '0'
56
71
  type: :development
57
72
  prerelease: false
58
- version_requirements: *2152323060
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ! '>='
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
59
79
  - !ruby/object:Gem::Dependency
60
80
  name: rake
61
- requirement: &2152322440 !ruby/object:Gem::Requirement
81
+ requirement: !ruby/object:Gem::Requirement
62
82
  none: false
63
83
  requirements:
64
84
  - - ! '>='
@@ -66,7 +86,12 @@ dependencies:
66
86
  version: '0'
67
87
  type: :development
68
88
  prerelease: false
69
- version_requirements: *2152322440
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ! '>='
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
70
95
  description: Bitemporal versioning for sequel, fully tested.
71
96
  email:
72
97
  - joseph.halter@thetalentbox.com
@@ -102,7 +127,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
102
127
  version: '0'
103
128
  segments:
104
129
  - 0
105
- hash: 803994051219323016
130
+ hash: -2831244389033292323
106
131
  required_rubygems_version: !ruby/object:Gem::Requirement
107
132
  none: false
108
133
  requirements:
@@ -111,10 +136,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
111
136
  version: '0'
112
137
  segments:
113
138
  - 0
114
- hash: 803994051219323016
139
+ hash: -2831244389033292323
115
140
  requirements: []
116
141
  rubyforge_project:
117
- rubygems_version: 1.8.10
142
+ rubygems_version: 1.8.24
118
143
  signing_key:
119
144
  specification_version: 3
120
145
  summary: Bitemporal versioning for sequel.