mongoid 6.4.8 → 7.0.0.beta
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.
- checksums.yaml +5 -5
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/Rakefile +0 -26
- data/lib/config/locales/en.yml +17 -21
- data/lib/mongoid.rb +2 -2
- data/lib/mongoid/association.rb +150 -0
- data/lib/mongoid/association/accessors.rb +339 -0
- data/lib/mongoid/{relations/binding.rb → association/bindable.rb} +32 -52
- data/lib/mongoid/association/builders.rb +92 -0
- data/lib/mongoid/{relations/constraint.rb → association/constrainable.rb} +11 -22
- data/lib/mongoid/association/depending.rb +116 -0
- data/lib/mongoid/{relations/eager.rb → association/eager_loadable.rb} +11 -11
- data/lib/mongoid/association/embedded.rb +4 -0
- data/lib/mongoid/{relations → association}/embedded/batchable.rb +27 -53
- data/lib/mongoid/association/embedded/cyclic.rb +109 -0
- data/lib/mongoid/association/embedded/embedded_in.rb +154 -0
- data/lib/mongoid/association/embedded/embedded_in/binding.rb +56 -0
- data/lib/mongoid/{relations/builders/embedded/in.rb → association/embedded/embedded_in/buildable.rb} +12 -6
- data/lib/mongoid/association/embedded/embedded_in/proxy.rb +121 -0
- data/lib/mongoid/association/embedded/embeds_many.rb +210 -0
- data/lib/mongoid/{relations/bindings/embedded/many.rb → association/embedded/embeds_many/binding.rb} +11 -9
- data/lib/mongoid/{relations/builders/embedded/many.rb → association/embedded/embeds_many/buildable.rb} +13 -7
- data/lib/mongoid/association/embedded/embeds_many/proxy.rb +529 -0
- data/lib/mongoid/association/embedded/embeds_one.rb +173 -0
- data/lib/mongoid/{relations/bindings/embedded/one.rb → association/embedded/embeds_one/binding.rb} +12 -10
- data/lib/mongoid/{relations/builders/embedded/one.rb → association/embedded/embeds_one/buildable.rb} +13 -7
- data/lib/mongoid/association/embedded/embeds_one/proxy.rb +130 -0
- data/lib/mongoid/association/macros.rb +204 -0
- data/lib/mongoid/{relations → association}/many.rb +18 -52
- data/lib/mongoid/{relations → association}/marshalable.rb +6 -4
- data/lib/mongoid/association/nested.rb +15 -0
- data/lib/mongoid/association/nested/many.rb +200 -0
- data/lib/mongoid/association/nested/nested_buildable.rb +72 -0
- data/lib/mongoid/association/nested/one.rb +127 -0
- data/lib/mongoid/{relations → association}/one.rb +6 -6
- data/lib/mongoid/association/options.rb +152 -0
- data/lib/mongoid/{relations → association}/proxy.rb +31 -58
- data/lib/mongoid/association/referenced.rb +7 -0
- data/lib/mongoid/association/referenced/auto_save.rb +79 -0
- data/lib/mongoid/association/referenced/belongs_to.rb +248 -0
- data/lib/mongoid/association/referenced/belongs_to/binding.rb +87 -0
- data/lib/mongoid/association/referenced/belongs_to/buildable.rb +46 -0
- data/lib/mongoid/association/referenced/belongs_to/eager.rb +36 -0
- data/lib/mongoid/association/referenced/belongs_to/proxy.rb +136 -0
- data/lib/mongoid/association/referenced/counter_cache.rb +163 -0
- data/lib/mongoid/association/referenced/eager.rb +159 -0
- data/lib/mongoid/association/referenced/has_and_belongs_to_many.rb +290 -0
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/binding.rb +71 -0
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/buildable.rb +40 -0
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/eager.rb +52 -0
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/proxy.rb +310 -0
- data/lib/mongoid/association/referenced/has_many.rb +273 -0
- data/lib/mongoid/{relations/bindings/referenced/many.rb → association/referenced/has_many/binding.rb} +6 -5
- data/lib/mongoid/association/referenced/has_many/buildable.rb +38 -0
- data/lib/mongoid/association/referenced/has_many/eager.rb +43 -0
- data/lib/mongoid/association/referenced/has_many/enumerable.rb +479 -0
- data/lib/mongoid/association/referenced/has_many/proxy.rb +577 -0
- data/lib/mongoid/association/referenced/has_one.rb +204 -0
- data/lib/mongoid/{relations/bindings/referenced/one.rb → association/referenced/has_one/binding.rb} +11 -8
- data/lib/mongoid/association/referenced/has_one/buildable.rb +60 -0
- data/lib/mongoid/association/referenced/has_one/eager.rb +35 -0
- data/lib/mongoid/{relations/builders/nested_attributes/one.rb → association/referenced/has_one/nested_builder.rb} +9 -9
- data/lib/mongoid/association/referenced/has_one/proxy.rb +113 -0
- data/lib/mongoid/association/referenced/syncable.rb +170 -0
- data/lib/mongoid/{relations → association}/reflections.rb +21 -17
- data/lib/mongoid/association/relatable.rb +415 -0
- data/lib/mongoid/association/touchable.rb +97 -0
- data/lib/mongoid/atomic.rb +6 -6
- data/lib/mongoid/atomic/modifiers.rb +8 -12
- data/lib/mongoid/atomic/paths/embedded/many.rb +1 -1
- data/lib/mongoid/atomic/paths/embedded/one.rb +1 -1
- data/lib/mongoid/attributes.rb +2 -1
- data/lib/mongoid/attributes/nested.rb +10 -10
- data/lib/mongoid/attributes/processing.rb +2 -2
- data/lib/mongoid/attributes/readonly.rb +2 -4
- data/lib/mongoid/clients.rb +0 -2
- data/lib/mongoid/clients/options.rb +1 -1
- data/lib/mongoid/clients/storage_options.rb +0 -1
- data/lib/mongoid/composable.rb +3 -4
- data/lib/mongoid/config.rb +1 -0
- data/lib/mongoid/contextual/aggregable/mongo.rb +1 -1
- data/lib/mongoid/contextual/atomic.rb +3 -6
- data/lib/mongoid/contextual/map_reduce.rb +3 -7
- data/lib/mongoid/contextual/memory.rb +5 -10
- data/lib/mongoid/contextual/mongo.rb +10 -27
- data/lib/mongoid/copyable.rb +6 -6
- data/lib/mongoid/criteria.rb +1 -2
- data/lib/mongoid/criteria/includable.rb +14 -14
- data/lib/mongoid/criteria/modifiable.rb +8 -14
- data/lib/mongoid/criteria/queryable/mergeable.rb +1 -3
- data/lib/mongoid/criteria/queryable/pipeline.rb +10 -5
- data/lib/mongoid/criteria/queryable/selectable.rb +10 -34
- data/lib/mongoid/document.rb +6 -6
- data/lib/mongoid/errors.rb +3 -1
- data/lib/mongoid/errors/invalid_dependent_strategy.rb +32 -0
- data/lib/mongoid/errors/invalid_relation_option.rb +29 -0
- data/lib/mongoid/errors/unknown_model.rb +25 -0
- data/lib/mongoid/extensions/array.rb +5 -5
- data/lib/mongoid/extensions/big_decimal.rb +1 -1
- data/lib/mongoid/extensions/object.rb +4 -4
- data/lib/mongoid/extensions/range.rb +1 -0
- data/lib/mongoid/extensions/regexp.rb +0 -1
- data/lib/mongoid/extensions/string.rb +1 -3
- data/lib/mongoid/factory.rb +4 -3
- data/lib/mongoid/fields.rb +1 -1
- data/lib/mongoid/fields/foreign_key.rb +5 -5
- data/lib/mongoid/fields/standard.rb +2 -14
- data/lib/mongoid/fields/validators/macro.rb +1 -1
- data/lib/mongoid/indexable.rb +8 -5
- data/lib/mongoid/interceptable.rb +5 -5
- data/lib/mongoid/matchable.rb +0 -3
- data/lib/mongoid/persistable.rb +4 -5
- data/lib/mongoid/persistable/creatable.rb +2 -4
- data/lib/mongoid/persistable/deletable.rb +9 -10
- data/lib/mongoid/persistable/destroyable.rb +5 -1
- data/lib/mongoid/persistable/incrementable.rb +1 -1
- data/lib/mongoid/persistable/logical.rb +1 -1
- data/lib/mongoid/persistable/settable.rb +5 -5
- data/lib/mongoid/persistable/updatable.rb +2 -2
- data/lib/mongoid/persistable/upsertable.rb +1 -2
- data/lib/mongoid/persistence_context.rb +4 -9
- data/lib/mongoid/query_cache.rb +18 -65
- data/lib/mongoid/railtie.rb +0 -17
- data/lib/mongoid/reloadable.rb +1 -1
- data/lib/mongoid/scopable.rb +3 -3
- data/lib/mongoid/serializable.rb +3 -3
- data/lib/mongoid/tasks/database.rb +2 -3
- data/lib/mongoid/threaded.rb +0 -74
- data/lib/mongoid/traversable.rb +2 -2
- data/lib/mongoid/validatable.rb +8 -8
- data/lib/mongoid/validatable/presence.rb +2 -2
- data/lib/mongoid/validatable/uniqueness.rb +4 -4
- data/lib/mongoid/version.rb +1 -1
- data/lib/rails/generators/mongoid/config/templates/mongoid.yml +3 -4
- data/spec/app/models/animal.rb +2 -1
- data/spec/app/models/band.rb +0 -1
- data/spec/app/models/bomb.rb +1 -1
- data/spec/app/models/message.rb +1 -1
- data/spec/app/models/person.rb +5 -2
- data/spec/app/models/vertex.rb +6 -0
- data/spec/app/models/wiki_page.rb +1 -1
- data/spec/config/mongoid.yml +1 -0
- data/spec/mongoid/{relations → association}/accessors_spec.rb +1 -1
- data/spec/mongoid/{relations → association}/auto_save_spec.rb +60 -12
- data/spec/mongoid/{relations → association}/builders_spec.rb +1 -1
- data/spec/mongoid/association/constrainable_spec.rb +115 -0
- data/spec/mongoid/{relations → association}/counter_cache_spec.rb +1 -1
- data/spec/mongoid/association/depending_spec.rb +613 -0
- data/spec/mongoid/{relations → association}/eager_spec.rb +12 -12
- data/spec/mongoid/{relations → association/embedded}/cyclic_spec.rb +1 -1
- data/spec/mongoid/{relations → association}/embedded/dirty_spec.rb +0 -0
- data/spec/mongoid/{relations/bindings/embedded/in_spec.rb → association/embedded/embedded_in/binding_spec.rb} +13 -13
- data/spec/mongoid/{relations/builders/embedded/in_spec.rb → association/embedded/embedded_in/buildable_spec.rb} +9 -9
- data/spec/mongoid/{relations/embedded/in_spec.rb → association/embedded/embedded_in/proxy_spec.rb} +5 -77
- data/spec/mongoid/association/embedded/embedded_in_spec.rb +843 -0
- data/spec/mongoid/{relations/bindings/embedded/many_spec.rb → association/embedded/embeds_many/binding_spec.rb} +3 -3
- data/spec/mongoid/{relations/builders/embedded/many_spec.rb → association/embedded/embeds_many/buildable_spec.rb} +17 -45
- data/spec/mongoid/{relations/embedded/many_spec.rb → association/embedded/embeds_many/proxy_spec.rb} +140 -428
- data/spec/mongoid/association/embedded/embeds_many_spec.rb +852 -0
- data/spec/mongoid/{relations/bindings/embedded/one_spec.rb → association/embedded/embeds_one/binding_spec.rb} +4 -4
- data/spec/mongoid/{relations/builders/embedded/one_spec.rb → association/embedded/embeds_one/buildable_spec.rb} +14 -34
- data/spec/mongoid/{relations/embedded/one_spec.rb → association/embedded/embeds_one/proxy_spec.rb} +39 -84
- data/spec/mongoid/association/embedded/embeds_one_spec.rb +908 -0
- data/spec/mongoid/{relations → association}/macros_spec.rb +148 -93
- data/spec/mongoid/{relations/builders/nested_attributes → association/nested}/many_spec.rb +16 -19
- data/spec/mongoid/{relations/builders/nested_attributes → association/nested}/one_spec.rb +17 -20
- data/spec/mongoid/association/options_spec.rb +1321 -0
- data/spec/mongoid/{relations → association}/polymorphic_spec.rb +7 -34
- data/spec/mongoid/{relations/bindings/referenced/in_spec.rb → association/referenced/belongs_to/binding_spec.rb} +7 -7
- data/spec/mongoid/{relations/builders/referenced/in_spec.rb → association/referenced/belongs_to/buildable_spec.rb} +46 -79
- data/spec/mongoid/{relations/eager/belongs_to_spec.rb → association/referenced/belongs_to/eager_spec.rb} +9 -9
- data/spec/mongoid/{relations/referenced/in_spec.rb → association/referenced/belongs_to/proxy_spec.rb} +57 -91
- data/spec/mongoid/association/referenced/belongs_to_spec.rb +1963 -0
- data/spec/mongoid/{relations/bindings/referenced/many_to_many_spec.rb → association/referenced/has_and_belongs_to_many/binding_spec.rb} +5 -5
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/buildable_spec.rb +121 -0
- data/spec/mongoid/{relations/eager/has_and_belongs_to_many_spec.rb → association/referenced/has_and_belongs_to_many/eager_spec.rb} +5 -5
- data/spec/mongoid/{relations/referenced/many_to_many_spec.rb → association/referenced/has_and_belongs_to_many/proxy_spec.rb} +107 -98
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_spec.rb +1027 -0
- data/spec/mongoid/{relations/bindings/referenced/many_spec.rb → association/referenced/has_many/binding_spec.rb} +5 -5
- data/spec/mongoid/association/referenced/has_many/buildable_spec.rb +119 -0
- data/spec/mongoid/{relations/eager/has_many_spec.rb → association/referenced/has_many/eager_spec.rb} +11 -11
- data/spec/mongoid/{relations/targets → association/referenced/has_many}/enumerable_spec.rb +1 -109
- data/spec/mongoid/{relations/referenced/many_spec.rb → association/referenced/has_many/proxy_spec.rb} +28 -93
- data/spec/mongoid/association/referenced/has_many_spec.rb +1225 -0
- data/spec/mongoid/{relations/bindings/referenced/one_spec.rb → association/referenced/has_one/binding_spec.rb} +4 -4
- data/spec/mongoid/association/referenced/has_one/buildable_spec.rb +113 -0
- data/spec/mongoid/{relations/eager/has_one_spec.rb → association/referenced/has_one/eager_spec.rb} +10 -10
- data/spec/mongoid/{relations/referenced/one_spec.rb → association/referenced/has_one/proxy_spec.rb} +9 -109
- data/spec/mongoid/association/referenced/has_one_spec.rb +1244 -0
- data/spec/mongoid/{relations → association}/reflections_spec.rb +1 -12
- data/spec/mongoid/{relations/synchronization_spec.rb → association/syncable_spec.rb} +4 -2
- data/spec/mongoid/{relations → association}/touchable_spec.rb +19 -1
- data/spec/mongoid/{relations_spec.rb → association_spec.rb} +1 -1
- data/spec/mongoid/atomic/modifiers_spec.rb +17 -17
- data/spec/mongoid/atomic_spec.rb +17 -17
- data/spec/mongoid/attributes/nested_spec.rb +14 -12
- data/spec/mongoid/attributes/readonly_spec.rb +80 -125
- data/spec/mongoid/clients/factory_spec.rb +28 -52
- data/spec/mongoid/clients/options_spec.rb +65 -69
- data/spec/mongoid/config_spec.rb +24 -0
- data/spec/mongoid/contextual/geo_near_spec.rb +0 -1
- data/spec/mongoid/contextual/mongo_spec.rb +4 -112
- data/spec/mongoid/criteria/modifiable_spec.rb +183 -60
- data/spec/mongoid/criteria/queryable/extensions/big_decimal_spec.rb +3 -3
- data/spec/mongoid/criteria/queryable/pipeline_spec.rb +12 -0
- data/spec/mongoid/criteria/queryable/selectable_spec.rb +6 -74
- data/spec/mongoid/criteria/queryable/selector_spec.rb +2 -2
- data/spec/mongoid/criteria/scopable_spec.rb +0 -81
- data/spec/mongoid/criteria_spec.rb +16 -19
- data/spec/mongoid/document_spec.rb +2 -56
- data/spec/mongoid/extensions/array_spec.rb +11 -15
- data/spec/mongoid/extensions/big_decimal_spec.rb +9 -9
- data/spec/mongoid/extensions/object_spec.rb +7 -11
- data/spec/mongoid/extensions/range_spec.rb +7 -0
- data/spec/mongoid/extensions/regexp_spec.rb +0 -23
- data/spec/mongoid/extensions/string_spec.rb +7 -35
- data/spec/mongoid/factory_spec.rb +18 -11
- data/spec/mongoid/fields/foreign_key_spec.rb +24 -32
- data/spec/mongoid/fields_spec.rb +2 -2
- data/spec/mongoid/findable_spec.rb +1 -1
- data/spec/mongoid/indexable_spec.rb +18 -8
- data/spec/mongoid/interceptable_spec.rb +21 -2
- data/spec/mongoid/matchable_spec.rb +1 -26
- data/spec/mongoid/persistable/deletable_spec.rb +0 -19
- data/spec/mongoid/persistable/destroyable_spec.rb +0 -19
- data/spec/mongoid/persistable/incrementable_spec.rb +6 -6
- data/spec/mongoid/persistable/savable_spec.rb +3 -3
- data/spec/mongoid/persistable/settable_spec.rb +1 -35
- data/spec/mongoid/persistable/updatable_spec.rb +2 -2
- data/spec/mongoid/persistable_spec.rb +16 -16
- data/spec/mongoid/persistence_context_spec.rb +0 -14
- data/spec/mongoid/positional_spec.rb +10 -10
- data/spec/mongoid/query_cache_spec.rb +18 -87
- data/spec/mongoid/relations/proxy_spec.rb +124 -124
- data/spec/mongoid/scopable_spec.rb +0 -13
- data/spec/mongoid/threaded_spec.rb +0 -68
- data/spec/mongoid/validatable/associated_spec.rb +1 -1
- data/spec/mongoid/validatable/presence_spec.rb +7 -6
- data/spec/mongoid/validatable_spec.rb +1 -1
- data/spec/spec_helper.rb +7 -83
- metadata +586 -611
- metadata.gz.sig +2 -5
- data/lib/mongoid/clients/sessions.rb +0 -113
- data/lib/mongoid/errors/invalid_session_use.rb +0 -24
- data/lib/mongoid/matchable/nor.rb +0 -37
- data/lib/mongoid/railties/controller_runtime.rb +0 -86
- data/lib/mongoid/relations.rb +0 -148
- data/lib/mongoid/relations/accessors.rb +0 -267
- data/lib/mongoid/relations/auto_save.rb +0 -94
- data/lib/mongoid/relations/bindings.rb +0 -9
- data/lib/mongoid/relations/bindings/embedded/in.rb +0 -59
- data/lib/mongoid/relations/bindings/referenced/in.rb +0 -65
- data/lib/mongoid/relations/bindings/referenced/many_to_many.rb +0 -70
- data/lib/mongoid/relations/builder.rb +0 -57
- data/lib/mongoid/relations/builders.rb +0 -106
- data/lib/mongoid/relations/builders/nested_attributes/many.rb +0 -199
- data/lib/mongoid/relations/builders/referenced/in.rb +0 -26
- data/lib/mongoid/relations/builders/referenced/many.rb +0 -26
- data/lib/mongoid/relations/builders/referenced/many_to_many.rb +0 -39
- data/lib/mongoid/relations/builders/referenced/one.rb +0 -26
- data/lib/mongoid/relations/cascading.rb +0 -56
- data/lib/mongoid/relations/cascading/delete.rb +0 -44
- data/lib/mongoid/relations/cascading/destroy.rb +0 -43
- data/lib/mongoid/relations/cascading/nullify.rb +0 -35
- data/lib/mongoid/relations/cascading/restrict.rb +0 -39
- data/lib/mongoid/relations/conversions.rb +0 -34
- data/lib/mongoid/relations/counter_cache.rb +0 -160
- data/lib/mongoid/relations/cyclic.rb +0 -107
- data/lib/mongoid/relations/eager/base.rb +0 -153
- data/lib/mongoid/relations/eager/belongs_to.rb +0 -31
- data/lib/mongoid/relations/eager/has_and_belongs_to_many.rb +0 -47
- data/lib/mongoid/relations/eager/has_many.rb +0 -38
- data/lib/mongoid/relations/eager/has_one.rb +0 -30
- data/lib/mongoid/relations/embedded/in.rb +0 -241
- data/lib/mongoid/relations/embedded/many.rb +0 -683
- data/lib/mongoid/relations/embedded/one.rb +0 -235
- data/lib/mongoid/relations/macros.rb +0 -367
- data/lib/mongoid/relations/metadata.rb +0 -1179
- data/lib/mongoid/relations/nested_builder.rb +0 -74
- data/lib/mongoid/relations/options.rb +0 -49
- data/lib/mongoid/relations/polymorphic.rb +0 -39
- data/lib/mongoid/relations/referenced/in.rb +0 -304
- data/lib/mongoid/relations/referenced/many.rb +0 -812
- data/lib/mongoid/relations/referenced/many_to_many.rb +0 -479
- data/lib/mongoid/relations/referenced/one.rb +0 -290
- data/lib/mongoid/relations/synchronization.rb +0 -169
- data/lib/mongoid/relations/targets.rb +0 -2
- data/lib/mongoid/relations/targets/enumerable.rb +0 -493
- data/lib/mongoid/relations/touchable.rb +0 -97
- data/spec/app/models/array_field.rb +0 -7
- data/spec/app/models/delegating_patient.rb +0 -16
- data/spec/integration/document_spec.rb +0 -22
- data/spec/mongoid/clients/sessions_spec.rb +0 -334
- data/spec/mongoid/fields/internal/foreign_keys/array_spec.rb +0 -184
- data/spec/mongoid/fields/internal/foreign_keys/object_spec.rb +0 -201
- data/spec/mongoid/matchable/nor_spec.rb +0 -209
- data/spec/mongoid/relations/builders/referenced/many_spec.rb +0 -137
- data/spec/mongoid/relations/builders/referenced/many_to_many_spec.rb +0 -178
- data/spec/mongoid/relations/builders/referenced/one_spec.rb +0 -111
- data/spec/mongoid/relations/cascading/delete_spec.rb +0 -101
- data/spec/mongoid/relations/cascading/destroy_spec.rb +0 -47
- data/spec/mongoid/relations/cascading/nullify_spec.rb +0 -32
- data/spec/mongoid/relations/cascading/restrict_spec.rb +0 -68
- data/spec/mongoid/relations/cascading_spec.rb +0 -355
- data/spec/mongoid/relations/constraint_spec.rb +0 -75
- data/spec/mongoid/relations/conversions_spec.rb +0 -128
- data/spec/mongoid/relations/metadata_spec.rb +0 -1985
- data/spec/mongoid/relations/options_spec.rb +0 -35
- data/spec/rails/controller_extension/controller_runtime_spec.rb +0 -110
- data/spec/support/cluster_config.rb +0 -158
- data/spec/support/constraints.rb +0 -101
- data/spec/support/macros.rb +0 -20
- data/spec/support/session_registry.rb +0 -50
- data/spec/support/spec_config.rb +0 -42
data/spec/mongoid/fields_spec.rb
CHANGED
|
@@ -816,7 +816,7 @@ describe Mongoid::Fields do
|
|
|
816
816
|
|
|
817
817
|
context "when the field name conflicts with mongoid's internals" do
|
|
818
818
|
|
|
819
|
-
[:
|
|
819
|
+
[:_association, :invalid].each do |meth|
|
|
820
820
|
context "when the field is named #{meth}" do
|
|
821
821
|
|
|
822
822
|
it "raises an error" do
|
|
@@ -1171,7 +1171,7 @@ describe Mongoid::Fields do
|
|
|
1171
1171
|
end
|
|
1172
1172
|
|
|
1173
1173
|
let(:decimal) do
|
|
1174
|
-
BigDecimal("1000000.00")
|
|
1174
|
+
BigDecimal.new("1000000.00")
|
|
1175
1175
|
end
|
|
1176
1176
|
|
|
1177
1177
|
context "when setting to a big decimal" do
|
|
@@ -89,8 +89,9 @@ describe Mongoid::Indexable do
|
|
|
89
89
|
klass.create_indexes
|
|
90
90
|
end
|
|
91
91
|
|
|
92
|
-
it "creates the indexes" do
|
|
93
|
-
|
|
92
|
+
it "creates the indexes by using specified background option" do
|
|
93
|
+
index = klass.collection.indexes.get(_type: 1)
|
|
94
|
+
expect(index[:background]).to eq(true)
|
|
94
95
|
end
|
|
95
96
|
end
|
|
96
97
|
|
|
@@ -104,12 +105,9 @@ describe Mongoid::Indexable do
|
|
|
104
105
|
end
|
|
105
106
|
end
|
|
106
107
|
|
|
107
|
-
before do
|
|
108
|
-
klass.create_indexes
|
|
109
|
-
end
|
|
110
|
-
|
|
111
108
|
after do
|
|
112
109
|
klass.remove_indexes
|
|
110
|
+
Mongoid::Config.background_indexing = false
|
|
113
111
|
end
|
|
114
112
|
|
|
115
113
|
let(:indexes) do
|
|
@@ -118,8 +116,20 @@ describe Mongoid::Indexable do
|
|
|
118
116
|
end
|
|
119
117
|
end
|
|
120
118
|
|
|
121
|
-
it "creates the indexes" do
|
|
122
|
-
|
|
119
|
+
it "creates the indexes by using default background_indexing option" do
|
|
120
|
+
klass.create_indexes
|
|
121
|
+
|
|
122
|
+
index = indexes.get(_type: 1)
|
|
123
|
+
expect(index[:background]).to eq(Mongoid::Config.background_indexing)
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
it "creates the indexes by using specified background_indexing option" do
|
|
127
|
+
Mongoid::Config.background_indexing = true
|
|
128
|
+
|
|
129
|
+
klass.create_indexes
|
|
130
|
+
|
|
131
|
+
index = indexes.get(_type: 1)
|
|
132
|
+
expect(index[:background]).to eq(true)
|
|
123
133
|
end
|
|
124
134
|
end
|
|
125
135
|
|
|
@@ -526,7 +526,7 @@ describe Mongoid::Interceptable do
|
|
|
526
526
|
end
|
|
527
527
|
|
|
528
528
|
after(:all) do
|
|
529
|
-
|
|
529
|
+
Band.reset_callbacks(:rearrange)
|
|
530
530
|
end
|
|
531
531
|
|
|
532
532
|
let(:attributes) do
|
|
@@ -597,7 +597,7 @@ describe Mongoid::Interceptable do
|
|
|
597
597
|
it "raises an error" do
|
|
598
598
|
expect {
|
|
599
599
|
Band.has_and_belongs_to_many :tags, cascade_callbacks: true
|
|
600
|
-
}.to raise_error(Mongoid::Errors::
|
|
600
|
+
}.to raise_error(Mongoid::Errors::InvalidRelationOption)
|
|
601
601
|
end
|
|
602
602
|
end
|
|
603
603
|
|
|
@@ -1181,6 +1181,25 @@ describe Mongoid::Interceptable do
|
|
|
1181
1181
|
end
|
|
1182
1182
|
end
|
|
1183
1183
|
|
|
1184
|
+
context 'when the parent is updated' do
|
|
1185
|
+
|
|
1186
|
+
let(:band) do
|
|
1187
|
+
Band.create(name: "Moderat")
|
|
1188
|
+
end
|
|
1189
|
+
|
|
1190
|
+
before do
|
|
1191
|
+
band.update(records: [ { name: 'Black on Both Sides' }])
|
|
1192
|
+
end
|
|
1193
|
+
|
|
1194
|
+
it 'executes the callback' do
|
|
1195
|
+
expect(band.records.first.before_validation_called).to be true
|
|
1196
|
+
end
|
|
1197
|
+
|
|
1198
|
+
it 'persists the change' do
|
|
1199
|
+
expect(band.reload.records.first.before_validation_called).to be true
|
|
1200
|
+
end
|
|
1201
|
+
end
|
|
1202
|
+
|
|
1184
1203
|
context "when the child is persisted" do
|
|
1185
1204
|
|
|
1186
1205
|
let(:band) do
|
|
@@ -86,7 +86,7 @@ describe Mongoid::Matchable do
|
|
|
86
86
|
let(:selector) do
|
|
87
87
|
{ "occupants.0" => "Tim" }
|
|
88
88
|
end
|
|
89
|
-
|
|
89
|
+
|
|
90
90
|
it "returns true" do
|
|
91
91
|
expect(document.locations.first._matches?(selector)).to be true
|
|
92
92
|
end
|
|
@@ -774,31 +774,6 @@ describe Mongoid::Matchable do
|
|
|
774
774
|
end
|
|
775
775
|
end
|
|
776
776
|
|
|
777
|
-
context "with an $nor selector" do
|
|
778
|
-
|
|
779
|
-
context "when the attributes match" do
|
|
780
|
-
|
|
781
|
-
let(:selector) do
|
|
782
|
-
{ "$nor" => [ { number: 10 }, { number: { "$gt" => 199 } } ] }
|
|
783
|
-
end
|
|
784
|
-
|
|
785
|
-
it "returns true" do
|
|
786
|
-
expect(document._matches?(selector)).to be true
|
|
787
|
-
end
|
|
788
|
-
end
|
|
789
|
-
|
|
790
|
-
context "when the attributes do not match" do
|
|
791
|
-
|
|
792
|
-
let(:selector) do
|
|
793
|
-
{ "$nor" => [ { number: 10 }, { number: { "$gt" => 99 } } ] }
|
|
794
|
-
end
|
|
795
|
-
|
|
796
|
-
it "returns false" do
|
|
797
|
-
expect(document._matches?(selector)).to be false
|
|
798
|
-
end
|
|
799
|
-
end
|
|
800
|
-
end
|
|
801
|
-
|
|
802
777
|
context "with a $size selector" do
|
|
803
778
|
|
|
804
779
|
context "when the attributes match" do
|
|
@@ -228,25 +228,6 @@ describe Mongoid::Persistable::Deletable do
|
|
|
228
228
|
expect(removed).to eq(1)
|
|
229
229
|
end
|
|
230
230
|
end
|
|
231
|
-
|
|
232
|
-
context 'when the write concern is unacknowledged' do
|
|
233
|
-
|
|
234
|
-
before do
|
|
235
|
-
Person.create(title: 'miss')
|
|
236
|
-
end
|
|
237
|
-
|
|
238
|
-
let!(:deleted) do
|
|
239
|
-
Person.with(write: { w: 0 }) { |klass| klass.delete_all(title: "sir") }
|
|
240
|
-
end
|
|
241
|
-
|
|
242
|
-
it "removes the matching documents" do
|
|
243
|
-
expect(Person.where(title: 'miss').count).to eq(1)
|
|
244
|
-
end
|
|
245
|
-
|
|
246
|
-
it "returns 0" do
|
|
247
|
-
expect(deleted).to eq(0)
|
|
248
|
-
end
|
|
249
|
-
end
|
|
250
231
|
end
|
|
251
232
|
end
|
|
252
233
|
end
|
|
@@ -222,25 +222,6 @@ describe Mongoid::Persistable::Destroyable do
|
|
|
222
222
|
end
|
|
223
223
|
end
|
|
224
224
|
|
|
225
|
-
context 'when the write concern is unacknowledged' do
|
|
226
|
-
|
|
227
|
-
before do
|
|
228
|
-
Person.create(title: 'miss')
|
|
229
|
-
end
|
|
230
|
-
|
|
231
|
-
let!(:removed) do
|
|
232
|
-
Person.with(write: { w: 0 }) { |klass| klass.destroy_all(title: "sir") }
|
|
233
|
-
end
|
|
234
|
-
|
|
235
|
-
it "removes the matching documents" do
|
|
236
|
-
expect(Person.where(title: 'miss').count).to eq(1)
|
|
237
|
-
end
|
|
238
|
-
|
|
239
|
-
it "returns 0" do
|
|
240
|
-
expect(removed).to eq(0)
|
|
241
|
-
end
|
|
242
|
-
end
|
|
243
|
-
|
|
244
225
|
context 'when removing a list of embedded documents' do
|
|
245
226
|
|
|
246
227
|
context 'when the embedded documents list is reversed in memory' do
|
|
@@ -66,15 +66,15 @@ describe Mongoid::Persistable::Incrementable do
|
|
|
66
66
|
context "when providing big decimal values" do
|
|
67
67
|
|
|
68
68
|
let(:five) do
|
|
69
|
-
BigDecimal("5.0")
|
|
69
|
+
BigDecimal.new("5.0")
|
|
70
70
|
end
|
|
71
71
|
|
|
72
72
|
let(:neg_ten) do
|
|
73
|
-
BigDecimal("-10.0")
|
|
73
|
+
BigDecimal.new("-10.0")
|
|
74
74
|
end
|
|
75
75
|
|
|
76
76
|
let(:thirty) do
|
|
77
|
-
BigDecimal("30.0")
|
|
77
|
+
BigDecimal.new("30.0")
|
|
78
78
|
end
|
|
79
79
|
|
|
80
80
|
let!(:inc) do
|
|
@@ -151,15 +151,15 @@ describe Mongoid::Persistable::Incrementable do
|
|
|
151
151
|
context "when providing big decimal values" do
|
|
152
152
|
|
|
153
153
|
let(:five) do
|
|
154
|
-
BigDecimal("5.0")
|
|
154
|
+
BigDecimal.new("5.0")
|
|
155
155
|
end
|
|
156
156
|
|
|
157
157
|
let(:neg_ten) do
|
|
158
|
-
BigDecimal("-10.0")
|
|
158
|
+
BigDecimal.new("-10.0")
|
|
159
159
|
end
|
|
160
160
|
|
|
161
161
|
let(:thirty) do
|
|
162
|
-
BigDecimal("30.0")
|
|
162
|
+
BigDecimal.new("30.0")
|
|
163
163
|
end
|
|
164
164
|
|
|
165
165
|
let!(:inc) do
|
|
@@ -189,8 +189,8 @@ describe Mongoid::Persistable::Savable do
|
|
|
189
189
|
"title" => "King",
|
|
190
190
|
"name.first_name" => "Ryan"
|
|
191
191
|
},
|
|
192
|
-
"$
|
|
193
|
-
"addresses" =>
|
|
192
|
+
"$pushAll"=> {
|
|
193
|
+
"addresses" => [ { "_id" => address.id, "street" => "Bond St" } ]
|
|
194
194
|
}
|
|
195
195
|
})
|
|
196
196
|
end
|
|
@@ -309,7 +309,7 @@ describe Mongoid::Persistable::Savable do
|
|
|
309
309
|
expect {
|
|
310
310
|
person.username = 'unloaded-attribute'
|
|
311
311
|
person.save
|
|
312
|
-
}.to raise_error(
|
|
312
|
+
}.to raise_error(ActiveModel::MissingAttributeError)
|
|
313
313
|
end
|
|
314
314
|
|
|
315
315
|
context 'when the changed attribute is aliased' do
|
|
@@ -278,22 +278,7 @@ describe Mongoid::Persistable::Settable do
|
|
|
278
278
|
end
|
|
279
279
|
end
|
|
280
280
|
|
|
281
|
-
context 'when the field is a
|
|
282
|
-
|
|
283
|
-
context 'when the field is reset to an empty hash' do
|
|
284
|
-
|
|
285
|
-
before do
|
|
286
|
-
church.set('location' => {})
|
|
287
|
-
end
|
|
288
|
-
|
|
289
|
-
it 'updates the field locally' do
|
|
290
|
-
expect(church.location).to eq({})
|
|
291
|
-
end
|
|
292
|
-
|
|
293
|
-
it 'updates the field in the database' do
|
|
294
|
-
expect(church.reload.location).to eq({})
|
|
295
|
-
end
|
|
296
|
-
end
|
|
281
|
+
context 'when the field is a bested hash' do
|
|
297
282
|
|
|
298
283
|
context 'when a leaf value in the nested hash is updated' do
|
|
299
284
|
|
|
@@ -315,25 +300,6 @@ describe Mongoid::Persistable::Settable do
|
|
|
315
300
|
end
|
|
316
301
|
end
|
|
317
302
|
|
|
318
|
-
context 'when a leaf value in the nested hash is updated to a number' do
|
|
319
|
-
|
|
320
|
-
let(:church) do
|
|
321
|
-
Church.new.tap do |a|
|
|
322
|
-
a.location = {'address' => {'city' => 'Berlin', 'street' => 'Yorckstr'}}
|
|
323
|
-
a.name = 'Church1'
|
|
324
|
-
a.save
|
|
325
|
-
end
|
|
326
|
-
end
|
|
327
|
-
|
|
328
|
-
before do
|
|
329
|
-
church.set('location.address.city' => 12345)
|
|
330
|
-
end
|
|
331
|
-
|
|
332
|
-
it 'updates the nested value to the correct value' do
|
|
333
|
-
expect(church.name).to eq('Church1')
|
|
334
|
-
expect(church.location).to eql({'address' => {'city' => 12345, 'street' => 'Yorckstr'}})
|
|
335
|
-
end
|
|
336
|
-
end
|
|
337
303
|
|
|
338
304
|
context 'when the nested hash is many levels deep' do
|
|
339
305
|
|
|
@@ -462,7 +462,7 @@ describe Mongoid::Persistable::Updatable do
|
|
|
462
462
|
|
|
463
463
|
it "raises an error" do
|
|
464
464
|
expect {
|
|
465
|
-
person.update_attributes(map: { "
|
|
465
|
+
person.update_attributes(map: { "bad.key" => "value" })
|
|
466
466
|
}.to raise_error(Mongo::Error::OperationFailure)
|
|
467
467
|
end
|
|
468
468
|
end
|
|
@@ -498,7 +498,7 @@ describe Mongoid::Persistable::Updatable do
|
|
|
498
498
|
|
|
499
499
|
it "raises an error" do
|
|
500
500
|
expect {
|
|
501
|
-
person.send(method, map: { "
|
|
501
|
+
person.send(method, map: { "bad.key" => "value" })
|
|
502
502
|
}.to raise_error(Mongo::Error::OperationFailure)
|
|
503
503
|
end
|
|
504
504
|
end
|
|
@@ -52,16 +52,16 @@ describe Mongoid::Persistable do
|
|
|
52
52
|
context "when not chaining the operations" do
|
|
53
53
|
|
|
54
54
|
let(:operations) do
|
|
55
|
-
|
|
55
|
+
{
|
|
56
56
|
"$inc" => { "member_count" => 10 },
|
|
57
57
|
"$bit" => { "likes" => { :and => 13 }},
|
|
58
58
|
"$set" => { "name" => "Placebo" },
|
|
59
|
-
"$unset" => { "origin" => true }
|
|
60
|
-
|
|
59
|
+
"$unset" => { "origin" => true }
|
|
60
|
+
}
|
|
61
61
|
end
|
|
62
62
|
|
|
63
63
|
before do
|
|
64
|
-
expect_any_instance_of(Mongo::Collection::View).to receive(:update_one).with(
|
|
64
|
+
expect_any_instance_of(Mongo::Collection::View).to receive(:update_one).with(operations).and_call_original
|
|
65
65
|
end
|
|
66
66
|
|
|
67
67
|
let!(:update) do
|
|
@@ -79,16 +79,16 @@ describe Mongoid::Persistable do
|
|
|
79
79
|
context "when chaining the operations" do
|
|
80
80
|
|
|
81
81
|
let(:operations) do
|
|
82
|
-
|
|
82
|
+
{
|
|
83
83
|
"$inc" => { "member_count" => 10 },
|
|
84
84
|
"$bit" => { "likes" => { :and => 13 }},
|
|
85
85
|
"$set" => { "name" => "Placebo" },
|
|
86
|
-
"$unset" => { "origin" => true }
|
|
87
|
-
|
|
86
|
+
"$unset" => { "origin" => true }
|
|
87
|
+
}
|
|
88
88
|
end
|
|
89
89
|
|
|
90
90
|
before do
|
|
91
|
-
expect_any_instance_of(Mongo::Collection::View).to receive(:update_one).with(
|
|
91
|
+
expect_any_instance_of(Mongo::Collection::View).to receive(:update_one).with(operations).and_call_original
|
|
92
92
|
end
|
|
93
93
|
|
|
94
94
|
let!(:update) do
|
|
@@ -107,16 +107,16 @@ describe Mongoid::Persistable do
|
|
|
107
107
|
context "when given multiple operations of the same type" do
|
|
108
108
|
|
|
109
109
|
let(:operations) do
|
|
110
|
-
|
|
110
|
+
{
|
|
111
111
|
"$inc" => { "member_count" => 10, "other_count" => 10 },
|
|
112
112
|
"$bit" => { "likes" => { :and => 13 }},
|
|
113
113
|
"$set" => { "name" => "Placebo" },
|
|
114
|
-
"$unset" => { "origin" => true }
|
|
115
|
-
|
|
114
|
+
"$unset" => { "origin" => true }
|
|
115
|
+
}
|
|
116
116
|
end
|
|
117
117
|
|
|
118
118
|
before do
|
|
119
|
-
expect_any_instance_of(Mongo::Collection::View).to receive(:update_one).with(
|
|
119
|
+
expect_any_instance_of(Mongo::Collection::View).to receive(:update_one).with(operations).and_call_original
|
|
120
120
|
end
|
|
121
121
|
|
|
122
122
|
let!(:update) do
|
|
@@ -144,16 +144,16 @@ describe Mongoid::Persistable do
|
|
|
144
144
|
context "when expecting the document to be yielded" do
|
|
145
145
|
|
|
146
146
|
let(:operations) do
|
|
147
|
-
|
|
147
|
+
{
|
|
148
148
|
"$inc" => { "member_count" => 10 },
|
|
149
149
|
"$bit" => { "likes" => { :and => 13 }},
|
|
150
150
|
"$set" => { "name" => "Placebo" },
|
|
151
|
-
"$unset" => { "origin" => true }
|
|
152
|
-
|
|
151
|
+
"$unset" => { "origin" => true }
|
|
152
|
+
}
|
|
153
153
|
end
|
|
154
154
|
|
|
155
155
|
before do
|
|
156
|
-
expect_any_instance_of(Mongo::Collection::View).to receive(:update_one).with(
|
|
156
|
+
expect_any_instance_of(Mongo::Collection::View).to receive(:update_one).with(operations).and_call_original
|
|
157
157
|
end
|
|
158
158
|
|
|
159
159
|
let!(:update) do
|
|
@@ -70,20 +70,6 @@ describe Mongoid::PersistenceContext do
|
|
|
70
70
|
{ collection: :other }
|
|
71
71
|
end
|
|
72
72
|
|
|
73
|
-
context 'when the method throws an error' do
|
|
74
|
-
|
|
75
|
-
let!(:persistence_context) do
|
|
76
|
-
described_class.set(object, options).tap do |cxt|
|
|
77
|
-
allow(cxt).to receive(:client).and_raise(Mongoid::Errors::NoClientConfig.new('default'))
|
|
78
|
-
end
|
|
79
|
-
end
|
|
80
|
-
|
|
81
|
-
it 'clears the context anyway' do
|
|
82
|
-
begin; described_class.clear(object); rescue; end
|
|
83
|
-
expect(described_class.get(object)).to be(nil)
|
|
84
|
-
end
|
|
85
|
-
end
|
|
86
|
-
|
|
87
73
|
context 'when there has been a persistence context set on the current thread' do
|
|
88
74
|
|
|
89
75
|
let!(:persistence_context) do
|
|
@@ -17,8 +17,8 @@ describe Mongoid::Positional do
|
|
|
17
17
|
"children.0.field" => "value",
|
|
18
18
|
"children.0.children.1.children.3.field" => "value"
|
|
19
19
|
},
|
|
20
|
-
"$
|
|
21
|
-
"children.0.children.1.children.3.fields" =>
|
|
20
|
+
"$pushAll" => {
|
|
21
|
+
"children.0.children.1.children.3.fields" => [ "value", "value" ]
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
end
|
|
@@ -113,8 +113,8 @@ describe Mongoid::Positional do
|
|
|
113
113
|
"children.$.field" => "value",
|
|
114
114
|
"children.0.children.1.children.3.field" => "value"
|
|
115
115
|
},
|
|
116
|
-
"$
|
|
117
|
-
"children.0.children.1.children.3.fields" =>
|
|
116
|
+
"$pushAll" => {
|
|
117
|
+
"children.0.children.1.children.3.fields" => [ "value", "value" ]
|
|
118
118
|
}
|
|
119
119
|
}
|
|
120
120
|
end
|
|
@@ -141,8 +141,8 @@ describe Mongoid::Positional do
|
|
|
141
141
|
"children.0.field" => "value",
|
|
142
142
|
"children.0.children.1.children.3.field" => "value"
|
|
143
143
|
},
|
|
144
|
-
"$
|
|
145
|
-
"children.0.children.1.children.3.fields" =>
|
|
144
|
+
"$pushAll" => {
|
|
145
|
+
"children.0.children.1.children.3.fields" => [ "value", "value" ]
|
|
146
146
|
}
|
|
147
147
|
}
|
|
148
148
|
end
|
|
@@ -170,8 +170,8 @@ describe Mongoid::Positional do
|
|
|
170
170
|
"children.$.field" => "value",
|
|
171
171
|
"children.0.children.1.children.3.field" => "value"
|
|
172
172
|
},
|
|
173
|
-
"$
|
|
174
|
-
"children.0.children.1.children.3.fields" =>
|
|
173
|
+
"$pushAll" => {
|
|
174
|
+
"children.0.children.1.children.3.fields" => [ "value", "value" ]
|
|
175
175
|
}
|
|
176
176
|
}
|
|
177
177
|
end
|
|
@@ -203,8 +203,8 @@ describe Mongoid::Positional do
|
|
|
203
203
|
"children.$.field" => "value",
|
|
204
204
|
"children.0.children.1.children.3.field" => "value"
|
|
205
205
|
},
|
|
206
|
-
"$
|
|
207
|
-
"children.0.children.1.children.3.fields" =>
|
|
206
|
+
"$pushAll" => {
|
|
207
|
+
"children.0.children.1.children.3.fields" => [ "value", "value" ]
|
|
208
208
|
}
|
|
209
209
|
}
|
|
210
210
|
end
|