dm-types 1.1.0 → 1.2.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +12 -11
- data/Rakefile +2 -2
- data/VERSION +1 -1
- data/dm-types.gemspec +43 -72
- data/lib/dm-types.rb +1 -0
- data/lib/dm-types/api_key.rb +30 -0
- data/lib/dm-types/csv.rb +3 -0
- data/lib/dm-types/enum.rb +4 -9
- data/lib/dm-types/epoch_time.rb +12 -2
- data/lib/dm-types/json.rb +7 -4
- data/lib/dm-types/paranoid/base.rb +8 -11
- data/lib/dm-types/support/dirty_minder.rb +166 -0
- data/lib/dm-types/yaml.rb +4 -1
- data/spec/fixtures/api_user.rb +14 -0
- data/spec/fixtures/person.rb +1 -0
- data/spec/integration/api_key_spec.rb +27 -0
- data/spec/integration/dirty_minder_spec.rb +197 -0
- data/spec/integration/epoch_time_spec.rb +61 -0
- data/spec/integration/ip_address_spec.rb +4 -8
- data/spec/integration/json_spec.rb +1 -0
- data/spec/integration/slug_spec.rb +30 -26
- data/spec/unit/epoch_time_spec.rb +21 -5
- data/spec/unit/json_spec.rb +2 -2
- data/spec/unit/paranoid_boolean_spec.rb +13 -1
- data/spec/unit/paranoid_datetime_spec.rb +12 -1
- data/spec/unit/yaml_spec.rb +4 -4
- metadata +146 -92
data/spec/unit/json_spec.rb
CHANGED
@@ -13,7 +13,7 @@ try_spec do
|
|
13
13
|
describe '#valid?' do
|
14
14
|
before :all do
|
15
15
|
@string = '{ "foo": "bar" }'
|
16
|
-
@json =
|
16
|
+
@json = MultiJson.decode(@string)
|
17
17
|
end
|
18
18
|
|
19
19
|
describe "with a String" do
|
@@ -36,7 +36,7 @@ try_spec do
|
|
36
36
|
|
37
37
|
describe 'when Json encoded primitive string is provided' do
|
38
38
|
it 'returns decoded value as Ruby string' do
|
39
|
-
@property.load(
|
39
|
+
@property.load(MultiJson.encode(:value => 'JSON encoded string')).should == { 'value' => 'JSON encoded string' }
|
40
40
|
end
|
41
41
|
end
|
42
42
|
|
@@ -3,8 +3,9 @@ require 'spec_helper'
|
|
3
3
|
describe DataMapper::Property::ParanoidBoolean do
|
4
4
|
before :all do
|
5
5
|
Object.send(:remove_const, :Blog) if defined?(Blog)
|
6
|
+
|
6
7
|
module ::Blog
|
7
|
-
class
|
8
|
+
class Draft
|
8
9
|
include DataMapper::Resource
|
9
10
|
|
10
11
|
property :id, Serial
|
@@ -14,6 +15,10 @@ describe DataMapper::Property::ParanoidBoolean do
|
|
14
15
|
|
15
16
|
def before_destroy; end
|
16
17
|
end
|
18
|
+
|
19
|
+
class Article < Draft; end
|
20
|
+
|
21
|
+
class Review < Article; end
|
17
22
|
end
|
18
23
|
|
19
24
|
@model = Blog::Article
|
@@ -134,5 +139,12 @@ describe DataMapper::Property::ParanoidBoolean do
|
|
134
139
|
end
|
135
140
|
end
|
136
141
|
end
|
142
|
+
|
143
|
+
describe 'Model.inherited' do
|
144
|
+
it 'sets @paranoid_properties' do
|
145
|
+
::Blog::Review.instance_variable_get(:@paranoid_properties).should ==
|
146
|
+
::Blog::Article.instance_variable_get(:@paranoid_properties)
|
147
|
+
end
|
148
|
+
end
|
137
149
|
end
|
138
150
|
end
|
@@ -4,7 +4,7 @@ describe DataMapper::Property::ParanoidDateTime do
|
|
4
4
|
before :all do
|
5
5
|
Object.send(:remove_const, :Blog) if defined?(Blog)
|
6
6
|
module ::Blog
|
7
|
-
class
|
7
|
+
class Draft
|
8
8
|
include DataMapper::Resource
|
9
9
|
|
10
10
|
property :id, Serial
|
@@ -14,6 +14,10 @@ describe DataMapper::Property::ParanoidDateTime do
|
|
14
14
|
|
15
15
|
def before_destroy; end
|
16
16
|
end
|
17
|
+
|
18
|
+
class Article < Draft; end
|
19
|
+
|
20
|
+
class Review < Article; end
|
17
21
|
end
|
18
22
|
|
19
23
|
@model = Blog::Article
|
@@ -139,5 +143,12 @@ describe DataMapper::Property::ParanoidDateTime do
|
|
139
143
|
end
|
140
144
|
end
|
141
145
|
end
|
146
|
+
|
147
|
+
describe 'Model.inherited' do
|
148
|
+
it 'sets @paranoid_properties' do
|
149
|
+
::Blog::Review.instance_variable_get(:@paranoid_properties).should ==
|
150
|
+
::Blog::Article.instance_variable_get(:@paranoid_properties)
|
151
|
+
end
|
152
|
+
end
|
142
153
|
end
|
143
154
|
end
|
data/spec/unit/yaml_spec.rb
CHANGED
@@ -41,25 +41,25 @@ try_spec do
|
|
41
41
|
|
42
42
|
describe 'when YAML encoded primitive string is provided' do
|
43
43
|
it 'does not do double encoding' do
|
44
|
-
@property.dump("--- yaml encoded string\n").should ==
|
44
|
+
YAML.load(@property.dump("--- yaml encoded string\n")).should == 'yaml encoded string'
|
45
45
|
end
|
46
46
|
end
|
47
47
|
|
48
48
|
describe 'when regular Ruby string is provided' do
|
49
49
|
it 'dumps argument to YAML' do
|
50
|
-
@property.dump('dump me (to yaml)').should ==
|
50
|
+
YAML.load(@property.dump('dump me (to yaml)')).should == 'dump me (to yaml)'
|
51
51
|
end
|
52
52
|
end
|
53
53
|
|
54
54
|
describe 'when Ruby array is provided' do
|
55
55
|
it 'dumps argument to YAML' do
|
56
|
-
@property.dump([1, 2, 3]).should ==
|
56
|
+
YAML.load(@property.dump([ 1, 2, 3 ])).should == [ 1, 2, 3 ]
|
57
57
|
end
|
58
58
|
end
|
59
59
|
|
60
60
|
describe 'when Ruby hash is provided' do
|
61
61
|
it 'dumps argument to YAML' do
|
62
|
-
@property.dump({ :datamapper => 'Data access layer in Ruby' }).should ==
|
62
|
+
YAML.load(@property.dump({ :datamapper => 'Data access layer in Ruby' })).should == { :datamapper => 'Data access layer in Ruby' }
|
63
63
|
end
|
64
64
|
end
|
65
65
|
end
|
metadata
CHANGED
@@ -1,8 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dm-types
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
4
|
+
hash: 15424023
|
5
|
+
prerelease: 6
|
6
|
+
segments:
|
7
|
+
- 1
|
8
|
+
- 2
|
9
|
+
- 0
|
10
|
+
- rc
|
11
|
+
- 1
|
12
|
+
version: 1.2.0.rc1
|
6
13
|
platform: ruby
|
7
14
|
authors:
|
8
15
|
- Dan Kubb
|
@@ -10,119 +17,188 @@ autorequire:
|
|
10
17
|
bindir: bin
|
11
18
|
cert_chain: []
|
12
19
|
|
13
|
-
date: 2011-
|
14
|
-
default_executable:
|
20
|
+
date: 2011-09-09 00:00:00 Z
|
15
21
|
dependencies:
|
16
22
|
- !ruby/object:Gem::Dependency
|
17
|
-
|
18
|
-
|
23
|
+
type: :runtime
|
24
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
19
25
|
none: false
|
20
26
|
requirements:
|
21
27
|
- - ~>
|
22
28
|
- !ruby/object:Gem::Version
|
23
|
-
|
24
|
-
|
29
|
+
hash: 7
|
30
|
+
segments:
|
31
|
+
- 3
|
32
|
+
- 0
|
33
|
+
- 0
|
34
|
+
version: 3.0.0
|
25
35
|
prerelease: false
|
26
|
-
|
36
|
+
requirement: *id001
|
37
|
+
name: bcrypt-ruby
|
27
38
|
- !ruby/object:Gem::Dependency
|
28
|
-
|
29
|
-
|
39
|
+
type: :runtime
|
40
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
30
41
|
none: false
|
31
42
|
requirements:
|
32
43
|
- - ~>
|
33
44
|
- !ruby/object:Gem::Version
|
34
|
-
|
35
|
-
|
45
|
+
hash: 15424023
|
46
|
+
segments:
|
47
|
+
- 1
|
48
|
+
- 2
|
49
|
+
- 0
|
50
|
+
- rc
|
51
|
+
- 1
|
52
|
+
version: 1.2.0.rc1
|
36
53
|
prerelease: false
|
37
|
-
|
54
|
+
requirement: *id002
|
55
|
+
name: dm-core
|
38
56
|
- !ruby/object:Gem::Dependency
|
39
|
-
|
40
|
-
|
57
|
+
type: :runtime
|
58
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
41
59
|
none: false
|
42
60
|
requirements:
|
43
61
|
- - ~>
|
44
62
|
- !ruby/object:Gem::Version
|
63
|
+
hash: 11
|
64
|
+
segments:
|
65
|
+
- 1
|
66
|
+
- 5
|
67
|
+
- 4
|
45
68
|
version: 1.5.4
|
46
|
-
type: :runtime
|
47
69
|
prerelease: false
|
48
|
-
|
70
|
+
requirement: *id003
|
71
|
+
name: fastercsv
|
49
72
|
- !ruby/object:Gem::Dependency
|
50
|
-
|
51
|
-
|
73
|
+
type: :runtime
|
74
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
52
75
|
none: false
|
53
76
|
requirements:
|
54
77
|
- - ~>
|
55
78
|
- !ruby/object:Gem::Version
|
56
|
-
|
57
|
-
|
79
|
+
hash: 17
|
80
|
+
segments:
|
81
|
+
- 1
|
82
|
+
- 0
|
83
|
+
- 3
|
84
|
+
version: 1.0.3
|
58
85
|
prerelease: false
|
59
|
-
|
86
|
+
requirement: *id004
|
87
|
+
name: multi_json
|
60
88
|
- !ruby/object:Gem::Dependency
|
61
|
-
|
62
|
-
|
89
|
+
type: :runtime
|
90
|
+
version_requirements: &id005 !ruby/object:Gem::Requirement
|
63
91
|
none: false
|
64
92
|
requirements:
|
65
93
|
- - ~>
|
66
94
|
- !ruby/object:Gem::Version
|
67
|
-
|
95
|
+
hash: 11
|
96
|
+
segments:
|
97
|
+
- 1
|
98
|
+
- 5
|
99
|
+
- 4
|
100
|
+
version: 1.5.4
|
101
|
+
prerelease: false
|
102
|
+
requirement: *id005
|
103
|
+
name: json
|
104
|
+
- !ruby/object:Gem::Dependency
|
68
105
|
type: :runtime
|
106
|
+
version_requirements: &id006 !ruby/object:Gem::Requirement
|
107
|
+
none: false
|
108
|
+
requirements:
|
109
|
+
- - ~>
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
hash: 27
|
112
|
+
segments:
|
113
|
+
- 1
|
114
|
+
- 3
|
115
|
+
- 0
|
116
|
+
version: 1.3.0
|
69
117
|
prerelease: false
|
70
|
-
|
118
|
+
requirement: *id006
|
119
|
+
name: stringex
|
71
120
|
- !ruby/object:Gem::Dependency
|
72
|
-
|
73
|
-
|
121
|
+
type: :runtime
|
122
|
+
version_requirements: &id007 !ruby/object:Gem::Requirement
|
74
123
|
none: false
|
75
124
|
requirements:
|
76
125
|
- - ~>
|
77
126
|
- !ruby/object:Gem::Version
|
127
|
+
hash: 15
|
128
|
+
segments:
|
129
|
+
- 2
|
130
|
+
- 1
|
131
|
+
- 2
|
78
132
|
version: 2.1.2
|
79
|
-
type: :runtime
|
80
133
|
prerelease: false
|
81
|
-
|
134
|
+
requirement: *id007
|
135
|
+
name: uuidtools
|
82
136
|
- !ruby/object:Gem::Dependency
|
83
|
-
|
84
|
-
|
137
|
+
type: :development
|
138
|
+
version_requirements: &id008 !ruby/object:Gem::Requirement
|
85
139
|
none: false
|
86
140
|
requirements:
|
87
141
|
- - ~>
|
88
142
|
- !ruby/object:Gem::Version
|
89
|
-
|
90
|
-
|
143
|
+
hash: 15424023
|
144
|
+
segments:
|
145
|
+
- 1
|
146
|
+
- 2
|
147
|
+
- 0
|
148
|
+
- rc
|
149
|
+
- 1
|
150
|
+
version: 1.2.0.rc1
|
91
151
|
prerelease: false
|
92
|
-
|
152
|
+
requirement: *id008
|
153
|
+
name: dm-validations
|
93
154
|
- !ruby/object:Gem::Dependency
|
94
|
-
|
95
|
-
|
155
|
+
type: :development
|
156
|
+
version_requirements: &id009 !ruby/object:Gem::Requirement
|
96
157
|
none: false
|
97
158
|
requirements:
|
98
159
|
- - ~>
|
99
160
|
- !ruby/object:Gem::Version
|
100
|
-
|
101
|
-
|
161
|
+
hash: 7
|
162
|
+
segments:
|
163
|
+
- 1
|
164
|
+
- 6
|
165
|
+
- 4
|
166
|
+
version: 1.6.4
|
102
167
|
prerelease: false
|
103
|
-
|
168
|
+
requirement: *id009
|
169
|
+
name: jeweler
|
104
170
|
- !ruby/object:Gem::Dependency
|
105
|
-
|
106
|
-
|
171
|
+
type: :development
|
172
|
+
version_requirements: &id010 !ruby/object:Gem::Requirement
|
107
173
|
none: false
|
108
174
|
requirements:
|
109
175
|
- - ~>
|
110
176
|
- !ruby/object:Gem::Version
|
111
|
-
|
112
|
-
|
177
|
+
hash: 63
|
178
|
+
segments:
|
179
|
+
- 0
|
180
|
+
- 9
|
181
|
+
- 2
|
182
|
+
version: 0.9.2
|
113
183
|
prerelease: false
|
114
|
-
|
184
|
+
requirement: *id010
|
185
|
+
name: rake
|
115
186
|
- !ruby/object:Gem::Dependency
|
116
|
-
|
117
|
-
|
187
|
+
type: :development
|
188
|
+
version_requirements: &id011 !ruby/object:Gem::Requirement
|
118
189
|
none: false
|
119
190
|
requirements:
|
120
191
|
- - ~>
|
121
192
|
- !ruby/object:Gem::Version
|
122
|
-
|
123
|
-
|
193
|
+
hash: 31
|
194
|
+
segments:
|
195
|
+
- 1
|
196
|
+
- 3
|
197
|
+
- 2
|
198
|
+
version: 1.3.2
|
124
199
|
prerelease: false
|
125
|
-
|
200
|
+
requirement: *id011
|
201
|
+
name: rspec
|
126
202
|
description: DataMapper plugin providing extra data types
|
127
203
|
email: dan.kubb [a] gmail [d] com
|
128
204
|
executables: []
|
@@ -140,6 +216,7 @@ files:
|
|
140
216
|
- VERSION
|
141
217
|
- dm-types.gemspec
|
142
218
|
- lib/dm-types.rb
|
219
|
+
- lib/dm-types/api_key.rb
|
143
220
|
- lib/dm-types/bcrypt_hash.rb
|
144
221
|
- lib/dm-types/comma_separated_list.rb
|
145
222
|
- lib/dm-types/csv.rb
|
@@ -154,10 +231,12 @@ files:
|
|
154
231
|
- lib/dm-types/paranoid_datetime.rb
|
155
232
|
- lib/dm-types/regexp.rb
|
156
233
|
- lib/dm-types/slug.rb
|
234
|
+
- lib/dm-types/support/dirty_minder.rb
|
157
235
|
- lib/dm-types/support/flags.rb
|
158
236
|
- lib/dm-types/uri.rb
|
159
237
|
- lib/dm-types/uuid.rb
|
160
238
|
- lib/dm-types/yaml.rb
|
239
|
+
- spec/fixtures/api_user.rb
|
161
240
|
- spec/fixtures/article.rb
|
162
241
|
- spec/fixtures/bookmark.rb
|
163
242
|
- spec/fixtures/invention.rb
|
@@ -166,9 +245,12 @@ files:
|
|
166
245
|
- spec/fixtures/software_package.rb
|
167
246
|
- spec/fixtures/ticket.rb
|
168
247
|
- spec/fixtures/tshirt.rb
|
248
|
+
- spec/integration/api_key_spec.rb
|
169
249
|
- spec/integration/bcrypt_hash_spec.rb
|
170
250
|
- spec/integration/comma_separated_list_spec.rb
|
251
|
+
- spec/integration/dirty_minder_spec.rb
|
171
252
|
- spec/integration/enum_spec.rb
|
253
|
+
- spec/integration/epoch_time_spec.rb
|
172
254
|
- spec/integration/file_path_spec.rb
|
173
255
|
- spec/integration/flag_spec.rb
|
174
256
|
- spec/integration/ip_address_spec.rb
|
@@ -199,7 +281,6 @@ files:
|
|
199
281
|
- tasks/spec.rake
|
200
282
|
- tasks/yard.rake
|
201
283
|
- tasks/yardstick.rake
|
202
|
-
has_rdoc: true
|
203
284
|
homepage: http://github.com/datamapper/dm-types
|
204
285
|
licenses: []
|
205
286
|
|
@@ -213,54 +294,27 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
213
294
|
requirements:
|
214
295
|
- - ">="
|
215
296
|
- !ruby/object:Gem::Version
|
297
|
+
hash: 3
|
298
|
+
segments:
|
299
|
+
- 0
|
216
300
|
version: "0"
|
217
301
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
218
302
|
none: false
|
219
303
|
requirements:
|
220
|
-
- - "
|
304
|
+
- - ">"
|
221
305
|
- !ruby/object:Gem::Version
|
222
|
-
|
306
|
+
hash: 25
|
307
|
+
segments:
|
308
|
+
- 1
|
309
|
+
- 3
|
310
|
+
- 1
|
311
|
+
version: 1.3.1
|
223
312
|
requirements: []
|
224
313
|
|
225
314
|
rubyforge_project: datamapper
|
226
|
-
rubygems_version: 1.
|
315
|
+
rubygems_version: 1.8.10
|
227
316
|
signing_key:
|
228
317
|
specification_version: 3
|
229
318
|
summary: DataMapper plugin providing extra data types
|
230
|
-
test_files:
|
231
|
-
|
232
|
-
- spec/fixtures/bookmark.rb
|
233
|
-
- spec/fixtures/invention.rb
|
234
|
-
- spec/fixtures/network_node.rb
|
235
|
-
- spec/fixtures/person.rb
|
236
|
-
- spec/fixtures/software_package.rb
|
237
|
-
- spec/fixtures/ticket.rb
|
238
|
-
- spec/fixtures/tshirt.rb
|
239
|
-
- spec/integration/bcrypt_hash_spec.rb
|
240
|
-
- spec/integration/comma_separated_list_spec.rb
|
241
|
-
- spec/integration/enum_spec.rb
|
242
|
-
- spec/integration/file_path_spec.rb
|
243
|
-
- spec/integration/flag_spec.rb
|
244
|
-
- spec/integration/ip_address_spec.rb
|
245
|
-
- spec/integration/json_spec.rb
|
246
|
-
- spec/integration/slug_spec.rb
|
247
|
-
- spec/integration/uri_spec.rb
|
248
|
-
- spec/integration/uuid_spec.rb
|
249
|
-
- spec/integration/yaml_spec.rb
|
250
|
-
- spec/shared/flags_shared_spec.rb
|
251
|
-
- spec/shared/identity_function_group.rb
|
252
|
-
- spec/spec_helper.rb
|
253
|
-
- spec/unit/bcrypt_hash_spec.rb
|
254
|
-
- spec/unit/csv_spec.rb
|
255
|
-
- spec/unit/enum_spec.rb
|
256
|
-
- spec/unit/epoch_time_spec.rb
|
257
|
-
- spec/unit/file_path_spec.rb
|
258
|
-
- spec/unit/flag_spec.rb
|
259
|
-
- spec/unit/ip_address_spec.rb
|
260
|
-
- spec/unit/json_spec.rb
|
261
|
-
- spec/unit/paranoid_boolean_spec.rb
|
262
|
-
- spec/unit/paranoid_datetime_spec.rb
|
263
|
-
- spec/unit/regexp_spec.rb
|
264
|
-
- spec/unit/uri_spec.rb
|
265
|
-
- spec/unit/uuid_spec.rb
|
266
|
-
- spec/unit/yaml_spec.rb
|
319
|
+
test_files: []
|
320
|
+
|