hashie-model 1.3.0 → 1.3.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/hashie-model.gemspec CHANGED
@@ -4,14 +4,14 @@
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
- s.name = %q{hashie-model}
8
- s.version = "1.3.0"
7
+ s.name = "hashie-model"
8
+ s.version = "1.3.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = [%q{ZenCash.com}]
12
- s.date = %q{2012-01-24}
13
- s.description = %q{Hashie2 + ActiveModel 3, offering declared properties, validations, JSON serialization/deserialization}
14
- s.email = %q{istvan@zencash.com}
11
+ s.authors = ["ZenCash.com"]
12
+ s.date = "2012-02-03"
13
+ s.description = "Hashie2 + ActiveModel 3, offering declared properties, validations, JSON serialization/deserialization"
14
+ s.email = "istvan@zencash.com"
15
15
  s.extra_rdoc_files = [
16
16
  "LICENSE.txt",
17
17
  "README.md"
@@ -43,11 +43,11 @@ Gem::Specification.new do |s|
43
43
  "vendor/hashie2/lib/hashie2/trash.rb",
44
44
  "vendor/hashie2/lib/hashie2/version.rb"
45
45
  ]
46
- s.homepage = %q{http://github.com/doublewide/hashie-model}
47
- s.licenses = [%q{MIT}]
48
- s.require_paths = [%q{lib}]
49
- s.rubygems_version = %q{1.8.6}
50
- s.summary = %q{Hashie2 + ActiveModel 3.x}
46
+ s.homepage = "http://github.com/doublewide/hashie-model"
47
+ s.licenses = ["MIT"]
48
+ s.require_paths = ["lib"]
49
+ s.rubygems_version = "1.8.15"
50
+ s.summary = "Hashie2 + ActiveModel 3.x"
51
51
 
52
52
  if s.respond_to? :specification_version then
53
53
  s.specification_version = 3
@@ -57,7 +57,10 @@ Gem::Specification.new do |s|
57
57
  s.add_runtime_dependency(%q<activesupport>, [">= 3.1.1"])
58
58
  s.add_runtime_dependency(%q<activemodel>, [">= 3.1.1"])
59
59
  s.add_runtime_dependency(%q<money>, [">= 3.7.1"])
60
- s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
60
+ s.add_development_dependency(%q<linecache19>, ["~> 0.5.13"])
61
+ s.add_development_dependency(%q<ruby-debug-base19>, ["~> 0.11.26"])
62
+ s.add_development_dependency(%q<ruby-debug19>, [">= 0"])
63
+ s.add_development_dependency(%q<rspec>, ["~> 2.8.0"])
61
64
  s.add_development_dependency(%q<shoulda-matchers>, ["~> 1.0.0.beta3"])
62
65
  s.add_development_dependency(%q<yard>, [">= 0.7.0"])
63
66
  s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
@@ -74,7 +77,10 @@ Gem::Specification.new do |s|
74
77
  s.add_dependency(%q<activesupport>, [">= 3.1.1"])
75
78
  s.add_dependency(%q<activemodel>, [">= 3.1.1"])
76
79
  s.add_dependency(%q<money>, [">= 3.7.1"])
77
- s.add_dependency(%q<rspec>, ["~> 2.3.0"])
80
+ s.add_dependency(%q<linecache19>, ["~> 0.5.13"])
81
+ s.add_dependency(%q<ruby-debug-base19>, ["~> 0.11.26"])
82
+ s.add_dependency(%q<ruby-debug19>, [">= 0"])
83
+ s.add_dependency(%q<rspec>, ["~> 2.8.0"])
78
84
  s.add_dependency(%q<shoulda-matchers>, ["~> 1.0.0.beta3"])
79
85
  s.add_dependency(%q<yard>, [">= 0.7.0"])
80
86
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
@@ -92,7 +98,10 @@ Gem::Specification.new do |s|
92
98
  s.add_dependency(%q<activesupport>, [">= 3.1.1"])
93
99
  s.add_dependency(%q<activemodel>, [">= 3.1.1"])
94
100
  s.add_dependency(%q<money>, [">= 3.7.1"])
95
- s.add_dependency(%q<rspec>, ["~> 2.3.0"])
101
+ s.add_dependency(%q<linecache19>, ["~> 0.5.13"])
102
+ s.add_dependency(%q<ruby-debug-base19>, ["~> 0.11.26"])
103
+ s.add_dependency(%q<ruby-debug19>, [">= 0"])
104
+ s.add_dependency(%q<rspec>, ["~> 2.8.0"])
96
105
  s.add_dependency(%q<shoulda-matchers>, ["~> 1.0.0.beta3"])
97
106
  s.add_dependency(%q<yard>, [">= 0.7.0"])
98
107
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
@@ -42,6 +42,16 @@ module HashieModel
42
42
  end
43
43
  end
44
44
 
45
+ def init_with(coder)
46
+ coder.map.each do |k, v|
47
+ self.send(:"#{k}=", v)
48
+ end
49
+ end
50
+
51
+ def encode_with(coder)
52
+ coder.represent_map(coder.tag, self)
53
+ end
54
+
45
55
  def attributes_before_type_cast
46
56
  @attributes_before_type_cast ||= {}
47
57
  end
@@ -63,6 +63,30 @@ RSpec::Matchers.define :deserialize_from do |json|
63
63
  end
64
64
  end
65
65
 
66
+ RSpec::Matchers.define :yaml_serialize_to do |yaml|
67
+ description { "serialize to YAML" }
68
+ expected = YAML.load(yaml)
69
+
70
+ match do |object|
71
+ actual = YAML.load(object.to_yaml)
72
+ actual == expected
73
+ end
74
+
75
+ failure_message_for_should do |object|
76
+ actual = YAML.load(object.to_yaml)
77
+ "expected that #{object} would serialize to #{expected.pretty_inspect}Diff:#{RSpec::Expectations.differ.diff_as_object(actual, expected)}"
78
+ end
79
+ end
80
+
81
+ RSpec::Matchers.define :yaml_deserialize_from do |yaml|
82
+ description { "deserialize from YAML" }
83
+
84
+ match do |object|
85
+ new_object = YAML.load(yaml)
86
+ new_object.is_a?(object.class) && new_object.eql?(object)
87
+ end
88
+ end
89
+
66
90
  RSpec::Matchers.define :act_as_array do |array_klass|
67
91
  match do |object|
68
92
  klass = object.class
@@ -2,7 +2,7 @@ module HashieModel
2
2
  module Version
3
3
  MAJOR = 1
4
4
  MINOR = 3
5
- PATCH = 0
5
+ PATCH = 1
6
6
  BUILD = nil
7
7
 
8
8
  STRING = [MAJOR, MINOR, PATCH, BUILD].compact.join('.')
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hashie-model
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.3.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: 2012-01-24 00:00:00.000000000Z
12
+ date: 2012-02-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: yajl-ruby
16
- requirement: &2176959840 !ruby/object:Gem::Requirement
16
+ requirement: &70133345676000 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 0.8.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2176959840
24
+ version_requirements: *70133345676000
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: activesupport
27
- requirement: &2176959360 !ruby/object:Gem::Requirement
27
+ requirement: &70133345674860 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 3.1.1
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *2176959360
35
+ version_requirements: *70133345674860
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: activemodel
38
- requirement: &2176958880 !ruby/object:Gem::Requirement
38
+ requirement: &70133345673880 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 3.1.1
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *2176958880
46
+ version_requirements: *70133345673880
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: money
49
- requirement: &2176958400 !ruby/object:Gem::Requirement
49
+ requirement: &70133345697040 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,21 +54,54 @@ dependencies:
54
54
  version: 3.7.1
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *2176958400
57
+ version_requirements: *70133345697040
58
+ - !ruby/object:Gem::Dependency
59
+ name: linecache19
60
+ requirement: &70133345695080 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ~>
64
+ - !ruby/object:Gem::Version
65
+ version: 0.5.13
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: *70133345695080
69
+ - !ruby/object:Gem::Dependency
70
+ name: ruby-debug-base19
71
+ requirement: &70133345693140 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ~>
75
+ - !ruby/object:Gem::Version
76
+ version: 0.11.26
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: *70133345693140
80
+ - !ruby/object:Gem::Dependency
81
+ name: ruby-debug19
82
+ requirement: &70133345692360 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ! '>='
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
88
+ type: :development
89
+ prerelease: false
90
+ version_requirements: *70133345692360
58
91
  - !ruby/object:Gem::Dependency
59
92
  name: rspec
60
- requirement: &2176992980 !ruby/object:Gem::Requirement
93
+ requirement: &70133345691820 !ruby/object:Gem::Requirement
61
94
  none: false
62
95
  requirements:
63
96
  - - ~>
64
97
  - !ruby/object:Gem::Version
65
- version: 2.3.0
98
+ version: 2.8.0
66
99
  type: :development
67
100
  prerelease: false
68
- version_requirements: *2176992980
101
+ version_requirements: *70133345691820
69
102
  - !ruby/object:Gem::Dependency
70
103
  name: shoulda-matchers
71
- requirement: &2176992500 !ruby/object:Gem::Requirement
104
+ requirement: &70133345691340 !ruby/object:Gem::Requirement
72
105
  none: false
73
106
  requirements:
74
107
  - - ~>
@@ -76,10 +109,10 @@ dependencies:
76
109
  version: 1.0.0.beta3
77
110
  type: :development
78
111
  prerelease: false
79
- version_requirements: *2176992500
112
+ version_requirements: *70133345691340
80
113
  - !ruby/object:Gem::Dependency
81
114
  name: yard
82
- requirement: &2176992020 !ruby/object:Gem::Requirement
115
+ requirement: &70133345690820 !ruby/object:Gem::Requirement
83
116
  none: false
84
117
  requirements:
85
118
  - - ! '>='
@@ -87,10 +120,10 @@ dependencies:
87
120
  version: 0.7.0
88
121
  type: :development
89
122
  prerelease: false
90
- version_requirements: *2176992020
123
+ version_requirements: *70133345690820
91
124
  - !ruby/object:Gem::Dependency
92
125
  name: bundler
93
- requirement: &2176991540 !ruby/object:Gem::Requirement
126
+ requirement: &70133345690300 !ruby/object:Gem::Requirement
94
127
  none: false
95
128
  requirements:
96
129
  - - ~>
@@ -98,10 +131,10 @@ dependencies:
98
131
  version: 1.0.0
99
132
  type: :development
100
133
  prerelease: false
101
- version_requirements: *2176991540
134
+ version_requirements: *70133345690300
102
135
  - !ruby/object:Gem::Dependency
103
136
  name: jeweler
104
- requirement: &2176991060 !ruby/object:Gem::Requirement
137
+ requirement: &70133345689780 !ruby/object:Gem::Requirement
105
138
  none: false
106
139
  requirements:
107
140
  - - ~>
@@ -109,10 +142,10 @@ dependencies:
109
142
  version: 1.6.4
110
143
  type: :development
111
144
  prerelease: false
112
- version_requirements: *2176991060
145
+ version_requirements: *70133345689780
113
146
  - !ruby/object:Gem::Dependency
114
147
  name: rcov
115
- requirement: &2176990580 !ruby/object:Gem::Requirement
148
+ requirement: &70133345689240 !ruby/object:Gem::Requirement
116
149
  none: false
117
150
  requirements:
118
151
  - - ! '>='
@@ -120,10 +153,10 @@ dependencies:
120
153
  version: '0'
121
154
  type: :development
122
155
  prerelease: false
123
- version_requirements: *2176990580
156
+ version_requirements: *70133345689240
124
157
  - !ruby/object:Gem::Dependency
125
158
  name: rb-fsevent
126
- requirement: &2176990100 !ruby/object:Gem::Requirement
159
+ requirement: &70133345705080 !ruby/object:Gem::Requirement
127
160
  none: false
128
161
  requirements:
129
162
  - - ! '>='
@@ -131,10 +164,10 @@ dependencies:
131
164
  version: '0'
132
165
  type: :development
133
166
  prerelease: false
134
- version_requirements: *2176990100
167
+ version_requirements: *70133345705080
135
168
  - !ruby/object:Gem::Dependency
136
169
  name: growl
137
- requirement: &2176989620 !ruby/object:Gem::Requirement
170
+ requirement: &70133345704480 !ruby/object:Gem::Requirement
138
171
  none: false
139
172
  requirements:
140
173
  - - ! '>='
@@ -142,10 +175,10 @@ dependencies:
142
175
  version: '0'
143
176
  type: :development
144
177
  prerelease: false
145
- version_requirements: *2176989620
178
+ version_requirements: *70133345704480
146
179
  - !ruby/object:Gem::Dependency
147
180
  name: guard
148
- requirement: &2176989140 !ruby/object:Gem::Requirement
181
+ requirement: &70133345703900 !ruby/object:Gem::Requirement
149
182
  none: false
150
183
  requirements:
151
184
  - - ! '>='
@@ -153,10 +186,10 @@ dependencies:
153
186
  version: '0'
154
187
  type: :development
155
188
  prerelease: false
156
- version_requirements: *2176989140
189
+ version_requirements: *70133345703900
157
190
  - !ruby/object:Gem::Dependency
158
191
  name: guard-rspec
159
- requirement: &2176988660 !ruby/object:Gem::Requirement
192
+ requirement: &70133345703340 !ruby/object:Gem::Requirement
160
193
  none: false
161
194
  requirements:
162
195
  - - ! '>='
@@ -164,10 +197,10 @@ dependencies:
164
197
  version: '0'
165
198
  type: :development
166
199
  prerelease: false
167
- version_requirements: *2176988660
200
+ version_requirements: *70133345703340
168
201
  - !ruby/object:Gem::Dependency
169
202
  name: guard-yard
170
- requirement: &2176988180 !ruby/object:Gem::Requirement
203
+ requirement: &70133345702780 !ruby/object:Gem::Requirement
171
204
  none: false
172
205
  requirements:
173
206
  - - ! '>='
@@ -175,10 +208,10 @@ dependencies:
175
208
  version: '0'
176
209
  type: :development
177
210
  prerelease: false
178
- version_requirements: *2176988180
211
+ version_requirements: *70133345702780
179
212
  - !ruby/object:Gem::Dependency
180
213
  name: guard-bundler
181
- requirement: &2176987700 !ruby/object:Gem::Requirement
214
+ requirement: &70133345702200 !ruby/object:Gem::Requirement
182
215
  none: false
183
216
  requirements:
184
217
  - - ! '>='
@@ -186,7 +219,7 @@ dependencies:
186
219
  version: '0'
187
220
  type: :development
188
221
  prerelease: false
189
- version_requirements: *2176987700
222
+ version_requirements: *70133345702200
190
223
  description: Hashie2 + ActiveModel 3, offering declared properties, validations, JSON
191
224
  serialization/deserialization
192
225
  email: istvan@zencash.com
@@ -236,7 +269,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
236
269
  version: '0'
237
270
  segments:
238
271
  - 0
239
- hash: 441566808007730713
272
+ hash: -1157286565515931429
240
273
  required_rubygems_version: !ruby/object:Gem::Requirement
241
274
  none: false
242
275
  requirements:
@@ -245,7 +278,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
245
278
  version: '0'
246
279
  requirements: []
247
280
  rubyforge_project:
248
- rubygems_version: 1.8.6
281
+ rubygems_version: 1.8.15
249
282
  signing_key:
250
283
  specification_version: 3
251
284
  summary: Hashie2 + ActiveModel 3.x