mongo_mapper-rails3 0.7.0.1 → 0.7.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (94) hide show
  1. data/README.rdoc +8 -37
  2. metadata +16 -284
  3. data/.gitignore +0 -10
  4. data/Gemfile +0 -15
  5. data/LICENSE +0 -20
  6. data/Rakefile +0 -58
  7. data/VERSION +0 -1
  8. data/bin/mmconsole +0 -60
  9. data/lib/mongo_mapper.rb +0 -131
  10. data/lib/mongo_mapper/document.rb +0 -439
  11. data/lib/mongo_mapper/embedded_document.rb +0 -68
  12. data/lib/mongo_mapper/plugins.rb +0 -30
  13. data/lib/mongo_mapper/plugins/associations.rb +0 -106
  14. data/lib/mongo_mapper/plugins/associations/base.rb +0 -123
  15. data/lib/mongo_mapper/plugins/associations/belongs_to_polymorphic_proxy.rb +0 -30
  16. data/lib/mongo_mapper/plugins/associations/belongs_to_proxy.rb +0 -25
  17. data/lib/mongo_mapper/plugins/associations/collection.rb +0 -21
  18. data/lib/mongo_mapper/plugins/associations/embedded_collection.rb +0 -50
  19. data/lib/mongo_mapper/plugins/associations/in_array_proxy.rb +0 -141
  20. data/lib/mongo_mapper/plugins/associations/many_documents_as_proxy.rb +0 -28
  21. data/lib/mongo_mapper/plugins/associations/many_documents_proxy.rb +0 -120
  22. data/lib/mongo_mapper/plugins/associations/many_embedded_polymorphic_proxy.rb +0 -31
  23. data/lib/mongo_mapper/plugins/associations/many_embedded_proxy.rb +0 -23
  24. data/lib/mongo_mapper/plugins/associations/many_polymorphic_proxy.rb +0 -13
  25. data/lib/mongo_mapper/plugins/associations/one_proxy.rb +0 -68
  26. data/lib/mongo_mapper/plugins/associations/proxy.rb +0 -119
  27. data/lib/mongo_mapper/plugins/callbacks.rb +0 -87
  28. data/lib/mongo_mapper/plugins/clone.rb +0 -14
  29. data/lib/mongo_mapper/plugins/descendants.rb +0 -17
  30. data/lib/mongo_mapper/plugins/dirty.rb +0 -120
  31. data/lib/mongo_mapper/plugins/equality.rb +0 -24
  32. data/lib/mongo_mapper/plugins/identity_map.rb +0 -124
  33. data/lib/mongo_mapper/plugins/inspect.rb +0 -15
  34. data/lib/mongo_mapper/plugins/keys.rb +0 -310
  35. data/lib/mongo_mapper/plugins/logger.rb +0 -19
  36. data/lib/mongo_mapper/plugins/pagination.rb +0 -26
  37. data/lib/mongo_mapper/plugins/pagination/proxy.rb +0 -72
  38. data/lib/mongo_mapper/plugins/protected.rb +0 -46
  39. data/lib/mongo_mapper/plugins/rails.rb +0 -46
  40. data/lib/mongo_mapper/plugins/serialization.rb +0 -50
  41. data/lib/mongo_mapper/plugins/validations.rb +0 -88
  42. data/lib/mongo_mapper/query.rb +0 -130
  43. data/lib/mongo_mapper/support.rb +0 -217
  44. data/lib/mongo_mapper/support/descendant_appends.rb +0 -46
  45. data/lib/mongo_mapper/support/find.rb +0 -77
  46. data/mongo_mapper-rails3.gemspec +0 -208
  47. data/performance/read_write.rb +0 -52
  48. data/specs.watchr +0 -51
  49. data/test/NOTE_ON_TESTING +0 -1
  50. data/test/functional/associations/test_belongs_to_polymorphic_proxy.rb +0 -63
  51. data/test/functional/associations/test_belongs_to_proxy.rb +0 -101
  52. data/test/functional/associations/test_in_array_proxy.rb +0 -321
  53. data/test/functional/associations/test_many_documents_as_proxy.rb +0 -229
  54. data/test/functional/associations/test_many_documents_proxy.rb +0 -453
  55. data/test/functional/associations/test_many_embedded_polymorphic_proxy.rb +0 -176
  56. data/test/functional/associations/test_many_embedded_proxy.rb +0 -256
  57. data/test/functional/associations/test_many_polymorphic_proxy.rb +0 -302
  58. data/test/functional/associations/test_one_proxy.rb +0 -161
  59. data/test/functional/test_associations.rb +0 -44
  60. data/test/functional/test_binary.rb +0 -27
  61. data/test/functional/test_callbacks.rb +0 -81
  62. data/test/functional/test_dirty.rb +0 -163
  63. data/test/functional/test_document.rb +0 -1244
  64. data/test/functional/test_embedded_document.rb +0 -125
  65. data/test/functional/test_identity_map.rb +0 -508
  66. data/test/functional/test_logger.rb +0 -20
  67. data/test/functional/test_modifiers.rb +0 -252
  68. data/test/functional/test_pagination.rb +0 -93
  69. data/test/functional/test_protected.rb +0 -161
  70. data/test/functional/test_string_id_compatibility.rb +0 -67
  71. data/test/functional/test_validations.rb +0 -329
  72. data/test/models.rb +0 -232
  73. data/test/support/custom_matchers.rb +0 -55
  74. data/test/support/timing.rb +0 -16
  75. data/test/test_helper.rb +0 -59
  76. data/test/unit/associations/test_base.rb +0 -207
  77. data/test/unit/associations/test_proxy.rb +0 -105
  78. data/test/unit/serializers/test_json_serializer.rb +0 -189
  79. data/test/unit/test_descendant_appends.rb +0 -71
  80. data/test/unit/test_document.rb +0 -231
  81. data/test/unit/test_dynamic_finder.rb +0 -123
  82. data/test/unit/test_embedded_document.rb +0 -663
  83. data/test/unit/test_keys.rb +0 -169
  84. data/test/unit/test_lint.rb +0 -8
  85. data/test/unit/test_mongo_mapper.rb +0 -125
  86. data/test/unit/test_pagination.rb +0 -160
  87. data/test/unit/test_plugins.rb +0 -51
  88. data/test/unit/test_query.rb +0 -334
  89. data/test/unit/test_rails.rb +0 -123
  90. data/test/unit/test_rails_compatibility.rb +0 -57
  91. data/test/unit/test_serialization.rb +0 -51
  92. data/test/unit/test_support.rb +0 -362
  93. data/test/unit/test_time_zones.rb +0 -39
  94. data/test/unit/test_validations.rb +0 -557
