mongoid 6.4.2 → 7.0.3
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 +4 -4
- data/README.md +1 -1
- data/lib/config/locales/en.yml +17 -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 +137 -0
- data/lib/mongoid/{relations/eager.rb → association/eager_loadable.rb} +11 -11
- data/lib/mongoid/{relations → association}/embedded/batchable.rb +19 -19
- data/lib/mongoid/association/embedded/cyclic.rb +109 -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/embedded_in.rb +154 -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 +552 -0
- data/lib/mongoid/association/embedded/embeds_many.rb +210 -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/embedded/embeds_one.rb +173 -0
- data/lib/mongoid/association/embedded.rb +4 -0
- data/lib/mongoid/association/macros.rb +204 -0
- data/lib/mongoid/{relations → association}/many.rb +19 -49
- data/lib/mongoid/{relations → association}/marshalable.rb +6 -4
- 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/association/nested.rb +15 -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/auto_save.rb +79 -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/belongs_to.rb +248 -0
- data/lib/mongoid/association/referenced/counter_cache.rb +163 -0
- data/lib/mongoid/association/referenced/eager.rb +162 -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 +312 -0
- data/lib/mongoid/association/referenced/has_and_belongs_to_many.rb +290 -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 +510 -0
- data/lib/mongoid/association/referenced/has_many/proxy.rb +578 -0
- data/lib/mongoid/association/referenced/has_many.rb +275 -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/has_one.rb +204 -0
- data/lib/mongoid/association/referenced/syncable.rb +170 -0
- data/lib/mongoid/association/referenced.rb +7 -0
- data/lib/mongoid/{relations → association}/reflections.rb +21 -17
- data/lib/mongoid/association/relatable.rb +509 -0
- data/lib/mongoid/{relations.rb → association.rb} +57 -56
- data/lib/mongoid/atomic/paths/embedded/many.rb +1 -1
- data/lib/mongoid/atomic/paths/embedded/one.rb +1 -1
- data/lib/mongoid/atomic.rb +4 -4
- data/lib/mongoid/attributes/dynamic.rb +2 -2
- data/lib/mongoid/attributes/nested.rb +22 -11
- data/lib/mongoid/attributes/processing.rb +2 -2
- data/lib/mongoid/attributes/readonly.rb +2 -4
- data/lib/mongoid/attributes.rb +22 -13
- data/lib/mongoid/changeable.rb +1 -1
- data/lib/mongoid/clients/options.rb +7 -5
- data/lib/mongoid/composable.rb +4 -4
- data/lib/mongoid/config.rb +1 -0
- data/lib/mongoid/contextual/atomic.rb +1 -1
- data/lib/mongoid/contextual/geo_near.rb +1 -1
- data/lib/mongoid/contextual/memory.rb +21 -3
- data/lib/mongoid/contextual/mongo.rb +10 -8
- data/lib/mongoid/copyable.rb +7 -6
- data/lib/mongoid/criteria/includable.rb +14 -14
- data/lib/mongoid/criteria/modifiable.rb +8 -14
- data/lib/mongoid/criteria/options.rb +2 -2
- data/lib/mongoid/criteria/queryable/extensions/string.rb +1 -1
- data/lib/mongoid/criteria/queryable/pipeline.rb +10 -5
- data/lib/mongoid/criteria/queryable/selectable.rb +37 -7
- data/lib/mongoid/criteria.rb +2 -2
- data/lib/mongoid/document.rb +15 -6
- 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/errors.rb +3 -0
- data/lib/mongoid/extensions/array.rb +5 -5
- data/lib/mongoid/extensions/big_decimal.rb +1 -1
- data/lib/mongoid/extensions/hash.rb +5 -2
- data/lib/mongoid/extensions/object.rb +4 -4
- data/lib/mongoid/extensions/range.rb +1 -0
- data/lib/mongoid/extensions/regexp.rb +1 -0
- data/lib/mongoid/extensions.rb +0 -4
- data/lib/mongoid/factory.rb +13 -3
- 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/fields.rb +3 -3
- data/lib/mongoid/indexable.rb +4 -1
- data/lib/mongoid/interceptable.rb +5 -5
- data/lib/mongoid/matchable/and.rb +1 -1
- data/lib/mongoid/matchable/elem_match.rb +9 -3
- data/lib/mongoid/matchable/eq.rb +22 -0
- data/lib/mongoid/matchable/ne.rb +1 -1
- data/lib/mongoid/matchable.rb +3 -1
- data/lib/mongoid/persistable/deletable.rb +7 -6
- data/lib/mongoid/persistable/incrementable.rb +1 -1
- data/lib/mongoid/persistable/logical.rb +1 -1
- data/lib/mongoid/persistable/settable.rb +57 -12
- data/lib/mongoid/persistable.rb +4 -5
- data/lib/mongoid/persistence_context.rb +20 -5
- data/lib/mongoid/query_cache.rb +8 -4
- data/lib/mongoid/railtie.rb +17 -0
- data/lib/mongoid/railties/controller_runtime.rb +86 -0
- data/lib/mongoid/scopable.rb +3 -3
- data/lib/mongoid/serializable.rb +4 -4
- data/lib/mongoid/shardable.rb +1 -1
- data/lib/mongoid/threaded.rb +36 -0
- data/lib/mongoid/touchable.rb +102 -0
- data/lib/mongoid/traversable.rb +3 -3
- data/lib/mongoid/validatable/presence.rb +2 -2
- data/lib/mongoid/validatable/uniqueness.rb +4 -4
- data/lib/mongoid/validatable.rb +8 -8
- data/lib/mongoid/version.rb +1 -1
- data/lib/rails/generators/mongoid/config/templates/mongoid.yml +3 -0
- data/spec/app/models/animal.rb +2 -1
- data/spec/app/models/bomb.rb +1 -1
- data/spec/app/models/message.rb +1 -1
- data/spec/app/models/minim.rb +7 -0
- data/spec/app/models/person.rb +5 -2
- data/spec/app/models/shipment_address.rb +1 -0
- data/spec/app/models/store_as_dup_test3.rb +7 -0
- data/spec/app/models/store_as_dup_test4.rb +7 -0
- data/spec/app/models/updatable.rb +7 -0
- data/spec/app/models/vertex.rb +6 -0
- data/spec/app/models/wiki_page.rb +1 -1
- data/spec/config/mongoid.yml +13 -3
- data/spec/integration/associations/belongs_to_spec.rb +13 -0
- data/spec/lite_spec_helper.rb +56 -0
- data/spec/mongoid/{relations → association}/accessors_spec.rb +40 -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 +866 -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/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} +124 -182
- 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 -73
- 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 +66 -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} +33 -14
- 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 +2006 -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} +26 -7
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_persistence_spec.rb +56 -0
- 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_models.rb +26 -0
- 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} +26 -11
- data/spec/mongoid/{relations/targets → association/referenced/has_many}/enumerable_spec.rb +122 -1
- data/spec/mongoid/association/referenced/has_many/proxy_query_spec.rb +23 -0
- data/spec/mongoid/{relations/referenced/many_spec.rb → association/referenced/has_many/proxy_spec.rb} +28 -93
- data/spec/mongoid/association/referenced/has_many_models.rb +37 -0
- 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_models.rb +48 -0
- data/spec/mongoid/association/referenced/has_one_spec.rb +1350 -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_spec.rb → association_spec.rb} +1 -1
- data/spec/mongoid/atomic/modifiers_spec.rb +2 -2
- data/spec/mongoid/atomic_spec.rb +4 -4
- data/spec/mongoid/attributes/nested_spec.rb +29 -11
- data/spec/mongoid/attributes/readonly_spec.rb +80 -125
- data/spec/mongoid/attributes_spec.rb +38 -2
- data/spec/mongoid/clients/factory_spec.rb +24 -18
- data/spec/mongoid/clients/options_spec.rb +58 -44
- data/spec/mongoid/clients/sessions_spec.rb +1 -1
- data/spec/mongoid/clients/transactions_spec.rb +369 -0
- data/spec/mongoid/clients_spec.rb +68 -8
- data/spec/mongoid/config_spec.rb +27 -1
- data/spec/mongoid/contextual/memory_spec.rb +19 -0
- data/spec/mongoid/contextual/mongo_spec.rb +33 -5
- data/spec/mongoid/copyable_spec.rb +90 -6
- data/spec/mongoid/copyable_spec_models.rb +17 -0
- 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/extensions/string_spec.rb +43 -0
- data/spec/mongoid/criteria/queryable/pipeline_spec.rb +12 -0
- data/spec/mongoid/criteria/queryable/selectable_spec.rb +42 -3
- data/spec/mongoid/criteria/queryable/selector_spec.rb +2 -2
- data/spec/mongoid/criteria/scopable_spec.rb +81 -0
- data/spec/mongoid/criteria_spec.rb +33 -18
- data/spec/mongoid/document_spec.rb +83 -4
- data/spec/mongoid/extensions/array_spec.rb +11 -15
- data/spec/mongoid/extensions/big_decimal_spec.rb +9 -9
- data/spec/mongoid/extensions/hash_spec.rb +18 -1
- 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 +23 -0
- data/spec/mongoid/factory_spec.rb +19 -1
- 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 +22 -1
- data/spec/mongoid/matchable/elem_match_spec.rb +20 -0
- data/spec/mongoid/matchable/eq_spec.rb +48 -0
- data/spec/mongoid/persistable/incrementable_spec.rb +6 -6
- data/spec/mongoid/persistable/savable_spec.rb +2 -2
- data/spec/mongoid/persistable/settable_spec.rb +95 -10
- data/spec/mongoid/persistable_spec.rb +21 -6
- data/spec/mongoid/persistence_context_spec.rb +1 -1
- data/spec/mongoid/query_cache_spec.rb +61 -22
- data/spec/mongoid/relations/proxy_spec.rb +124 -124
- data/spec/mongoid/scopable_spec.rb +13 -0
- data/spec/mongoid/shardable_spec.rb +32 -12
- data/spec/mongoid/threaded_spec.rb +68 -0
- data/spec/mongoid/{relations/touchable_spec.rb → touchable_spec.rb} +40 -1
- 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/rails/controller_extension/controller_runtime_spec.rb +110 -0
- data/spec/spec_helper.rb +51 -25
- data/spec/support/constraints.rb +101 -0
- data/spec/support/macros.rb +20 -0
- data/spec/support/spec_config.rb +39 -0
- metadata +602 -582
- checksums.yaml.gz.sig +0 -2
- data/lib/mongoid/relations/accessors.rb +0 -267
- data/lib/mongoid/relations/auto_save.rb +0 -94
- 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/bindings.rb +0 -9
- data/lib/mongoid/relations/builder.rb +0 -57
- 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/builders.rb +0 -106
- 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/cascading.rb +0 -56
- 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/enumerable.rb +0 -493
- data/lib/mongoid/relations/targets.rb +0 -2
- data/lib/mongoid/relations/touchable.rb +0 -97
- 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/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.tar.gz.sig +0 -0
- metadata.gz.sig +0 -0
- /data/spec/mongoid/{relations → association}/embedded/dirty_spec.rb +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
require "spec_helper"
|
|
2
2
|
|
|
3
|
-
describe Mongoid::
|
|
3
|
+
describe Mongoid::Association::Macros do
|
|
4
4
|
|
|
5
5
|
class TestClass
|
|
6
6
|
include Mongoid::Document
|
|
@@ -65,7 +65,7 @@ describe Mongoid::Relations::Macros do
|
|
|
65
65
|
klass.embedded_in(:person)
|
|
66
66
|
end
|
|
67
67
|
|
|
68
|
-
it "adds the
|
|
68
|
+
it "adds the association to the klass" do
|
|
69
69
|
expect(klass.relations["person"]).to_not be_nil
|
|
70
70
|
end
|
|
71
71
|
|
|
@@ -78,8 +78,8 @@ describe Mongoid::Relations::Macros do
|
|
|
78
78
|
end
|
|
79
79
|
|
|
80
80
|
it "creates the correct relation" do
|
|
81
|
-
expect(klass.relations["person"]
|
|
82
|
-
Mongoid::
|
|
81
|
+
expect(klass.relations["person"]).to be_a(
|
|
82
|
+
Mongoid::Association::Embedded::EmbeddedIn
|
|
83
83
|
)
|
|
84
84
|
end
|
|
85
85
|
|
|
@@ -87,18 +87,27 @@ describe Mongoid::Relations::Macros do
|
|
|
87
87
|
expect(klass._validators).to be_empty
|
|
88
88
|
end
|
|
89
89
|
|
|
90
|
-
context
|
|
90
|
+
context 'when an invalid option is provided' do
|
|
91
91
|
|
|
92
|
-
|
|
92
|
+
it 'raises an InvalidRelationOption exception' do
|
|
93
|
+
expect {
|
|
94
|
+
klass.embedded_in(:person, sandwich: true)
|
|
95
|
+
}.to raise_exception(Mongoid::Errors::InvalidRelationOption)
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
context "association properties" do
|
|
100
|
+
|
|
101
|
+
let(:association) do
|
|
93
102
|
klass.relations["person"]
|
|
94
103
|
end
|
|
95
104
|
|
|
96
105
|
it "automatically adds the name" do
|
|
97
|
-
expect(
|
|
106
|
+
expect(association.name).to eq(:person)
|
|
98
107
|
end
|
|
99
108
|
|
|
100
109
|
it "automatically adds the inverse class name" do
|
|
101
|
-
expect(
|
|
110
|
+
expect(association.inverse_class_name).to eq("TestClass")
|
|
102
111
|
end
|
|
103
112
|
end
|
|
104
113
|
end
|
|
@@ -129,7 +138,7 @@ describe Mongoid::Relations::Macros do
|
|
|
129
138
|
klass.embeds_many(:addresses)
|
|
130
139
|
end
|
|
131
140
|
|
|
132
|
-
it "adds the
|
|
141
|
+
it "adds the association to the klass" do
|
|
133
142
|
expect(klass.relations["addresses"]).to_not be_nil
|
|
134
143
|
end
|
|
135
144
|
|
|
@@ -142,8 +151,8 @@ describe Mongoid::Relations::Macros do
|
|
|
142
151
|
end
|
|
143
152
|
|
|
144
153
|
it "creates the correct relation" do
|
|
145
|
-
expect(klass.relations["addresses"]
|
|
146
|
-
Mongoid::
|
|
154
|
+
expect(klass.relations["addresses"]).to be_a(
|
|
155
|
+
Mongoid::Association::Embedded::EmbedsMany
|
|
147
156
|
)
|
|
148
157
|
end
|
|
149
158
|
|
|
@@ -153,18 +162,27 @@ describe Mongoid::Relations::Macros do
|
|
|
153
162
|
)
|
|
154
163
|
end
|
|
155
164
|
|
|
156
|
-
context
|
|
165
|
+
context 'when an invalid option is provided' do
|
|
157
166
|
|
|
158
|
-
|
|
167
|
+
it 'raises an InvalidRelationOption exception' do
|
|
168
|
+
expect {
|
|
169
|
+
klass.embeds_many(:addresses, sandwich: true)
|
|
170
|
+
}.to raise_exception(Mongoid::Errors::InvalidRelationOption)
|
|
171
|
+
end
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
context "association properties" do
|
|
175
|
+
|
|
176
|
+
let(:association) do
|
|
159
177
|
klass.relations["addresses"]
|
|
160
178
|
end
|
|
161
179
|
|
|
162
180
|
it "automatically adds the name" do
|
|
163
|
-
expect(
|
|
181
|
+
expect(association.name).to eq(:addresses)
|
|
164
182
|
end
|
|
165
183
|
|
|
166
184
|
it "automatically adds the inverse class name" do
|
|
167
|
-
expect(
|
|
185
|
+
expect(association.inverse_class_name).to eq("TestClass")
|
|
168
186
|
end
|
|
169
187
|
end
|
|
170
188
|
end
|
|
@@ -175,16 +193,16 @@ describe Mongoid::Relations::Macros do
|
|
|
175
193
|
klass.embeds_many(:addresses, order: :number.asc)
|
|
176
194
|
end
|
|
177
195
|
|
|
178
|
-
let(:
|
|
196
|
+
let(:association) do
|
|
179
197
|
klass.relations["addresses"]
|
|
180
198
|
end
|
|
181
199
|
|
|
182
|
-
it "adds
|
|
183
|
-
expect(
|
|
200
|
+
it "adds association to klass" do
|
|
201
|
+
expect(association.order).to_not be_nil
|
|
184
202
|
end
|
|
185
203
|
|
|
186
204
|
it "returns Mongoid::Criteria::Queryable::Key" do
|
|
187
|
-
expect(
|
|
205
|
+
expect(association.order).to be_kind_of(Mongoid::Criteria::Queryable::Key)
|
|
188
206
|
end
|
|
189
207
|
end
|
|
190
208
|
|
|
@@ -225,7 +243,7 @@ describe Mongoid::Relations::Macros do
|
|
|
225
243
|
klass.embeds_one(:name)
|
|
226
244
|
end
|
|
227
245
|
|
|
228
|
-
it "adds the
|
|
246
|
+
it "adds the association to the klass" do
|
|
229
247
|
expect(klass.relations["name"]).to_not be_nil
|
|
230
248
|
end
|
|
231
249
|
|
|
@@ -246,8 +264,8 @@ describe Mongoid::Relations::Macros do
|
|
|
246
264
|
end
|
|
247
265
|
|
|
248
266
|
it "creates the correct relation" do
|
|
249
|
-
expect(klass.relations["name"]
|
|
250
|
-
Mongoid::
|
|
267
|
+
expect(klass.relations["name"]).to be_a(
|
|
268
|
+
Mongoid::Association::Embedded::EmbedsOne
|
|
251
269
|
)
|
|
252
270
|
end
|
|
253
271
|
|
|
@@ -257,18 +275,27 @@ describe Mongoid::Relations::Macros do
|
|
|
257
275
|
)
|
|
258
276
|
end
|
|
259
277
|
|
|
260
|
-
context
|
|
278
|
+
context 'when an invalid option is provided' do
|
|
279
|
+
|
|
280
|
+
it 'raises an InvalidRelationOption exception' do
|
|
281
|
+
expect {
|
|
282
|
+
klass.embeds_one(:name, sandwich: true)
|
|
283
|
+
}.to raise_exception(Mongoid::Errors::InvalidRelationOption)
|
|
284
|
+
end
|
|
285
|
+
end
|
|
286
|
+
|
|
287
|
+
context "association properties" do
|
|
261
288
|
|
|
262
|
-
let(:
|
|
289
|
+
let(:association) do
|
|
263
290
|
klass.relations["name"]
|
|
264
291
|
end
|
|
265
292
|
|
|
266
293
|
it "automatically adds the name" do
|
|
267
|
-
expect(
|
|
294
|
+
expect(association.name).to eq(:name)
|
|
268
295
|
end
|
|
269
296
|
|
|
270
297
|
it "automatically adds the inverse class name" do
|
|
271
|
-
expect(
|
|
298
|
+
expect(association.inverse_class_name).to eq("TestClass")
|
|
272
299
|
end
|
|
273
300
|
end
|
|
274
301
|
end
|
|
@@ -328,6 +355,15 @@ describe Mongoid::Relations::Macros do
|
|
|
328
355
|
|
|
329
356
|
context 'when the relation has options' do
|
|
330
357
|
|
|
358
|
+
context 'when an invalid option is provided' do
|
|
359
|
+
|
|
360
|
+
it 'raises an InvalidRelationOption exception' do
|
|
361
|
+
expect {
|
|
362
|
+
klass.belongs_to(:person, sandwich: true)
|
|
363
|
+
}.to raise_exception(Mongoid::Errors::InvalidRelationOption)
|
|
364
|
+
end
|
|
365
|
+
end
|
|
366
|
+
|
|
331
367
|
context 'when the relation has the option :required' do
|
|
332
368
|
|
|
333
369
|
context 'when the relation does not have the :optional option' do
|
|
@@ -620,7 +656,7 @@ describe Mongoid::Relations::Macros do
|
|
|
620
656
|
klass.belongs_to(:person)
|
|
621
657
|
end
|
|
622
658
|
|
|
623
|
-
it "adds the
|
|
659
|
+
it "adds the association to the klass" do
|
|
624
660
|
expect(klass.relations["person"]).to_not be_nil
|
|
625
661
|
end
|
|
626
662
|
|
|
@@ -641,8 +677,8 @@ describe Mongoid::Relations::Macros do
|
|
|
641
677
|
end
|
|
642
678
|
|
|
643
679
|
it "creates the correct relation" do
|
|
644
|
-
expect(klass.relations["person"]
|
|
645
|
-
Mongoid::
|
|
680
|
+
expect(klass.relations["person"]).to be_a(
|
|
681
|
+
Mongoid::Association::Referenced::BelongsTo
|
|
646
682
|
)
|
|
647
683
|
end
|
|
648
684
|
|
|
@@ -650,18 +686,18 @@ describe Mongoid::Relations::Macros do
|
|
|
650
686
|
expect(klass.allocate).to respond_to(:person_id)
|
|
651
687
|
end
|
|
652
688
|
|
|
653
|
-
context "
|
|
689
|
+
context "association properties" do
|
|
654
690
|
|
|
655
|
-
let(:
|
|
691
|
+
let(:association) do
|
|
656
692
|
klass.relations["person"]
|
|
657
693
|
end
|
|
658
694
|
|
|
659
695
|
it "automatically adds the name" do
|
|
660
|
-
expect(
|
|
696
|
+
expect(association.name).to eq(:person)
|
|
661
697
|
end
|
|
662
698
|
|
|
663
699
|
it "automatically adds the inverse class name" do
|
|
664
|
-
expect(
|
|
700
|
+
expect(association.inverse_class_name).to eq("TestClass")
|
|
665
701
|
end
|
|
666
702
|
end
|
|
667
703
|
end
|
|
@@ -692,7 +728,7 @@ describe Mongoid::Relations::Macros do
|
|
|
692
728
|
klass.has_many(:posts)
|
|
693
729
|
end
|
|
694
730
|
|
|
695
|
-
it "adds the
|
|
731
|
+
it "adds the association to the klass" do
|
|
696
732
|
expect(klass.relations["posts"]).to_not be_nil
|
|
697
733
|
end
|
|
698
734
|
|
|
@@ -705,8 +741,8 @@ describe Mongoid::Relations::Macros do
|
|
|
705
741
|
end
|
|
706
742
|
|
|
707
743
|
it "creates the correct relation" do
|
|
708
|
-
expect(klass.relations["posts"]
|
|
709
|
-
Mongoid::
|
|
744
|
+
expect(klass.relations["posts"]).to be_a(
|
|
745
|
+
Mongoid::Association::Referenced::HasMany
|
|
710
746
|
)
|
|
711
747
|
end
|
|
712
748
|
|
|
@@ -716,18 +752,27 @@ describe Mongoid::Relations::Macros do
|
|
|
716
752
|
)
|
|
717
753
|
end
|
|
718
754
|
|
|
719
|
-
context "
|
|
755
|
+
context "association properties" do
|
|
720
756
|
|
|
721
|
-
let(:
|
|
757
|
+
let(:association) do
|
|
722
758
|
klass.relations["posts"]
|
|
723
759
|
end
|
|
724
760
|
|
|
725
761
|
it "automatically adds the name" do
|
|
726
|
-
expect(
|
|
762
|
+
expect(association.name).to eq(:posts)
|
|
727
763
|
end
|
|
728
764
|
|
|
729
765
|
it "automatically adds the inverse class name" do
|
|
730
|
-
expect(
|
|
766
|
+
expect(association.inverse_class_name).to eq("TestClass")
|
|
767
|
+
end
|
|
768
|
+
end
|
|
769
|
+
|
|
770
|
+
context 'when an invalid option is provided' do
|
|
771
|
+
|
|
772
|
+
it 'raises an InvalidRelationOption exception' do
|
|
773
|
+
expect {
|
|
774
|
+
klass.has_many(:names, sandwich: true)
|
|
775
|
+
}.to raise_exception(Mongoid::Errors::InvalidRelationOption)
|
|
731
776
|
end
|
|
732
777
|
end
|
|
733
778
|
end
|
|
@@ -738,16 +783,16 @@ describe Mongoid::Relations::Macros do
|
|
|
738
783
|
klass.has_many(:posts, order: :rating.asc)
|
|
739
784
|
end
|
|
740
785
|
|
|
741
|
-
let(:
|
|
786
|
+
let(:association) do
|
|
742
787
|
klass.relations["posts"]
|
|
743
788
|
end
|
|
744
789
|
|
|
745
|
-
it "adds
|
|
746
|
-
expect(
|
|
790
|
+
it "adds association to klass" do
|
|
791
|
+
expect(association.order).to_not be_nil
|
|
747
792
|
end
|
|
748
793
|
|
|
749
794
|
it "returns Mongoid::Criteria::Queryable::Key" do
|
|
750
|
-
expect(
|
|
795
|
+
expect(association.order).to be_kind_of(Mongoid::Criteria::Queryable::Key)
|
|
751
796
|
end
|
|
752
797
|
end
|
|
753
798
|
|
|
@@ -784,11 +829,20 @@ describe Mongoid::Relations::Macros do
|
|
|
784
829
|
end
|
|
785
830
|
end
|
|
786
831
|
|
|
832
|
+
context 'when an invalid option is provided' do
|
|
833
|
+
|
|
834
|
+
it 'raises an InvalidRelationOption exception' do
|
|
835
|
+
expect {
|
|
836
|
+
klass.has_and_belongs_to_many(:fields, sandwich: true)
|
|
837
|
+
}.to raise_exception(Mongoid::Errors::InvalidRelationOption)
|
|
838
|
+
end
|
|
839
|
+
end
|
|
840
|
+
|
|
787
841
|
before do
|
|
788
842
|
klass.has_and_belongs_to_many(:preferences)
|
|
789
843
|
end
|
|
790
844
|
|
|
791
|
-
it "adds the
|
|
845
|
+
it "adds the association to the klass" do
|
|
792
846
|
expect(klass.relations["preferences"]).to_not be_nil
|
|
793
847
|
end
|
|
794
848
|
|
|
@@ -801,8 +855,8 @@ describe Mongoid::Relations::Macros do
|
|
|
801
855
|
end
|
|
802
856
|
|
|
803
857
|
it "creates the correct relation" do
|
|
804
|
-
expect(klass.relations["preferences"]
|
|
805
|
-
Mongoid::
|
|
858
|
+
expect(klass.relations["preferences"]).to be_a(
|
|
859
|
+
Mongoid::Association::Referenced::HasAndBelongsToMany
|
|
806
860
|
)
|
|
807
861
|
end
|
|
808
862
|
|
|
@@ -816,31 +870,31 @@ describe Mongoid::Relations::Macros do
|
|
|
816
870
|
klass.has_and_belongs_to_many(:preferences, order: :ranking.asc)
|
|
817
871
|
end
|
|
818
872
|
|
|
819
|
-
let(:
|
|
873
|
+
let(:association) do
|
|
820
874
|
klass.relations["preferences"]
|
|
821
875
|
end
|
|
822
876
|
|
|
823
|
-
it "adds
|
|
824
|
-
expect(
|
|
877
|
+
it "adds association to klass" do
|
|
878
|
+
expect(association.order).to_not be_nil
|
|
825
879
|
end
|
|
826
880
|
|
|
827
881
|
it "returns Mongoid::Criteria::Queryable::Key" do
|
|
828
|
-
expect(
|
|
882
|
+
expect(association.order).to be_kind_of(Mongoid::Criteria::Queryable::Key)
|
|
829
883
|
end
|
|
830
884
|
end
|
|
831
885
|
|
|
832
|
-
context "
|
|
886
|
+
context "association properties" do
|
|
833
887
|
|
|
834
|
-
let(:
|
|
888
|
+
let(:association) do
|
|
835
889
|
klass.relations["preferences"]
|
|
836
890
|
end
|
|
837
891
|
|
|
838
892
|
it "automatically adds the name" do
|
|
839
|
-
expect(
|
|
893
|
+
expect(association.name).to eq(:preferences)
|
|
840
894
|
end
|
|
841
895
|
|
|
842
896
|
it "automatically adds the inverse class name" do
|
|
843
|
-
expect(
|
|
897
|
+
expect(association.inverse_class_name).to eq("TestClass")
|
|
844
898
|
end
|
|
845
899
|
end
|
|
846
900
|
end
|
|
@@ -867,11 +921,20 @@ describe Mongoid::Relations::Macros do
|
|
|
867
921
|
end
|
|
868
922
|
end
|
|
869
923
|
|
|
924
|
+
context 'when an invalid option is provided' do
|
|
925
|
+
|
|
926
|
+
it 'raises an InvalidRelationOption exception' do
|
|
927
|
+
expect {
|
|
928
|
+
klass.has_one(:game, sandwich: true)
|
|
929
|
+
}.to raise_exception(Mongoid::Errors::InvalidRelationOption)
|
|
930
|
+
end
|
|
931
|
+
end
|
|
932
|
+
|
|
870
933
|
before do
|
|
871
934
|
klass.has_one(:game)
|
|
872
935
|
end
|
|
873
936
|
|
|
874
|
-
it "adds the
|
|
937
|
+
it "adds the association to the klass" do
|
|
875
938
|
expect(klass.relations["game"]).to_not be_nil
|
|
876
939
|
end
|
|
877
940
|
|
|
@@ -892,8 +955,8 @@ describe Mongoid::Relations::Macros do
|
|
|
892
955
|
end
|
|
893
956
|
|
|
894
957
|
it "creates the correct relation" do
|
|
895
|
-
expect(klass.relations["game"]
|
|
896
|
-
Mongoid::
|
|
958
|
+
expect(klass.relations["game"]).to be_a(
|
|
959
|
+
Mongoid::Association::Referenced::HasOne
|
|
897
960
|
)
|
|
898
961
|
end
|
|
899
962
|
|
|
@@ -903,18 +966,18 @@ describe Mongoid::Relations::Macros do
|
|
|
903
966
|
)
|
|
904
967
|
end
|
|
905
968
|
|
|
906
|
-
context "
|
|
969
|
+
context "association properties" do
|
|
907
970
|
|
|
908
|
-
let(:
|
|
971
|
+
let(:association) do
|
|
909
972
|
klass.relations["game"]
|
|
910
973
|
end
|
|
911
974
|
|
|
912
975
|
it "automatically adds the name" do
|
|
913
|
-
expect(
|
|
976
|
+
expect(association.name).to eq(:game)
|
|
914
977
|
end
|
|
915
978
|
|
|
916
979
|
it "automatically adds the inverse class name" do
|
|
917
|
-
expect(
|
|
980
|
+
expect(association.inverse_class_name).to eq("TestClass")
|
|
918
981
|
end
|
|
919
982
|
end
|
|
920
983
|
end
|
|
@@ -937,18 +1000,26 @@ describe Mongoid::Relations::Macros do
|
|
|
937
1000
|
klass.embeds_one(:name)
|
|
938
1001
|
end
|
|
939
1002
|
|
|
940
|
-
it "returns a
|
|
941
|
-
expect(klass.allocate.relations).to be_a_kind_of(
|
|
1003
|
+
it "returns a bson document of relations" do
|
|
1004
|
+
expect(klass.allocate.relations).to be_a_kind_of(BSON::Document)
|
|
942
1005
|
end
|
|
943
1006
|
|
|
944
1007
|
it "has keys that are the relation name" do
|
|
945
|
-
expect(klass.allocate.relations
|
|
1008
|
+
expect(klass.allocate.relations['name']).to be_a(Mongoid::Association::Embedded::EmbedsOne)
|
|
1009
|
+
end
|
|
1010
|
+
|
|
1011
|
+
it "has keys that can be accessed by a String" do
|
|
1012
|
+
expect(klass.allocate.relations['name']).to be_a(Mongoid::Association::Embedded::EmbedsOne)
|
|
1013
|
+
end
|
|
1014
|
+
|
|
1015
|
+
it "has keys that can be accessed by a Symbol" do
|
|
1016
|
+
expect(klass.allocate.relations[:name]).to be_a(Mongoid::Association::Embedded::EmbedsOne)
|
|
946
1017
|
end
|
|
947
1018
|
|
|
948
|
-
it "has values that are
|
|
1019
|
+
it "has values that are association" do
|
|
949
1020
|
expect(
|
|
950
1021
|
klass.allocate.relations.values.first
|
|
951
|
-
).to be_a_kind_of(Mongoid::
|
|
1022
|
+
).to be_a_kind_of(Mongoid::Association::Embedded::EmbedsOne)
|
|
952
1023
|
end
|
|
953
1024
|
end
|
|
954
1025
|
|
|
@@ -958,18 +1029,22 @@ describe Mongoid::Relations::Macros do
|
|
|
958
1029
|
klass.embeds_one(:name)
|
|
959
1030
|
end
|
|
960
1031
|
|
|
961
|
-
it "
|
|
962
|
-
expect(klass.relations).to
|
|
1032
|
+
it "has keys that are the relation name" do
|
|
1033
|
+
expect(klass.allocate.relations['name']).to be_a(Mongoid::Association::Embedded::EmbedsOne)
|
|
963
1034
|
end
|
|
964
1035
|
|
|
965
|
-
it "has keys that
|
|
966
|
-
expect(klass.relations
|
|
1036
|
+
it "has keys that can be accessed by a String" do
|
|
1037
|
+
expect(klass.allocate.relations['name']).to be_a(Mongoid::Association::Embedded::EmbedsOne)
|
|
1038
|
+
end
|
|
1039
|
+
|
|
1040
|
+
it "has keys that can be accessed by a Symbol" do
|
|
1041
|
+
expect(klass.allocate.relations[:name]).to be_a(Mongoid::Association::Embedded::EmbedsOne)
|
|
967
1042
|
end
|
|
968
1043
|
|
|
969
|
-
it "has values that are
|
|
1044
|
+
it "has values that are association" do
|
|
970
1045
|
expect(
|
|
971
1046
|
klass.relations.values.first
|
|
972
|
-
).to
|
|
1047
|
+
).to be_a(Mongoid::Association::Embedded::EmbedsOne)
|
|
973
1048
|
end
|
|
974
1049
|
end
|
|
975
1050
|
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
require "spec_helper"
|
|
2
2
|
|
|
3
|
-
describe Mongoid::
|
|
3
|
+
describe Mongoid::Association::Nested::Many do
|
|
4
4
|
|
|
5
|
-
let(:
|
|
6
|
-
|
|
7
|
-
name: :addresses,
|
|
8
|
-
relation: Mongoid::Relations::Embedded::Many
|
|
9
|
-
)
|
|
5
|
+
let(:association) do
|
|
6
|
+
Person.relations['addresses']
|
|
10
7
|
end
|
|
11
8
|
|
|
12
9
|
let(:person) do
|
|
@@ -18,7 +15,7 @@ describe Mongoid::Relations::Builders::NestedAttributes::Many do
|
|
|
18
15
|
context "when the option is provided" do
|
|
19
16
|
|
|
20
17
|
let(:builder) do
|
|
21
|
-
described_class.new(
|
|
18
|
+
described_class.new(association, {}, allow_destroy: true)
|
|
22
19
|
end
|
|
23
20
|
|
|
24
21
|
it "returns the option" do
|
|
@@ -29,7 +26,7 @@ describe Mongoid::Relations::Builders::NestedAttributes::Many do
|
|
|
29
26
|
context "when the option is not provided" do
|
|
30
27
|
|
|
31
28
|
let(:builder) do
|
|
32
|
-
described_class.new(
|
|
29
|
+
described_class.new(association, {}, {})
|
|
33
30
|
end
|
|
34
31
|
|
|
35
32
|
it "returns false" do
|
|
@@ -51,7 +48,7 @@ describe Mongoid::Relations::Builders::NestedAttributes::Many do
|
|
|
51
48
|
context "when attributes are over limit" do
|
|
52
49
|
|
|
53
50
|
let(:builder) do
|
|
54
|
-
described_class.new(
|
|
51
|
+
described_class.new(association, attributes, limit: 2)
|
|
55
52
|
end
|
|
56
53
|
|
|
57
54
|
it "raises an error" do
|
|
@@ -65,7 +62,7 @@ describe Mongoid::Relations::Builders::NestedAttributes::Many do
|
|
|
65
62
|
|
|
66
63
|
let(:builder) do
|
|
67
64
|
described_class.new(
|
|
68
|
-
|
|
65
|
+
association,
|
|
69
66
|
attributes,
|
|
70
67
|
reject_if: ->(attrs){ attrs[:city].blank? }
|
|
71
68
|
)
|
|
@@ -85,7 +82,7 @@ describe Mongoid::Relations::Builders::NestedAttributes::Many do
|
|
|
85
82
|
|
|
86
83
|
let(:builder) do
|
|
87
84
|
described_class.new(
|
|
88
|
-
|
|
85
|
+
association,
|
|
89
86
|
attributes,
|
|
90
87
|
reject_if: :reject_if_city_is_empty
|
|
91
88
|
)
|
|
@@ -112,7 +109,7 @@ describe Mongoid::Relations::Builders::NestedAttributes::Many do
|
|
|
112
109
|
end
|
|
113
110
|
|
|
114
111
|
let(:builder) do
|
|
115
|
-
described_class.new(
|
|
112
|
+
described_class.new(association, attributes)
|
|
116
113
|
end
|
|
117
114
|
|
|
118
115
|
before do
|
|
@@ -131,7 +128,7 @@ describe Mongoid::Relations::Builders::NestedAttributes::Many do
|
|
|
131
128
|
end
|
|
132
129
|
|
|
133
130
|
let(:builder) do
|
|
134
|
-
described_class.new(
|
|
131
|
+
described_class.new(association, attributes)
|
|
135
132
|
end
|
|
136
133
|
|
|
137
134
|
before do
|
|
@@ -155,7 +152,7 @@ describe Mongoid::Relations::Builders::NestedAttributes::Many do
|
|
|
155
152
|
end
|
|
156
153
|
|
|
157
154
|
let(:builder) do
|
|
158
|
-
described_class.new(
|
|
155
|
+
described_class.new(association, attributes, {})
|
|
159
156
|
end
|
|
160
157
|
|
|
161
158
|
it "sorts the attributes" do
|
|
@@ -174,7 +171,7 @@ describe Mongoid::Relations::Builders::NestedAttributes::Many do
|
|
|
174
171
|
context "when the proc matches" do
|
|
175
172
|
|
|
176
173
|
let(:builder) do
|
|
177
|
-
described_class.new(
|
|
174
|
+
described_class.new(association, {}, options)
|
|
178
175
|
end
|
|
179
176
|
|
|
180
177
|
it "returns true" do
|
|
@@ -185,7 +182,7 @@ describe Mongoid::Relations::Builders::NestedAttributes::Many do
|
|
|
185
182
|
context "when the proc does not match" do
|
|
186
183
|
|
|
187
184
|
let(:builder) do
|
|
188
|
-
described_class.new(
|
|
185
|
+
described_class.new(association, {}, options)
|
|
189
186
|
end
|
|
190
187
|
|
|
191
188
|
it "returns false" do
|
|
@@ -197,7 +194,7 @@ describe Mongoid::Relations::Builders::NestedAttributes::Many do
|
|
|
197
194
|
context "when the proc is not provided" do
|
|
198
195
|
|
|
199
196
|
let(:builder) do
|
|
200
|
-
described_class.new(
|
|
197
|
+
described_class.new(association, {}, {})
|
|
201
198
|
end
|
|
202
199
|
|
|
203
200
|
it "returns false" do
|
|
@@ -211,7 +208,7 @@ describe Mongoid::Relations::Builders::NestedAttributes::Many do
|
|
|
211
208
|
context "when the option is provided" do
|
|
212
209
|
|
|
213
210
|
let(:builder) do
|
|
214
|
-
described_class.new(
|
|
211
|
+
described_class.new(association, {}, update_only: true)
|
|
215
212
|
end
|
|
216
213
|
|
|
217
214
|
it "returns the option" do
|
|
@@ -222,7 +219,7 @@ describe Mongoid::Relations::Builders::NestedAttributes::Many do
|
|
|
222
219
|
context "when the option is not provided" do
|
|
223
220
|
|
|
224
221
|
let(:builder) do
|
|
225
|
-
described_class.new(
|
|
222
|
+
described_class.new(association, {}, {})
|
|
226
223
|
end
|
|
227
224
|
|
|
228
225
|
it "returns false" do
|