mongoid 1.2.8 → 1.2.9
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/Rakefile +1 -1
- data/VERSION +1 -1
- data/lib/mongoid.rb +2 -3
- data/lib/mongoid/associations.rb +5 -3
- data/lib/mongoid/associations/belongs_to_related.rb +6 -9
- data/lib/mongoid/associations/has_many.rb +2 -0
- data/lib/mongoid/associations/has_many_related.rb +10 -0
- data/lib/mongoid/attributes.rb +6 -1
- data/lib/mongoid/commands.rb +2 -10
- data/lib/mongoid/components.rb +11 -12
- data/lib/mongoid/contexts/enumerable.rb +21 -11
- data/lib/mongoid/contexts/mongo.rb +40 -1
- data/lib/mongoid/criteria.rb +3 -29
- data/lib/mongoid/criterion/inclusion.rb +2 -1
- data/lib/mongoid/document.rb +5 -6
- data/lib/mongoid/extensions.rb +10 -0
- data/lib/mongoid/extensions/big_decimal/conversions.rb +19 -0
- data/lib/mongoid/extensions/binary/conversions.rb +17 -0
- data/lib/mongoid/{caching.rb → extras.rb} +26 -3
- data/lib/mongoid/field.rb +20 -7
- data/lib/mongoid/finders.rb +10 -80
- data/mongoid.gemspec +15 -13
- data/spec/integration/mongoid/document_spec.rb +1 -1
- data/spec/models/person.rb +1 -0
- data/spec/unit/mongoid/associations/belongs_to_related_spec.rb +4 -0
- data/spec/unit/mongoid/associations/has_many_related_spec.rb +42 -13
- data/spec/unit/mongoid/associations/has_many_spec.rb +12 -7
- data/spec/unit/mongoid/associations_spec.rb +16 -0
- data/spec/unit/mongoid/attributes_spec.rb +23 -0
- data/spec/unit/mongoid/commands/destroy_spec.rb +3 -0
- data/spec/unit/mongoid/commands_spec.rb +4 -11
- data/spec/unit/mongoid/contexts/enumerable_spec.rb +16 -0
- data/spec/unit/mongoid/contexts/mongo_spec.rb +96 -0
- data/spec/unit/mongoid/criteria_spec.rb +11 -4
- data/spec/unit/mongoid/document_spec.rb +11 -0
- data/spec/unit/mongoid/extensions/big_decimal/conversions_spec.rb +22 -0
- data/spec/unit/mongoid/extensions/binary/conversions_spec.rb +22 -0
- data/spec/unit/mongoid/{enslavement_spec.rb → extras_spec.rb} +55 -2
- data/spec/unit/mongoid/field_spec.rb +62 -0
- data/spec/unit/mongoid/finders_spec.rb +36 -0
- metadata +69 -37
- data/HISTORY +0 -342
- data/lib/mongoid/enslavement.rb +0 -38
- data/spec/unit/mongoid/caching_spec.rb +0 -63
@@ -2,6 +2,42 @@ require "spec_helper"
|
|
2
2
|
|
3
3
|
describe Mongoid::Field do
|
4
4
|
|
5
|
+
describe "#accessible?" do
|
6
|
+
|
7
|
+
context "when value is not set" do
|
8
|
+
|
9
|
+
before do
|
10
|
+
@field = Mongoid::Field.new(:name)
|
11
|
+
end
|
12
|
+
|
13
|
+
it "defaults to true" do
|
14
|
+
@field.accessible?.should be_true
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
context "when set to true" do
|
19
|
+
|
20
|
+
before do
|
21
|
+
@field = Mongoid::Field.new(:name, :accessible => true)
|
22
|
+
end
|
23
|
+
|
24
|
+
it "returns true" do
|
25
|
+
@field.accessible?.should be_true
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
context "when set to false" do
|
30
|
+
|
31
|
+
before do
|
32
|
+
@field = Mongoid::Field.new(:name, :accessible => false)
|
33
|
+
end
|
34
|
+
|
35
|
+
it "returns false" do
|
36
|
+
@field.accessible?.should be_false
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
5
41
|
describe "#default" do
|
6
42
|
|
7
43
|
before do
|
@@ -12,6 +48,32 @@ describe Mongoid::Field do
|
|
12
48
|
@field.default.should == 0
|
13
49
|
end
|
14
50
|
|
51
|
+
context "when the field is an array" do
|
52
|
+
|
53
|
+
before do
|
54
|
+
@field = Mongoid::Field.new(:vals, :type => Array, :default => [ "first" ])
|
55
|
+
end
|
56
|
+
|
57
|
+
it "dups the array" do
|
58
|
+
array = @field.default
|
59
|
+
array << "second"
|
60
|
+
@field.default.should == [ "first" ]
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
context "when the field is a hash" do
|
65
|
+
|
66
|
+
before do
|
67
|
+
@field = Mongoid::Field.new(:vals, :type => Hash, :default => { :key => "value" })
|
68
|
+
end
|
69
|
+
|
70
|
+
it "dups the hash" do
|
71
|
+
hash = @field.default
|
72
|
+
hash[:key_two] = "value2"
|
73
|
+
@field.default.should == { :key => "value" }
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
15
77
|
end
|
16
78
|
|
17
79
|
describe "#name" do
|
@@ -40,6 +40,24 @@ describe Mongoid::Finders do
|
|
40
40
|
|
41
41
|
end
|
42
42
|
|
43
|
+
describe ".all_in" do
|
44
|
+
|
45
|
+
it "returns a new criteria with select conditions added" do
|
46
|
+
criteria = Person.all_in(:aliases => [ "Bond", "007" ])
|
47
|
+
criteria.selector.should == { :aliases => { "$all" => [ "Bond", "007" ] } }
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
51
|
+
|
52
|
+
describe ".any_in" do
|
53
|
+
|
54
|
+
it "returns a new criteria with select conditions added" do
|
55
|
+
criteria = Person.any_in(:aliases => [ "Bond", "007" ])
|
56
|
+
criteria.selector.should == { :aliases => { "$in" => [ "Bond", "007" ] } }
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
60
|
+
|
43
61
|
describe ".count" do
|
44
62
|
|
45
63
|
before do
|
@@ -65,6 +83,15 @@ describe Mongoid::Finders do
|
|
65
83
|
|
66
84
|
end
|
67
85
|
|
86
|
+
describe ".excludes" do
|
87
|
+
|
88
|
+
it "returns a new criteria with select conditions added" do
|
89
|
+
criteria = Person.excludes(:title => "Sir")
|
90
|
+
criteria.selector.should == { :title => { "$ne" => "Sir" } }
|
91
|
+
end
|
92
|
+
|
93
|
+
end
|
94
|
+
|
68
95
|
describe ".find" do
|
69
96
|
|
70
97
|
before do
|
@@ -296,6 +323,15 @@ describe Mongoid::Finders do
|
|
296
323
|
|
297
324
|
end
|
298
325
|
|
326
|
+
describe ".not_in" do
|
327
|
+
|
328
|
+
it "returns a new criteria with select conditions added" do
|
329
|
+
criteria = Person.not_in(:aliases => [ "Bond", "007" ])
|
330
|
+
criteria.selector.should == { :aliases => { "$nin" => [ "Bond", "007" ] } }
|
331
|
+
end
|
332
|
+
|
333
|
+
end
|
334
|
+
|
299
335
|
describe ".paginate" do
|
300
336
|
|
301
337
|
before do
|
metadata
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mongoid
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 1
|
7
|
+
- 2
|
8
|
+
- 9
|
9
|
+
version: 1.2.9
|
5
10
|
platform: ruby
|
6
11
|
authors:
|
7
12
|
- Durran Jordan
|
@@ -9,69 +14,92 @@ autorequire:
|
|
9
14
|
bindir: bin
|
10
15
|
cert_chain: []
|
11
16
|
|
12
|
-
date: 2010-
|
17
|
+
date: 2010-03-09 00:00:00 -05:00
|
13
18
|
default_executable:
|
14
19
|
dependencies:
|
15
20
|
- !ruby/object:Gem::Dependency
|
16
21
|
name: activesupport
|
17
|
-
|
18
|
-
|
19
|
-
version_requirements: !ruby/object:Gem::Requirement
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
20
24
|
requirements:
|
21
25
|
- - <=
|
22
26
|
- !ruby/object:Gem::Version
|
27
|
+
segments:
|
28
|
+
- 2
|
29
|
+
- 3
|
30
|
+
- 5
|
23
31
|
version: 2.3.5
|
24
|
-
|
32
|
+
type: :runtime
|
33
|
+
version_requirements: *id001
|
25
34
|
- !ruby/object:Gem::Dependency
|
26
35
|
name: mongo
|
27
|
-
|
28
|
-
|
29
|
-
version_requirements: !ruby/object:Gem::Requirement
|
36
|
+
prerelease: false
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
30
38
|
requirements:
|
31
39
|
- - ">="
|
32
40
|
- !ruby/object:Gem::Version
|
41
|
+
segments:
|
42
|
+
- 0
|
43
|
+
- 18
|
44
|
+
- 3
|
33
45
|
version: 0.18.3
|
34
|
-
|
46
|
+
type: :runtime
|
47
|
+
version_requirements: *id002
|
35
48
|
- !ruby/object:Gem::Dependency
|
36
49
|
name: durran-validatable
|
37
|
-
|
38
|
-
|
39
|
-
version_requirements: !ruby/object:Gem::Requirement
|
50
|
+
prerelease: false
|
51
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
40
52
|
requirements:
|
41
53
|
- - ">="
|
42
54
|
- !ruby/object:Gem::Version
|
55
|
+
segments:
|
56
|
+
- 2
|
57
|
+
- 0
|
58
|
+
- 1
|
43
59
|
version: 2.0.1
|
44
|
-
|
60
|
+
type: :runtime
|
61
|
+
version_requirements: *id003
|
45
62
|
- !ruby/object:Gem::Dependency
|
46
63
|
name: will_paginate
|
47
|
-
|
48
|
-
|
49
|
-
version_requirements: !ruby/object:Gem::Requirement
|
64
|
+
prerelease: false
|
65
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
50
66
|
requirements:
|
51
67
|
- - <
|
52
68
|
- !ruby/object:Gem::Version
|
53
|
-
|
54
|
-
|
69
|
+
segments:
|
70
|
+
- 2
|
71
|
+
- 9
|
72
|
+
version: "2.9"
|
73
|
+
type: :runtime
|
74
|
+
version_requirements: *id004
|
55
75
|
- !ruby/object:Gem::Dependency
|
56
76
|
name: rspec
|
57
|
-
|
58
|
-
|
59
|
-
version_requirements: !ruby/object:Gem::Requirement
|
77
|
+
prerelease: false
|
78
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
60
79
|
requirements:
|
61
80
|
- - ">="
|
62
81
|
- !ruby/object:Gem::Version
|
82
|
+
segments:
|
83
|
+
- 1
|
84
|
+
- 2
|
85
|
+
- 9
|
63
86
|
version: 1.2.9
|
64
|
-
|
87
|
+
type: :development
|
88
|
+
version_requirements: *id005
|
65
89
|
- !ruby/object:Gem::Dependency
|
66
90
|
name: mocha
|
67
|
-
|
68
|
-
|
69
|
-
version_requirements: !ruby/object:Gem::Requirement
|
91
|
+
prerelease: false
|
92
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
70
93
|
requirements:
|
71
94
|
- - ">="
|
72
95
|
- !ruby/object:Gem::Version
|
96
|
+
segments:
|
97
|
+
- 0
|
98
|
+
- 9
|
99
|
+
- 8
|
73
100
|
version: 0.9.8
|
74
|
-
|
101
|
+
type: :development
|
102
|
+
version_requirements: *id006
|
75
103
|
description:
|
76
104
|
email: durran@gmail.com
|
77
105
|
executables: []
|
@@ -83,7 +111,6 @@ extra_rdoc_files:
|
|
83
111
|
files:
|
84
112
|
- .gitignore
|
85
113
|
- .watchr
|
86
|
-
- HISTORY
|
87
114
|
- MIT_LICENSE
|
88
115
|
- README.rdoc
|
89
116
|
- Rakefile
|
@@ -101,7 +128,6 @@ files:
|
|
101
128
|
- lib/mongoid/associations/options.rb
|
102
129
|
- lib/mongoid/associations/proxy.rb
|
103
130
|
- lib/mongoid/attributes.rb
|
104
|
-
- lib/mongoid/caching.rb
|
105
131
|
- lib/mongoid/callbacks.rb
|
106
132
|
- lib/mongoid/collection.rb
|
107
133
|
- lib/mongoid/collections/cyclic_iterator.rb
|
@@ -131,7 +157,6 @@ files:
|
|
131
157
|
- lib/mongoid/criterion/optional.rb
|
132
158
|
- lib/mongoid/cursor.rb
|
133
159
|
- lib/mongoid/document.rb
|
134
|
-
- lib/mongoid/enslavement.rb
|
135
160
|
- lib/mongoid/errors.rb
|
136
161
|
- lib/mongoid/extensions.rb
|
137
162
|
- lib/mongoid/extensions/array/accessors.rb
|
@@ -139,6 +164,8 @@ files:
|
|
139
164
|
- lib/mongoid/extensions/array/assimilation.rb
|
140
165
|
- lib/mongoid/extensions/array/conversions.rb
|
141
166
|
- lib/mongoid/extensions/array/parentization.rb
|
167
|
+
- lib/mongoid/extensions/big_decimal/conversions.rb
|
168
|
+
- lib/mongoid/extensions/binary/conversions.rb
|
142
169
|
- lib/mongoid/extensions/boolean/conversions.rb
|
143
170
|
- lib/mongoid/extensions/date/conversions.rb
|
144
171
|
- lib/mongoid/extensions/datetime/conversions.rb
|
@@ -156,6 +183,7 @@ files:
|
|
156
183
|
- lib/mongoid/extensions/string/inflections.rb
|
157
184
|
- lib/mongoid/extensions/symbol/inflections.rb
|
158
185
|
- lib/mongoid/extensions/time/conversions.rb
|
186
|
+
- lib/mongoid/extras.rb
|
159
187
|
- lib/mongoid/factory.rb
|
160
188
|
- lib/mongoid/field.rb
|
161
189
|
- lib/mongoid/fields.rb
|
@@ -224,7 +252,6 @@ files:
|
|
224
252
|
- spec/unit/mongoid/associations/options_spec.rb
|
225
253
|
- spec/unit/mongoid/associations_spec.rb
|
226
254
|
- spec/unit/mongoid/attributes_spec.rb
|
227
|
-
- spec/unit/mongoid/caching_spec.rb
|
228
255
|
- spec/unit/mongoid/callbacks_spec.rb
|
229
256
|
- spec/unit/mongoid/collection_spec.rb
|
230
257
|
- spec/unit/mongoid/collections/cyclic_iterator_spec.rb
|
@@ -249,12 +276,13 @@ files:
|
|
249
276
|
- spec/unit/mongoid/criterion/optional_spec.rb
|
250
277
|
- spec/unit/mongoid/cursor_spec.rb
|
251
278
|
- spec/unit/mongoid/document_spec.rb
|
252
|
-
- spec/unit/mongoid/enslavement_spec.rb
|
253
279
|
- spec/unit/mongoid/errors_spec.rb
|
254
280
|
- spec/unit/mongoid/extensions/array/accessors_spec.rb
|
255
281
|
- spec/unit/mongoid/extensions/array/assimilation_spec.rb
|
256
282
|
- spec/unit/mongoid/extensions/array/conversions_spec.rb
|
257
283
|
- spec/unit/mongoid/extensions/array/parentization_spec.rb
|
284
|
+
- spec/unit/mongoid/extensions/big_decimal/conversions_spec.rb
|
285
|
+
- spec/unit/mongoid/extensions/binary/conversions_spec.rb
|
258
286
|
- spec/unit/mongoid/extensions/boolean/conversions_spec.rb
|
259
287
|
- spec/unit/mongoid/extensions/date/conversions_spec.rb
|
260
288
|
- spec/unit/mongoid/extensions/datetime/conversions_spec.rb
|
@@ -272,6 +300,7 @@ files:
|
|
272
300
|
- spec/unit/mongoid/extensions/string/inflections_spec.rb
|
273
301
|
- spec/unit/mongoid/extensions/symbol/inflections_spec.rb
|
274
302
|
- spec/unit/mongoid/extensions/time/conversions_spec.rb
|
303
|
+
- spec/unit/mongoid/extras_spec.rb
|
275
304
|
- spec/unit/mongoid/factory_spec.rb
|
276
305
|
- spec/unit/mongoid/field_spec.rb
|
277
306
|
- spec/unit/mongoid/fields_spec.rb
|
@@ -310,18 +339,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
310
339
|
requirements:
|
311
340
|
- - ">="
|
312
341
|
- !ruby/object:Gem::Version
|
342
|
+
segments:
|
343
|
+
- 0
|
313
344
|
version: "0"
|
314
|
-
version:
|
315
345
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
316
346
|
requirements:
|
317
347
|
- - ">="
|
318
348
|
- !ruby/object:Gem::Version
|
349
|
+
segments:
|
350
|
+
- 0
|
319
351
|
version: "0"
|
320
|
-
version:
|
321
352
|
requirements: []
|
322
353
|
|
323
354
|
rubyforge_project:
|
324
|
-
rubygems_version: 1.3.
|
355
|
+
rubygems_version: 1.3.6
|
325
356
|
signing_key:
|
326
357
|
specification_version: 3
|
327
358
|
summary: ODM framework for MongoDB
|
@@ -366,7 +397,6 @@ test_files:
|
|
366
397
|
- spec/unit/mongoid/associations/options_spec.rb
|
367
398
|
- spec/unit/mongoid/associations_spec.rb
|
368
399
|
- spec/unit/mongoid/attributes_spec.rb
|
369
|
-
- spec/unit/mongoid/caching_spec.rb
|
370
400
|
- spec/unit/mongoid/callbacks_spec.rb
|
371
401
|
- spec/unit/mongoid/collection_spec.rb
|
372
402
|
- spec/unit/mongoid/collections/cyclic_iterator_spec.rb
|
@@ -391,12 +421,13 @@ test_files:
|
|
391
421
|
- spec/unit/mongoid/criterion/optional_spec.rb
|
392
422
|
- spec/unit/mongoid/cursor_spec.rb
|
393
423
|
- spec/unit/mongoid/document_spec.rb
|
394
|
-
- spec/unit/mongoid/enslavement_spec.rb
|
395
424
|
- spec/unit/mongoid/errors_spec.rb
|
396
425
|
- spec/unit/mongoid/extensions/array/accessors_spec.rb
|
397
426
|
- spec/unit/mongoid/extensions/array/assimilation_spec.rb
|
398
427
|
- spec/unit/mongoid/extensions/array/conversions_spec.rb
|
399
428
|
- spec/unit/mongoid/extensions/array/parentization_spec.rb
|
429
|
+
- spec/unit/mongoid/extensions/big_decimal/conversions_spec.rb
|
430
|
+
- spec/unit/mongoid/extensions/binary/conversions_spec.rb
|
400
431
|
- spec/unit/mongoid/extensions/boolean/conversions_spec.rb
|
401
432
|
- spec/unit/mongoid/extensions/date/conversions_spec.rb
|
402
433
|
- spec/unit/mongoid/extensions/datetime/conversions_spec.rb
|
@@ -414,6 +445,7 @@ test_files:
|
|
414
445
|
- spec/unit/mongoid/extensions/string/inflections_spec.rb
|
415
446
|
- spec/unit/mongoid/extensions/symbol/inflections_spec.rb
|
416
447
|
- spec/unit/mongoid/extensions/time/conversions_spec.rb
|
448
|
+
- spec/unit/mongoid/extras_spec.rb
|
417
449
|
- spec/unit/mongoid/factory_spec.rb
|
418
450
|
- spec/unit/mongoid/field_spec.rb
|
419
451
|
- spec/unit/mongoid/fields_spec.rb
|
data/HISTORY
DELETED
@@ -1,342 +0,0 @@
|
|
1
|
-
=== 1.2.0
|
2
|
-
- Fixed composite key generation not to replace all
|
3
|
-
special chars with dashes.
|
4
|
-
|
5
|
-
- Memory optimizations, now wrapping the mongo cursor.
|
6
|
-
|
7
|
-
- Fixed memoization on has_many_related assocations.
|
8
|
-
|
9
|
-
- Fixed pagination on embedded associations
|
10
|
-
|
11
|
-
- Fixed after_update callback not getting fired.
|
12
|
-
|
13
|
-
- When a connection failure occurs, Mongoid tried to
|
14
|
-
retry the operation up to a configurable time.
|
15
|
-
|
16
|
-
- Mongoid now supports a configuration with a master
|
17
|
-
and multiple read slaves. It will direct all writes
|
18
|
-
to the master and all reads to the slaves. In the case
|
19
|
-
of a write, subsequent reads will be directed to the
|
20
|
-
master up to configurable number to try and counter
|
21
|
-
the 2 second slave sync delay.
|
22
|
-
|
23
|
-
- Fixed issue with criteria exclusion queries with ids.
|
24
|
-
|
25
|
-
- Mongoid only executes a count when explicitly paginating.
|
26
|
-
|
27
|
-
- Fixed Criteria offset to be a getter or setter
|
28
|
-
|
29
|
-
- Added indexes to foreign keys on belongs_to_related
|
30
|
-
associations.
|
31
|
-
|
32
|
-
- General code refactorings/cleanup
|
33
|
-
|
34
|
-
=== 1.1.4
|
35
|
-
- Refactorings in preparation for next feature push.
|
36
|
-
|
37
|
-
- Associations may now have anonymous extensions.
|
38
|
-
|
39
|
-
- Ruby 1.9 compatibility updates. (brainopia)
|
40
|
-
|
41
|
-
- Document.to_json accepts options. (jsmestad)
|
42
|
-
|
43
|
-
=== 1.1.3
|
44
|
-
- Nil can be passed into methods that set attributes.
|
45
|
-
|
46
|
-
- Mongoid.config can now take a block.
|
47
|
-
|
48
|
-
- Allow named_scopes and criteria class methods on
|
49
|
-
has_many_related if related is a Mongoid document.
|
50
|
-
|
51
|
-
- Document.find can now take an array of ids.
|
52
|
-
|
53
|
-
=== 1.1.2
|
54
|
-
- Fixing issues with updates to parents.
|
55
|
-
|
56
|
-
=== 1.1.1
|
57
|
-
- Document.create raises validations error, not no
|
58
|
-
method error on self.errors (Rick Frankel)
|
59
|
-
|
60
|
-
- Support default values that respond_to?(:call)
|
61
|
-
(procs/lambda) (ahoward)
|
62
|
-
|
63
|
-
- Added Mongoid.persist_in_safe_mode global config
|
64
|
-
option.
|
65
|
-
|
66
|
-
- Minor optimization: don't evaluate default procs
|
67
|
-
if it's not needed (brainopia)
|
68
|
-
|
69
|
-
=== 1.1.0
|
70
|
-
- Nil attributes no longer persist nil values to the
|
71
|
-
database - the field will just not exist.
|
72
|
-
|
73
|
-
- create! and save! will now properly raise an error
|
74
|
-
when a database operation fails. This is handled
|
75
|
-
by using :safe => true as an option to
|
76
|
-
collection.save.
|
77
|
-
|
78
|
-
- Setting blank numbers casts to nil.
|
79
|
-
|
80
|
-
- Criteria and named scopes can now be used on has
|
81
|
-
many relationships. They can be chained with each
|
82
|
-
other off the association chain.
|
83
|
-
|
84
|
-
- Mongoid can now determine if a document matches a
|
85
|
-
mongodb selector without hitting the database via
|
86
|
-
Document#matches?(selector).
|
87
|
-
|
88
|
-
- Overall performance improvements in all areas.
|
89
|
-
|
90
|
-
- Ruby 1.9 compatibility fixes.
|
91
|
-
|
92
|
-
- Has many related now supports finding by id or
|
93
|
-
by an optional :all, :first, :last with a
|
94
|
-
conditions hash.
|
95
|
-
|
96
|
-
=== 1.0.6
|
97
|
-
|
98
|
-
- Preventing the setting of empty values in attributes.
|
99
|
-
|
100
|
-
- Better inspect formatting
|
101
|
-
|
102
|
-
=== 1.0.5
|
103
|
-
|
104
|
-
- Has one and has many associations now set the parent
|
105
|
-
object first before writing the attributes on
|
106
|
-
#build and #create.
|
107
|
-
|
108
|
-
=== 1.0.4
|
109
|
-
- Modified criteria to use the querying class
|
110
|
-
when instantiating documents if there are no
|
111
|
-
subclasses.
|
112
|
-
|
113
|
-
- Floats that are empty strings or nil get
|
114
|
-
defaulted to 0.0
|
115
|
-
|
116
|
-
=== 1.0.3
|
117
|
-
- Small performance improvements on finders
|
118
|
-
|
119
|
-
- Float.set allows setting of non-numeric string
|
120
|
-
in order for validates_numericality_of to fail
|
121
|
-
properly.
|
122
|
-
|
123
|
-
=== 1.0.2
|
124
|
-
- Named scopes get added functionality:
|
125
|
-
|
126
|
-
- named scopes can now be criteria objects.
|
127
|
-
|
128
|
-
- named scoped can now be procs with criteria.
|
129
|
-
|
130
|
-
- named scopes and class methods that return
|
131
|
-
criteria can be chained with each other.
|
132
|
-
|
133
|
-
- When calling save on an embedded document whose
|
134
|
-
validation passes but the parent's validation
|
135
|
-
fails, it will properly return false.
|
136
|
-
|
137
|
-
=== 1.0.1
|
138
|
-
- Documents now have named_scopes similar to
|
139
|
-
ActiveRecord named scopes. Please see rdoc or
|
140
|
-
specs for examples.
|
141
|
-
|
142
|
-
- Document#to_json properly works in all cases.
|
143
|
-
|
144
|
-
- ActiveSupport calls for inflections have been
|
145
|
-
moved into the String::Inflections module.
|
146
|
-
|
147
|
-
- Updated dependency on Validatable to 2.0.1
|
148
|
-
|
149
|
-
=== 1.0.0
|
150
|
-
- Validations cleanup: Only before_validation and
|
151
|
-
after_validation callbacks are supported now.
|
152
|
-
|
153
|
-
- Dynamic fields have reader and writer methods
|
154
|
-
again, but only for instances where the dynamic
|
155
|
-
attribute exists.
|
156
|
-
|
157
|
-
- Lots of refactoring, mostly coverting common
|
158
|
-
fucntionality into modules for the upcoming rails
|
159
|
-
2 and 3 gem split.
|
160
|
-
|
161
|
-
=== 0.12.0
|
162
|
-
- Has one now works as expected:
|
163
|
-
|
164
|
-
- Has one associations will return nil, instead
|
165
|
-
of the proxy if the association has not been
|
166
|
-
set.
|
167
|
-
|
168
|
-
- Building/creating a has one is no longer handled
|
169
|
-
by calling the Document#association#build() or create(),
|
170
|
-
this is now handled by Document#build_name and
|
171
|
-
Document#create_name where "name" is the name
|
172
|
-
of the has one association.
|
173
|
-
|
174
|
-
- Passing a _type attribute to the #build_name
|
175
|
-
and #create_name methods will build/create
|
176
|
-
objects of that type, useful for creating
|
177
|
-
specific subclasses.
|
178
|
-
|
179
|
-
- The existing #build and #create methods will be
|
180
|
-
removed in the next release.
|
181
|
-
|
182
|
-
- Removed all dynamic finders. If you need to have
|
183
|
-
functionality similar to "find_or_(create|initialize)_by"
|
184
|
-
you can use the 2 new finders:
|
185
|
-
|
186
|
-
- Document.find_or_create_by(attributes): Will
|
187
|
-
look for a document in the database with the
|
188
|
-
supplied attributes, if found it will return the
|
189
|
-
document otherwise will create a new one with
|
190
|
-
the supplied attributes.
|
191
|
-
|
192
|
-
- Document.find_or_initialize_by(attributes): Will
|
193
|
-
look for a document in the database with the
|
194
|
-
supplied attributes, if found it will return the
|
195
|
-
document otherwise will instantiate a new one with
|
196
|
-
the supplied attributes.
|
197
|
-
|
198
|
-
- Fixed issue with empty hashes and arrays not getting
|
199
|
-
set on document instantiation.
|
200
|
-
|
201
|
-
=== 0.11.9
|
202
|
-
- Fixed issue with non-us time zones and formats
|
203
|
-
parsing incorrectly.
|
204
|
-
|
205
|
-
- Fixed error when specifying field restrictions
|
206
|
-
in criteria and not providing the _type. It
|
207
|
-
will now automaticall get added if it is not
|
208
|
-
present.
|
209
|
-
|
210
|
-
- Slight cleanup of delegated methods in Document.
|
211
|
-
|
212
|
-
- Dynamic attributes no longer create setters and
|
213
|
-
getters on the class. They can be accessed from
|
214
|
-
the attributes hash directly. If they are used
|
215
|
-
frequently it is preferrable to just add a field
|
216
|
-
to the class manually.
|
217
|
-
|
218
|
-
- Criteria#min no longer always returns 0.0.
|
219
|
-
|
220
|
-
=== 0.11.8
|
221
|
-
- Added #min and #max to criteria which takes a
|
222
|
-
single field argument.
|
223
|
-
|
224
|
-
=== 0.11.7
|
225
|
-
- Added #sum to criteria which takes a single field
|
226
|
-
to aggregate on. Example: Person.sum(:age) would
|
227
|
-
return a float that was the sum of all people's
|
228
|
-
ages in the db.
|
229
|
-
|
230
|
-
- Fixed issue with queries from parent classes always
|
231
|
-
casting the returned documents to the parent.
|
232
|
-
|
233
|
-
- Fixed singleton require issue.
|
234
|
-
|
235
|
-
- Group queries now run as db commands
|
236
|
-
|
237
|
-
=== 0.11.6
|
238
|
-
- Allow namespaced documents to default with:
|
239
|
-
"namespace_modelname"
|
240
|
-
|
241
|
-
- Fixed indexing of _type field to only happen on root
|
242
|
-
classes.
|
243
|
-
|
244
|
-
- Fixed creation of empty collections for embedded documents.
|
245
|
-
|
246
|
-
- Document.store_in now properly resets the collection
|
247
|
-
if the collection had already been accessed.
|
248
|
-
|
249
|
-
- Document.find(nil) now raises
|
250
|
-
Mongoid::Errors::InvalidOptions
|
251
|
-
|
252
|
-
=== 0.11.5
|
253
|
-
- Removed dependency on mongo_ext, since latest version
|
254
|
-
was breaking on various operating systems.
|
255
|
-
=== 0.11.4
|
256
|
-
- Fixed issue with dynamic fields: checking whether
|
257
|
-
the document responded to the attribute's method
|
258
|
-
should have checked the setter and not the getter
|
259
|
-
|
260
|
-
- Fixed has_one associations not being able to be
|
261
|
-
set to nil.
|
262
|
-
|
263
|
-
=== 0.11.3
|
264
|
-
- Fixed issue with Document#save! not calling before
|
265
|
-
and after create callbacks if document is new
|
266
|
-
|
267
|
-
=== 0.11.2
|
268
|
-
- Fixing bug where has many and has one relational
|
269
|
-
associations create method did not return the
|
270
|
-
associated document
|
271
|
-
|
272
|
-
=== 0.11.1
|
273
|
-
- Querying for classes that have subclasses will also
|
274
|
-
return the subclasses as well, similar to
|
275
|
-
ActiveRecord.
|
276
|
-
|
277
|
-
- Adding configuration option allow_dynamic_fields. This
|
278
|
-
defaults to true and if set to false will raise an
|
279
|
-
error when trying to set an attribute on an object
|
280
|
-
that does not have a corresponding field defined.
|
281
|
-
|
282
|
-
=== 0.11.0
|
283
|
-
- Set the collection name to store a document in via:
|
284
|
-
Document.store_in :collection_name
|
285
|
-
|
286
|
-
- Initial inheritance support:
|
287
|
-
|
288
|
-
- Documents and their associations can now have an
|
289
|
-
infinite number of subclasses.
|
290
|
-
|
291
|
-
- Has many and has one associations can build or
|
292
|
-
create specific subclasses by providing an optional
|
293
|
-
class as the last parameter to the #create and
|
294
|
-
#build methods on the respective associations.
|
295
|
-
|
296
|
-
- Querying for specific subclasses will only return
|
297
|
-
those documents which were saved as that subclass,
|
298
|
-
even though the hierarchy is stored in the same
|
299
|
-
collection.
|
300
|
-
|
301
|
-
- Deletion of subclass documents will only delete
|
302
|
-
documents of that type, even though they all exist
|
303
|
-
in the same collection. #delete_all and #destroy_all
|
304
|
-
also support this behavoir.
|
305
|
-
|
306
|
-
- Updated mongo and mongo_ext dependencies to 0.18.2
|
307
|
-
|
308
|
-
- Fixed save on new documents to return true instead
|
309
|
-
of the document itself.
|
310
|
-
|
311
|
-
=== 0.10.6
|
312
|
-
- Fixed bug when trying to set empty strings on number
|
313
|
-
fields. (TypeError: can't convert Fixnum into String)
|
314
|
-
|
315
|
-
- Document.delete_all now drops the collection if
|
316
|
-
conditions are empty or nil.
|
317
|
-
|
318
|
-
=== 0.10.5
|
319
|
-
|
320
|
-
- Documents that are embedded not properly respond to
|
321
|
-
Document#destroy and Document#delete.
|
322
|
-
|
323
|
-
- Documents can now be saved sans validation with
|
324
|
-
Document#save(false)
|
325
|
-
|
326
|
-
=== 0.10.4
|
327
|
-
|
328
|
-
- Documents no longer inherit from Mongoid::Document.
|
329
|
-
Please include Mongoid::Document in all your models now.
|
330
|
-
|
331
|
-
- Config module added, you can now set one option:
|
332
|
-
Mongoid.raise_not_found_error = (true|false)
|
333
|
-
|
334
|
-
- When set to false, a Mongoid::Errors::DocumentNotFound
|
335
|
-
will NOT get thrown when performing a Document.find(id)
|
336
|
-
that does not return a document from the database.
|
337
|
-
This defaults to true.
|
338
|
-
|
339
|
-
- Mongoid::Document.collection_name macro added. You can
|
340
|
-
now set the name of the database collection to persist to.
|
341
|
-
|
342
|
-
- Mongoid::Criteria#select becomes Mongoid::Criteria#only
|