@@ -1,57 +0,0 @@
1
- require 'test_helper'
2
-
3
- class TestRailsCompatibility < Test::Unit::TestCase
4
- class BigStuff
5
- include MongoMapper::Document
6
- end
7
-
8
- class Item
9
- include MongoMapper::EmbeddedDocument
10
- key :for_all, String
11
- end
12
-
13
- class FirstItem < Item
14
- key :first_only, String
15
- many :second_items
16
- end
17
-
18
- class SecondItem < Item
19
- key :second_only, String
20
- end
21
-
22
- context "EmbeddedDocument" do
23
- should "alias many to has_many" do
24
- FirstItem.should respond_to(:has_many)
25
- end
26
-
27
- should "alias one to has_one" do
28
- FirstItem.should respond_to(:has_one)
29
- end
30
-
31
- should "have column names" do
32
- Item.column_names.sort.should == ['_id', 'for_all']
33
- FirstItem.column_names.sort.should == ['_id', 'first_only', 'for_all']
34
- SecondItem.column_names.sort.should == ['_id', 'for_all', 'second_only']
35
- end
36
-
37
- should "alias new to new_record?" do
38
- instance = Item.new
39
- instance.new_record?.should == instance.new?
40
- end
41
-
42
- should "implement human_name" do
43
- Item.human.should == 'Item'
44
- end
45
- end
46
-
47
- context "Document" do
48
- should "implement human_name" do
49
- BigStuff.human.should == 'Big Stuff'
50
- end
51
-
52
- should "respond to to_model" do
53
- big_stuff = BigStuff.new
54
- big_stuff.to_model.should == big_stuff
55
- end
56
- end
57
- end
@@ -1,51 +0,0 @@
1
- require 'test_helper'
2
-
3
- class SerializationTest < Test::Unit::TestCase
4
- def setup
5
- @document = EDoc do
6
- key :name, String
7
- key :age, Integer
8
- key :awesome, Boolean
9
- key :preferences, Hash
10
- key :created_at, Time
11
- end
12
-
13
- @instance = @document.new(
14
- :name => 'John Doe',
15
- :age => 25,
16
- :awesome => true,
17
- :preferences => {:language => 'Ruby'},
18
- :created_at => Time.now.change(:usec => 0)
19
- )
20
- end
21
-
22
- [:json].each do |format|
23
- context format do
24
- should "be reversable" do
25
- serialized = @instance.send("to_#{format}")
26
- unserialized = @document.new.send("from_#{format}", serialized)
27
-
28
- assert_equal @instance, unserialized
29
- end
30
-
31
- should "allow attribute only filtering" do
32
- serialized = @instance.send("to_#{format}", :only => [ :age, :name ])
33
- unserialized = @document.new.send("from_#{format}", serialized)
34
-
35
- assert_equal @instance.name, unserialized.name
36
- assert_equal @instance.age, unserialized.age
37
- assert ! unserialized.awesome
38
- assert_nil unserialized.created_at
39
- end
40
-
41
- should "allow attribute except filtering" do
42
- serialized = @instance.send("to_#{format}", :except => [ :age, :name ])
43
- unserialized = @document.new.send("from_#{format}", serialized)
44
-
45
- assert_nil unserialized.name
46
- assert_nil unserialized.age
47
- assert_equal @instance.awesome, unserialized.awesome
48
- end
49
- end
50
- end
51
- end
@@ -1,362 +0,0 @@
1
- require 'test_helper'
2
-
3
- class SupportTest < Test::Unit::TestCase
4
- context "Array#to_mongo" do
5
- should "convert value to_a" do
6
- Array.to_mongo([1, 2, 3, 4]).should == [1, 2, 3, 4]
7
- Array.to_mongo('1').should == ['1']
8
- Array.to_mongo({'1' => '2', '3' => '4'}).should == [['1', '2'], ['3', '4']]
9
- end
10
- end
11
-
12
- context "Array#from_mongo" do
13
- should "be array if array" do
14
- Array.from_mongo([1, 2]).should == [1, 2]
15
- end
16
-
17
- should "be empty array if nil" do
18
- Array.from_mongo(nil).should == []
19
- end
20
- end
21
-
22
- context "Binary#to_mongo" do
23
- should "convert to byte buffer if not byte buffer" do
24
- Binary.to_mongo('asdfsadasdfs').is_a?(ByteBuffer).should be_true
25
- end
26
-
27
- should "be byte buffer if byte buffer" do
28
- Binary.to_mongo(ByteBuffer.new('asdfsadasdfs')).is_a?(ByteBuffer).should be_true
29
- end
30
-
31
- should "be nil if nil" do
32
- Binary.to_mongo(nil).should be_nil
33
- end
34
- end
35
-
36
- context "Binary#from_mongo" do
37
- should "return value" do
38
- buffer = ByteBuffer.new('asdfasdfasdf')
39
- Binary.from_mongo(buffer).to_s.should == buffer.to_s
40
- end
41
- end
42
-
43
- context "Boolean#to_mongo" do
44
- should "be true for true" do
45
- Boolean.to_mongo(true).should be_true
46
- end
47
-
48
- should "be false for false" do
49
- Boolean.to_mongo(false).should be_false
50
- end
51
-
52
- should "handle odd assortment of other values" do
53
- Boolean.to_mongo('true').should be_true
54
- Boolean.to_mongo('t').should be_true
55
- Boolean.to_mongo('1').should be_true
56
- Boolean.to_mongo(1).should be_true
57
-
58
- Boolean.to_mongo('false').should be_false
59
- Boolean.to_mongo('f').should be_false
60
- Boolean.to_mongo('0').should be_false
61
- Boolean.to_mongo(0).should be_false
62
- end
63
- end
64
-
65
- context "Boolean#from_mongo" do
66
- should "be true for true" do
67
- Boolean.from_mongo(true).should be_true
68
- end
69
-
70
- should "be false for false" do
71
- Boolean.from_mongo(false).should be_false
72
- end
73
-
74
- should "be false for nil" do
75
- Boolean.from_mongo(nil).should be_false
76
- end
77
- end
78
-
79
- context "Date#to_mongo" do
80
- should "be time if string" do
81
- date = Date.to_mongo('10/1/2009')
82
- date.should == Time.utc(2009, 10, 1)
83
- date.should == date
84
- date.month.should == 10
85
- date.day.should == 1
86
- date.year.should == 2009
87
- end
88
-
89
- should "be time if date" do
90
- Date.to_mongo(Date.new(2009, 10, 1)).should == Time.utc(2009, 10, 1)
91
- end
92
-
93
- should "be date if time" do
94
- Date.to_mongo(Time.parse("2009-10-1T12:30:00")).should == Time.utc(2009, 10, 1)
95
- end
96
-
97
- should "be nil if bogus string" do
98
- Date.to_mongo('jdsafop874').should be_nil
99
- end
100
-
101
- should "be nil if empty string" do
102
- Date.to_mongo('').should be_nil
103
- end
104
- end
105
-
106
- context "Date#from_mongo" do
107
- should "be date if date" do
108
- date = Date.new(2009, 10, 1)
109
- from_date = Date.from_mongo(date)
110
- from_date.should == date
111
- from_date.month.should == 10
112
- from_date.day.should == 1
113
- from_date.year.should == 2009
114
- end
115
-
116
- should "be date if time" do
117
- time = Time.now
118
- Date.from_mongo(time).should == time.to_date
119
- end
120
-
121
- should "be nil if nil" do
122
- Date.from_mongo(nil).should be_nil
123
- end
124
- end
125
-
126
- context "Float#to_mongo" do
127
- should "convert value to_f" do
128
- [21, 21.0, '21'].each do |value|
129
- Float.to_mongo(value).should == 21.0
130
- end
131
- end
132
- end
133
-
134
- context "Hash#from_mongo" do
135
- should "convert hash to hash with indifferent access" do
136
- hash = Hash.from_mongo(:foo => 'bar')
137
- hash[:foo].should == 'bar'
138
- hash['foo'].should == 'bar'
139
- end
140
-
141
- should "be hash if nil" do
142
- hash = Hash.from_mongo(nil)
143
- hash.should == {}
144
- hash.is_a?(HashWithIndifferentAccess).should be_true
145
- end
146
- end
147
-
148
- context "Hash#to_mongo instance method" do
149
- should "have instance method that returns self" do
150
- hash = HashWithIndifferentAccess.new('foo' => 'bar')
151
- hash.to_mongo.should == {'foo' => 'bar'}
152
- end
153
- end
154
-
155
- context "Integer#to_mongo" do
156
- should "convert value to integer" do
157
- [21, 21.0, '21'].each do |value|
158
- Integer.to_mongo(value).should == 21
159
- end
160
- end
161
-
162
- should "work fine with big integers" do
163
- [9223372036854775807, '9223372036854775807'].each do |value|
164
- Integer.to_mongo(value).should == 9223372036854775807
165
- end
166
- end
167
- end
168
-
169
- context "ObjectId#to_mongo" do
170
- should "return nil for nil" do
171
- ObjectId.to_mongo(nil).should be_nil
172
- end
173
-
174
- should "return nil if blank string" do
175
- ObjectId.to_mongo('').should be_nil
176
- end
177
-
178
- should "return value if object id" do
179
- id = Mongo::ObjectID.new
180
- ObjectId.to_mongo(id).should be(id)
181
- end
182
-
183
- should "return object id if string" do
184
- id = Mongo::ObjectID.new
185
- ObjectId.to_mongo(id.to_s).should be(id)
186
- end
187
- end
188
-
189
- context "ObjectId#from_mongo" do
190
- should "return value" do
191
- id = Mongo::ObjectID.new
192
- ObjectId.from_mongo(id).should == id
193
- end
194
- end
195
-
196
- context "NilClass#to_mongo" do
197
- should "return nil" do
198
- nil.to_mongo(nil).should be_nil
199
- end
200
- end
201
-
202
- context "NilClass#from_mongo" do
203
- should "return nil" do
204
- nil.from_mongo(nil).should be_nil
205
- end
206
- end
207
-
208
- context "Object#to_mongo" do
209
- should "return value" do
210
- Object.to_mongo(21).should == 21
211
- Object.to_mongo('21').should == '21'
212
- Object.to_mongo(9223372036854775807).should == 9223372036854775807
213
- end
214
- end
215
-
216
- context "Object#from_mongo" do
217
- should "return value" do
218
- Object.from_mongo(21).should == 21
219
- Object.from_mongo('21').should == '21'
220
- Object.from_mongo(9223372036854775807).should == 9223372036854775807
221
- end
222
- end
223
-
224
- context "Set#to_mongo" do
225
- should "convert value to_a" do
226
- Set.to_mongo(Set.new([1,2,3])).should == [1,2,3]
227
- end
228
-
229
- should "convert to empty array if nil" do
230
- Set.to_mongo(nil).should == []
231
- end
232
- end
233
-
234
- context "Set#from_mongo" do
235
- should "be a set if array" do
236
- Set.from_mongo([1,2,3]).should == Set.new([1,2,3])
237
- end
238
-
239
- should "be empty set if nil" do
240
- Set.from_mongo(nil).should == Set.new([])
241
- end
242
- end
243
-
244
- context "String#to_mongo" do
245
- should "convert value to_s" do
246
- [21, '21'].each do |value|
247
- String.to_mongo(value).should == '21'
248
- end
249
- end
250
-
251
- should "be nil if nil" do
252
- String.to_mongo(nil).should be_nil
253
- end
254
- end
255
-
256
- context "String#from_mongo" do
257
- should "be string if value present" do
258
- String.from_mongo('Scotch! Scotch! Scotch!').should == 'Scotch! Scotch! Scotch!'
259
- end
260
-
261
- should "return nil if nil" do
262
- String.from_mongo(nil).should be_nil
263
- end
264
-
265
- should "return empty string if blank" do
266
- String.from_mongo('').should == ''
267
- end
268
- end
269
-
270
- context "Symbol" do
271
- %w(gt lt gte lte ne in nin mod all size where exists asc desc).each do |operator|
272
- should "have $#{operator} operator" do
273
- :foo.respond_to?(operator)
274
- end
275
- end
276
- end
277
-
278
- context "Time#to_mongo without Time.zone" do
279
- should "be time to milliseconds if string" do
280
- Time.to_mongo('2000-01-01 01:01:01.123456').should == Time.local(2000, 1, 1, 1, 1, 1, 123000).utc
281
- end
282
-
283
- should "be time in utc if time" do
284
- Time.to_mongo(Time.local(2009, 8, 15, 0, 0, 0)).zone.should == 'UTC'
285
- end
286
-
287
- should "be nil if blank string" do
288
- Time.to_mongo('').should be_nil
289
- end
290
-
291
- should "not be nil if nil" do
292
- Time.to_mongo(nil).should be_nil
293
- end
294
- end
295
-
296
- context "Time#to_mongo with Time.zone" do
297
- should "be time to milliseconds if time" do
298
- Time.zone = 'Hawaii'
299
- Time.to_mongo(Time.zone.local(2009, 8, 15, 14, 0, 0, 123456)).should == Time.utc(2009, 8, 16, 0, 0, 0, 123000)
300
- Time.zone = nil
301
- end
302
-
303
- should "be time to milliseconds if string" do
304
- Time.zone = 'Hawaii'
305
- Time.to_mongo('2009-08-15 14:00:00.123456').should == Time.utc(2009, 8, 16, 0, 0, 0, 123000)
306
- Time.zone = nil
307
- end
308
-
309
- should "be nil if blank string" do
310
- Time.zone = 'Hawaii'
311
- Time.to_mongo('').should be_nil
312
- Time.zone = nil
313
- end
314
-
315
- should "be nil if nil" do
316
- Time.zone = 'Hawaii'
317
- Time.to_mongo(nil).should be_nil
318
- Time.zone = nil
319
- end
320
- end
321
-
322
- context "Time#from_mongo without Time.zone" do
323
- should "be time" do
324
- time = Time.now
325
- Time.from_mongo(time).should == time
326
- end
327
-
328
- should "be nil if nil" do
329
- Time.from_mongo(nil).should be_nil
330
- end
331
- end
332
-
333
- context "Time#from_mongo with Time.zone" do
334
- should "be time in Time.zone" do
335
- Time.zone = 'Hawaii'
336
-
337
- time = Time.from_mongo(Time.utc(2009, 10, 1))
338
- time.should == Time.zone.local(2009, 9, 30, 14)
339
- time.is_a?(ActiveSupport::TimeWithZone).should be_true
340
-
341
- Time.zone = nil
342
- end
343
-
344
- should "be nil if nil" do
345
- Time.zone = 'Hawaii'
346
- Time.from_mongo(nil).should be_nil
347
- Time.zone = nil
348
- end
349
- end
350
-
351
- context "Mongo::ObjectID.to_json" do
352
- should "convert object id to string" do
353
- id = Mongo::ObjectID.new
354
- id.to_json.should == %Q("#{id}")
355
- end
356
-
357
- should "support ruby driver syntax also" do
358
- id = Mongo::ObjectID.new
359
- id.original_to_json.should == %Q({"$oid": "#{id}"})
360
- end
361
- end
362
- end