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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
require "spec_helper"
|
|
2
2
|
|
|
3
|
-
describe
|
|
3
|
+
describe "Polymorphic Associations" do
|
|
4
4
|
|
|
5
5
|
describe "#polymorph" do
|
|
6
6
|
|
|
@@ -12,16 +12,8 @@ describe Mongoid::Relations::Polymorphic do
|
|
|
12
12
|
|
|
13
13
|
context "when the relation stores a foreign key" do
|
|
14
14
|
|
|
15
|
-
let(:
|
|
16
|
-
|
|
17
|
-
name: :ratable,
|
|
18
|
-
polymorphic: true,
|
|
19
|
-
relation: Mongoid::Relations::Referenced::In
|
|
20
|
-
)
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
let!(:polymorphed) do
|
|
24
|
-
klass.polymorph(metadata)
|
|
15
|
+
let!(:association) do
|
|
16
|
+
klass.belongs_to :ratable, polymorphic: true
|
|
25
17
|
end
|
|
26
18
|
|
|
27
19
|
it "sets polymorphic to true" do
|
|
@@ -31,24 +23,12 @@ describe Mongoid::Relations::Polymorphic do
|
|
|
31
23
|
it "adds the foreign key type field" do
|
|
32
24
|
expect(klass.fields["ratable_type"]).to_not be_nil
|
|
33
25
|
end
|
|
34
|
-
|
|
35
|
-
it "returns self" do
|
|
36
|
-
expect(polymorphed).to eq(klass)
|
|
37
|
-
end
|
|
38
26
|
end
|
|
39
27
|
|
|
40
28
|
context "when the relation does not store a foreign key" do
|
|
41
29
|
|
|
42
|
-
let(:
|
|
43
|
-
|
|
44
|
-
name: :ratings,
|
|
45
|
-
as: :ratable,
|
|
46
|
-
relation: Mongoid::Relations::Referenced::Many
|
|
47
|
-
)
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
before do
|
|
51
|
-
klass.polymorph(metadata)
|
|
30
|
+
let!(:association) do
|
|
31
|
+
klass.has_many :ratings, as: :ratable
|
|
52
32
|
end
|
|
53
33
|
|
|
54
34
|
it "sets polymorphic to true" do
|
|
@@ -67,15 +47,8 @@ describe Mongoid::Relations::Polymorphic do
|
|
|
67
47
|
|
|
68
48
|
context "when the relation is not polymorphic" do
|
|
69
49
|
|
|
70
|
-
let(:
|
|
71
|
-
|
|
72
|
-
name: :ratings,
|
|
73
|
-
relation: Mongoid::Relations::Referenced::Many
|
|
74
|
-
)
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
before do
|
|
78
|
-
klass.polymorph(metadata)
|
|
50
|
+
let!(:association) do
|
|
51
|
+
klass.has_many :ratings
|
|
79
52
|
end
|
|
80
53
|
|
|
81
54
|
it "sets polymorphic to false" do
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
require "spec_helper"
|
|
2
2
|
|
|
3
|
-
describe Mongoid::
|
|
3
|
+
describe Mongoid::Association::Referenced::BelongsTo::Binding do
|
|
4
4
|
|
|
5
5
|
let(:person) do
|
|
6
6
|
Person.new
|
|
@@ -14,11 +14,11 @@ describe Mongoid::Relations::Bindings::Referenced::In do
|
|
|
14
14
|
Post.new
|
|
15
15
|
end
|
|
16
16
|
|
|
17
|
-
let(:
|
|
17
|
+
let(:game_association) do
|
|
18
18
|
Game.relations["person"]
|
|
19
19
|
end
|
|
20
20
|
|
|
21
|
-
let(:
|
|
21
|
+
let(:post_association) do
|
|
22
22
|
Post.relations["person"]
|
|
23
23
|
end
|
|
24
24
|
|
|
@@ -27,7 +27,7 @@ describe Mongoid::Relations::Bindings::Referenced::In do
|
|
|
27
27
|
context "when the child of an references one" do
|
|
28
28
|
|
|
29
29
|
let(:binding) do
|
|
30
|
-
described_class.new(game, person,
|
|
30
|
+
described_class.new(game, person, game_association)
|
|
31
31
|
end
|
|
32
32
|
|
|
33
33
|
context "when the document is bindable with default pk" do
|
|
@@ -90,7 +90,7 @@ describe Mongoid::Relations::Bindings::Referenced::In do
|
|
|
90
90
|
context "when the child of an references many" do
|
|
91
91
|
|
|
92
92
|
let(:binding) do
|
|
93
|
-
described_class.new(post, person,
|
|
93
|
+
described_class.new(post, person, post_association)
|
|
94
94
|
end
|
|
95
95
|
|
|
96
96
|
context "when the document is bindable" do
|
|
@@ -129,7 +129,7 @@ describe Mongoid::Relations::Bindings::Referenced::In do
|
|
|
129
129
|
context "when the child of an references one" do
|
|
130
130
|
|
|
131
131
|
let(:binding) do
|
|
132
|
-
described_class.new(game, person,
|
|
132
|
+
described_class.new(game, person, game_association)
|
|
133
133
|
end
|
|
134
134
|
|
|
135
135
|
context "when the document is unbindable" do
|
|
@@ -162,7 +162,7 @@ describe Mongoid::Relations::Bindings::Referenced::In do
|
|
|
162
162
|
context "when the child of an references many" do
|
|
163
163
|
|
|
164
164
|
let(:binding) do
|
|
165
|
-
described_class.new(post, person,
|
|
165
|
+
described_class.new(post, person, post_association)
|
|
166
166
|
end
|
|
167
167
|
|
|
168
168
|
context "when the document is unbindable" do
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
require "spec_helper"
|
|
2
2
|
|
|
3
|
-
describe Mongoid::
|
|
3
|
+
describe Mongoid::Association::Referenced::BelongsTo::Buildable do
|
|
4
4
|
|
|
5
5
|
let(:base) do
|
|
6
6
|
double
|
|
@@ -8,45 +8,28 @@ describe Mongoid::Relations::Builders::Referenced::In do
|
|
|
8
8
|
|
|
9
9
|
describe "#build" do
|
|
10
10
|
|
|
11
|
-
let(:
|
|
12
|
-
|
|
11
|
+
let(:document) do
|
|
12
|
+
association.build(base, object)
|
|
13
13
|
end
|
|
14
14
|
|
|
15
|
-
let(:
|
|
16
|
-
|
|
17
|
-
klass: Person,
|
|
18
|
-
name: :person,
|
|
19
|
-
foreign_key: "person_id",
|
|
20
|
-
criteria: criteria
|
|
21
|
-
)
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
let(:builder) do
|
|
25
|
-
described_class.new(base, metadata, object)
|
|
15
|
+
let(:association) do
|
|
16
|
+
Post.relations['person']
|
|
26
17
|
end
|
|
27
18
|
|
|
28
19
|
context "when provided an id" do
|
|
29
20
|
|
|
30
21
|
context "when the object is an object id" do
|
|
31
22
|
|
|
32
|
-
let(:
|
|
33
|
-
|
|
23
|
+
let!(:person) do
|
|
24
|
+
Person.create(_id: object)
|
|
34
25
|
end
|
|
35
26
|
|
|
36
27
|
let(:object) do
|
|
37
|
-
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
let(:person) do
|
|
41
|
-
double
|
|
28
|
+
BSON::ObjectId.new
|
|
42
29
|
end
|
|
43
30
|
|
|
44
31
|
before do
|
|
45
|
-
expect(
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
let!(:document) do
|
|
49
|
-
builder.build
|
|
32
|
+
expect(Person).to receive(:where).with(association.primary_key => object).and_call_original
|
|
50
33
|
end
|
|
51
34
|
|
|
52
35
|
it "sets the document" do
|
|
@@ -54,40 +37,52 @@ describe Mongoid::Relations::Builders::Referenced::In do
|
|
|
54
37
|
end
|
|
55
38
|
end
|
|
56
39
|
|
|
57
|
-
context
|
|
40
|
+
context 'when the id is nil' do
|
|
41
|
+
|
|
42
|
+
let(:object) do
|
|
43
|
+
nil
|
|
44
|
+
end
|
|
58
45
|
|
|
59
46
|
before do
|
|
60
|
-
Person.
|
|
47
|
+
expect(Person).not_to receive(:where)
|
|
61
48
|
end
|
|
62
49
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
:_id,
|
|
66
|
-
overwrite: true,
|
|
67
|
-
type: BSON::ObjectId,
|
|
68
|
-
pre_processed: true,
|
|
69
|
-
default: ->{ BSON::ObjectId.new }
|
|
70
|
-
)
|
|
50
|
+
it 'returns nil' do
|
|
51
|
+
expect(document).to be_nil
|
|
71
52
|
end
|
|
53
|
+
end
|
|
72
54
|
|
|
73
|
-
|
|
74
|
-
|
|
55
|
+
context "when the id does not correspond to a document in the database" do
|
|
56
|
+
|
|
57
|
+
let!(:person) do
|
|
58
|
+
Person.create
|
|
75
59
|
end
|
|
76
60
|
|
|
77
61
|
let(:object) do
|
|
78
|
-
|
|
62
|
+
BSON::ObjectId.new
|
|
79
63
|
end
|
|
80
64
|
|
|
81
|
-
|
|
82
|
-
|
|
65
|
+
before do
|
|
66
|
+
expect(Person).to receive(:where).with(association.primary_key => object).and_call_original
|
|
83
67
|
end
|
|
84
68
|
|
|
85
|
-
|
|
86
|
-
expect(
|
|
69
|
+
it 'returns nil' do
|
|
70
|
+
expect(document).to be_nil
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
context "when the object is an integer" do
|
|
75
|
+
|
|
76
|
+
let!(:person) do
|
|
77
|
+
Person.create(_id: object)
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
let(:object) do
|
|
81
|
+
666
|
|
87
82
|
end
|
|
88
83
|
|
|
89
|
-
|
|
90
|
-
|
|
84
|
+
before do
|
|
85
|
+
expect(Person).to receive(:where).with(association.primary_key => object).and_call_original
|
|
91
86
|
end
|
|
92
87
|
|
|
93
88
|
it "sets the document" do
|
|
@@ -98,50 +93,22 @@ describe Mongoid::Relations::Builders::Referenced::In do
|
|
|
98
93
|
|
|
99
94
|
context "when provided a object" do
|
|
100
95
|
|
|
101
|
-
let(:
|
|
102
|
-
Person.
|
|
96
|
+
let!(:person) do
|
|
97
|
+
Person.create
|
|
103
98
|
end
|
|
104
99
|
|
|
105
|
-
let(:
|
|
106
|
-
|
|
100
|
+
let(:object) do
|
|
101
|
+
Person.new
|
|
107
102
|
end
|
|
108
103
|
|
|
109
|
-
|
|
110
|
-
|
|
104
|
+
before do
|
|
105
|
+
expect(Person).not_to receive(:where)
|
|
111
106
|
end
|
|
112
107
|
|
|
113
108
|
it "returns the object" do
|
|
114
109
|
expect(document).to eq(object)
|
|
115
110
|
end
|
|
116
111
|
end
|
|
117
|
-
end
|
|
118
|
-
|
|
119
|
-
describe "#build" do
|
|
120
|
-
|
|
121
|
-
let(:game) do
|
|
122
|
-
Game.new
|
|
123
|
-
end
|
|
124
|
-
|
|
125
|
-
context "when no document found in the database" do
|
|
126
|
-
|
|
127
|
-
context "when the id is nil" do
|
|
128
|
-
|
|
129
|
-
it "returns nil" do
|
|
130
|
-
expect(game.person).to be_nil
|
|
131
|
-
end
|
|
132
|
-
end
|
|
133
|
-
|
|
134
|
-
context "when the id is incorrect" do
|
|
135
|
-
|
|
136
|
-
before do
|
|
137
|
-
game.person_id = BSON::ObjectId.new
|
|
138
|
-
end
|
|
139
|
-
|
|
140
|
-
it "returns nil" do
|
|
141
|
-
expect(game.person).to be_nil
|
|
142
|
-
end
|
|
143
|
-
end
|
|
144
|
-
end
|
|
145
112
|
|
|
146
113
|
context "when the document is persisted" do
|
|
147
114
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
require "spec_helper"
|
|
2
2
|
|
|
3
|
-
describe Mongoid::
|
|
3
|
+
describe Mongoid::Association::Referenced::BelongsTo::Eager do
|
|
4
4
|
|
|
5
5
|
describe ".grouped_docs" do
|
|
6
6
|
|
|
@@ -12,13 +12,13 @@ describe Mongoid::Relations::Eager::BelongsTo do
|
|
|
12
12
|
Person.create!
|
|
13
13
|
end
|
|
14
14
|
|
|
15
|
-
let(:
|
|
15
|
+
let(:association) do
|
|
16
16
|
Post.reflect_on_association(:person)
|
|
17
17
|
end
|
|
18
18
|
|
|
19
19
|
let(:eager) do
|
|
20
|
-
described_class.new([
|
|
21
|
-
b.
|
|
20
|
+
described_class.new([association], docs).tap do |b|
|
|
21
|
+
b.send(:shift_association)
|
|
22
22
|
end
|
|
23
23
|
end
|
|
24
24
|
|
|
@@ -27,7 +27,7 @@ describe Mongoid::Relations::Eager::BelongsTo do
|
|
|
27
27
|
end
|
|
28
28
|
|
|
29
29
|
it "aggregates by the parent id" do
|
|
30
|
-
expect(eager.grouped_docs.keys).to eq([person.id])
|
|
30
|
+
expect(eager.send(:grouped_docs).keys).to eq([person.id])
|
|
31
31
|
end
|
|
32
32
|
end
|
|
33
33
|
|
|
@@ -41,13 +41,13 @@ describe Mongoid::Relations::Eager::BelongsTo do
|
|
|
41
41
|
Person.create!
|
|
42
42
|
end
|
|
43
43
|
|
|
44
|
-
let(:
|
|
44
|
+
let(:association) do
|
|
45
45
|
Post.reflect_on_association(:person)
|
|
46
46
|
end
|
|
47
47
|
|
|
48
48
|
let(:eager) do
|
|
49
|
-
described_class.new([
|
|
50
|
-
b.
|
|
49
|
+
described_class.new([association], docs).tap do |b|
|
|
50
|
+
b.send(:shift_association)
|
|
51
51
|
end
|
|
52
52
|
end
|
|
53
53
|
|
|
@@ -59,7 +59,7 @@ describe Mongoid::Relations::Eager::BelongsTo do
|
|
|
59
59
|
docs.each do |doc|
|
|
60
60
|
expect(doc).to receive(:set_relation).with(:person, :foo)
|
|
61
61
|
end
|
|
62
|
-
eager.set_on_parent
|
|
62
|
+
eager.send(:set_on_parent, person.id, :foo)
|
|
63
63
|
end
|
|
64
64
|
end
|
|
65
65
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
require "spec_helper"
|
|
2
2
|
|
|
3
|
-
describe Mongoid::
|
|
3
|
+
describe Mongoid::Association::Referenced::BelongsTo::Proxy do
|
|
4
4
|
|
|
5
5
|
before(:all) do
|
|
6
6
|
Person.reset_callbacks(:validate)
|
|
@@ -78,8 +78,8 @@ describe Mongoid::Relations::Referenced::In do
|
|
|
78
78
|
expect(address.account).to eq(account)
|
|
79
79
|
end
|
|
80
80
|
|
|
81
|
-
it "does not erase the metadata" do
|
|
82
|
-
expect(address.
|
|
81
|
+
it "does not erase the association metadata" do
|
|
82
|
+
expect(address._association).to_not be_nil
|
|
83
83
|
end
|
|
84
84
|
|
|
85
85
|
it "allows saving of the embedded document" do
|
|
@@ -106,7 +106,7 @@ describe Mongoid::Relations::Referenced::In do
|
|
|
106
106
|
end
|
|
107
107
|
|
|
108
108
|
it "sets the target of the relation" do
|
|
109
|
-
expect(game.person.
|
|
109
|
+
expect(game.person._target).to eq(person)
|
|
110
110
|
end
|
|
111
111
|
|
|
112
112
|
it "sets the foreign key on the relation" do
|
|
@@ -141,7 +141,7 @@ describe Mongoid::Relations::Referenced::In do
|
|
|
141
141
|
end
|
|
142
142
|
|
|
143
143
|
it "sets the target of the relation" do
|
|
144
|
-
expect(game.person.
|
|
144
|
+
expect(game.person._target).to eq(person)
|
|
145
145
|
end
|
|
146
146
|
|
|
147
147
|
it "sets the foreign key of the relation" do
|
|
@@ -203,7 +203,7 @@ describe Mongoid::Relations::Referenced::In do
|
|
|
203
203
|
end
|
|
204
204
|
|
|
205
205
|
it "sets the target of the relation" do
|
|
206
|
-
expect(rating.ratable.
|
|
206
|
+
expect(rating.ratable._target).to eq(bar)
|
|
207
207
|
end
|
|
208
208
|
|
|
209
209
|
it "sets the foreign key on the relation" do
|
|
@@ -238,7 +238,7 @@ describe Mongoid::Relations::Referenced::In do
|
|
|
238
238
|
end
|
|
239
239
|
|
|
240
240
|
it "sets the target of the relation" do
|
|
241
|
-
expect(rating.ratable.
|
|
241
|
+
expect(rating.ratable._target).to eq(bar)
|
|
242
242
|
end
|
|
243
243
|
|
|
244
244
|
it "sets the foreign key of the relation" do
|
|
@@ -317,7 +317,7 @@ describe Mongoid::Relations::Referenced::In do
|
|
|
317
317
|
end
|
|
318
318
|
|
|
319
319
|
it "sets the target of the relation" do
|
|
320
|
-
expect(post.person.
|
|
320
|
+
expect(post.person._target).to eq(person)
|
|
321
321
|
end
|
|
322
322
|
|
|
323
323
|
it "sets the foreign key on the relation" do
|
|
@@ -344,7 +344,7 @@ describe Mongoid::Relations::Referenced::In do
|
|
|
344
344
|
end
|
|
345
345
|
|
|
346
346
|
it "sets the target of the relation" do
|
|
347
|
-
expect(post.person.
|
|
347
|
+
expect(post.person._target).to eq(person)
|
|
348
348
|
end
|
|
349
349
|
|
|
350
350
|
it "sets the foreign key of the relation" do
|
|
@@ -388,7 +388,7 @@ describe Mongoid::Relations::Referenced::In do
|
|
|
388
388
|
|
|
389
389
|
it "should assign as expected" do
|
|
390
390
|
eye.suspended_in = eye_bowl
|
|
391
|
-
expect(eye.suspended_in.
|
|
391
|
+
expect(eye.suspended_in._target).to eq(eye_bowl)
|
|
392
392
|
end
|
|
393
393
|
end
|
|
394
394
|
|
|
@@ -409,7 +409,7 @@ describe Mongoid::Relations::Referenced::In do
|
|
|
409
409
|
end
|
|
410
410
|
|
|
411
411
|
it "sets the target of the relation" do
|
|
412
|
-
expect(rating.ratable.
|
|
412
|
+
expect(rating.ratable._target).to eq(movie)
|
|
413
413
|
end
|
|
414
414
|
|
|
415
415
|
it "sets the foreign key on the relation" do
|
|
@@ -436,7 +436,7 @@ describe Mongoid::Relations::Referenced::In do
|
|
|
436
436
|
end
|
|
437
437
|
|
|
438
438
|
it "sets the target of the relation" do
|
|
439
|
-
expect(rating.ratable.
|
|
439
|
+
expect(rating.ratable._target).to eq(movie)
|
|
440
440
|
end
|
|
441
441
|
|
|
442
442
|
it "sets the foreign key of the relation" do
|
|
@@ -470,6 +470,13 @@ describe Mongoid::Relations::Referenced::In do
|
|
|
470
470
|
|
|
471
471
|
context "when relation is has_one" do
|
|
472
472
|
|
|
473
|
+
around(:each) do |example|
|
|
474
|
+
original_account_dependents = Account.dependents
|
|
475
|
+
Account.dependents = []
|
|
476
|
+
example.run
|
|
477
|
+
Account.dependents = original_account_dependents
|
|
478
|
+
end
|
|
479
|
+
|
|
473
480
|
before do
|
|
474
481
|
Account.belongs_to :person, dependent: :destroy
|
|
475
482
|
Person.has_one :account
|
|
@@ -514,6 +521,13 @@ describe Mongoid::Relations::Referenced::In do
|
|
|
514
521
|
|
|
515
522
|
context "when relation is has_many" do
|
|
516
523
|
|
|
524
|
+
around(:each) do |example|
|
|
525
|
+
original_drug_dependents = Drug.dependents
|
|
526
|
+
Drug.dependents = []
|
|
527
|
+
example.run
|
|
528
|
+
Drug.dependents = original_drug_dependents
|
|
529
|
+
end
|
|
530
|
+
|
|
517
531
|
before do
|
|
518
532
|
Drug.belongs_to :person, dependent: :destroy
|
|
519
533
|
Person.has_many :drugs
|
|
@@ -562,8 +576,15 @@ describe Mongoid::Relations::Referenced::In do
|
|
|
562
576
|
|
|
563
577
|
context "when relation is has_one" do
|
|
564
578
|
|
|
579
|
+
around(:each) do |example|
|
|
580
|
+
original_account_dependents = Account.dependents
|
|
581
|
+
Account.dependents = []
|
|
582
|
+
example.run
|
|
583
|
+
Account.dependents = original_account_dependents
|
|
584
|
+
end
|
|
585
|
+
|
|
565
586
|
before do
|
|
566
|
-
Account.belongs_to :person, dependent: :
|
|
587
|
+
Account.belongs_to :person, dependent: :delete_all
|
|
567
588
|
Person.has_one :account
|
|
568
589
|
person.account = account
|
|
569
590
|
person.save
|
|
@@ -595,8 +616,15 @@ describe Mongoid::Relations::Referenced::In do
|
|
|
595
616
|
|
|
596
617
|
context "when relation is has_many" do
|
|
597
618
|
|
|
619
|
+
around(:each) do |example|
|
|
620
|
+
original_drug_dependents = Drug.dependents
|
|
621
|
+
Drug.dependents = []
|
|
622
|
+
example.run
|
|
623
|
+
Drug.dependents = original_drug_dependents
|
|
624
|
+
end
|
|
625
|
+
|
|
598
626
|
before do
|
|
599
|
-
Drug.belongs_to :person, dependent: :
|
|
627
|
+
Drug.belongs_to :person, dependent: :delete_all
|
|
600
628
|
Person.has_many :drugs
|
|
601
629
|
person.drugs = [drug]
|
|
602
630
|
person.save
|
|
@@ -643,6 +671,13 @@ describe Mongoid::Relations::Referenced::In do
|
|
|
643
671
|
|
|
644
672
|
context "when relation is has_one" do
|
|
645
673
|
|
|
674
|
+
around(:each) do |example|
|
|
675
|
+
original_account_dependents = Account.dependents
|
|
676
|
+
Account.dependents = []
|
|
677
|
+
example.run
|
|
678
|
+
Account.dependents = original_account_dependents
|
|
679
|
+
end
|
|
680
|
+
|
|
646
681
|
before do
|
|
647
682
|
Account.belongs_to :person, dependent: :nullify
|
|
648
683
|
Person.has_one :account
|
|
@@ -675,6 +710,13 @@ describe Mongoid::Relations::Referenced::In do
|
|
|
675
710
|
|
|
676
711
|
context "when relation is has_many" do
|
|
677
712
|
|
|
713
|
+
around(:each) do |example|
|
|
714
|
+
original_drug_dependents = Drug.dependents
|
|
715
|
+
Drug.dependents = []
|
|
716
|
+
example.run
|
|
717
|
+
Drug.dependents = original_drug_dependents
|
|
718
|
+
end
|
|
719
|
+
|
|
678
720
|
before do
|
|
679
721
|
Drug.belongs_to :person, dependent: :nullify
|
|
680
722
|
Person.has_many :drugs
|
|
@@ -980,48 +1022,6 @@ describe Mongoid::Relations::Referenced::In do
|
|
|
980
1022
|
end
|
|
981
1023
|
end
|
|
982
1024
|
|
|
983
|
-
describe ".builder" do
|
|
984
|
-
|
|
985
|
-
let(:builder_klass) do
|
|
986
|
-
Mongoid::Relations::Builders::Referenced::In
|
|
987
|
-
end
|
|
988
|
-
|
|
989
|
-
let(:document) do
|
|
990
|
-
double
|
|
991
|
-
end
|
|
992
|
-
|
|
993
|
-
let(:metadata) do
|
|
994
|
-
double(extension?: false)
|
|
995
|
-
end
|
|
996
|
-
|
|
997
|
-
it "returns the embedded in builder" do
|
|
998
|
-
expect(
|
|
999
|
-
described_class.builder(nil, metadata, document)
|
|
1000
|
-
).to be_a_kind_of(builder_klass)
|
|
1001
|
-
end
|
|
1002
|
-
end
|
|
1003
|
-
|
|
1004
|
-
describe ".embedded?" do
|
|
1005
|
-
|
|
1006
|
-
it "returns false" do
|
|
1007
|
-
expect(described_class).to_not be_embedded
|
|
1008
|
-
end
|
|
1009
|
-
end
|
|
1010
|
-
|
|
1011
|
-
describe ".foreign_key_suffix" do
|
|
1012
|
-
|
|
1013
|
-
it "returns _id" do
|
|
1014
|
-
expect(described_class.foreign_key_suffix).to eq("_id")
|
|
1015
|
-
end
|
|
1016
|
-
end
|
|
1017
|
-
|
|
1018
|
-
describe ".macro" do
|
|
1019
|
-
|
|
1020
|
-
it "returns belongs_to" do
|
|
1021
|
-
expect(described_class.macro).to eq(:belongs_to)
|
|
1022
|
-
end
|
|
1023
|
-
end
|
|
1024
|
-
|
|
1025
1025
|
describe "#respond_to?" do
|
|
1026
1026
|
|
|
1027
1027
|
let(:person) do
|
|
@@ -1047,40 +1047,6 @@ describe Mongoid::Relations::Referenced::In do
|
|
|
1047
1047
|
end
|
|
1048
1048
|
end
|
|
1049
1049
|
|
|
1050
|
-
describe ".stores_foreign_key?" do
|
|
1051
|
-
|
|
1052
|
-
it "returns true" do
|
|
1053
|
-
expect(described_class.stores_foreign_key?).to be true
|
|
1054
|
-
end
|
|
1055
|
-
end
|
|
1056
|
-
|
|
1057
|
-
describe ".valid_options" do
|
|
1058
|
-
|
|
1059
|
-
it "returns the valid options" do
|
|
1060
|
-
expect(described_class.valid_options).to eq(
|
|
1061
|
-
[
|
|
1062
|
-
:autobuild,
|
|
1063
|
-
:autosave,
|
|
1064
|
-
:dependent,
|
|
1065
|
-
:foreign_key,
|
|
1066
|
-
:index,
|
|
1067
|
-
:polymorphic,
|
|
1068
|
-
:primary_key,
|
|
1069
|
-
:touch,
|
|
1070
|
-
:optional,
|
|
1071
|
-
:required
|
|
1072
|
-
]
|
|
1073
|
-
)
|
|
1074
|
-
end
|
|
1075
|
-
end
|
|
1076
|
-
|
|
1077
|
-
describe ".validation_default" do
|
|
1078
|
-
|
|
1079
|
-
it "returns false" do
|
|
1080
|
-
expect(described_class.validation_default).to be false
|
|
1081
|
-
end
|
|
1082
|
-
end
|
|
1083
|
-
|
|
1084
1050
|
context "when the relation is self referencing" do
|
|
1085
1051
|
|
|
1086
1052
|
let(:game_one) do
|
|
@@ -1280,7 +1246,7 @@ describe Mongoid::Relations::Referenced::In do
|
|
|
1280
1246
|
|
|
1281
1247
|
before do
|
|
1282
1248
|
Person.collection.find({ _id: person_one.id }).
|
|
1283
|
-
|
|
1249
|
+
update_one({ "$set" => { title: "Madam" }})
|
|
1284
1250
|
end
|
|
1285
1251
|
|
|
1286
1252
|
let(:reloaded) do
|