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
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
require 'mongoid/association/referenced/has_many/binding'
|
|
2
|
+
require 'mongoid/association/referenced/has_many/buildable'
|
|
3
|
+
require 'mongoid/association/referenced/has_many/proxy'
|
|
4
|
+
require 'mongoid/association/referenced/has_many/enumerable'
|
|
5
|
+
require 'mongoid/association/referenced/has_many/eager'
|
|
6
|
+
|
|
7
|
+
module Mongoid
|
|
8
|
+
module Association
|
|
9
|
+
module Referenced
|
|
10
|
+
|
|
11
|
+
# The has_many association.
|
|
12
|
+
#
|
|
13
|
+
# @since 7.0
|
|
14
|
+
class HasMany
|
|
15
|
+
include Relatable
|
|
16
|
+
include Buildable
|
|
17
|
+
|
|
18
|
+
# The options available for this type of association, in addition to the
|
|
19
|
+
# common ones.
|
|
20
|
+
#
|
|
21
|
+
# @return [ Array<Symbol> ] The extra valid options.
|
|
22
|
+
#
|
|
23
|
+
# @since 7.0
|
|
24
|
+
ASSOCIATION_OPTIONS = [
|
|
25
|
+
:after_add,
|
|
26
|
+
:after_remove,
|
|
27
|
+
:as,
|
|
28
|
+
:autosave,
|
|
29
|
+
:before_add,
|
|
30
|
+
:before_remove,
|
|
31
|
+
:dependent,
|
|
32
|
+
:foreign_key,
|
|
33
|
+
:order,
|
|
34
|
+
:primary_key
|
|
35
|
+
].freeze
|
|
36
|
+
|
|
37
|
+
# The complete list of valid options for this association, including
|
|
38
|
+
# the shared ones.
|
|
39
|
+
#
|
|
40
|
+
# @return [ Array<Symbol> ] The valid options.
|
|
41
|
+
#
|
|
42
|
+
# @since 7.0
|
|
43
|
+
VALID_OPTIONS = (ASSOCIATION_OPTIONS + SHARED_OPTIONS).freeze
|
|
44
|
+
|
|
45
|
+
# The default foreign key suffix.
|
|
46
|
+
#
|
|
47
|
+
# @return [ String ] '_id'
|
|
48
|
+
#
|
|
49
|
+
# @since 7.0
|
|
50
|
+
FOREIGN_KEY_SUFFIX = '_id'.freeze
|
|
51
|
+
|
|
52
|
+
# The list of association complements.
|
|
53
|
+
#
|
|
54
|
+
# @return [ Array<Association> ] The association complements.
|
|
55
|
+
#
|
|
56
|
+
# @since 7.0
|
|
57
|
+
def relation_complements
|
|
58
|
+
@relation_complements ||= [ Referenced::BelongsTo ].freeze
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
# Setup the instance methods, fields, etc. on the association owning class.
|
|
62
|
+
#
|
|
63
|
+
# @return [ self ]
|
|
64
|
+
#
|
|
65
|
+
# @since 7.0
|
|
66
|
+
def setup!
|
|
67
|
+
setup_instance_methods!
|
|
68
|
+
self
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
# Setup the instance methods on the class having this association type.
|
|
72
|
+
#
|
|
73
|
+
# @return [ self ]
|
|
74
|
+
#
|
|
75
|
+
# @since 7.0
|
|
76
|
+
def setup_instance_methods!
|
|
77
|
+
define_getter!
|
|
78
|
+
define_ids_getter!
|
|
79
|
+
define_setter!
|
|
80
|
+
define_ids_setter!
|
|
81
|
+
define_existence_check!
|
|
82
|
+
define_autosaver!
|
|
83
|
+
polymorph!
|
|
84
|
+
define_dependency!
|
|
85
|
+
@owner_class.validates_associated(name) if validate?
|
|
86
|
+
self
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
# Get the foreign key field on the inverse for saving the association reference.
|
|
91
|
+
#
|
|
92
|
+
# @return [ String ] The foreign key field on the inverse for saving the
|
|
93
|
+
# association reference.
|
|
94
|
+
#
|
|
95
|
+
# @since 7.0
|
|
96
|
+
def foreign_key
|
|
97
|
+
@foreign_key ||= @options[:foreign_key] ? @options[:foreign_key].to_s :
|
|
98
|
+
default_foreign_key_field
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
# Is this association type embedded?
|
|
102
|
+
#
|
|
103
|
+
# @return [ false ] Always false.
|
|
104
|
+
#
|
|
105
|
+
# @since 7.0
|
|
106
|
+
def embedded?; false; end
|
|
107
|
+
|
|
108
|
+
# The default for validation the association object.
|
|
109
|
+
#
|
|
110
|
+
# @return [ true ] Always true.
|
|
111
|
+
#
|
|
112
|
+
# @since 7.0
|
|
113
|
+
def validation_default; true; end
|
|
114
|
+
|
|
115
|
+
# Does this association type store the foreign key?
|
|
116
|
+
#
|
|
117
|
+
# @return [ true ] Always true.
|
|
118
|
+
#
|
|
119
|
+
# @since 7.0
|
|
120
|
+
def stores_foreign_key?; false; end
|
|
121
|
+
|
|
122
|
+
# Get the relation proxy class for this association type.
|
|
123
|
+
#
|
|
124
|
+
# @return [ Association::HasMany::Proxy ] The proxy class.
|
|
125
|
+
#
|
|
126
|
+
# @since 7.0
|
|
127
|
+
def relation
|
|
128
|
+
Proxy
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
# The criteria used for querying this relation.
|
|
132
|
+
#
|
|
133
|
+
# @return [ Mongoid::Criteria ] The criteria used for querying this relation.
|
|
134
|
+
#
|
|
135
|
+
# @since 7.0
|
|
136
|
+
def criteria(base)
|
|
137
|
+
query_criteria(base.send(primary_key), base)
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
# The type of this association if it's polymorphic.
|
|
141
|
+
#
|
|
142
|
+
# @note Only relevant for polymorphic relations.
|
|
143
|
+
#
|
|
144
|
+
# @return [ String, nil ] The type field.
|
|
145
|
+
#
|
|
146
|
+
# @since 7.0
|
|
147
|
+
def type
|
|
148
|
+
@type ||= "#{as}_type" if polymorphic?
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
# Add polymorphic query criteria to a Criteria object, if this association is
|
|
152
|
+
# polymorphic.
|
|
153
|
+
#
|
|
154
|
+
# @param [ Mongoid::Criteria ] criteria The criteria object to add to.
|
|
155
|
+
# @param [ Class ] object_class The object class.
|
|
156
|
+
#
|
|
157
|
+
# @return [ Mongoid::Criteria ] The criteria object.
|
|
158
|
+
#
|
|
159
|
+
# @since 7.0
|
|
160
|
+
def add_polymorphic_criterion(criteria, object_class)
|
|
161
|
+
if polymorphic?
|
|
162
|
+
criteria.where(type => object_class.name)
|
|
163
|
+
else
|
|
164
|
+
criteria
|
|
165
|
+
end
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
# Is this association polymorphic?
|
|
169
|
+
#
|
|
170
|
+
# @return [ true, false ] Whether this association is polymorphic.
|
|
171
|
+
#
|
|
172
|
+
# @since 7.0
|
|
173
|
+
def polymorphic?
|
|
174
|
+
@polymorphic ||= !!as
|
|
175
|
+
end
|
|
176
|
+
|
|
177
|
+
# Whether trying to bind an object using this association should raise
|
|
178
|
+
# an error.
|
|
179
|
+
#
|
|
180
|
+
# @param [ Document ] doc The document to be bound.
|
|
181
|
+
#
|
|
182
|
+
# @return [ true, false ] Whether the document can be bound.
|
|
183
|
+
def bindable?(doc)
|
|
184
|
+
forced_nil_inverse? || (!!inverse && doc.fields.keys.include?(foreign_key))
|
|
185
|
+
end
|
|
186
|
+
|
|
187
|
+
# The nested builder object.
|
|
188
|
+
#
|
|
189
|
+
# @param [ Hash ] attributes The attributes to use to build the association object.
|
|
190
|
+
# @param [ Hash ] options The options for the association.
|
|
191
|
+
#
|
|
192
|
+
# @return [ Association::Nested::Many ] The Nested Builder object.
|
|
193
|
+
#
|
|
194
|
+
# @since 7.0
|
|
195
|
+
def nested_builder(attributes, options)
|
|
196
|
+
Nested::Many.new(self, attributes, options)
|
|
197
|
+
end
|
|
198
|
+
|
|
199
|
+
# Get the path calculator for the supplied document.
|
|
200
|
+
#
|
|
201
|
+
# @example Get the path calculator.
|
|
202
|
+
# Proxy.path(document)
|
|
203
|
+
#
|
|
204
|
+
# @param [ Document ] document The document to calculate on.
|
|
205
|
+
#
|
|
206
|
+
# @return [ Root ] The root atomic path calculator.
|
|
207
|
+
#
|
|
208
|
+
# @since 2.1.0
|
|
209
|
+
def path(document)
|
|
210
|
+
Mongoid::Atomic::Paths::Root.new(document)
|
|
211
|
+
end
|
|
212
|
+
|
|
213
|
+
private
|
|
214
|
+
|
|
215
|
+
def default_foreign_key_field
|
|
216
|
+
@default_foreign_key_field ||= "#{inverse}#{FOREIGN_KEY_SUFFIX}"
|
|
217
|
+
end
|
|
218
|
+
|
|
219
|
+
def polymorphic_inverses(other)
|
|
220
|
+
[ as ]
|
|
221
|
+
end
|
|
222
|
+
|
|
223
|
+
def determine_inverses(other)
|
|
224
|
+
matches = (other || relation_class).relations.values.select do |rel|
|
|
225
|
+
relation_complements.include?(rel.class) &&
|
|
226
|
+
rel.relation_class_name == inverse_class_name
|
|
227
|
+
|
|
228
|
+
end
|
|
229
|
+
if matches.size > 1
|
|
230
|
+
return [ default_inverse.name ] if default_inverse
|
|
231
|
+
raise Errors::AmbiguousRelationship.new(relation_class, @owner_class, name, matches)
|
|
232
|
+
end
|
|
233
|
+
matches.collect { |m| m.name } unless matches.blank?
|
|
234
|
+
end
|
|
235
|
+
|
|
236
|
+
def default_primary_key
|
|
237
|
+
PRIMARY_KEY_DEFAULT
|
|
238
|
+
end
|
|
239
|
+
|
|
240
|
+
def query_criteria(object, base)
|
|
241
|
+
crit = klass.where(foreign_key => object)
|
|
242
|
+
crit = with_polymorphic_criterion(crit, base)
|
|
243
|
+
crit.association = self
|
|
244
|
+
crit.parent_document = base
|
|
245
|
+
with_ordering(crit)
|
|
246
|
+
end
|
|
247
|
+
|
|
248
|
+
def with_polymorphic_criterion(criteria, base)
|
|
249
|
+
if polymorphic?
|
|
250
|
+
criteria.where(type => base.class.name)
|
|
251
|
+
else
|
|
252
|
+
criteria
|
|
253
|
+
end
|
|
254
|
+
end
|
|
255
|
+
|
|
256
|
+
def with_ordering(criteria)
|
|
257
|
+
if order
|
|
258
|
+
criteria.order_by(order)
|
|
259
|
+
else
|
|
260
|
+
criteria
|
|
261
|
+
end
|
|
262
|
+
end
|
|
263
|
+
|
|
264
|
+
def with_inverse_field_criterion(criteria)
|
|
265
|
+
inverse_association = inverse_association(klass)
|
|
266
|
+
if inverse_association.try(:inverse_of)
|
|
267
|
+
criteria.any_in(inverse_association.inverse_of => [name, nil])
|
|
268
|
+
else
|
|
269
|
+
criteria
|
|
270
|
+
end
|
|
271
|
+
end
|
|
272
|
+
end
|
|
273
|
+
end
|
|
274
|
+
end
|
|
275
|
+
end
|
data/lib/mongoid/{relations/bindings/referenced/one.rb → association/referenced/has_one/binding.rb}
RENAMED
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
# encoding: utf-8
|
|
2
2
|
module Mongoid
|
|
3
|
-
module
|
|
4
|
-
module
|
|
5
|
-
|
|
3
|
+
module Association
|
|
4
|
+
module Referenced
|
|
5
|
+
class HasOne
|
|
6
6
|
|
|
7
|
-
# Binding class for
|
|
8
|
-
|
|
7
|
+
# Binding class for has_one relations.
|
|
8
|
+
#
|
|
9
|
+
# @since 7.0
|
|
10
|
+
class Binding
|
|
11
|
+
include Bindable
|
|
9
12
|
|
|
10
13
|
# Binds the base object to the inverse of the relation. This is so we
|
|
11
14
|
# are referenced to the actual objects themselves on both sides.
|
|
12
15
|
#
|
|
13
|
-
# This case sets the metadata on the inverse object as well as the
|
|
16
|
+
# This case sets the association metadata on the inverse object as well as the
|
|
14
17
|
# document itself.
|
|
15
18
|
#
|
|
16
19
|
# @example Bind the document.
|
|
@@ -20,7 +23,7 @@ module Mongoid
|
|
|
20
23
|
# @since 2.0.0.rc.1
|
|
21
24
|
def bind_one
|
|
22
25
|
binding do
|
|
23
|
-
bind_from_relational_parent(
|
|
26
|
+
bind_from_relational_parent(_target)
|
|
24
27
|
end
|
|
25
28
|
end
|
|
26
29
|
|
|
@@ -34,7 +37,7 @@ module Mongoid
|
|
|
34
37
|
# @since 2.0.0.rc.1
|
|
35
38
|
def unbind_one
|
|
36
39
|
binding do
|
|
37
|
-
unbind_from_relational_parent(
|
|
40
|
+
unbind_from_relational_parent(_target)
|
|
38
41
|
end
|
|
39
42
|
end
|
|
40
43
|
end
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
module Mongoid
|
|
3
|
+
module Association
|
|
4
|
+
module Referenced
|
|
5
|
+
class HasOne
|
|
6
|
+
|
|
7
|
+
# The Builder behavior for has_one associations.
|
|
8
|
+
#
|
|
9
|
+
# @since 7.0
|
|
10
|
+
module Buildable
|
|
11
|
+
|
|
12
|
+
# This method either takes an _id or an object and queries for the
|
|
13
|
+
# inverse side using the id or sets the object after clearing the
|
|
14
|
+
# associated object.
|
|
15
|
+
#
|
|
16
|
+
# @return [ Document ] A single document.
|
|
17
|
+
def build(base, object, type = nil)
|
|
18
|
+
if query?(object)
|
|
19
|
+
if !base.new_record?
|
|
20
|
+
execute_query(object, base)
|
|
21
|
+
end
|
|
22
|
+
else
|
|
23
|
+
clear_associated(object)
|
|
24
|
+
object
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
private
|
|
29
|
+
|
|
30
|
+
def clear_associated(object)
|
|
31
|
+
if object && (associated = object.send(inverse))
|
|
32
|
+
associated.substitute(nil)
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def query_criteria(object, base)
|
|
37
|
+
crit = klass.where(foreign_key => object)
|
|
38
|
+
with_polymorphic_criterion(crit, base)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def execute_query(object, base)
|
|
42
|
+
query_criteria(object, base).limit(-1).first(id_sort: :none)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def with_polymorphic_criterion(criteria, base)
|
|
46
|
+
if polymorphic?
|
|
47
|
+
criteria.where(type => base.class.name)
|
|
48
|
+
else
|
|
49
|
+
criteria
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def query?(object)
|
|
54
|
+
object && !object.is_a?(Mongoid::Document)
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
module Mongoid
|
|
3
|
+
module Association
|
|
4
|
+
module Referenced
|
|
5
|
+
|
|
6
|
+
class HasOne
|
|
7
|
+
|
|
8
|
+
class Eager < Association::Referenced::Eager::Base
|
|
9
|
+
|
|
10
|
+
private
|
|
11
|
+
|
|
12
|
+
def preload
|
|
13
|
+
@docs.each do |d|
|
|
14
|
+
set_relation(d, nil)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
each_loaded_document do |doc|
|
|
18
|
+
id = doc.send(key)
|
|
19
|
+
set_on_parent(id, doc)
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def group_by_key
|
|
24
|
+
@association.primary_key
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def key
|
|
28
|
+
@association.foreign_key
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# encoding: utf-8
|
|
2
2
|
module Mongoid
|
|
3
|
-
module
|
|
4
|
-
module
|
|
3
|
+
module Association
|
|
4
|
+
module Referenced
|
|
5
5
|
module NestedAttributes
|
|
6
6
|
class One < NestedBuilder
|
|
7
7
|
|
|
@@ -24,14 +24,14 @@ module Mongoid
|
|
|
24
24
|
# @since 2.0.0
|
|
25
25
|
def build(parent)
|
|
26
26
|
return if reject?(parent, attributes)
|
|
27
|
-
@existing = parent.send(
|
|
27
|
+
@existing = parent.send(association.name)
|
|
28
28
|
if update?
|
|
29
29
|
attributes.delete_id
|
|
30
30
|
existing.assign_attributes(attributes)
|
|
31
31
|
elsif replace?
|
|
32
|
-
parent.send(
|
|
32
|
+
parent.send(association.setter, Factory.build(association.klass, attributes))
|
|
33
33
|
elsif delete?
|
|
34
|
-
parent.send(
|
|
34
|
+
parent.send(association.setter, nil)
|
|
35
35
|
end
|
|
36
36
|
end
|
|
37
37
|
|
|
@@ -39,16 +39,16 @@ module Mongoid
|
|
|
39
39
|
# relations.
|
|
40
40
|
#
|
|
41
41
|
# @example Instantiate the builder.
|
|
42
|
-
# One.new(
|
|
42
|
+
# One.new(association, attributes)
|
|
43
43
|
#
|
|
44
|
-
# @param [
|
|
44
|
+
# @param [ Association ] association The association metadata.
|
|
45
45
|
# @param [ Hash ] attributes The attributes hash to attempt to set.
|
|
46
46
|
# @param [ Hash ] options The options defined.
|
|
47
47
|
#
|
|
48
48
|
# @since 2.0.0
|
|
49
|
-
def initialize(
|
|
49
|
+
def initialize(association, attributes, options)
|
|
50
50
|
@attributes = attributes.with_indifferent_access
|
|
51
|
-
@
|
|
51
|
+
@association = association
|
|
52
52
|
@options = options
|
|
53
53
|
@destroy = @attributes.delete(:_destroy)
|
|
54
54
|
end
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
module Mongoid
|
|
3
|
+
module Association
|
|
4
|
+
module Referenced
|
|
5
|
+
class HasOne
|
|
6
|
+
|
|
7
|
+
# This class defines the behaviour for all relations that are a
|
|
8
|
+
# one-to-one between documents in different collections.
|
|
9
|
+
class Proxy < Association::One
|
|
10
|
+
|
|
11
|
+
# Instantiate a new references_one relation. Will set the foreign key
|
|
12
|
+
# and the base on the inverse object.
|
|
13
|
+
#
|
|
14
|
+
# @example Create the new relation.
|
|
15
|
+
# Referenced::One.new(base, target, association)
|
|
16
|
+
#
|
|
17
|
+
# @param [ Document ] base The document this relation hangs off of.
|
|
18
|
+
# @param [ Document ] target The target (child) of the relation.
|
|
19
|
+
# @param [ Association ] association The association metadata.
|
|
20
|
+
def initialize(base, target, association)
|
|
21
|
+
init(base, target, association) do
|
|
22
|
+
raise_mixed if klass.embedded? && !klass.cyclic?
|
|
23
|
+
characterize_one(_target)
|
|
24
|
+
bind_one
|
|
25
|
+
_target.save if persistable?
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# Removes the association between the base document and the target
|
|
30
|
+
# document by deleting the foreign key and the reference, orphaning
|
|
31
|
+
# the target document in the process.
|
|
32
|
+
#
|
|
33
|
+
# @example Nullify the relation.
|
|
34
|
+
# person.game.nullify
|
|
35
|
+
#
|
|
36
|
+
# @since 2.0.0.rc.1
|
|
37
|
+
def nullify
|
|
38
|
+
unbind_one
|
|
39
|
+
_target.save
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# Substitutes the supplied target document for the existing document
|
|
43
|
+
# in the relation. If the new target is nil, perform the necessary
|
|
44
|
+
# deletion.
|
|
45
|
+
#
|
|
46
|
+
# @example Replace the relation.
|
|
47
|
+
# person.game.substitute(new_game)
|
|
48
|
+
#
|
|
49
|
+
# @param [ Array<Document> ] replacement The replacement target.
|
|
50
|
+
#
|
|
51
|
+
# @return [ One ] The relation.
|
|
52
|
+
#
|
|
53
|
+
# @since 2.0.0.rc.1
|
|
54
|
+
def substitute(replacement)
|
|
55
|
+
unbind_one
|
|
56
|
+
if persistable?
|
|
57
|
+
if _association.destructive?
|
|
58
|
+
send(_association.dependent)
|
|
59
|
+
else
|
|
60
|
+
save if persisted?
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
HasOne::Proxy.new(_base, replacement, _association) if replacement
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
private
|
|
67
|
+
|
|
68
|
+
# Instantiate the binding associated with this relation.
|
|
69
|
+
#
|
|
70
|
+
# @example Get the binding.
|
|
71
|
+
# relation.binding([ address ])
|
|
72
|
+
#
|
|
73
|
+
# @return [ Binding ] The binding object.
|
|
74
|
+
def binding
|
|
75
|
+
HasOne::Binding.new(_base, _target, _association)
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
# Are we able to persist this relation?
|
|
79
|
+
#
|
|
80
|
+
# @example Can we persist the relation?
|
|
81
|
+
# relation.persistable?
|
|
82
|
+
#
|
|
83
|
+
# @return [ true, false ] If the relation is persistable.
|
|
84
|
+
#
|
|
85
|
+
# @since 2.1.0
|
|
86
|
+
def persistable?
|
|
87
|
+
_base.persisted? && !_binding? && !_building?
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
class << self
|
|
91
|
+
|
|
92
|
+
def eager_loader(association, docs)
|
|
93
|
+
Eager.new(association, docs)
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
# Returns true if the relation is an embedded one. In this case
|
|
97
|
+
# always false.
|
|
98
|
+
#
|
|
99
|
+
# @example Is this relation embedded?
|
|
100
|
+
# Referenced::One.embedded?
|
|
101
|
+
#
|
|
102
|
+
# @return [ false ] Always false.
|
|
103
|
+
#
|
|
104
|
+
# @since 2.0.0.rc.1
|
|
105
|
+
def embedded?
|
|
106
|
+
false
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
end
|
|
111
|
+
end
|
|
112
|
+
end
|
|
113
|
+
end
|