tenacity 0.5.1 → 0.5.2
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/EXTEND.rdoc +10 -3
- data/Gemfile +1 -2
- data/README.rdoc +3 -2
- data/Rakefile +6 -0
- data/history.txt +11 -0
- data/lib/tenacity/associate_proxy.rb +1 -1
- data/lib/tenacity/associates_proxy.rb +4 -4
- data/lib/tenacity/associations/has_many.rb +7 -8
- data/lib/tenacity/associations/has_one.rb +4 -4
- data/lib/tenacity/class_methods.rb +1 -1
- data/lib/tenacity/errors.rb +4 -8
- data/lib/tenacity/instance_methods.rb +2 -2
- data/lib/tenacity/orm_ext/activerecord.rb +5 -1
- data/lib/tenacity/orm_ext/couchrest.rb +4 -0
- data/lib/tenacity/orm_ext/datamapper.rb +5 -1
- data/lib/tenacity/orm_ext/helpers.rb +3 -3
- data/lib/tenacity/orm_ext/mongo_mapper.rb +4 -0
- data/lib/tenacity/orm_ext/mongoid.rb +4 -0
- data/lib/tenacity/orm_ext/ripple.rb +4 -0
- data/lib/tenacity/orm_ext/sequel.rb +5 -1
- data/lib/tenacity/orm_ext/toystore.rb +4 -0
- data/lib/tenacity/version.rb +1 -1
- data/test/associations/belongs_to_test.rb +3 -3
- data/test/associations/has_many_test.rb +6 -6
- data/test/associations/has_one_test.rb +4 -4
- data/test/core/classmethods_test.rb +14 -0
- data/test/fixtures/active_record_object_with_string_id.rb +5 -0
- data/test/fixtures/couch_rest_object.rb +2 -0
- data/test/fixtures/data_mapper_object.rb +1 -0
- data/test/fixtures/data_mapper_object_with_string_id.rb +6 -0
- data/test/fixtures/mongo_mapper_object.rb +4 -0
- data/test/fixtures/mongoid_object.rb +2 -0
- data/test/fixtures/ripple_object.rb +2 -0
- data/test/fixtures/sequel_object_with_string_id.rb +3 -0
- data/test/fixtures/toystore_object.rb +2 -0
- data/test/helpers/active_record_test_helper.rb +4 -0
- data/test/helpers/data_mapper_test_helper.rb +1 -0
- data/test/helpers/sequel_test_helper.rb +5 -0
- data/test/orm_ext/activerecord_test.rb +16 -0
- data/test/orm_ext/datamapper_test.rb +16 -0
- data/test/orm_ext/mongo_mapper_test.rb +11 -0
- data/test/orm_ext/mongoid_test.rb +11 -0
- data/test/orm_ext/ripple_test.rb +147 -134
- data/test/orm_ext/sequel_test.rb +16 -0
- data/test/orm_ext/toystore_test.rb +11 -0
- data/test/test_helper.rb +8 -8
- metadata +46 -152
data/test/orm_ext/sequel_test.rb
CHANGED
@@ -92,6 +92,22 @@ class SequelTest < Test::Unit::TestCase
|
|
92
92
|
SequelObject._t_delete([object_1.id, object_2.id, object_3.id], false)
|
93
93
|
assert_equal old_count - 3, SequelObject.count
|
94
94
|
end
|
95
|
+
|
96
|
+
should "save the object if it is dirty" do
|
97
|
+
object = SequelObject.create
|
98
|
+
object.prop = "something"
|
99
|
+
assert object._t_save_if_dirty
|
100
|
+
end
|
101
|
+
|
102
|
+
should "not save the object if it is not dirty" do
|
103
|
+
object = SequelObject.create
|
104
|
+
assert !object._t_save_if_dirty
|
105
|
+
end
|
106
|
+
|
107
|
+
should "be able to successfully determine the id type" do
|
108
|
+
assert_equal Integer, SequelObject._t_id_type
|
109
|
+
assert_equal String, SequelObjectWithStringId._t_id_type
|
110
|
+
end
|
95
111
|
end
|
96
112
|
|
97
113
|
private
|
@@ -94,6 +94,17 @@ require_toystore do
|
|
94
94
|
ToystoreHasManyTarget._t_delete([object_1.id, object_2.id, object_3.id], false)
|
95
95
|
assert_equal 0, ToystoreHasManyTarget.get_multi(object_1.id, object_2.id, object_3.id).compact.size
|
96
96
|
end
|
97
|
+
|
98
|
+
should "save the object if it is dirty" do
|
99
|
+
object = ToystoreObject.create
|
100
|
+
object.prop = "something"
|
101
|
+
assert object._t_save_if_dirty
|
102
|
+
end
|
103
|
+
|
104
|
+
should "not save the object if it is not dirty" do
|
105
|
+
object = ToystoreObject.create
|
106
|
+
assert !object._t_save_if_dirty
|
107
|
+
end
|
97
108
|
end
|
98
109
|
|
99
110
|
def association
|
data/test/test_helper.rb
CHANGED
@@ -101,30 +101,30 @@ end
|
|
101
101
|
def class_for_extension(extension, type=nil)
|
102
102
|
if type.nil?
|
103
103
|
class_name = extension.to_s.camelcase + "Object"
|
104
|
-
elsif type == :
|
104
|
+
elsif type == :t_belongs_to || type == :t_has_one
|
105
105
|
class_name = extension.to_s.camelcase + "HasOneTarget"
|
106
|
-
elsif type == :
|
106
|
+
elsif type == :t_has_many
|
107
107
|
class_name = extension.to_s.camelcase + "HasManyTarget"
|
108
108
|
end
|
109
109
|
Kernel.const_get(class_name)
|
110
110
|
end
|
111
111
|
|
112
112
|
def foreign_key_for(extension, type)
|
113
|
-
if type == :
|
113
|
+
if type == :t_belongs_to
|
114
114
|
"#{extension}_object"
|
115
|
-
elsif type == :
|
115
|
+
elsif type == :t_has_one
|
116
116
|
"#{extension}_has_one_target"
|
117
|
-
elsif type == :
|
117
|
+
elsif type == :t_has_many
|
118
118
|
"#{extension}_has_many_targets"
|
119
119
|
end
|
120
120
|
end
|
121
121
|
|
122
122
|
def foreign_key_id_for(extension, type)
|
123
|
-
if type == :
|
123
|
+
if type == :t_belongs_to
|
124
124
|
"#{extension}_object_id"
|
125
|
-
elsif type == :
|
125
|
+
elsif type == :t_has_one
|
126
126
|
"#{extension}_has_one_target_id"
|
127
|
-
elsif type == :
|
127
|
+
elsif type == :t_has_many
|
128
128
|
"#{extension}_has_many_target_ids"
|
129
129
|
end
|
130
130
|
end
|
metadata
CHANGED
@@ -1,13 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tenacity
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash: 9
|
5
4
|
prerelease:
|
6
|
-
|
7
|
-
- 0
|
8
|
-
- 5
|
9
|
-
- 1
|
10
|
-
version: 0.5.1
|
5
|
+
version: 0.5.2
|
11
6
|
platform: ruby
|
12
7
|
authors:
|
13
8
|
- John Wood
|
@@ -15,327 +10,228 @@ autorequire:
|
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
12
|
|
18
|
-
date: 2011-07-
|
13
|
+
date: 2011-07-15 00:00:00 -05:00
|
19
14
|
default_executable:
|
20
15
|
dependencies:
|
21
16
|
- !ruby/object:Gem::Dependency
|
22
17
|
name: activesupport
|
23
|
-
prerelease: false
|
24
|
-
type: :runtime
|
25
18
|
requirement: &id001 !ruby/object:Gem::Requirement
|
26
19
|
none: false
|
27
20
|
requirements:
|
28
21
|
- - ">="
|
29
22
|
- !ruby/object:Gem::Version
|
30
|
-
hash: 5
|
31
|
-
segments:
|
32
|
-
- 2
|
33
|
-
- 3
|
34
23
|
version: "2.3"
|
24
|
+
type: :runtime
|
25
|
+
prerelease: false
|
35
26
|
version_requirements: *id001
|
36
27
|
- !ruby/object:Gem::Dependency
|
37
28
|
name: bundler
|
38
|
-
prerelease: false
|
39
|
-
type: :development
|
40
29
|
requirement: &id002 !ruby/object:Gem::Requirement
|
41
30
|
none: false
|
42
31
|
requirements:
|
43
32
|
- - ~>
|
44
33
|
- !ruby/object:Gem::Version
|
45
|
-
hash: 23
|
46
|
-
segments:
|
47
|
-
- 1
|
48
|
-
- 0
|
49
|
-
- 0
|
50
34
|
version: 1.0.0
|
35
|
+
type: :development
|
36
|
+
prerelease: false
|
51
37
|
version_requirements: *id002
|
52
38
|
- !ruby/object:Gem::Dependency
|
53
39
|
name: rake
|
54
|
-
prerelease: false
|
55
|
-
type: :development
|
56
40
|
requirement: &id003 !ruby/object:Gem::Requirement
|
57
41
|
none: false
|
58
42
|
requirements:
|
59
43
|
- - ~>
|
60
44
|
- !ruby/object:Gem::Version
|
61
|
-
hash: 49
|
62
|
-
segments:
|
63
|
-
- 0
|
64
|
-
- 8
|
65
|
-
- 7
|
66
45
|
version: 0.8.7
|
46
|
+
type: :development
|
47
|
+
prerelease: false
|
67
48
|
version_requirements: *id003
|
68
49
|
- !ruby/object:Gem::Dependency
|
69
50
|
name: rcov
|
70
|
-
prerelease: false
|
71
|
-
type: :development
|
72
51
|
requirement: &id004 !ruby/object:Gem::Requirement
|
73
52
|
none: false
|
74
53
|
requirements:
|
75
54
|
- - ~>
|
76
55
|
- !ruby/object:Gem::Version
|
77
|
-
hash: 41
|
78
|
-
segments:
|
79
|
-
- 0
|
80
|
-
- 9
|
81
|
-
- 9
|
82
56
|
version: 0.9.9
|
57
|
+
type: :development
|
58
|
+
prerelease: false
|
83
59
|
version_requirements: *id004
|
84
60
|
- !ruby/object:Gem::Dependency
|
85
61
|
name: shoulda
|
86
|
-
prerelease: false
|
87
|
-
type: :development
|
88
62
|
requirement: &id005 !ruby/object:Gem::Requirement
|
89
63
|
none: false
|
90
64
|
requirements:
|
91
65
|
- - ~>
|
92
66
|
- !ruby/object:Gem::Version
|
93
|
-
hash: 37
|
94
|
-
segments:
|
95
|
-
- 2
|
96
|
-
- 11
|
97
|
-
- 3
|
98
67
|
version: 2.11.3
|
68
|
+
type: :development
|
69
|
+
prerelease: false
|
99
70
|
version_requirements: *id005
|
100
71
|
- !ruby/object:Gem::Dependency
|
101
72
|
name: mocha
|
102
|
-
prerelease: false
|
103
|
-
type: :development
|
104
73
|
requirement: &id006 !ruby/object:Gem::Requirement
|
105
74
|
none: false
|
106
75
|
requirements:
|
107
76
|
- - ~>
|
108
77
|
- !ruby/object:Gem::Version
|
109
|
-
hash: 47
|
110
|
-
segments:
|
111
|
-
- 0
|
112
|
-
- 9
|
113
|
-
- 10
|
114
78
|
version: 0.9.10
|
79
|
+
type: :development
|
80
|
+
prerelease: false
|
115
81
|
version_requirements: *id006
|
116
82
|
- !ruby/object:Gem::Dependency
|
117
83
|
name: yard
|
118
|
-
prerelease: false
|
119
|
-
type: :development
|
120
84
|
requirement: &id007 !ruby/object:Gem::Requirement
|
121
85
|
none: false
|
122
86
|
requirements:
|
123
87
|
- - ~>
|
124
88
|
- !ruby/object:Gem::Version
|
125
|
-
hash: 15
|
126
|
-
segments:
|
127
|
-
- 0
|
128
|
-
- 6
|
129
|
-
- 4
|
130
89
|
version: 0.6.4
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
131
92
|
version_requirements: *id007
|
132
93
|
- !ruby/object:Gem::Dependency
|
133
94
|
name: sqlite3-ruby
|
134
|
-
prerelease: false
|
135
|
-
type: :development
|
136
95
|
requirement: &id008 !ruby/object:Gem::Requirement
|
137
96
|
none: false
|
138
97
|
requirements:
|
139
98
|
- - ~>
|
140
99
|
- !ruby/object:Gem::Version
|
141
|
-
hash: 25
|
142
|
-
segments:
|
143
|
-
- 1
|
144
|
-
- 3
|
145
|
-
- 1
|
146
100
|
version: 1.3.1
|
101
|
+
type: :development
|
102
|
+
prerelease: false
|
147
103
|
version_requirements: *id008
|
148
104
|
- !ruby/object:Gem::Dependency
|
149
105
|
name: activerecord
|
150
|
-
prerelease: false
|
151
|
-
type: :development
|
152
106
|
requirement: &id009 !ruby/object:Gem::Requirement
|
153
107
|
none: false
|
154
108
|
requirements:
|
155
109
|
- - ~>
|
156
110
|
- !ruby/object:Gem::Version
|
157
|
-
hash: 7
|
158
|
-
segments:
|
159
|
-
- 3
|
160
|
-
- 0
|
161
|
-
- 0
|
162
111
|
version: 3.0.0
|
112
|
+
type: :development
|
113
|
+
prerelease: false
|
163
114
|
version_requirements: *id009
|
164
115
|
- !ruby/object:Gem::Dependency
|
165
116
|
name: datamapper
|
166
|
-
prerelease: false
|
167
|
-
type: :development
|
168
117
|
requirement: &id010 !ruby/object:Gem::Requirement
|
169
118
|
none: false
|
170
119
|
requirements:
|
171
120
|
- - ~>
|
172
121
|
- !ruby/object:Gem::Version
|
173
|
-
hash: 19
|
174
|
-
segments:
|
175
|
-
- 1
|
176
|
-
- 0
|
177
|
-
- 2
|
178
122
|
version: 1.0.2
|
123
|
+
type: :development
|
124
|
+
prerelease: false
|
179
125
|
version_requirements: *id010
|
180
126
|
- !ruby/object:Gem::Dependency
|
181
127
|
name: dm-sqlite-adapter
|
182
|
-
prerelease: false
|
183
|
-
type: :development
|
184
128
|
requirement: &id011 !ruby/object:Gem::Requirement
|
185
129
|
none: false
|
186
130
|
requirements:
|
187
131
|
- - ~>
|
188
132
|
- !ruby/object:Gem::Version
|
189
|
-
hash: 19
|
190
|
-
segments:
|
191
|
-
- 1
|
192
|
-
- 0
|
193
|
-
- 2
|
194
133
|
version: 1.0.2
|
134
|
+
type: :development
|
135
|
+
prerelease: false
|
195
136
|
version_requirements: *id011
|
196
137
|
- !ruby/object:Gem::Dependency
|
197
138
|
name: sequel
|
198
|
-
prerelease: false
|
199
|
-
type: :development
|
200
139
|
requirement: &id012 !ruby/object:Gem::Requirement
|
201
140
|
none: false
|
202
141
|
requirements:
|
203
142
|
- - ~>
|
204
143
|
- !ruby/object:Gem::Version
|
205
|
-
hash: 75
|
206
|
-
segments:
|
207
|
-
- 3
|
208
|
-
- 19
|
209
|
-
- 0
|
210
144
|
version: 3.19.0
|
145
|
+
type: :development
|
146
|
+
prerelease: false
|
211
147
|
version_requirements: *id012
|
212
148
|
- !ruby/object:Gem::Dependency
|
213
149
|
name: mongo_mapper
|
214
|
-
prerelease: false
|
215
|
-
type: :development
|
216
150
|
requirement: &id013 !ruby/object:Gem::Requirement
|
217
151
|
none: false
|
218
152
|
requirements:
|
219
153
|
- - ~>
|
220
154
|
- !ruby/object:Gem::Version
|
221
|
-
hash: 59
|
222
|
-
segments:
|
223
|
-
- 0
|
224
|
-
- 9
|
225
|
-
- 0
|
226
155
|
version: 0.9.0
|
156
|
+
type: :development
|
157
|
+
prerelease: false
|
227
158
|
version_requirements: *id013
|
228
159
|
- !ruby/object:Gem::Dependency
|
229
160
|
name: bson_ext
|
230
|
-
prerelease: false
|
231
|
-
type: :development
|
232
161
|
requirement: &id014 !ruby/object:Gem::Requirement
|
233
162
|
none: false
|
234
163
|
requirements:
|
235
164
|
- - ~>
|
236
165
|
- !ruby/object:Gem::Version
|
237
|
-
hash: 27
|
238
|
-
segments:
|
239
|
-
- 1
|
240
|
-
- 3
|
241
|
-
- 0
|
242
166
|
version: 1.3.0
|
167
|
+
type: :development
|
168
|
+
prerelease: false
|
243
169
|
version_requirements: *id014
|
244
170
|
- !ruby/object:Gem::Dependency
|
245
171
|
name: mongoid
|
246
|
-
prerelease: false
|
247
|
-
type: :development
|
248
172
|
requirement: &id015 !ruby/object:Gem::Requirement
|
249
173
|
none: false
|
250
174
|
requirements:
|
251
175
|
- - ~>
|
252
176
|
- !ruby/object:Gem::Version
|
253
|
-
hash: 15
|
254
|
-
segments:
|
255
|
-
- 2
|
256
|
-
- 0
|
257
|
-
- 0
|
258
177
|
version: 2.0.0
|
178
|
+
type: :development
|
179
|
+
prerelease: false
|
259
180
|
version_requirements: *id015
|
260
181
|
- !ruby/object:Gem::Dependency
|
261
182
|
name: couchrest
|
262
|
-
prerelease: false
|
263
|
-
type: :development
|
264
183
|
requirement: &id016 !ruby/object:Gem::Requirement
|
265
184
|
none: false
|
266
185
|
requirements:
|
267
186
|
- - ~>
|
268
187
|
- !ruby/object:Gem::Version
|
269
|
-
hash: 23
|
270
|
-
segments:
|
271
|
-
- 1
|
272
|
-
- 0
|
273
|
-
- 0
|
274
188
|
version: 1.0.0
|
189
|
+
type: :development
|
190
|
+
prerelease: false
|
275
191
|
version_requirements: *id016
|
276
192
|
- !ruby/object:Gem::Dependency
|
277
193
|
name: couchrest_model
|
278
|
-
prerelease: false
|
279
|
-
type: :development
|
280
194
|
requirement: &id017 !ruby/object:Gem::Requirement
|
281
195
|
none: false
|
282
196
|
requirements:
|
283
197
|
- - ~>
|
284
198
|
- !ruby/object:Gem::Version
|
285
|
-
hash: 23
|
286
|
-
segments:
|
287
|
-
- 1
|
288
|
-
- 0
|
289
|
-
- 0
|
290
199
|
version: 1.0.0
|
200
|
+
type: :development
|
201
|
+
prerelease: false
|
291
202
|
version_requirements: *id017
|
292
203
|
- !ruby/object:Gem::Dependency
|
293
204
|
name: ripple
|
294
|
-
prerelease: false
|
295
|
-
type: :development
|
296
205
|
requirement: &id018 !ruby/object:Gem::Requirement
|
297
206
|
none: false
|
298
207
|
requirements:
|
299
208
|
- - ~>
|
300
209
|
- !ruby/object:Gem::Version
|
301
|
-
hash: 63
|
302
|
-
segments:
|
303
|
-
- 0
|
304
|
-
- 9
|
305
|
-
- 2
|
306
210
|
version: 0.9.2
|
211
|
+
type: :development
|
212
|
+
prerelease: false
|
307
213
|
version_requirements: *id018
|
308
214
|
- !ruby/object:Gem::Dependency
|
309
215
|
name: toystore
|
310
|
-
prerelease: false
|
311
|
-
type: :development
|
312
216
|
requirement: &id019 !ruby/object:Gem::Requirement
|
313
217
|
none: false
|
314
218
|
requirements:
|
315
219
|
- - ~>
|
316
220
|
- !ruby/object:Gem::Version
|
317
|
-
hash: 63
|
318
|
-
segments:
|
319
|
-
- 0
|
320
|
-
- 8
|
321
|
-
- 0
|
322
221
|
version: 0.8.0
|
222
|
+
type: :development
|
223
|
+
prerelease: false
|
323
224
|
version_requirements: *id019
|
324
225
|
- !ruby/object:Gem::Dependency
|
325
226
|
name: adapter-mongo
|
326
|
-
prerelease: false
|
327
|
-
type: :development
|
328
227
|
requirement: &id020 !ruby/object:Gem::Requirement
|
329
228
|
none: false
|
330
229
|
requirements:
|
331
230
|
- - ~>
|
332
231
|
- !ruby/object:Gem::Version
|
333
|
-
hash: 15
|
334
|
-
segments:
|
335
|
-
- 0
|
336
|
-
- 5
|
337
|
-
- 2
|
338
232
|
version: 0.5.2
|
233
|
+
type: :development
|
234
|
+
prerelease: false
|
339
235
|
version_requirements: *id020
|
340
236
|
description: Tenacity provides a database client independent way of specifying simple relationships between models backed by different databases.
|
341
237
|
email:
|
@@ -389,6 +285,7 @@ files:
|
|
389
285
|
- test/fixtures/active_record_has_one_target.rb
|
390
286
|
- test/fixtures/active_record_nut.rb
|
391
287
|
- test/fixtures/active_record_object.rb
|
288
|
+
- test/fixtures/active_record_object_with_string_id.rb
|
392
289
|
- test/fixtures/couch_rest_door.rb
|
393
290
|
- test/fixtures/couch_rest_has_many_target.rb
|
394
291
|
- test/fixtures/couch_rest_has_one_target.rb
|
@@ -397,6 +294,7 @@ files:
|
|
397
294
|
- test/fixtures/data_mapper_has_many_target.rb
|
398
295
|
- test/fixtures/data_mapper_has_one_target.rb
|
399
296
|
- test/fixtures/data_mapper_object.rb
|
297
|
+
- test/fixtures/data_mapper_object_with_string_id.rb
|
400
298
|
- test/fixtures/mongo_mapper_air_filter.rb
|
401
299
|
- test/fixtures/mongo_mapper_alternator.rb
|
402
300
|
- test/fixtures/mongo_mapper_ash_tray.rb
|
@@ -422,6 +320,7 @@ files:
|
|
422
320
|
- test/fixtures/sequel_has_many_target.rb
|
423
321
|
- test/fixtures/sequel_has_one_target.rb
|
424
322
|
- test/fixtures/sequel_object.rb
|
323
|
+
- test/fixtures/sequel_object_with_string_id.rb
|
425
324
|
- test/fixtures/toystore_has_many_target.rb
|
426
325
|
- test/fixtures/toystore_has_one_target.rb
|
427
326
|
- test/fixtures/toystore_object.rb
|
@@ -456,7 +355,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
456
355
|
requirements:
|
457
356
|
- - ">="
|
458
357
|
- !ruby/object:Gem::Version
|
459
|
-
hash:
|
358
|
+
hash: -2063505334017830292
|
460
359
|
segments:
|
461
360
|
- 0
|
462
361
|
version: "0"
|
@@ -465,11 +364,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
465
364
|
requirements:
|
466
365
|
- - ">="
|
467
366
|
- !ruby/object:Gem::Version
|
468
|
-
hash: 23
|
469
|
-
segments:
|
470
|
-
- 1
|
471
|
-
- 3
|
472
|
-
- 6
|
473
367
|
version: 1.3.6
|
474
368
|
requirements: []
|
475
369
|
|