sequel_bitemporal 0.1.11 → 0.2.0
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 +10 -1
- data/sequel_bitemporal.gemspec +3 -3
- data/spec/bitemporal_date_spec.rb +18 -1
- metadata +14 -14
|
@@ -76,6 +76,15 @@ module Sequel
|
|
|
76
76
|
master.instance_eval do
|
|
77
77
|
@version_class = version
|
|
78
78
|
end
|
|
79
|
+
unless opts[:delegate]==false
|
|
80
|
+
(version.columns-required-[:id]).each do |column|
|
|
81
|
+
master.class_eval <<-EOS
|
|
82
|
+
def #{column}
|
|
83
|
+
pending_or_current_version.#{column} if pending_or_current_version
|
|
84
|
+
end
|
|
85
|
+
EOS
|
|
86
|
+
end
|
|
87
|
+
end
|
|
79
88
|
end
|
|
80
89
|
module ClassMethods
|
|
81
90
|
attr_reader :version_class
|
|
@@ -213,4 +222,4 @@ module Sequel
|
|
|
213
222
|
end
|
|
214
223
|
end
|
|
215
224
|
end
|
|
216
|
-
end
|
|
225
|
+
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.
|
|
6
|
+
s.version = "0.2.0"
|
|
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"
|
|
19
19
|
|
|
20
20
|
s.add_development_dependency "sqlite3"
|
|
21
|
-
s.add_development_dependency "rspec"
|
|
21
|
+
s.add_development_dependency "rspec", "~> 2.8.0.rc1"
|
|
22
22
|
s.add_development_dependency "timecop"
|
|
23
23
|
s.add_development_dependency "rake"
|
|
24
|
-
end
|
|
24
|
+
end
|
|
@@ -395,4 +395,21 @@ describe "Sequel::Plugins::Bitemporal" do
|
|
|
395
395
|
master_with_future.update_attributes name: "Single Standard", price: 94, valid_from: Date.today+2
|
|
396
396
|
@master_class.with_current_or_future_versions.all.should have(2).item
|
|
397
397
|
end
|
|
398
|
-
|
|
398
|
+
it "delegates attributes from master to pending_or_current_version" do
|
|
399
|
+
master = @master_class.new
|
|
400
|
+
master.name.should be_nil
|
|
401
|
+
master.update_attributes name: "Single Standard", price: 98
|
|
402
|
+
master.name.should == "Single Standard"
|
|
403
|
+
master.attributes = {name: "King Size", partial_update: true}
|
|
404
|
+
master.name.should == "King Size"
|
|
405
|
+
end
|
|
406
|
+
it "avoids delegation with option delegate: false" do
|
|
407
|
+
closure = @version_class
|
|
408
|
+
without_delegation_class = Class.new Sequel::Model do
|
|
409
|
+
set_dataset :rooms
|
|
410
|
+
plugin :bitemporal, version_class: closure, delegate: false
|
|
411
|
+
end
|
|
412
|
+
master = without_delegation_class.new
|
|
413
|
+
expect{ master.name }.to raise_error NoMethodError
|
|
414
|
+
end
|
|
415
|
+
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.
|
|
4
|
+
version: 0.2.0
|
|
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: 2011-11-
|
|
13
|
+
date: 2011-11-24 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
name: sequel
|
|
17
|
-
requirement: &
|
|
17
|
+
requirement: &2153258540 !ruby/object:Gem::Requirement
|
|
18
18
|
none: false
|
|
19
19
|
requirements:
|
|
20
20
|
- - ! '>='
|
|
@@ -22,10 +22,10 @@ dependencies:
|
|
|
22
22
|
version: '0'
|
|
23
23
|
type: :runtime
|
|
24
24
|
prerelease: false
|
|
25
|
-
version_requirements: *
|
|
25
|
+
version_requirements: *2153258540
|
|
26
26
|
- !ruby/object:Gem::Dependency
|
|
27
27
|
name: sqlite3
|
|
28
|
-
requirement: &
|
|
28
|
+
requirement: &2153252000 !ruby/object:Gem::Requirement
|
|
29
29
|
none: false
|
|
30
30
|
requirements:
|
|
31
31
|
- - ! '>='
|
|
@@ -33,21 +33,21 @@ dependencies:
|
|
|
33
33
|
version: '0'
|
|
34
34
|
type: :development
|
|
35
35
|
prerelease: false
|
|
36
|
-
version_requirements: *
|
|
36
|
+
version_requirements: *2153252000
|
|
37
37
|
- !ruby/object:Gem::Dependency
|
|
38
38
|
name: rspec
|
|
39
|
-
requirement: &
|
|
39
|
+
requirement: &2153251140 !ruby/object:Gem::Requirement
|
|
40
40
|
none: false
|
|
41
41
|
requirements:
|
|
42
|
-
- -
|
|
42
|
+
- - ~>
|
|
43
43
|
- !ruby/object:Gem::Version
|
|
44
|
-
version:
|
|
44
|
+
version: 2.8.0.rc1
|
|
45
45
|
type: :development
|
|
46
46
|
prerelease: false
|
|
47
|
-
version_requirements: *
|
|
47
|
+
version_requirements: *2153251140
|
|
48
48
|
- !ruby/object:Gem::Dependency
|
|
49
49
|
name: timecop
|
|
50
|
-
requirement: &
|
|
50
|
+
requirement: &2153250720 !ruby/object:Gem::Requirement
|
|
51
51
|
none: false
|
|
52
52
|
requirements:
|
|
53
53
|
- - ! '>='
|
|
@@ -55,10 +55,10 @@ dependencies:
|
|
|
55
55
|
version: '0'
|
|
56
56
|
type: :development
|
|
57
57
|
prerelease: false
|
|
58
|
-
version_requirements: *
|
|
58
|
+
version_requirements: *2153250720
|
|
59
59
|
- !ruby/object:Gem::Dependency
|
|
60
60
|
name: rake
|
|
61
|
-
requirement: &
|
|
61
|
+
requirement: &2153250180 !ruby/object:Gem::Requirement
|
|
62
62
|
none: false
|
|
63
63
|
requirements:
|
|
64
64
|
- - ! '>='
|
|
@@ -66,7 +66,7 @@ dependencies:
|
|
|
66
66
|
version: '0'
|
|
67
67
|
type: :development
|
|
68
68
|
prerelease: false
|
|
69
|
-
version_requirements: *
|
|
69
|
+
version_requirements: *2153250180
|
|
70
70
|
description: Bitemporal versioning for sequel, fully tested.
|
|
71
71
|
email:
|
|
72
72
|
- joseph.halter@thetalentbox.com
|