has_versions 0.4.1 → 0.4.4

Sign up to get free protection for your applications and to get access to all the features.
data/has_versions.gemspec CHANGED
@@ -4,7 +4,7 @@ require "has_versions/version"
4
4
 
5
5
  Gem::Specification.new do |s|
6
6
  s.name = "has_versions"
7
- s.version = HasVersions::VERSION
7
+ s.version = '0.4.4'
8
8
 
9
9
  s.platform = Gem::Platform::RUBY
10
10
  s.authors = ["Grant Rodgers"]
data/lib/has_versions.rb CHANGED
@@ -3,8 +3,6 @@ require 'active_support/all'
3
3
  module HasVersions
4
4
  extend ActiveSupport::Autoload
5
5
 
6
- autoload :Version
7
-
8
6
  autoload :Configuration
9
7
  autoload :Versioned
10
8
  autoload :Attributes
@@ -15,7 +15,10 @@ module HasVersions
15
15
 
16
16
  output = {}.with_indifferent_access
17
17
  all_keys.each do |key|
18
- output[key] = [ours[key], theirs[key]] if ours[key] != theirs[key] #TEST is it necessary to dup the values?
18
+ next unless versioning_codable?(key)
19
+ our_value = versioning_decode_value(key, ours[key])
20
+ their_value = versioning_decode_value(key, theirs[key])
21
+ output[key] = [our_value, their_value] if our_value != their_value
19
22
  end
20
23
  output
21
24
  end
@@ -10,6 +10,10 @@ module HasVersions
10
10
  return if value.nil?
11
11
  attribute_definitions[name.to_sym].coder.decode(value)
12
12
  end
13
+
14
+ def versioning_codable?(name)
15
+ attribute_definitions.has_key?(name.to_sym)
16
+ end
13
17
  end
14
18
  end
15
19
  end
@@ -6,7 +6,10 @@ module HasVersions
6
6
  class_attribute :versioning_configuration
7
7
  class_attribute :version_class
8
8
 
9
- include Attributes
9
+ include HasVersions::Attributes
10
+ include HasVersions::Reset::Simple
11
+ include HasVersions::Diff::Simple
12
+ extend HasVersions::Reset::FromVersion
10
13
  end
11
14
 
12
15
  module ClassMethods
@@ -5,6 +5,18 @@ class DiffingVersion < Version; end
5
5
  describe DiffingVersion do
6
6
  class DiffingVersion
7
7
  include HasVersions::Diff::Simple
8
+
9
+ def versioning_decode_value(key, value)
10
+ if key == 'name'
11
+ value.upcase
12
+ else
13
+ value
14
+ end
15
+ end
16
+
17
+ def versioning_codable?(name)
18
+ true
19
+ end
8
20
  end
9
21
 
10
22
  let (:foo) { described_class.new(name: 'foo', argyle: 'socks') }
@@ -15,7 +27,7 @@ describe DiffingVersion do
15
27
  end
16
28
 
17
29
  it 'should return a patch when diffed with another version' do
18
- foo.diff(foo2).should include(name: ['foo', 'foo2'])
30
+ foo.diff(foo2).should include(name: ['FOO', 'FOO2'])
19
31
  end
20
32
 
21
33
  it 'should include patches for attributes added' do
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.1
4
+ version: 0.4.4
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-11-11 00:00:00.000000000 Z
12
+ date: 2012-04-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: i18n
16
- requirement: &70274998603500 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,15 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70274998603500
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: activesupport
27
- requirement: &70274998602980 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ~>
@@ -32,10 +37,15 @@ dependencies:
32
37
  version: '3.0'
33
38
  type: :runtime
34
39
  prerelease: false
35
- version_requirements: *70274998602980
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: '3.0'
36
46
  - !ruby/object:Gem::Dependency
37
47
  name: simple_uuid
38
- requirement: &70274998602500 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ! '>='
@@ -43,10 +53,15 @@ dependencies:
43
53
  version: '0'
44
54
  type: :runtime
45
55
  prerelease: false
46
- version_requirements: *70274998602500
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
47
62
  - !ruby/object:Gem::Dependency
48
63
  name: rspec
49
- requirement: &70274998602020 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
50
65
  none: false
51
66
  requirements:
52
67
  - - ~>
@@ -54,10 +69,15 @@ dependencies:
54
69
  version: '2.0'
55
70
  type: :development
56
71
  prerelease: false
57
- version_requirements: *70274998602020
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: '2.0'
58
78
  - !ruby/object:Gem::Dependency
59
79
  name: yard
60
- requirement: &70274998601540 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
61
81
  none: false
62
82
  requirements:
63
83
  - - ~>
@@ -65,10 +85,15 @@ dependencies:
65
85
  version: 0.6.0
66
86
  type: :development
67
87
  prerelease: false
68
- version_requirements: *70274998601540
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ~>
92
+ - !ruby/object:Gem::Version
93
+ version: 0.6.0
69
94
  - !ruby/object:Gem::Dependency
70
95
  name: bundler
71
- requirement: &70274998601060 !ruby/object:Gem::Requirement
96
+ requirement: !ruby/object:Gem::Requirement
72
97
  none: false
73
98
  requirements:
74
99
  - - ~>
@@ -76,7 +101,12 @@ dependencies:
76
101
  version: 1.0.0
77
102
  type: :development
78
103
  prerelease: false
79
- version_requirements: *70274998601060
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ~>
108
+ - !ruby/object:Gem::Version
109
+ version: 1.0.0
80
110
  description: ActiveModel versioning
81
111
  email:
82
112
  - grantr@gmail.com
@@ -118,7 +148,6 @@ files:
118
148
  - lib/has_versions/orm/cassandra_object.rb
119
149
  - lib/has_versions/reset.rb
120
150
  - lib/has_versions/reset/simple.rb
121
- - lib/has_versions/version.rb
122
151
  - lib/has_versions/versioned.rb
123
152
  - lib/has_versions/versioning_key.rb
124
153
  - lib/has_versions/versioning_key/uuid.rb
@@ -157,7 +186,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
157
186
  version: '0'
158
187
  requirements: []
159
188
  rubyforge_project: has_versions
160
- rubygems_version: 1.8.10
189
+ rubygems_version: 1.8.21
161
190
  signing_key:
162
191
  specification_version: 3
163
192
  summary: ActiveModel versioning
@@ -1,4 +0,0 @@
1
- module HasVersions
2
- VERSION = "0.4.1"
3
- end
4
-