has_versions 0.4.0 → 0.4.1
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/has_versions/version.rb
CHANGED
@@ -15,6 +15,11 @@ module HasVersions
|
|
15
15
|
self.version_class = version_class
|
16
16
|
end
|
17
17
|
|
18
|
+
def versioned_attribute(name)
|
19
|
+
self.versioning_configuration ||= HasVersions::Configuration.new
|
20
|
+
versioning_configuration.attribute(name)
|
21
|
+
end
|
22
|
+
|
18
23
|
def is_versioned?
|
19
24
|
!versioning_configuration.blank?
|
20
25
|
end
|
@@ -5,12 +5,12 @@ class VersionedObject
|
|
5
5
|
|
6
6
|
attr_accessor :name
|
7
7
|
attr_accessor :time
|
8
|
+
attr_accessor :color
|
8
9
|
end
|
9
10
|
|
10
11
|
class VersionedObjectVersion < Version; end
|
11
12
|
|
12
13
|
describe VersionedObject do
|
13
|
-
|
14
14
|
it { should respond_to(:versioning_configuration) }
|
15
15
|
it { should respond_to(:version_class) }
|
16
16
|
|
@@ -22,8 +22,10 @@ describe VersionedObject do
|
|
22
22
|
subject do
|
23
23
|
described_class.has_versions(VersionedObjectVersion) do
|
24
24
|
attribute :name
|
25
|
-
attribute :time
|
25
|
+
attribute :time
|
26
26
|
end
|
27
|
+
described_class.versioned_attribute(:color)
|
28
|
+
|
27
29
|
described_class
|
28
30
|
end
|
29
31
|
|
@@ -31,9 +33,12 @@ describe VersionedObject do
|
|
31
33
|
subject.is_versioned?.should be_true
|
32
34
|
end
|
33
35
|
|
34
|
-
|
35
|
-
|
36
|
+
it 'should have attributes' do
|
37
|
+
subject.versioning_configuration.attributes.should == ["name", "time", "color"]
|
38
|
+
end
|
36
39
|
|
40
|
+
its(:version_class) { should be(VersionedObjectVersion) }
|
41
|
+
its(:versioning_configuration) { should be_a(HasVersions::Configuration) }
|
37
42
|
end
|
38
43
|
|
39
44
|
describe "configured instance" do
|
@@ -51,9 +56,5 @@ describe VersionedObject do
|
|
51
56
|
it 'should set attributes in to_version' do
|
52
57
|
subject.to_version.snapshot.should include(name: 'foo')
|
53
58
|
end
|
54
|
-
|
55
|
-
it 'should encode attributes' do
|
56
|
-
subject.to_version.snapshot.should include(time: "02:43AM")
|
57
|
-
end
|
58
59
|
end
|
59
60
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: has_versions
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-
|
12
|
+
date: 2011-11-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: i18n
|
16
|
-
requirement: &
|
16
|
+
requirement: &70274998603500 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70274998603500
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: activesupport
|
27
|
-
requirement: &
|
27
|
+
requirement: &70274998602980 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '3.0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70274998602980
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: simple_uuid
|
38
|
-
requirement: &
|
38
|
+
requirement: &70274998602500 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70274998602500
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rspec
|
49
|
-
requirement: &
|
49
|
+
requirement: &70274998602020 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '2.0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70274998602020
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: yard
|
60
|
-
requirement: &
|
60
|
+
requirement: &70274998601540 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: 0.6.0
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70274998601540
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: bundler
|
71
|
-
requirement: &
|
71
|
+
requirement: &70274998601060 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ~>
|
@@ -76,7 +76,7 @@ dependencies:
|
|
76
76
|
version: 1.0.0
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70274998601060
|
80
80
|
description: ActiveModel versioning
|
81
81
|
email:
|
82
82
|
- grantr@gmail.com
|