mongoid-multi-db 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +615 -0
- data/LICENSE +20 -0
- data/README.md +62 -0
- data/Rakefile +49 -0
- data/lib/config/locales/bg.yml +54 -0
- data/lib/config/locales/de.yml +54 -0
- data/lib/config/locales/en-GB.yml +55 -0
- data/lib/config/locales/en.yml +55 -0
- data/lib/config/locales/es.yml +52 -0
- data/lib/config/locales/fr.yml +55 -0
- data/lib/config/locales/hi.yml +46 -0
- data/lib/config/locales/hu.yml +57 -0
- data/lib/config/locales/id.yml +55 -0
- data/lib/config/locales/it.yml +52 -0
- data/lib/config/locales/ja.yml +50 -0
- data/lib/config/locales/kr.yml +47 -0
- data/lib/config/locales/nl.yml +52 -0
- data/lib/config/locales/pl.yml +52 -0
- data/lib/config/locales/pt-BR.yml +53 -0
- data/lib/config/locales/pt.yml +53 -0
- data/lib/config/locales/ro.yml +59 -0
- data/lib/config/locales/ru.yml +54 -0
- data/lib/config/locales/sv.yml +53 -0
- data/lib/config/locales/vi.yml +55 -0
- data/lib/config/locales/zh-CN.yml +46 -0
- data/lib/mongoid.rb +148 -0
- data/lib/mongoid/atomic.rb +230 -0
- data/lib/mongoid/atomic/modifiers.rb +243 -0
- data/lib/mongoid/atomic/paths.rb +3 -0
- data/lib/mongoid/atomic/paths/embedded.rb +43 -0
- data/lib/mongoid/atomic/paths/embedded/many.rb +44 -0
- data/lib/mongoid/atomic/paths/embedded/one.rb +43 -0
- data/lib/mongoid/atomic/paths/root.rb +40 -0
- data/lib/mongoid/attributes.rb +234 -0
- data/lib/mongoid/attributes/processing.rb +146 -0
- data/lib/mongoid/callbacks.rb +135 -0
- data/lib/mongoid/collection.rb +153 -0
- data/lib/mongoid/collection_proxy.rb +59 -0
- data/lib/mongoid/collections.rb +120 -0
- data/lib/mongoid/collections/master.rb +45 -0
- data/lib/mongoid/collections/operations.rb +44 -0
- data/lib/mongoid/collections/retry.rb +46 -0
- data/lib/mongoid/components.rb +96 -0
- data/lib/mongoid/config.rb +347 -0
- data/lib/mongoid/config/database.rb +186 -0
- data/lib/mongoid/config/replset_database.rb +82 -0
- data/lib/mongoid/connection_proxy.rb +30 -0
- data/lib/mongoid/contexts.rb +25 -0
- data/lib/mongoid/contexts/enumerable.rb +288 -0
- data/lib/mongoid/contexts/enumerable/sort.rb +43 -0
- data/lib/mongoid/contexts/mongo.rb +409 -0
- data/lib/mongoid/copyable.rb +48 -0
- data/lib/mongoid/criteria.rb +418 -0
- data/lib/mongoid/criterion/builder.rb +34 -0
- data/lib/mongoid/criterion/complex.rb +84 -0
- data/lib/mongoid/criterion/creational.rb +34 -0
- data/lib/mongoid/criterion/exclusion.rb +108 -0
- data/lib/mongoid/criterion/inclusion.rb +305 -0
- data/lib/mongoid/criterion/inspection.rb +22 -0
- data/lib/mongoid/criterion/optional.rb +232 -0
- data/lib/mongoid/criterion/selector.rb +153 -0
- data/lib/mongoid/cursor.rb +86 -0
- data/lib/mongoid/database_proxy.rb +97 -0
- data/lib/mongoid/default_scope.rb +36 -0
- data/lib/mongoid/dirty.rb +110 -0
- data/lib/mongoid/document.rb +280 -0
- data/lib/mongoid/errors.rb +17 -0
- data/lib/mongoid/errors/callback.rb +26 -0
- data/lib/mongoid/errors/document_not_found.rb +28 -0
- data/lib/mongoid/errors/eager_load.rb +25 -0
- data/lib/mongoid/errors/invalid_collection.rb +18 -0
- data/lib/mongoid/errors/invalid_database.rb +19 -0
- data/lib/mongoid/errors/invalid_field.rb +18 -0
- data/lib/mongoid/errors/invalid_find.rb +19 -0
- data/lib/mongoid/errors/invalid_options.rb +28 -0
- data/lib/mongoid/errors/invalid_time.rb +25 -0
- data/lib/mongoid/errors/invalid_type.rb +25 -0
- data/lib/mongoid/errors/mixed_relations.rb +37 -0
- data/lib/mongoid/errors/mongoid_error.rb +26 -0
- data/lib/mongoid/errors/too_many_nested_attribute_records.rb +20 -0
- data/lib/mongoid/errors/unsaved_document.rb +23 -0
- data/lib/mongoid/errors/unsupported_version.rb +20 -0
- data/lib/mongoid/errors/validations.rb +23 -0
- data/lib/mongoid/extensions.rb +82 -0
- data/lib/mongoid/extensions/array/deletion.rb +29 -0
- data/lib/mongoid/extensions/false_class/equality.rb +26 -0
- data/lib/mongoid/extensions/hash/criteria_helpers.rb +45 -0
- data/lib/mongoid/extensions/hash/scoping.rb +25 -0
- data/lib/mongoid/extensions/integer/checks.rb +23 -0
- data/lib/mongoid/extensions/nil/collectionization.rb +23 -0
- data/lib/mongoid/extensions/object/checks.rb +29 -0
- data/lib/mongoid/extensions/object/reflections.rb +48 -0
- data/lib/mongoid/extensions/object/substitutable.rb +15 -0
- data/lib/mongoid/extensions/object/yoda.rb +44 -0
- data/lib/mongoid/extensions/object_id/conversions.rb +60 -0
- data/lib/mongoid/extensions/proc/scoping.rb +25 -0
- data/lib/mongoid/extensions/string/checks.rb +36 -0
- data/lib/mongoid/extensions/string/conversions.rb +22 -0
- data/lib/mongoid/extensions/string/inflections.rb +118 -0
- data/lib/mongoid/extensions/symbol/checks.rb +23 -0
- data/lib/mongoid/extensions/symbol/inflections.rb +66 -0
- data/lib/mongoid/extensions/true_class/equality.rb +26 -0
- data/lib/mongoid/extras.rb +31 -0
- data/lib/mongoid/factory.rb +46 -0
- data/lib/mongoid/fields.rb +332 -0
- data/lib/mongoid/fields/mappings.rb +41 -0
- data/lib/mongoid/fields/serializable.rb +201 -0
- data/lib/mongoid/fields/serializable/array.rb +49 -0
- data/lib/mongoid/fields/serializable/big_decimal.rb +42 -0
- data/lib/mongoid/fields/serializable/bignum.rb +10 -0
- data/lib/mongoid/fields/serializable/binary.rb +11 -0
- data/lib/mongoid/fields/serializable/boolean.rb +43 -0
- data/lib/mongoid/fields/serializable/date.rb +51 -0
- data/lib/mongoid/fields/serializable/date_time.rb +28 -0
- data/lib/mongoid/fields/serializable/fixnum.rb +10 -0
- data/lib/mongoid/fields/serializable/float.rb +32 -0
- data/lib/mongoid/fields/serializable/foreign_keys/array.rb +42 -0
- data/lib/mongoid/fields/serializable/foreign_keys/object.rb +47 -0
- data/lib/mongoid/fields/serializable/hash.rb +11 -0
- data/lib/mongoid/fields/serializable/integer.rb +44 -0
- data/lib/mongoid/fields/serializable/localized.rb +41 -0
- data/lib/mongoid/fields/serializable/nil_class.rb +38 -0
- data/lib/mongoid/fields/serializable/object.rb +11 -0
- data/lib/mongoid/fields/serializable/object_id.rb +31 -0
- data/lib/mongoid/fields/serializable/range.rb +42 -0
- data/lib/mongoid/fields/serializable/set.rb +42 -0
- data/lib/mongoid/fields/serializable/string.rb +27 -0
- data/lib/mongoid/fields/serializable/symbol.rb +27 -0
- data/lib/mongoid/fields/serializable/time.rb +23 -0
- data/lib/mongoid/fields/serializable/time_with_zone.rb +23 -0
- data/lib/mongoid/fields/serializable/timekeeping.rb +106 -0
- data/lib/mongoid/finders.rb +152 -0
- data/lib/mongoid/hierarchy.rb +120 -0
- data/lib/mongoid/identity.rb +92 -0
- data/lib/mongoid/identity_map.rb +119 -0
- data/lib/mongoid/indexes.rb +54 -0
- data/lib/mongoid/inspection.rb +54 -0
- data/lib/mongoid/javascript.rb +20 -0
- data/lib/mongoid/javascript/functions.yml +63 -0
- data/lib/mongoid/json.rb +16 -0
- data/lib/mongoid/keys.rb +144 -0
- data/lib/mongoid/logger.rb +39 -0
- data/lib/mongoid/matchers.rb +32 -0
- data/lib/mongoid/matchers/all.rb +21 -0
- data/lib/mongoid/matchers/and.rb +30 -0
- data/lib/mongoid/matchers/default.rb +70 -0
- data/lib/mongoid/matchers/exists.rb +23 -0
- data/lib/mongoid/matchers/gt.rb +21 -0
- data/lib/mongoid/matchers/gte.rb +21 -0
- data/lib/mongoid/matchers/in.rb +21 -0
- data/lib/mongoid/matchers/lt.rb +21 -0
- data/lib/mongoid/matchers/lte.rb +21 -0
- data/lib/mongoid/matchers/ne.rb +21 -0
- data/lib/mongoid/matchers/nin.rb +21 -0
- data/lib/mongoid/matchers/or.rb +33 -0
- data/lib/mongoid/matchers/size.rb +21 -0
- data/lib/mongoid/matchers/strategies.rb +93 -0
- data/lib/mongoid/multi_database.rb +31 -0
- data/lib/mongoid/multi_parameter_attributes.rb +106 -0
- data/lib/mongoid/named_scope.rb +146 -0
- data/lib/mongoid/nested_attributes.rb +54 -0
- data/lib/mongoid/observer.rb +170 -0
- data/lib/mongoid/paranoia.rb +158 -0
- data/lib/mongoid/persistence.rb +264 -0
- data/lib/mongoid/persistence/atomic.rb +223 -0
- data/lib/mongoid/persistence/atomic/add_to_set.rb +35 -0
- data/lib/mongoid/persistence/atomic/bit.rb +37 -0
- data/lib/mongoid/persistence/atomic/inc.rb +31 -0
- data/lib/mongoid/persistence/atomic/operation.rb +85 -0
- data/lib/mongoid/persistence/atomic/pop.rb +34 -0
- data/lib/mongoid/persistence/atomic/pull.rb +34 -0
- data/lib/mongoid/persistence/atomic/pull_all.rb +34 -0
- data/lib/mongoid/persistence/atomic/push.rb +31 -0
- data/lib/mongoid/persistence/atomic/push_all.rb +31 -0
- data/lib/mongoid/persistence/atomic/rename.rb +31 -0
- data/lib/mongoid/persistence/atomic/sets.rb +30 -0
- data/lib/mongoid/persistence/atomic/unset.rb +28 -0
- data/lib/mongoid/persistence/deletion.rb +32 -0
- data/lib/mongoid/persistence/insertion.rb +41 -0
- data/lib/mongoid/persistence/modification.rb +37 -0
- data/lib/mongoid/persistence/operations.rb +211 -0
- data/lib/mongoid/persistence/operations/embedded/insert.rb +42 -0
- data/lib/mongoid/persistence/operations/embedded/remove.rb +40 -0
- data/lib/mongoid/persistence/operations/insert.rb +34 -0
- data/lib/mongoid/persistence/operations/remove.rb +33 -0
- data/lib/mongoid/persistence/operations/update.rb +64 -0
- data/lib/mongoid/railtie.rb +126 -0
- data/lib/mongoid/railties/database.rake +182 -0
- data/lib/mongoid/railties/document.rb +12 -0
- data/lib/mongoid/relations.rb +144 -0
- data/lib/mongoid/relations/accessors.rb +138 -0
- data/lib/mongoid/relations/auto_save.rb +38 -0
- data/lib/mongoid/relations/binding.rb +26 -0
- data/lib/mongoid/relations/bindings.rb +9 -0
- data/lib/mongoid/relations/bindings/embedded/in.rb +69 -0
- data/lib/mongoid/relations/bindings/embedded/many.rb +93 -0
- data/lib/mongoid/relations/bindings/embedded/one.rb +61 -0
- data/lib/mongoid/relations/bindings/referenced/in.rb +76 -0
- data/lib/mongoid/relations/bindings/referenced/many.rb +54 -0
- data/lib/mongoid/relations/bindings/referenced/many_to_many.rb +51 -0
- data/lib/mongoid/relations/bindings/referenced/one.rb +58 -0
- data/lib/mongoid/relations/builder.rb +57 -0
- data/lib/mongoid/relations/builders.rb +83 -0
- data/lib/mongoid/relations/builders/embedded/in.rb +29 -0
- data/lib/mongoid/relations/builders/embedded/many.rb +40 -0
- data/lib/mongoid/relations/builders/embedded/one.rb +30 -0
- data/lib/mongoid/relations/builders/nested_attributes/many.rb +110 -0
- data/lib/mongoid/relations/builders/nested_attributes/one.rb +135 -0
- data/lib/mongoid/relations/builders/referenced/in.rb +26 -0
- data/lib/mongoid/relations/builders/referenced/many.rb +27 -0
- data/lib/mongoid/relations/builders/referenced/many_to_many.rb +38 -0
- data/lib/mongoid/relations/builders/referenced/one.rb +26 -0
- data/lib/mongoid/relations/cascading.rb +56 -0
- data/lib/mongoid/relations/cascading/delete.rb +19 -0
- data/lib/mongoid/relations/cascading/destroy.rb +26 -0
- data/lib/mongoid/relations/cascading/nullify.rb +18 -0
- data/lib/mongoid/relations/cascading/strategy.rb +26 -0
- data/lib/mongoid/relations/constraint.rb +42 -0
- data/lib/mongoid/relations/conversions.rb +35 -0
- data/lib/mongoid/relations/cyclic.rb +103 -0
- data/lib/mongoid/relations/embedded/atomic.rb +89 -0
- data/lib/mongoid/relations/embedded/atomic/operation.rb +63 -0
- data/lib/mongoid/relations/embedded/atomic/pull.rb +65 -0
- data/lib/mongoid/relations/embedded/atomic/push_all.rb +59 -0
- data/lib/mongoid/relations/embedded/atomic/set.rb +61 -0
- data/lib/mongoid/relations/embedded/atomic/unset.rb +41 -0
- data/lib/mongoid/relations/embedded/in.rb +220 -0
- data/lib/mongoid/relations/embedded/many.rb +560 -0
- data/lib/mongoid/relations/embedded/one.rb +206 -0
- data/lib/mongoid/relations/embedded/sort.rb +31 -0
- data/lib/mongoid/relations/macros.rb +310 -0
- data/lib/mongoid/relations/many.rb +135 -0
- data/lib/mongoid/relations/metadata.rb +919 -0
- data/lib/mongoid/relations/nested_builder.rb +75 -0
- data/lib/mongoid/relations/one.rb +36 -0
- data/lib/mongoid/relations/options.rb +47 -0
- data/lib/mongoid/relations/polymorphic.rb +40 -0
- data/lib/mongoid/relations/proxy.rb +145 -0
- data/lib/mongoid/relations/referenced/batch.rb +72 -0
- data/lib/mongoid/relations/referenced/batch/insert.rb +57 -0
- data/lib/mongoid/relations/referenced/in.rb +262 -0
- data/lib/mongoid/relations/referenced/many.rb +623 -0
- data/lib/mongoid/relations/referenced/many_to_many.rb +396 -0
- data/lib/mongoid/relations/referenced/one.rb +272 -0
- data/lib/mongoid/relations/reflections.rb +62 -0
- data/lib/mongoid/relations/synchronization.rb +153 -0
- data/lib/mongoid/relations/targets.rb +2 -0
- data/lib/mongoid/relations/targets/enumerable.rb +372 -0
- data/lib/mongoid/reloading.rb +91 -0
- data/lib/mongoid/safety.rb +105 -0
- data/lib/mongoid/scope.rb +31 -0
- data/lib/mongoid/serialization.rb +134 -0
- data/lib/mongoid/sharding.rb +61 -0
- data/lib/mongoid/state.rb +97 -0
- data/lib/mongoid/threaded.rb +530 -0
- data/lib/mongoid/threaded/lifecycle.rb +192 -0
- data/lib/mongoid/timestamps.rb +15 -0
- data/lib/mongoid/timestamps/created.rb +24 -0
- data/lib/mongoid/timestamps/timeless.rb +50 -0
- data/lib/mongoid/timestamps/updated.rb +26 -0
- data/lib/mongoid/validations.rb +140 -0
- data/lib/mongoid/validations/associated.rb +46 -0
- data/lib/mongoid/validations/uniqueness.rb +145 -0
- data/lib/mongoid/version.rb +4 -0
- data/lib/mongoid/versioning.rb +185 -0
- data/lib/rack/mongoid.rb +2 -0
- data/lib/rack/mongoid/middleware/identity_map.rb +38 -0
- data/lib/rails/generators/mongoid/config/config_generator.rb +25 -0
- data/lib/rails/generators/mongoid/config/templates/mongoid.yml +20 -0
- data/lib/rails/generators/mongoid/model/model_generator.rb +24 -0
- data/lib/rails/generators/mongoid/model/templates/model.rb.tt +19 -0
- data/lib/rails/generators/mongoid/observer/observer_generator.rb +17 -0
- data/lib/rails/generators/mongoid/observer/templates/observer.rb.tt +4 -0
- data/lib/rails/generators/mongoid_generator.rb +70 -0
- data/lib/rails/mongoid.rb +91 -0
- metadata +465 -0
data/CHANGELOG.md
ADDED
@@ -0,0 +1,615 @@
|
|
1
|
+
# Overview
|
2
|
+
|
3
|
+
For instructions on upgrading to newer versions, visit
|
4
|
+
[mongoid.org](http://mongoid.org/docs/upgrading.html).
|
5
|
+
|
6
|
+
## 2.4.0 \[ In Development \] \[ Branch: master \]
|
7
|
+
|
8
|
+
### New Features
|
9
|
+
|
10
|
+
* Ranges can now be passed to #where criteria to create a $gte/$lte query under the
|
11
|
+
covers. `Person.where(dob: start_date...end_date)`
|
12
|
+
|
13
|
+
### Resolved Issues
|
14
|
+
|
15
|
+
* \#1333 Fixed errors with custom types that exist in namespaces. (Peter Gumeson)
|
16
|
+
|
17
|
+
## 2.3.4 \[ In Development \] \[ Branch: 2.3.0-stable \]
|
18
|
+
|
19
|
+
* \#1431 Enumerable context should add to the loaded array post yield, so
|
20
|
+
that methods like #any? that short circuit based on the value of the block
|
21
|
+
dont falsely have extra documents.
|
22
|
+
|
23
|
+
* \#1418 Documents being loaded from the database for revision purposes
|
24
|
+
no longer get placed in the identity map.
|
25
|
+
|
26
|
+
* \#1399 Allow conversion of strings to integers in foreign keys where the
|
27
|
+
id is defined as an int.
|
28
|
+
|
29
|
+
* \#1397 Don't add default sorting criteria on first if they sort criteria
|
30
|
+
already exists.
|
31
|
+
|
32
|
+
* \#1394 Fix exists? to work when count is greater than 1. (Nick Hoffman)
|
33
|
+
|
34
|
+
* \#1392 Return 0 on aggregation functions where field is nonexistant.
|
35
|
+
|
36
|
+
* \#1391 Uniqueness validation now works properly on embedded documents that are
|
37
|
+
using primary key definitions.
|
38
|
+
|
39
|
+
* \#1390 When _type field is lower case class camelize before constantizing.
|
40
|
+
|
41
|
+
* \#1383 Fix cast on read for serializable fields that are subclassed.
|
42
|
+
|
43
|
+
* \#1326 Ensure base document on HABTM gets its keys saved after saving a newly
|
44
|
+
build child document.
|
45
|
+
|
46
|
+
* \#1301 Don't overwrite base metadata on embedded in relations if already set.
|
47
|
+
|
48
|
+
* \#1221 HABTM with inverse nil is allowed again on embedded documents.
|
49
|
+
|
50
|
+
* \#1208 Don't auto-persist child documents via the setter when setting from
|
51
|
+
an embedded_in.
|
52
|
+
|
53
|
+
* \#791 Root document updates its timestamps when only embedded documents have
|
54
|
+
changed.
|
55
|
+
|
56
|
+
## 2.3.3
|
57
|
+
|
58
|
+
### Resolved Issues
|
59
|
+
|
60
|
+
* \#1386 Lowered mongo/bson dependency to 1.3
|
61
|
+
|
62
|
+
* \#1377 Fix aggregation functions to properly handle nil or indefined values.
|
63
|
+
(Maxime Garcia)
|
64
|
+
|
65
|
+
* \#1373 Warn if a scope overrides another scope.
|
66
|
+
|
67
|
+
* \#1372 Never persist when binding inside of a read attribute for validation.
|
68
|
+
|
69
|
+
* \#1364 Fixed reloading of documents with non bson object id ids.
|
70
|
+
|
71
|
+
* \#1360 Fixed performance of Mongoid's observer instantiation by hooking into
|
72
|
+
Active Support's load hooks, a la AR.
|
73
|
+
|
74
|
+
* \#1358 Fixed type error on many to many synchronization when inverse_of is
|
75
|
+
set to nil.
|
76
|
+
|
77
|
+
* \#1356 $in criteria can now be chained to non-complex criteria on the same
|
78
|
+
key without error.
|
79
|
+
|
80
|
+
* \#1350, \#1351 Fixed errors in the string conversions of double quotes and
|
81
|
+
tilde when paramterizing keys.
|
82
|
+
|
83
|
+
* \#1349 Mongoid documents should not blow up when including Enumerable.
|
84
|
+
(Jonas Nicklas)
|
85
|
+
|
86
|
+
## 2.3.2
|
87
|
+
|
88
|
+
### Resolved Issues
|
89
|
+
|
90
|
+
* \#1347 Fix embedded matchers when provided a hash value that does not have a
|
91
|
+
modifier as a key.
|
92
|
+
|
93
|
+
* \#1346 Dup default sorting criteria when calling first/last on a criteria.
|
94
|
+
|
95
|
+
* \#1343 When passing no arguments to `Criteria#all_of` return all documents.
|
96
|
+
(Chris Leishman)
|
97
|
+
|
98
|
+
* \#1339 Ensure destroy callbacks are run on cascadable children when deleting via
|
99
|
+
nested attributes.
|
100
|
+
|
101
|
+
* \#1324 Setting `inverse_of: nil` on a many-to-many referencing the same class
|
102
|
+
returns nil for the inverse foreign key.
|
103
|
+
|
104
|
+
* \#1323 Allow both strings and symbols as ids in the attributes array for
|
105
|
+
nested attributes. (Michael Wood)
|
106
|
+
|
107
|
+
* \#1312 Setting a logger on the config now accepts anything that quacks like a
|
108
|
+
logger.
|
109
|
+
|
110
|
+
* \#1297 Don't hit the database when accessing relations if the base is new.
|
111
|
+
|
112
|
+
* \#1239 Allow appending of referenced relations in create blocks, post default set.
|
113
|
+
|
114
|
+
* \#1236 Ensure all models are loaded in rake tasks, so even in threadsafe mode
|
115
|
+
all indexes can be created.
|
116
|
+
|
117
|
+
* \#736 Calling #reload on embedded documents now works properly.
|
118
|
+
|
119
|
+
## 2.3.1
|
120
|
+
|
121
|
+
### Resolved Issues
|
122
|
+
|
123
|
+
* \#1338 Calling #find on a scope or relation checks that the document in the
|
124
|
+
identity map actually matches other scope parameters.
|
125
|
+
|
126
|
+
* \#1321 HABTM no longer allows duplicate entries or keys, instead of the previous
|
127
|
+
inconsistencies.
|
128
|
+
|
129
|
+
* \#1320 Fixed errors in perf benchmark.
|
130
|
+
|
131
|
+
* \#1316 Added a separate Rake task "db:mongoid:drop" so Mongoid and AR can coexist.
|
132
|
+
(Daniel Vartanov)
|
133
|
+
|
134
|
+
* \#1311 Fix issue with custom field serialization inheriting from hash.
|
135
|
+
|
136
|
+
* \#1310 The referenced many enumerable target no longer duplicates loaded and
|
137
|
+
added documents when the identity map is enabled.
|
138
|
+
|
139
|
+
* \#1295 Fixed having multiple includes only execute the eager loading of the first.
|
140
|
+
|
141
|
+
* \#1287 Fixed max versions limitation with versioning.
|
142
|
+
|
143
|
+
* \#1277 attribute_will_change! properly flags the attribute even if no change occured.
|
144
|
+
|
145
|
+
* \#1063 Paranoid documents properly run destroy callbacks on soft destroy.
|
146
|
+
|
147
|
+
* \#1061 Raise `Mongoid::Errors::InvalidTime` when time serialization fails.
|
148
|
+
|
149
|
+
* \#1002 Check for legal bson ids when attempting conversion.
|
150
|
+
|
151
|
+
* \#920 Allow relations to be named target.
|
152
|
+
|
153
|
+
* \#905 Return normalized class name in metadata if string was defined with a
|
154
|
+
prefixed ::.
|
155
|
+
|
156
|
+
* \#861 accepts_nested_attributes_for is no longer needed to set embedded documents
|
157
|
+
via a hash or array of hashes directly.
|
158
|
+
|
159
|
+
* \#857 Fixed cascading of dependent relations when base document is paranoid.
|
160
|
+
|
161
|
+
* \#768 Fixed class_attribute definitions module wide.
|
162
|
+
|
163
|
+
* \#408 Embedded documents can now be soft deleted via `Mongoid::Paranoia`.
|
164
|
+
|
165
|
+
## 2.3.0
|
166
|
+
|
167
|
+
### New Features
|
168
|
+
|
169
|
+
* Mongoid now supports basic localized fields, storing them under the covers as a
|
170
|
+
hash of locale => value pairs. `field :name, localize: true`
|
171
|
+
|
172
|
+
* \#1275 For applications that default safe mode to true, you can now tell a
|
173
|
+
single operation to persist without safe mode via #unsafely:
|
174
|
+
`person.unsafely.save`, `Person.unsafely.create`. (Matt Sanders)
|
175
|
+
|
176
|
+
* \#1256 Mongoid now can create indexes for models in Rails engines. (Caio Filipini)
|
177
|
+
|
178
|
+
* \#1228 Allow pre formatting of compsoite keys by passing a block to #key.
|
179
|
+
(Ben Hundley)
|
180
|
+
|
181
|
+
* \#1222 Scoped mass assignment is now supported. (Andrew Shaydurov)
|
182
|
+
|
183
|
+
* \#1196 Timestamps can now be turned off on a call-by-call basis via the use
|
184
|
+
of #timeless: `person.timeless.save`, `Person.timeless.create(:title => "Sir")`.
|
185
|
+
|
186
|
+
* \#1103 Allow developers to create their own custom complex criteria. (Ryan Ong)
|
187
|
+
|
188
|
+
* Mongoid now includes all defined fields in `serializable_hash` and `to_json`
|
189
|
+
results even if the fields have no values to make serialized documents easier
|
190
|
+
to use by ActiveResource clients.
|
191
|
+
|
192
|
+
* Support for MongoDB's $and operator is now available in the form of:
|
193
|
+
`Criteria#all_of(*args)` where args is multiple hash expressions.
|
194
|
+
|
195
|
+
* \#1250, \#1058 Embedded documents now can have their callbacks fired on a parent
|
196
|
+
save by setting `:cascade_callbacks => true` on the relation.
|
197
|
+
(pyromanic, Paul Rosania, Jak Charlton)
|
198
|
+
|
199
|
+
### Major Changes
|
200
|
+
|
201
|
+
* Mongoid now depends on Active Model 3.1 and higher.
|
202
|
+
|
203
|
+
* Mongoid now depends on the Mongo Ruby Driver 1.4 and higher.
|
204
|
+
|
205
|
+
* Mongoid requires MongoDB 2.0.0 and higher.
|
206
|
+
|
207
|
+
### Resolved Issues
|
208
|
+
|
209
|
+
* \#1308 Fixed scoping of HABTM finds.
|
210
|
+
|
211
|
+
* \#1300 Namespaced models should handle recursive embedding properly.
|
212
|
+
|
213
|
+
* \#1299 Self referenced documents with versioning no longer fail when inverse_of
|
214
|
+
is not defined on all relations.
|
215
|
+
|
216
|
+
* \#1296 Renamed internal building method to _building.
|
217
|
+
|
218
|
+
* \#1288, \#1289 _id and updated_at should not be part of versioned attributes.
|
219
|
+
|
220
|
+
* \#1273 Mongoid.preload_models now checks if preload configuration option is set,
|
221
|
+
where Mongoid.load_models always loads everything. (Ryan McGeary)
|
222
|
+
|
223
|
+
* \#1244 Has one relations now adhere to default dependant behaviour.
|
224
|
+
|
225
|
+
* \#1225 Fixed delayed persistence of embedded documents via $set.
|
226
|
+
|
227
|
+
* \#1166 Don't load config in Railtie if no env variables defined. (Terence Lee)
|
228
|
+
|
229
|
+
* \#1052 `alias_attribute` now works again as expected.
|
230
|
+
|
231
|
+
* \#939 Apply default attributes when upcasting via #becomes. (Christos Pappas)
|
232
|
+
|
233
|
+
* \#932 Fixed casting of integer fields with leading zeros.
|
234
|
+
|
235
|
+
* \#948 Reset version number on clone if versions existed.
|
236
|
+
|
237
|
+
* \#763 Don't merge $in criteria arrays when chaining named scopes.
|
238
|
+
|
239
|
+
* \#730 Existing models that have relations added post persistence of originals
|
240
|
+
can now have new relations added with no migrations.
|
241
|
+
|
242
|
+
* \#726 Embedded documents with compound keys not validate uniqueness correctly.
|
243
|
+
|
244
|
+
* \#582 Cyclic non embedded relations now validate uniqueness correctly.
|
245
|
+
|
246
|
+
* \#484 Validates uniqueness with multiple scopes of all types now work properly.
|
247
|
+
|
248
|
+
* Deleting versions created with `Mongoid::Versioning` no longer fires off
|
249
|
+
dependent cascading on relations.
|
250
|
+
|
251
|
+
## 2.2.4
|
252
|
+
|
253
|
+
* \#1377 Fix aggregation functions to properly handle nil or indefined values.
|
254
|
+
(Maxime Garcia)
|
255
|
+
|
256
|
+
* \#1373 Warn if a scope overrides another scope.
|
257
|
+
|
258
|
+
* \#1372 Never persist when binding inside of a read attribute for validation.
|
259
|
+
|
260
|
+
* \#1358 Fixed type error on many to many synchronization when inverse_of is
|
261
|
+
set to nil.
|
262
|
+
|
263
|
+
* \#1356 $in criteria can now be chained to non-complex criteria on the same
|
264
|
+
key without error.
|
265
|
+
|
266
|
+
* \#1350, \#1351 Fixed errors in the string conversions of double quotes and
|
267
|
+
tilde when paramterizing keys.
|
268
|
+
|
269
|
+
* \#1349 Mongoid documents should not blow up when including Enumerable.
|
270
|
+
(Jonas Nicklas)
|
271
|
+
|
272
|
+
## 2.2.3
|
273
|
+
|
274
|
+
* \#1295 Fixed having multiple includes only execute the eager loading of the first.
|
275
|
+
|
276
|
+
* \#1225 Fixed delayed persistence of embedded documents via $set.
|
277
|
+
|
278
|
+
* \#1002 Fix BSON object id conversion to check if legal first.
|
279
|
+
|
280
|
+
## 2.2.2
|
281
|
+
|
282
|
+
* This release removes the restriction of a dependency on 1.3.x of the mongo
|
283
|
+
ruby driver. Users may now use 1.3.x through 1.4.x.
|
284
|
+
|
285
|
+
## 2.2.1
|
286
|
+
|
287
|
+
### Resolved Issues
|
288
|
+
|
289
|
+
* \#1210, \#517 Allow embedded document relation queries to use dot notation.
|
290
|
+
(Scott Ellard)
|
291
|
+
|
292
|
+
* \#1198 Enumerable target should use criteria count if loaded has no docs.
|
293
|
+
|
294
|
+
* \#1164 Get rid of remaining no method in_memory errors.
|
295
|
+
|
296
|
+
* \#1070 Allow custom field serializers to have their own constructors.
|
297
|
+
|
298
|
+
* \#1176 Allow access to parent documents from embedded docs in after_destroy
|
299
|
+
callbacks.
|
300
|
+
|
301
|
+
* \#1191 Context group methods (min, max, sum) no longer return NaN but instead
|
302
|
+
return nil if field doesn't exist or have values.
|
303
|
+
|
304
|
+
* \#1193, \#1271 Always return Integers for integer fields with .000 precisions,
|
305
|
+
not floats.
|
306
|
+
|
307
|
+
* \#1199 Fixed performance issues of hash and array field access when reading
|
308
|
+
multiple times.
|
309
|
+
|
310
|
+
* \#1218 Fixed issues with relations referencing models with integer foreign keys.
|
311
|
+
|
312
|
+
* \#1219 Fixed various conflicting modifications issues when pushing and pulling
|
313
|
+
from the same embedded document in a single call.
|
314
|
+
|
315
|
+
* \#1220 Metadata should not get overwritten by nil on binding.
|
316
|
+
|
317
|
+
* \#1231 Renamed Mongoid's atomic set class to Sets to avoid conflicts with Ruby's
|
318
|
+
native Set after document inclusion.
|
319
|
+
|
320
|
+
* \#1232 Fix access to related models during before_destroy callbacks when
|
321
|
+
cascading.
|
322
|
+
|
323
|
+
* \#1234 Fixed HABTM foreign key synchronization issues when destroying
|
324
|
+
documents.
|
325
|
+
|
326
|
+
* \#1243 Polymorphic relations dont convert to object ids when querying if the
|
327
|
+
ids are defined as strings.
|
328
|
+
|
329
|
+
* \#1247 Force Model.first to sort by ascending id to guarantee first document.
|
330
|
+
|
331
|
+
* \#1248 Added #unscoped to embedded many relations.
|
332
|
+
|
333
|
+
* \#1249 Destroy flags in nested attributes now actually destroy the document
|
334
|
+
for has_many instead of just breaking the relation.
|
335
|
+
|
336
|
+
* \#1272 Don't modify configuration options in place when creating replica set
|
337
|
+
connections.
|
338
|
+
|
339
|
+
## 2.2.0
|
340
|
+
|
341
|
+
### New Features
|
342
|
+
|
343
|
+
* Mongoid now contains eager loading in the form of `Criteria#includes(*args)`.
|
344
|
+
This works on has_one, has_many, belongs_to associations and requires the identity map to
|
345
|
+
be enabled in order to function. Set `identity_map_enabled: true` in your
|
346
|
+
`mongoid.yml`. Ex: `Person.where(title: "Sir").includes(:posts, :game)`
|
347
|
+
|
348
|
+
* Relations can now take a module as a value to the `:extend` option. (Roman
|
349
|
+
Shterenzon)
|
350
|
+
|
351
|
+
* Capped collections can be created by passing the options to the `#store_in`
|
352
|
+
macro: `Person.store_in :people, capped: true, max: 1000000`
|
353
|
+
|
354
|
+
* Mongoid::Collection now supports `collection.find_and_modify`
|
355
|
+
|
356
|
+
* `Document#has_attribute?` now aliases to `Document#attribute_present?`
|
357
|
+
|
358
|
+
* \#930 You can now turn off the Mongoid logger via the mongoid.yml by
|
359
|
+
doing `logger: false`
|
360
|
+
|
361
|
+
* \#909 We now raise a `Mongoid::Errors::Callback` exception if persisting with
|
362
|
+
a bang method and a callback returns false, instead of the uninformative
|
363
|
+
validations error from before.
|
364
|
+
|
365
|
+
### Major Changes
|
366
|
+
|
367
|
+
* \#1173 has_many relations no longer delete all documents on a set of the relation
|
368
|
+
(= [ doc_one, doc_two ]) but look to the dependent option to determine what
|
369
|
+
behaviour should occur. :delete and :destroy will behave as before, :nullify and
|
370
|
+
no option specified will both nullify the old documents without deleting.
|
371
|
+
|
372
|
+
* \#1142, \#767 Embedded relations no longer immediately persist atomically
|
373
|
+
when accessed via a parent attributes set. This includes nested attributes setting
|
374
|
+
and `attributes=` or `write_attributes`. The child changes then remain dirty and
|
375
|
+
atomically update when save is called on them or the parent document.
|
376
|
+
|
377
|
+
### Resolved Issues
|
378
|
+
|
379
|
+
* \#1190 Fixed the gemspec errors due to changing README and CHANGELOG to markdown.
|
380
|
+
|
381
|
+
* \#1180, \#1084, \#955 Mongoid now checks the field types rather than if the name
|
382
|
+
contains `/id/` when trying to convert to object ids on criteria.
|
383
|
+
|
384
|
+
* \#1176 Enumerable targets should always return the in memory documents first,
|
385
|
+
when calling `#first`
|
386
|
+
|
387
|
+
* \#1175 Make sure both sides of many to many relations are in sync during a create.
|
388
|
+
|
389
|
+
* \#1172 Referenced enumerable relations now properly handle `#to_json`
|
390
|
+
(Daniel Doubrovkine)
|
391
|
+
|
392
|
+
* \#1040 Increased performance of class load times by removing all delegate calls
|
393
|
+
to self.class.
|
394
|
+
|
395
|
+
## 2.1.9
|
396
|
+
|
397
|
+
### Resolved Issues
|
398
|
+
|
399
|
+
* \#1159 Fixed build blocks not to cancel out each other when nested.
|
400
|
+
|
401
|
+
* \#1154 Don't delete many-to-many documents on empty array set.
|
402
|
+
|
403
|
+
* \#1153 Retain parent document reference in after callbacks.
|
404
|
+
|
405
|
+
* \#1151 Fix associated validation infinite loop on self referencing documents.
|
406
|
+
|
407
|
+
* \#1150 Validates associated on `belongs_to` is `false` by default.
|
408
|
+
|
409
|
+
* \#1149 Fixed metadata setting on `belongs_to` relations.
|
410
|
+
|
411
|
+
* \#1145 Metadata inverse should return `nil` if `inverse_of` was set as `nil`.
|
412
|
+
|
413
|
+
* \#1139 Enumerable targets now quack like arrays.
|
414
|
+
|
415
|
+
* \#1136 Setting `belongs_to` parent to `nil` no longer deletes the parent.
|
416
|
+
|
417
|
+
* \#1120 Don't call `in_memory` on relations if they don't respond to it.
|
418
|
+
|
419
|
+
* \#1075 Set `self` in default procs to the document instance.
|
420
|
+
|
421
|
+
* \#1072 Writing attributes for nested documents can take a hash or array of hashes.
|
422
|
+
|
423
|
+
* \#990 Embedded documents can use a single `embedded_in` with multiple parent definitions.
|
424
|
+
|
425
|
+
## 2.1.8
|
426
|
+
|
427
|
+
### Resolved Issues
|
428
|
+
|
429
|
+
* \#1148 Fixed `respond_to?` on all relations to return properly.
|
430
|
+
|
431
|
+
* \#1146 Added back the Mongoid destructive fields check when defining fields.
|
432
|
+
|
433
|
+
* \#1141 Fixed conversions of `nil` values in criteria.
|
434
|
+
|
435
|
+
* \#1131 Verified Mongoid/Kaminari paginating correctly.
|
436
|
+
|
437
|
+
* \#1105 Fixed atomic update consumer to be scoped to class.
|
438
|
+
|
439
|
+
* \#1075 `self` in default lambdas and procs now references the document instance.
|
440
|
+
|
441
|
+
* \#740 Removed `embedded_object_id` configuration parameter.
|
442
|
+
|
443
|
+
* \#661 Fixed metadata caching on embedded documents.
|
444
|
+
|
445
|
+
* \#595 Fixed relation reload flagging.
|
446
|
+
|
447
|
+
* \#410 Moving documents from one relation to another now works as expected.
|
448
|
+
|
449
|
+
## 2.1.7
|
450
|
+
|
451
|
+
This was a specific release to fix MRI 1.8.7 breakages introduced by 2.1.6.
|
452
|
+
|
453
|
+
## 2.1.6
|
454
|
+
|
455
|
+
### Resolved Issues
|
456
|
+
|
457
|
+
* \#1126 Fix setting of relations with other relation proxies.
|
458
|
+
|
459
|
+
* \#1122 Hash and array fields now properly flag as dirty on access and change.
|
460
|
+
|
461
|
+
* \#656 Fixed reload breaking relations on unsetting of already loaded associations.
|
462
|
+
|
463
|
+
* \#647 Prefer `#unset` to `#remove_attribute` for removing values.
|
464
|
+
|
465
|
+
* \#290 Verify pushes into deeply embedded documents.
|
466
|
+
|
467
|
+
## 2.1.5
|
468
|
+
|
469
|
+
### Resolved Issues
|
470
|
+
|
471
|
+
* \#1116 Embedded children retain reference to parent in destroy callbacks.
|
472
|
+
|
473
|
+
* \#1110, \#1115 Don't memoize metadata related helpers on documents.
|
474
|
+
|
475
|
+
* \#1112 `db:create_indexes` no longer indexes subclasses multiple times.
|
476
|
+
|
477
|
+
* \#1111, \#1098 Don't set `_id` in `$set` operations.
|
478
|
+
|
479
|
+
* \#1007 Update attribute properly tracks array changes.
|
480
|
+
|
481
|
+
## 2.1.4
|
482
|
+
|
483
|
+
This was a specific release to get a Psych generated gemspec so no more parse errors would occur on those rubies that were using the new YAML parser.
|
484
|
+
|
485
|
+
## 2.1.3
|
486
|
+
|
487
|
+
### Resolved Issues
|
488
|
+
|
489
|
+
* \#1109 Fixed validations not loading one to ones into memory.
|
490
|
+
|
491
|
+
* \#1107 Mongoid no longer wants required `mongoid/railtie` in `application.rb`.
|
492
|
+
|
493
|
+
* \#1102 Fixed nested attributes deletion.
|
494
|
+
|
495
|
+
* \#1097 Reload now runs `after_initialize` callbacks.
|
496
|
+
|
497
|
+
* \#1079 Embeds many no longer duplicates documents.
|
498
|
+
|
499
|
+
* \#1078 Fixed array criteria matching on embedded documents.
|
500
|
+
|
501
|
+
* \#1028 Implement scoped on one-to-many and many-to-many relations.
|
502
|
+
|
503
|
+
* \#988 Many-to-many clear no longer deletes the child documents.
|
504
|
+
|
505
|
+
* \#977 Autosaving relations works also through nested attributes.
|
506
|
+
|
507
|
+
* \#972 Recursive embedding now handles namespacing on generated names.
|
508
|
+
|
509
|
+
* \#943 Don't override `Document#attributes`.
|
510
|
+
|
511
|
+
* \#893 Verify count is not caching on many to many relations.
|
512
|
+
|
513
|
+
* \#815 Verify `after_initialize` is run in the correct place.
|
514
|
+
|
515
|
+
* \#793 Verify `any_of` scopes chain properly with any other scope.
|
516
|
+
|
517
|
+
* \#776 Fixed mongoid case quality when dealing with subclasses.
|
518
|
+
|
519
|
+
* \#747 Fixed complex criteria using its keys to render its string value.
|
520
|
+
|
521
|
+
* \#721 `#safely` now properly raises validation errors when they occur.
|
522
|
+
|
523
|
+
## 2.1.2
|
524
|
+
|
525
|
+
### Resolved Issues
|
526
|
+
|
527
|
+
* \#1082 Alias `size` and `length` to `count` on criteria. (Adam Greene)
|
528
|
+
|
529
|
+
* \#1044 When multiple relations are defined for the same class, always return the default inverse first if `inverse_of` is not defined.
|
530
|
+
|
531
|
+
* \#710 Nested attributes accept both `id` and `_id` in hashes or arrays.
|
532
|
+
|
533
|
+
* \#1047 Ignore `nil` values passed to `embeds_man` pushes and substitution. (Derick Bailey)
|
534
|
+
|
535
|
+
## 2.1.1
|
536
|
+
|
537
|
+
### Resolved Issues
|
538
|
+
|
539
|
+
* \#1021, \#719 Many to many relations dont trigger extra database queries when pushing new documents.
|
540
|
+
|
541
|
+
* \#607 Calling `create` on large associations does not load the entire relation.
|
542
|
+
|
543
|
+
* \#1064 `Mongoid::Paranoia` should respect `unscoped` and `scoped`.
|
544
|
+
|
545
|
+
* \#1026 `model#update_attribute` now can update booleans to `false`.
|
546
|
+
|
547
|
+
* \#618 Crack XML library breaks Mongoid by adding `#attributes` method to the `String` class. (Stephen McGinty)
|
548
|
+
|
549
|
+
## 2.1.0
|
550
|
+
|
551
|
+
### Major Changes
|
552
|
+
|
553
|
+
* Mongoid now requires MongoDB 1.8.x in order to properly support the `#bit` and `#rename` atomic operations.
|
554
|
+
|
555
|
+
* Traditional slave support has been removed from Mongoid. Replica sets should be used in place of traditional master and slave setups.
|
556
|
+
|
557
|
+
* Custom field serialization has changed. Please see [serializable](https://github.com/mongoid/mongoid/blob/master/lib/mongoid/fields/serializable.rb) for changes.
|
558
|
+
|
559
|
+
* The dirty attribute tracking has been switched to use ActiveModel, this brings many bug fixes and changes:
|
560
|
+
|
561
|
+
* \#756 After callbacks and observers see what was changed instead of changes just made being in previous_changes
|
562
|
+
|
563
|
+
* \#434 Documents now are flagged as dirty when brand new or the state on instantiation differs from the database state. This is consistent with ActiveRecord.
|
564
|
+
|
565
|
+
* \#323 Mongoid now supports [field]_will_change! from ActiveModel::Dirty
|
566
|
+
|
567
|
+
* Mongoid model preloading in development mode now defaults to `false`.
|
568
|
+
|
569
|
+
* `:autosave => true` on relational associations now saves on update as well as create.
|
570
|
+
|
571
|
+
* Mongoid now has an identity map for simple `find_by_id` queries. See the website for documentation.
|
572
|
+
|
573
|
+
### New Features
|
574
|
+
|
575
|
+
* \#1067 Fields now accept a `:versioned` attribute to be able to disable what fields are versioned with `Mongoid::Versioning`. (Jim Benton)
|
576
|
+
|
577
|
+
* \#587 Added order preference to many and many to many associations. (Gregory Man)
|
578
|
+
|
579
|
+
* Added ability to chain `order_by` statements. (Gregory Man)
|
580
|
+
|
581
|
+
* \#961 Allow arbitrary `Mongo::Connection` options to pass through `Mongoid::Config::Database` object. (Morgan Nelson)
|
582
|
+
|
583
|
+
* Enable `autosave` for many to many references. (Dave Krupinski)
|
584
|
+
|
585
|
+
* The following explicit atomic operations have been added: `Model#bit`, `Model#pop`, `Model#pull`, `Model#push_all`, `Model#rename`, `Model#unset`.
|
586
|
+
|
587
|
+
* Added exception translations for Hindi. (Sukeerthi Adiga)
|
588
|
+
|
589
|
+
### Resolved Issues
|
590
|
+
|
591
|
+
* \#974 Fix `attribute_present?` to work correctly then attribute value is `false`, thanks to @nickhoffman. (Gregory Man)
|
592
|
+
|
593
|
+
* \#960 create indexes rake task is not recognizing a lot of mongoid models because it has problems guessing their model names from filenames. (Tobias Schlottke)
|
594
|
+
|
595
|
+
* \#874 Deleting from a M-M reference is one-sided. (nickhoffman, davekrupinski)
|
596
|
+
|
597
|
+
* Replace deprecated `class_inheritable_hash` dropped in Rails 3.1+. (Konstantin Shabanov)
|
598
|
+
|
599
|
+
* Fix inconsistent state when replacing an entire many to many relation.
|
600
|
+
|
601
|
+
* Don't clobber inheritable attributes when adding subclass field inheritance. (Dave Krupinski)
|
602
|
+
|
603
|
+
* \#914 Querying embedded documents with `$or` selector. (Max Golovnia)
|
604
|
+
|
605
|
+
* \#514 Fix marshaling of documents with relation extensions. (Chris Griego)
|
606
|
+
|
607
|
+
* `Metadata#extension` now returns a `Module`, instead of a `Proc`, when an extension is defined.
|
608
|
+
|
609
|
+
* \#837 When `allow_dynamic_fields` is set to `false` and loading an embedded document with an unrecognized field, an exception is raised.
|
610
|
+
|
611
|
+
* \#963 Initializing array of embedded documents via hash regressed (Chris Griego, Morgan Nelson)
|
612
|
+
|
613
|
+
* `Mongoid::Config.reset` resets the options to their default values.
|
614
|
+
|
615
|
+
* `Mongoid::Fields.defaults` is memoized for faster instantiation of models.
|