has_versions 0.4.8 → 0.4.9
Sign up to get free protection for your applications and to get access to all the features.
- data/has_versions.gemspec +1 -7
- data/lib/has_versions.rb +0 -1
- data/lib/has_versions/attributes.rb +9 -1
- data/lib/has_versions/reset/simple.rb +1 -1
- data/test/has_versions/attributes_test.rb +20 -0
- data/test/test_helper.rb +3 -0
- metadata +7 -23
- data/lib/has_versions/versioning_key.rb +0 -7
- data/lib/has_versions/versioning_key/uuid.rb +0 -23
- data/spec/has_versions/versioning_key_spec.rb +0 -31
data/has_versions.gemspec
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
Gem::Specification.new do |s|
|
3
3
|
s.name = "has_versions"
|
4
|
-
s.version = '0.4.
|
4
|
+
s.version = '0.4.9'
|
5
5
|
|
6
6
|
s.platform = Gem::Platform::RUBY
|
7
7
|
s.authors = ["Grant Rodgers"]
|
@@ -28,10 +28,4 @@ Gem::Specification.new do |s|
|
|
28
28
|
s.add_runtime_dependency("simple_uuid", [">= 0"])
|
29
29
|
s.add_development_dependency("rspec", ["~> 2.0"])
|
30
30
|
s.add_development_dependency("yard", ["~> 0.6.0"])
|
31
|
-
s.add_development_dependency("bundler", ["~> 1.0.0"])
|
32
|
-
# s.add_development_dependency("cucumber", [">= 0"])
|
33
|
-
# s.add_development_dependency("simplecov", [">= 0.3.8"])
|
34
|
-
# s.add_development_dependency("reek", ["~> 1.2.8"])
|
35
|
-
# s.add_development_dependency("roodi", ["~> 2.1.0"])
|
36
31
|
end
|
37
|
-
|
data/lib/has_versions.rb
CHANGED
@@ -1,7 +1,15 @@
|
|
1
1
|
module HasVersions
|
2
2
|
module Attributes
|
3
|
+
extend ActiveSupport::Concern
|
4
|
+
|
5
|
+
module ClassMethods
|
6
|
+
def versioned_fields
|
7
|
+
versioning_configuration.attributes
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
3
11
|
def versioned_attributes
|
4
|
-
|
12
|
+
self.class.versioned_fields.inject({}) do |memo, attribute|
|
5
13
|
memo[attribute] = versioning_encode_value(attribute, self[attribute])
|
6
14
|
memo
|
7
15
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class HasVersions::AttributesTest < MiniTest::Spec
|
4
|
+
class VersionedObject
|
5
|
+
include HasVersions::Versioned
|
6
|
+
|
7
|
+
attr_accessor :name
|
8
|
+
attr_accessor :time
|
9
|
+
attr_accessor :color
|
10
|
+
|
11
|
+
has_versions(Class.new) do
|
12
|
+
attribute :name
|
13
|
+
attribute :time
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_versioned_fields
|
18
|
+
assert_equal ['name', 'time'], VersionedObject.versioned_fields
|
19
|
+
end
|
20
|
+
end
|
data/test/test_helper.rb
ADDED
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.9
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-05-
|
12
|
+
date: 2012-05-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: i18n
|
@@ -91,22 +91,6 @@ dependencies:
|
|
91
91
|
- - ~>
|
92
92
|
- !ruby/object:Gem::Version
|
93
93
|
version: 0.6.0
|
94
|
-
- !ruby/object:Gem::Dependency
|
95
|
-
name: bundler
|
96
|
-
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
|
-
requirements:
|
99
|
-
- - ~>
|
100
|
-
- !ruby/object:Gem::Version
|
101
|
-
version: 1.0.0
|
102
|
-
type: :development
|
103
|
-
prerelease: false
|
104
|
-
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
|
-
requirements:
|
107
|
-
- - ~>
|
108
|
-
- !ruby/object:Gem::Version
|
109
|
-
version: 1.0.0
|
110
94
|
description: ActiveModel versioning
|
111
95
|
email:
|
112
96
|
- grantr@gmail.com
|
@@ -148,8 +132,6 @@ files:
|
|
148
132
|
- lib/has_versions/reset.rb
|
149
133
|
- lib/has_versions/reset/simple.rb
|
150
134
|
- lib/has_versions/versioned.rb
|
151
|
-
- lib/has_versions/versioning_key.rb
|
152
|
-
- lib/has_versions/versioning_key/uuid.rb
|
153
135
|
- spec/has_versions/apply_spec.rb
|
154
136
|
- spec/has_versions/configuration_spec.rb
|
155
137
|
- spec/has_versions/diff_spec.rb
|
@@ -160,10 +142,11 @@ files:
|
|
160
142
|
- spec/has_versions/reset_spec.rb
|
161
143
|
- spec/has_versions/stage_spec.rb
|
162
144
|
- spec/has_versions/versioned_spec.rb
|
163
|
-
- spec/has_versions/versioning_key_spec.rb
|
164
145
|
- spec/spec_helper.rb
|
165
146
|
- spec/support/matchers/be_a_uuid.rb
|
166
147
|
- spec/support/version.rb
|
148
|
+
- test/has_versions/attributes_test.rb
|
149
|
+
- test/test_helper.rb
|
167
150
|
homepage: ''
|
168
151
|
licenses:
|
169
152
|
- MIT
|
@@ -185,7 +168,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
185
168
|
version: '0'
|
186
169
|
requirements: []
|
187
170
|
rubyforge_project: has_versions
|
188
|
-
rubygems_version: 1.8.
|
171
|
+
rubygems_version: 1.8.24
|
189
172
|
signing_key:
|
190
173
|
specification_version: 3
|
191
174
|
summary: ActiveModel versioning
|
@@ -203,7 +186,8 @@ test_files:
|
|
203
186
|
- spec/has_versions/reset_spec.rb
|
204
187
|
- spec/has_versions/stage_spec.rb
|
205
188
|
- spec/has_versions/versioned_spec.rb
|
206
|
-
- spec/has_versions/versioning_key_spec.rb
|
207
189
|
- spec/spec_helper.rb
|
208
190
|
- spec/support/matchers/be_a_uuid.rb
|
209
191
|
- spec/support/version.rb
|
192
|
+
- test/has_versions/attributes_test.rb
|
193
|
+
- test/test_helper.rb
|
@@ -1,23 +0,0 @@
|
|
1
|
-
require 'simple_uuid'
|
2
|
-
|
3
|
-
module HasVersions
|
4
|
-
module VersioningKey
|
5
|
-
module UUID
|
6
|
-
extend ActiveSupport::Concern
|
7
|
-
|
8
|
-
module ClassMethods
|
9
|
-
def next_versioning_key(object=nil)
|
10
|
-
SimpleUUID::UUID.new.to_guid
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
def versioning_key
|
15
|
-
@versioning_key ||= self.class.next_versioning_key(self)
|
16
|
-
end
|
17
|
-
|
18
|
-
def versioning_key=(key)
|
19
|
-
@versioning_key = key
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
@@ -1,31 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe 'VersioningKey' do
|
4
|
-
describe 'UUID' do
|
5
|
-
class VersionedObject
|
6
|
-
include HasVersions::VersioningKey::UUID
|
7
|
-
end
|
8
|
-
|
9
|
-
describe 'including class' do
|
10
|
-
subject { VersionedObject }
|
11
|
-
|
12
|
-
its(:next_versioning_key) { should be_a_uuid }
|
13
|
-
|
14
|
-
it 'should not return the same uuid twice' do
|
15
|
-
subject.next_versioning_key.should_not equal(subject.next_versioning_key)
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
describe 'instance of including class' do
|
20
|
-
subject { VersionedObject.new }
|
21
|
-
|
22
|
-
its(:versioning_key) { should be_a_uuid }
|
23
|
-
|
24
|
-
it 'should allow versioning_key to be set' do
|
25
|
-
key = VersionedObject.next_versioning_key
|
26
|
-
subject.versioning_key = key
|
27
|
-
subject.versioning_key.should equal(key)
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|