has_versions 0.4.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -5,7 +5,7 @@ module HasVersions
5
5
 
6
6
  def initialize(&block)
7
7
  self.attributes = []
8
- instance_eval(&block)
8
+ instance_eval(&block) if block_given?
9
9
  end
10
10
 
11
11
  def attribute(name)
@@ -1,4 +1,4 @@
1
1
  module HasVersions
2
- VERSION = "0.4.0"
2
+ VERSION = "0.4.1"
3
3
  end
4
4
 
@@ -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, encoder: lambda { |value| value.strftime("%I:%M%p") }
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
- its(:version_class) { should be(VersionedObjectVersion) }
35
- its(:versioning_configuration) { should be_a(HasVersions::Configuration) }
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.0
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-10-10 00:00:00.000000000Z
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: &70120472609720 !ruby/object:Gem::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: *70120472609720
24
+ version_requirements: *70274998603500
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: activesupport
27
- requirement: &70120472608780 !ruby/object:Gem::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: *70120472608780
35
+ version_requirements: *70274998602980
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: simple_uuid
38
- requirement: &70120472607900 !ruby/object:Gem::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: *70120472607900
46
+ version_requirements: *70274998602500
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rspec
49
- requirement: &70120472607200 !ruby/object:Gem::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: *70120472607200
57
+ version_requirements: *70274998602020
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: yard
60
- requirement: &70120472606420 !ruby/object:Gem::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: *70120472606420
68
+ version_requirements: *70274998601540
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: bundler
71
- requirement: &70120472605360 !ruby/object:Gem::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: *70120472605360
79
+ version_requirements: *70274998601060
80
80
  description: ActiveModel versioning
81
81
  email:
82
82
  - grantr@gmail.com