mongoid 7.3.2 → 7.4.0
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
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +17 -17
- data/README.md +2 -2
- data/lib/config/locales/en.yml +30 -16
- data/lib/mongoid/association/accessors.rb +0 -27
- data/lib/mongoid/association/bindable.rb +0 -21
- data/lib/mongoid/association/builders.rb +0 -9
- data/lib/mongoid/association/constrainable.rb +0 -3
- data/lib/mongoid/association/depending.rb +0 -7
- data/lib/mongoid/association/eager_loadable.rb +0 -3
- data/lib/mongoid/association/embedded/batchable.rb +11 -39
- data/lib/mongoid/association/embedded/cyclic.rb +2 -11
- data/lib/mongoid/association/embedded/embedded_in/binding.rb +0 -7
- data/lib/mongoid/association/embedded/embedded_in/buildable.rb +0 -3
- data/lib/mongoid/association/embedded/embedded_in/proxy.rb +0 -13
- data/lib/mongoid/association/embedded/embedded_in.rb +0 -23
- data/lib/mongoid/association/embedded/embeds_many/binding.rb +0 -7
- data/lib/mongoid/association/embedded/embeds_many/buildable.rb +0 -3
- data/lib/mongoid/association/embedded/embeds_many/proxy.rb +31 -44
- data/lib/mongoid/association/embedded/embeds_many.rb +0 -31
- data/lib/mongoid/association/embedded/embeds_one/binding.rb +0 -7
- data/lib/mongoid/association/embedded/embeds_one/buildable.rb +0 -3
- data/lib/mongoid/association/embedded/embeds_one/proxy.rb +26 -14
- data/lib/mongoid/association/embedded/embeds_one.rb +0 -27
- data/lib/mongoid/association/embedded.rb +0 -1
- data/lib/mongoid/association/macros.rb +6 -5
- data/lib/mongoid/association/many.rb +0 -17
- data/lib/mongoid/association/marshalable.rb +0 -5
- data/lib/mongoid/association/nested/many.rb +0 -11
- data/lib/mongoid/association/nested/nested_buildable.rb +0 -9
- data/lib/mongoid/association/nested/one.rb +1 -16
- data/lib/mongoid/association/nested.rb +0 -3
- data/lib/mongoid/association/one.rb +1 -10
- data/lib/mongoid/association/options.rb +0 -33
- data/lib/mongoid/association/proxy.rb +0 -21
- data/lib/mongoid/association/referenced/auto_save.rb +0 -9
- data/lib/mongoid/association/referenced/belongs_to/binding.rb +0 -7
- data/lib/mongoid/association/referenced/belongs_to/buildable.rb +4 -5
- data/lib/mongoid/association/referenced/belongs_to/eager.rb +0 -1
- data/lib/mongoid/association/referenced/belongs_to/proxy.rb +0 -13
- data/lib/mongoid/association/referenced/belongs_to.rb +9 -34
- data/lib/mongoid/association/referenced/counter_cache.rb +2 -15
- data/lib/mongoid/association/referenced/eager.rb +3 -24
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/binding.rb +0 -5
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/buildable.rb +0 -3
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/eager.rb +0 -1
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/proxy.rb +12 -39
- data/lib/mongoid/association/referenced/has_and_belongs_to_many.rb +11 -38
- data/lib/mongoid/association/referenced/has_many/binding.rb +0 -5
- data/lib/mongoid/association/referenced/has_many/buildable.rb +0 -3
- data/lib/mongoid/association/referenced/has_many/eager.rb +0 -1
- data/lib/mongoid/association/referenced/has_many/enumerable.rb +11 -63
- data/lib/mongoid/association/referenced/has_many/proxy.rb +18 -61
- data/lib/mongoid/association/referenced/has_many.rb +12 -39
- data/lib/mongoid/association/referenced/has_one/binding.rb +0 -7
- data/lib/mongoid/association/referenced/has_one/buildable.rb +3 -4
- data/lib/mongoid/association/referenced/has_one/eager.rb +0 -1
- data/lib/mongoid/association/referenced/has_one/nested_builder.rb +0 -15
- data/lib/mongoid/association/referenced/has_one/proxy.rb +0 -9
- data/lib/mongoid/association/referenced/has_one.rb +9 -32
- data/lib/mongoid/association/referenced/syncable.rb +0 -17
- data/lib/mongoid/association/referenced.rb +0 -1
- data/lib/mongoid/association/reflections.rb +0 -1
- data/lib/mongoid/association/relatable.rb +2 -61
- data/lib/mongoid/association.rb +0 -17
- data/lib/mongoid/atomic/modifiers.rb +4 -51
- data/lib/mongoid/atomic/paths/embedded/many.rb +0 -5
- data/lib/mongoid/atomic/paths/embedded/one.rb +0 -5
- data/lib/mongoid/atomic/paths/embedded.rb +0 -3
- data/lib/mongoid/atomic/paths/root.rb +0 -5
- data/lib/mongoid/atomic/paths.rb +0 -1
- data/lib/mongoid/atomic.rb +27 -44
- data/lib/mongoid/attributes/dynamic.rb +0 -17
- data/lib/mongoid/attributes/nested.rb +0 -5
- data/lib/mongoid/attributes/processing.rb +1 -18
- data/lib/mongoid/attributes/projector.rb +0 -1
- data/lib/mongoid/attributes/readonly.rb +0 -5
- data/lib/mongoid/attributes.rb +0 -33
- data/lib/mongoid/cacheable.rb +1 -6
- data/lib/mongoid/changeable.rb +3 -59
- data/lib/mongoid/clients/factory.rb +0 -7
- data/lib/mongoid/clients/options.rb +0 -5
- data/lib/mongoid/clients/sessions.rb +0 -7
- data/lib/mongoid/clients/storage_options.rb +0 -7
- data/lib/mongoid/clients/validators/storage.rb +0 -9
- data/lib/mongoid/clients/validators.rb +0 -1
- data/lib/mongoid/clients.rb +0 -9
- data/lib/mongoid/composable.rb +0 -7
- data/lib/mongoid/config/environment.rb +13 -6
- data/lib/mongoid/config/options.rb +0 -11
- data/lib/mongoid/config/validators/client.rb +0 -17
- data/lib/mongoid/config/validators/option.rb +0 -3
- data/lib/mongoid/config/validators.rb +0 -1
- data/lib/mongoid/config.rb +37 -29
- data/lib/mongoid/contextual/aggregable/memory.rb +14 -11
- data/lib/mongoid/contextual/aggregable/mongo.rb +15 -20
- data/lib/mongoid/contextual/aggregable/none.rb +65 -0
- data/lib/mongoid/contextual/aggregable.rb +17 -0
- data/lib/mongoid/contextual/atomic.rb +7 -27
- data/lib/mongoid/contextual/command.rb +0 -5
- data/lib/mongoid/contextual/geo_near.rb +1 -34
- data/lib/mongoid/contextual/map_reduce.rb +0 -31
- data/lib/mongoid/contextual/memory.rb +4 -59
- data/lib/mongoid/contextual/mongo.rb +132 -78
- data/lib/mongoid/contextual/none.rb +42 -28
- data/lib/mongoid/contextual/queryable.rb +0 -3
- data/lib/mongoid/contextual.rb +0 -5
- data/lib/mongoid/copyable.rb +0 -5
- data/lib/mongoid/criteria/findable.rb +0 -13
- data/lib/mongoid/criteria/includable.rb +0 -9
- data/lib/mongoid/criteria/inspectable.rb +0 -3
- data/lib/mongoid/criteria/marshalable.rb +0 -5
- data/lib/mongoid/criteria/modifiable.rb +0 -19
- data/lib/mongoid/criteria/options.rb +0 -3
- data/lib/mongoid/criteria/permission.rb +0 -1
- data/lib/mongoid/criteria/queryable/aggregable.rb +0 -13
- data/lib/mongoid/criteria/queryable/expandable.rb +0 -1
- data/lib/mongoid/criteria/queryable/extensions/array.rb +1 -26
- data/lib/mongoid/criteria/queryable/extensions/big_decimal.rb +0 -3
- data/lib/mongoid/criteria/queryable/extensions/boolean.rb +0 -3
- data/lib/mongoid/criteria/queryable/extensions/date.rb +0 -7
- data/lib/mongoid/criteria/queryable/extensions/date_time.rb +0 -5
- data/lib/mongoid/criteria/queryable/extensions/hash.rb +0 -25
- data/lib/mongoid/criteria/queryable/extensions/nil_class.rb +0 -13
- data/lib/mongoid/criteria/queryable/extensions/numeric.rb +0 -11
- data/lib/mongoid/criteria/queryable/extensions/object.rb +1 -28
- data/lib/mongoid/criteria/queryable/extensions/range.rb +38 -16
- data/lib/mongoid/criteria/queryable/extensions/regexp.rb +0 -9
- data/lib/mongoid/criteria/queryable/extensions/set.rb +0 -3
- data/lib/mongoid/criteria/queryable/extensions/string.rb +0 -17
- data/lib/mongoid/criteria/queryable/extensions/symbol.rb +0 -9
- data/lib/mongoid/criteria/queryable/extensions/time.rb +0 -7
- data/lib/mongoid/criteria/queryable/extensions/time_with_zone.rb +0 -7
- data/lib/mongoid/criteria/queryable/extensions.rb +0 -1
- data/lib/mongoid/criteria/queryable/key.rb +1 -14
- data/lib/mongoid/criteria/queryable/macroable.rb +0 -3
- data/lib/mongoid/criteria/queryable/mergeable.rb +1 -30
- data/lib/mongoid/criteria/queryable/optional.rb +0 -45
- data/lib/mongoid/criteria/queryable/options.rb +0 -19
- data/lib/mongoid/criteria/queryable/pipeline.rb +0 -13
- data/lib/mongoid/criteria/queryable/selectable.rb +22 -69
- data/lib/mongoid/criteria/queryable/selector.rb +0 -17
- data/lib/mongoid/criteria/queryable/smash.rb +0 -11
- data/lib/mongoid/criteria/queryable/storable.rb +11 -7
- data/lib/mongoid/criteria/queryable.rb +0 -7
- data/lib/mongoid/criteria/scopable.rb +25 -19
- data/lib/mongoid/criteria.rb +0 -57
- data/lib/mongoid/document.rb +3 -53
- data/lib/mongoid/equality.rb +26 -10
- data/lib/mongoid/errors/ambiguous_relationship.rb +2 -5
- data/lib/mongoid/errors/callback.rb +0 -3
- data/lib/mongoid/errors/criteria_argument_required.rb +0 -1
- data/lib/mongoid/errors/delete_restriction.rb +0 -3
- data/lib/mongoid/errors/document_not_destroyed.rb +2 -7
- data/lib/mongoid/errors/document_not_found.rb +0 -9
- data/lib/mongoid/errors/eager_load.rb +0 -3
- data/lib/mongoid/errors/empty_config_file.rb +25 -0
- data/lib/mongoid/errors/in_memory_collation_not_supported.rb +0 -3
- data/lib/mongoid/errors/invalid_collection.rb +0 -1
- data/lib/mongoid/errors/invalid_config_file.rb +25 -0
- data/lib/mongoid/errors/invalid_config_option.rb +0 -3
- data/lib/mongoid/errors/invalid_dependent_strategy.rb +0 -3
- data/lib/mongoid/errors/invalid_discriminator_key_target.rb +0 -1
- data/lib/mongoid/errors/invalid_elem_match_operator.rb +0 -1
- data/lib/mongoid/errors/invalid_estimated_count_criteria.rb +0 -1
- data/lib/mongoid/errors/invalid_expression_operator.rb +0 -1
- data/lib/mongoid/errors/invalid_field.rb +0 -5
- data/lib/mongoid/errors/invalid_field_operator.rb +0 -1
- data/lib/mongoid/errors/invalid_field_option.rb +0 -3
- data/lib/mongoid/errors/invalid_find.rb +0 -3
- data/lib/mongoid/errors/invalid_includes.rb +0 -3
- data/lib/mongoid/errors/invalid_index.rb +0 -3
- data/lib/mongoid/errors/invalid_options.rb +0 -3
- data/lib/mongoid/errors/invalid_path.rb +0 -3
- data/lib/mongoid/errors/invalid_persistence_option.rb +0 -5
- data/lib/mongoid/errors/invalid_query.rb +0 -1
- data/lib/mongoid/errors/invalid_relation.rb +0 -7
- data/lib/mongoid/errors/invalid_relation_option.rb +0 -3
- data/lib/mongoid/errors/invalid_scope.rb +0 -3
- data/lib/mongoid/errors/invalid_session_use.rb +1 -6
- data/lib/mongoid/errors/invalid_set_polymorphic_relation.rb +0 -1
- data/lib/mongoid/errors/invalid_storage_options.rb +0 -3
- data/lib/mongoid/errors/invalid_storage_parent.rb +0 -3
- data/lib/mongoid/errors/invalid_time.rb +0 -3
- data/lib/mongoid/errors/invalid_value.rb +0 -1
- data/lib/mongoid/errors/inverse_not_found.rb +0 -3
- data/lib/mongoid/errors/mixed_client_configuration.rb +0 -3
- data/lib/mongoid/errors/mixed_relations.rb +0 -3
- data/lib/mongoid/errors/mongoid_error.rb +0 -9
- data/lib/mongoid/errors/nested_attributes_metadata_not_found.rb +0 -3
- data/lib/mongoid/errors/no_client_config.rb +0 -3
- data/lib/mongoid/errors/no_client_database.rb +0 -3
- data/lib/mongoid/errors/no_client_hosts.rb +0 -3
- data/lib/mongoid/errors/no_clients_config.rb +0 -3
- data/lib/mongoid/errors/no_default_client.rb +0 -3
- data/lib/mongoid/errors/no_environment.rb +0 -3
- data/lib/mongoid/errors/no_map_reduce_output.rb +0 -3
- data/lib/mongoid/errors/no_metadata.rb +0 -3
- data/lib/mongoid/errors/no_parent.rb +0 -3
- data/lib/mongoid/errors/readonly_attribute.rb +0 -3
- data/lib/mongoid/errors/readonly_document.rb +1 -6
- data/lib/mongoid/errors/scope_overwrite.rb +0 -1
- data/lib/mongoid/errors/too_many_nested_attribute_records.rb +0 -1
- data/lib/mongoid/errors/unknown_attribute.rb +0 -3
- data/lib/mongoid/errors/unknown_model.rb +0 -3
- data/lib/mongoid/errors/unsaved_document.rb +1 -2
- data/lib/mongoid/errors/unsupported_javascript.rb +0 -3
- data/lib/mongoid/errors/validations.rb +0 -1
- data/lib/mongoid/errors.rb +2 -1
- data/lib/mongoid/evolvable.rb +0 -3
- data/lib/mongoid/extensions/array.rb +3 -29
- data/lib/mongoid/extensions/big_decimal.rb +0 -11
- data/lib/mongoid/extensions/boolean.rb +0 -3
- data/lib/mongoid/extensions/date.rb +0 -9
- data/lib/mongoid/extensions/date_time.rb +0 -9
- data/lib/mongoid/extensions/decimal128.rb +0 -5
- data/lib/mongoid/extensions/false_class.rb +1 -6
- data/lib/mongoid/extensions/float.rb +0 -7
- data/lib/mongoid/extensions/hash.rb +0 -27
- data/lib/mongoid/extensions/integer.rb +0 -9
- data/lib/mongoid/extensions/module.rb +0 -3
- data/lib/mongoid/extensions/nil_class.rb +0 -5
- data/lib/mongoid/extensions/object.rb +1 -40
- data/lib/mongoid/extensions/object_id.rb +0 -7
- data/lib/mongoid/extensions/range.rb +0 -11
- data/lib/mongoid/extensions/regexp.rb +0 -3
- data/lib/mongoid/extensions/set.rb +0 -7
- data/lib/mongoid/extensions/string.rb +1 -30
- data/lib/mongoid/extensions/symbol.rb +0 -7
- data/lib/mongoid/extensions/time.rb +0 -11
- data/lib/mongoid/extensions/time_with_zone.rb +13 -9
- data/lib/mongoid/extensions/true_class.rb +1 -6
- data/lib/mongoid/extensions.rb +15 -3
- data/lib/mongoid/factory.rb +1 -2
- data/lib/mongoid/fields/foreign_key.rb +0 -21
- data/lib/mongoid/fields/localized.rb +0 -11
- data/lib/mongoid/fields/standard.rb +0 -33
- data/lib/mongoid/fields/validators/macro.rb +0 -9
- data/lib/mongoid/fields/validators.rb +0 -1
- data/lib/mongoid/fields.rb +64 -57
- data/lib/mongoid/findable.rb +0 -5
- data/lib/mongoid/indexable/specification.rb +0 -15
- data/lib/mongoid/indexable/validators/options.rb +0 -7
- data/lib/mongoid/indexable.rb +1 -18
- data/lib/mongoid/inspectable.rb +1 -10
- data/lib/mongoid/interceptable.rb +0 -25
- data/lib/mongoid/loggable.rb +0 -9
- data/lib/mongoid/matchable.rb +0 -5
- data/lib/mongoid/matcher/eq_impl.rb +37 -2
- data/lib/mongoid/matcher/eq_impl_with_regexp.rb +6 -1
- data/lib/mongoid/persistable/creatable.rb +1 -20
- data/lib/mongoid/persistable/deletable.rb +0 -17
- data/lib/mongoid/persistable/destroyable.rb +0 -7
- data/lib/mongoid/persistable/incrementable.rb +0 -5
- data/lib/mongoid/persistable/logical.rb +0 -5
- data/lib/mongoid/persistable/poppable.rb +0 -5
- data/lib/mongoid/persistable/pullable.rb +0 -7
- data/lib/mongoid/persistable/pushable.rb +0 -7
- data/lib/mongoid/persistable/renamable.rb +0 -5
- data/lib/mongoid/persistable/savable.rb +0 -7
- data/lib/mongoid/persistable/settable.rb +0 -5
- data/lib/mongoid/persistable/unsettable.rb +0 -5
- data/lib/mongoid/persistable/updatable.rb +2 -17
- data/lib/mongoid/persistable/upsertable.rb +0 -7
- data/lib/mongoid/persistable.rb +0 -23
- data/lib/mongoid/persistence_context.rb +3 -28
- data/lib/mongoid/positional.rb +0 -5
- data/lib/mongoid/query_cache.rb +11 -34
- data/lib/mongoid/railtie.rb +0 -15
- data/lib/mongoid/railties/controller_runtime.rb +0 -1
- data/lib/mongoid/reloadable.rb +4 -16
- data/lib/mongoid/scopable.rb +6 -34
- data/lib/mongoid/selectable.rb +0 -9
- data/lib/mongoid/serializable.rb +0 -15
- data/lib/mongoid/shardable.rb +0 -7
- data/lib/mongoid/stateful.rb +0 -9
- data/lib/mongoid/stringified_symbol.rb +2 -3
- data/lib/mongoid/tasks/database.rb +1 -6
- data/lib/mongoid/threaded/lifecycle.rb +0 -21
- data/lib/mongoid/threaded.rb +0 -55
- data/lib/mongoid/timestamps/created/short.rb +0 -1
- data/lib/mongoid/timestamps/created.rb +0 -1
- data/lib/mongoid/timestamps/short.rb +0 -1
- data/lib/mongoid/timestamps/timeless.rb +0 -7
- data/lib/mongoid/timestamps/updated/short.rb +0 -1
- data/lib/mongoid/timestamps/updated.rb +0 -3
- data/lib/mongoid/timestamps.rb +0 -1
- data/lib/mongoid/touchable.rb +10 -7
- data/lib/mongoid/traversable.rb +64 -53
- data/lib/mongoid/validatable/associated.rb +0 -3
- data/lib/mongoid/validatable/format.rb +0 -1
- data/lib/mongoid/validatable/length.rb +0 -1
- data/lib/mongoid/validatable/localizable.rb +0 -3
- data/lib/mongoid/validatable/macros.rb +0 -7
- data/lib/mongoid/validatable/presence.rb +1 -8
- data/lib/mongoid/validatable/queryable.rb +0 -3
- data/lib/mongoid/validatable/uniqueness.rb +15 -30
- data/lib/mongoid/validatable.rb +1 -22
- data/lib/mongoid/version.rb +1 -2
- data/lib/mongoid.rb +0 -15
- data/lib/rails/generators/mongoid/config/config_generator.rb +0 -1
- data/lib/rails/generators/mongoid/model/model_generator.rb +0 -1
- data/lib/rails/generators/mongoid_generator.rb +0 -1
- data/lib/rails/mongoid.rb +0 -3
- data/spec/integration/app_spec.rb +0 -1
- data/spec/integration/associations/belongs_to_spec.rb +0 -1
- data/spec/integration/associations/embedded_dirty_spec.rb +29 -0
- data/spec/integration/associations/embedded_spec.rb +0 -1
- data/spec/integration/associations/embeds_many_spec.rb +139 -1
- data/spec/integration/associations/embeds_one_spec.rb +0 -1
- data/spec/integration/associations/foreign_key_spec.rb +0 -1
- data/spec/integration/associations/foreign_key_spec_models.rb +0 -1
- data/spec/integration/associations/has_many_spec.rb +0 -1
- data/spec/integration/associations/has_one_spec.rb +0 -1
- data/spec/integration/associations/nested_attributes_assignment_spec.rb +0 -1
- data/spec/integration/associations/reverse_population_spec.rb +0 -1
- data/spec/integration/associations/reverse_population_spec_models.rb +0 -1
- data/spec/integration/associations/scope_option_spec.rb +101 -0
- data/spec/integration/atomic/modifiers_spec.rb +0 -1
- data/spec/integration/bson_regexp_raw_spec.rb +0 -1
- data/spec/integration/callbacks_models.rb +12 -0
- data/spec/integration/callbacks_spec.rb +18 -6
- data/spec/integration/contextual/empty_spec.rb +141 -0
- data/spec/integration/criteria/alias_query_spec.rb +161 -0
- data/spec/integration/criteria/date_field_spec.rb +0 -1
- data/spec/integration/criteria/default_scope_spec.rb +51 -0
- data/spec/integration/criteria/logical_spec.rb +30 -0
- data/spec/integration/criteria/range_spec.rb +265 -0
- data/spec/integration/criteria/time_with_zone_spec.rb +125 -15
- data/spec/integration/discriminator_key_spec.rb +0 -1
- data/spec/integration/discriminator_value_spec.rb +0 -1
- data/spec/integration/document_spec.rb +0 -1
- data/spec/integration/i18n_fallbacks_spec.rb +0 -1
- data/spec/integration/matcher_examples_spec.rb +0 -1
- data/spec/integration/matcher_operator_spec.rb +27 -3
- data/spec/integration/matcher_spec.rb +95 -1
- data/spec/integration/server_query_spec.rb +0 -1
- data/spec/integration/shardable_spec.rb +0 -1
- data/spec/integration/stringified_symbol_field_spec.rb +16 -3
- data/spec/lite_spec_helper.rb +8 -2
- data/spec/mongoid/association/accessors_spec.rb +44 -15
- data/spec/mongoid/association/auto_save_spec.rb +72 -34
- data/spec/mongoid/association/builders_spec.rb +1 -2
- data/spec/mongoid/association/constrainable_spec.rb +0 -1
- data/spec/mongoid/association/counter_cache_spec.rb +32 -33
- data/spec/mongoid/association/depending_spec.rb +12 -13
- data/spec/mongoid/association/eager_spec.rb +4 -5
- data/spec/mongoid/association/embedded/cyclic_spec.rb +2 -3
- data/spec/mongoid/association/embedded/dirty_spec.rb +2 -3
- data/spec/mongoid/association/embedded/embedded_in/binding_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embedded_in/buildable_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embedded_in/proxy_spec.rb +13 -14
- data/spec/mongoid/association/embedded/embedded_in_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_many/binding_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_many/buildable_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_many/proxy_spec.rb +384 -135
- data/spec/mongoid/association/embedded/embeds_many_models.rb +16 -1
- data/spec/mongoid/association/embedded/embeds_many_query_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_many_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one/binding_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one/buildable_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one/proxy_spec.rb +21 -22
- data/spec/mongoid/association/embedded/embeds_one_dnl_models.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one_models.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one_query_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one_spec.rb +0 -1
- data/spec/mongoid/association/macros_spec.rb +9 -10
- data/spec/mongoid/association/nested/many_spec.rb +0 -1
- data/spec/mongoid/association/nested/one_spec.rb +0 -1
- data/spec/mongoid/association/options_spec.rb +0 -1
- data/spec/mongoid/association/polymorphic_spec.rb +0 -1
- data/spec/mongoid/association/referenced/belongs_to/binding_spec.rb +0 -1
- data/spec/mongoid/association/referenced/belongs_to/buildable_spec.rb +55 -17
- data/spec/mongoid/association/referenced/belongs_to/eager_spec.rb +50 -15
- data/spec/mongoid/association/referenced/belongs_to/proxy_spec.rb +57 -53
- data/spec/mongoid/association/referenced/belongs_to_query_spec.rb +20 -1
- data/spec/mongoid/association/referenced/belongs_to_spec.rb +22 -2
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/binding_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/buildable_spec.rb +26 -2
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/eager_spec.rb +31 -3
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_persistence_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_spec.rb +179 -154
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_models.rb +18 -1
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_spec.rb +21 -1
- data/spec/mongoid/association/referenced/has_many/binding_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_many/buildable_spec.rb +21 -1
- data/spec/mongoid/association/referenced/has_many/eager_spec.rb +23 -7
- data/spec/mongoid/association/referenced/has_many/enumerable_spec.rb +303 -125
- data/spec/mongoid/association/referenced/has_many/proxy_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_many/proxy_spec.rb +227 -164
- data/spec/mongoid/association/referenced/has_many_models.rb +35 -1
- data/spec/mongoid/association/referenced/has_many_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_many_spec.rb +21 -1
- data/spec/mongoid/association/referenced/has_one/binding_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_one/buildable_spec.rb +51 -8
- data/spec/mongoid/association/referenced/has_one/eager_spec.rb +17 -2
- data/spec/mongoid/association/referenced/has_one/proxy_spec.rb +26 -27
- data/spec/mongoid/association/referenced/has_one_models.rb +18 -1
- data/spec/mongoid/association/referenced/has_one_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_one_spec.rb +21 -1
- data/spec/mongoid/association/reflections_spec.rb +0 -1
- data/spec/mongoid/association/syncable_spec.rb +31 -32
- data/spec/mongoid/association_spec.rb +0 -1
- data/spec/mongoid/atomic/modifiers_spec.rb +0 -1
- data/spec/mongoid/atomic/paths/embedded/many_spec.rb +0 -1
- data/spec/mongoid/atomic/paths/embedded/one_spec.rb +0 -1
- data/spec/mongoid/atomic/paths/root_spec.rb +0 -1
- data/spec/mongoid/atomic/paths_spec.rb +0 -1
- data/spec/mongoid/atomic_spec.rb +6 -7
- data/spec/mongoid/attributes/dynamic_spec.rb +0 -1
- data/spec/mongoid/attributes/nested_spec.rb +66 -67
- data/spec/mongoid/attributes/projector_spec.rb +5 -2
- data/spec/mongoid/attributes/readonly_spec.rb +22 -23
- data/spec/mongoid/attributes_spec.rb +32 -33
- data/spec/mongoid/cacheable_spec.rb +1 -2
- data/spec/mongoid/changeable_spec.rb +35 -36
- data/spec/mongoid/clients/factory_spec.rb +9 -4
- data/spec/mongoid/clients/options_spec.rb +15 -10
- data/spec/mongoid/clients/sessions_spec.rb +22 -23
- data/spec/mongoid/clients/transactions_spec.rb +49 -27
- data/spec/mongoid/clients_spec.rb +6 -7
- data/spec/mongoid/composable_spec.rb +0 -1
- data/spec/mongoid/config/environment_spec.rb +86 -9
- data/spec/mongoid/config/options_spec.rb +0 -1
- data/spec/mongoid/config_spec.rb +194 -17
- data/spec/mongoid/contextual/aggregable/memory_spec.rb +51 -12
- data/spec/mongoid/contextual/aggregable/mongo_spec.rb +120 -21
- data/spec/mongoid/contextual/aggregable/none_spec.rb +60 -0
- data/spec/mongoid/contextual/atomic_spec.rb +109 -71
- data/spec/mongoid/contextual/geo_near_spec.rb +18 -19
- data/spec/mongoid/contextual/map_reduce_spec.rb +2 -3
- data/spec/mongoid/contextual/memory_spec.rb +23 -24
- data/spec/mongoid/contextual/mongo_spec.rb +339 -77
- data/spec/mongoid/contextual/none_spec.rb +7 -82
- data/spec/mongoid/copyable_spec.rb +11 -12
- data/spec/mongoid/copyable_spec_models.rb +0 -1
- data/spec/mongoid/criteria/findable_spec.rb +23 -24
- data/spec/mongoid/criteria/inspectable_spec.rb +0 -1
- data/spec/mongoid/criteria/marshalable_spec.rb +0 -1
- data/spec/mongoid/criteria/modifiable_spec.rb +36 -37
- data/spec/mongoid/criteria/options_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/aggregable_spec.rb +1 -2
- data/spec/mongoid/criteria/queryable/expandable_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/array_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/big_decimal_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/bignum_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/boolean_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/date_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/date_time_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/fixnum_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/float_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/hash_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/integer_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/nil_class_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/numeric_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/object_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/range_spec.rb +237 -179
- data/spec/mongoid/criteria/queryable/extensions/regexp_raw_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/regexp_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/set_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/string_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/symbol_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/time_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/time_with_zone_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/key_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/mergeable_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/optional_spec.rb +1 -2
- data/spec/mongoid/criteria/queryable/options_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/pipeline_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/queryable_spec.rb +1 -2
- data/spec/mongoid/criteria/queryable/selectable_logical_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/selectable_shared_examples.rb +0 -1
- data/spec/mongoid/criteria/queryable/selectable_spec.rb +15 -16
- data/spec/mongoid/criteria/queryable/selectable_where_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/selector_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/smash_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/storable_spec.rb +37 -1
- data/spec/mongoid/criteria/scopable_spec.rb +127 -1
- data/spec/mongoid/criteria_projection_spec.rb +3 -4
- data/spec/mongoid/criteria_spec.rb +546 -186
- data/spec/mongoid/document_fields_spec.rb +0 -1
- data/spec/mongoid/document_persistence_context_spec.rb +0 -1
- data/spec/mongoid/document_query_spec.rb +0 -1
- data/spec/mongoid/document_spec.rb +32 -34
- data/spec/mongoid/equality_spec.rb +142 -41
- data/spec/mongoid/errors/ambiguous_relationship_spec.rb +0 -1
- data/spec/mongoid/errors/callback_spec.rb +0 -1
- data/spec/mongoid/errors/delete_restriction_spec.rb +0 -1
- data/spec/mongoid/errors/document_not_destroyed_spec.rb +0 -1
- data/spec/mongoid/errors/document_not_found_spec.rb +0 -1
- data/spec/mongoid/errors/eager_load_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_collection_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_config_file_spec.rb +31 -0
- data/spec/mongoid/errors/invalid_config_option_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_field_option_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_field_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_find_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_includes_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_index_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_options_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_path_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_relation_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_scope_spec.rb +1 -2
- data/spec/mongoid/errors/invalid_set_polymorphic_relation_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_storage_options_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_time_spec.rb +0 -1
- data/spec/mongoid/errors/inverse_not_found_spec.rb +0 -1
- data/spec/mongoid/errors/mixed_client_configuration_spec.rb +0 -1
- data/spec/mongoid/errors/mixed_relations_spec.rb +0 -1
- data/spec/mongoid/errors/mongoid_error_spec.rb +0 -1
- data/spec/mongoid/errors/nested_attributes_metadata_not_found_spec.rb +0 -1
- data/spec/mongoid/errors/no_client_config_spec.rb +0 -1
- data/spec/mongoid/errors/no_client_database_spec.rb +0 -1
- data/spec/mongoid/errors/no_client_hosts_spec.rb +0 -1
- data/spec/mongoid/errors/no_clients_config_spec.rb +0 -1
- data/spec/mongoid/errors/no_environment_spec.rb +0 -1
- data/spec/mongoid/errors/no_map_reduce_output_spec.rb +0 -1
- data/spec/mongoid/errors/no_metadata_spec.rb +0 -1
- data/spec/mongoid/errors/no_parent_spec.rb +0 -1
- data/spec/mongoid/errors/readonly_attribute_spec.rb +0 -1
- data/spec/mongoid/errors/readonly_document_spec.rb +0 -1
- data/spec/mongoid/errors/scope_overwrite_spec.rb +0 -1
- data/spec/mongoid/errors/too_many_nested_attribute_records_spec.rb +0 -1
- data/spec/mongoid/errors/unknown_attribute_spec.rb +2 -3
- data/spec/mongoid/errors/unsaved_document_spec.rb +0 -1
- data/spec/mongoid/errors/unsupported_javascript_spec.rb +0 -1
- data/spec/mongoid/errors/validations_spec.rb +0 -1
- data/spec/mongoid/extensions/array_spec.rb +0 -1
- data/spec/mongoid/extensions/big_decimal_spec.rb +0 -1
- data/spec/mongoid/extensions/binary_spec.rb +0 -1
- data/spec/mongoid/extensions/boolean_spec.rb +0 -1
- data/spec/mongoid/extensions/date_class_mongoize_spec.rb +0 -1
- data/spec/mongoid/extensions/date_spec.rb +0 -1
- data/spec/mongoid/extensions/date_time_spec.rb +0 -1
- data/spec/mongoid/extensions/decimal128_spec.rb +0 -1
- data/spec/mongoid/extensions/false_class_spec.rb +0 -1
- data/spec/mongoid/extensions/float_spec.rb +0 -1
- data/spec/mongoid/extensions/hash_spec.rb +0 -1
- data/spec/mongoid/extensions/integer_spec.rb +0 -1
- data/spec/mongoid/extensions/module_spec.rb +0 -1
- data/spec/mongoid/extensions/nil_class_spec.rb +0 -1
- data/spec/mongoid/extensions/object_id_spec.rb +0 -1
- data/spec/mongoid/extensions/object_spec.rb +0 -1
- data/spec/mongoid/extensions/range_spec.rb +0 -1
- data/spec/mongoid/extensions/regexp_spec.rb +0 -1
- data/spec/mongoid/extensions/set_spec.rb +0 -1
- data/spec/mongoid/extensions/string_spec.rb +2 -3
- data/spec/mongoid/extensions/stringified_symbol_spec.rb +0 -1
- data/spec/mongoid/extensions/symbol_spec.rb +0 -1
- data/spec/mongoid/extensions/time_spec.rb +0 -1
- data/spec/mongoid/extensions/time_with_zone_spec.rb +0 -1
- data/spec/mongoid/extensions/true_class_spec.rb +0 -1
- data/spec/mongoid/extensions_spec.rb +14 -3
- data/spec/mongoid/factory_spec.rb +1 -1
- data/spec/mongoid/fields/foreign_key_spec.rb +0 -1
- data/spec/mongoid/fields/localized_spec.rb +0 -1
- data/spec/mongoid/fields/standard_spec.rb +0 -1
- data/spec/mongoid/fields_spec.rb +326 -31
- data/spec/mongoid/findable_spec.rb +21 -22
- data/spec/mongoid/indexable/specification_spec.rb +0 -1
- data/spec/mongoid/indexable_spec.rb +0 -1
- data/spec/mongoid/inspectable_spec.rb +0 -1
- data/spec/mongoid/interceptable_spec.rb +102 -95
- data/spec/mongoid/loggable_spec.rb +0 -1
- data/spec/mongoid/matcher/extract_attribute_spec.rb +5 -2
- data/spec/mongoid/persistable/creatable_spec.rb +2 -3
- data/spec/mongoid/persistable/deletable_spec.rb +18 -19
- data/spec/mongoid/persistable/destroyable_spec.rb +8 -9
- data/spec/mongoid/persistable/incrementable_spec.rb +8 -9
- data/spec/mongoid/persistable/logical_spec.rb +4 -5
- data/spec/mongoid/persistable/poppable_spec.rb +4 -5
- data/spec/mongoid/persistable/pullable_spec.rb +8 -9
- data/spec/mongoid/persistable/pushable_spec.rb +8 -9
- data/spec/mongoid/persistable/renamable_spec.rb +3 -4
- data/spec/mongoid/persistable/savable_spec.rb +15 -11
- data/spec/mongoid/persistable/settable_spec.rb +9 -10
- data/spec/mongoid/persistable/unsettable_spec.rb +4 -5
- data/spec/mongoid/persistable/updatable_spec.rb +43 -24
- data/spec/mongoid/persistable/upsertable_spec.rb +1 -2
- data/spec/mongoid/persistable_spec.rb +1 -2
- data/spec/mongoid/persistence_context_spec.rb +0 -1
- data/spec/mongoid/positional_spec.rb +0 -1
- data/spec/mongoid/query_cache_middleware_spec.rb +1 -2
- data/spec/mongoid/query_cache_spec.rb +56 -10
- data/spec/mongoid/relations/proxy_spec.rb +6 -7
- data/spec/mongoid/reloadable_spec.rb +209 -23
- data/spec/mongoid/scopable_spec.rb +65 -22
- data/spec/mongoid/selectable_spec.rb +6 -7
- data/spec/mongoid/serializable_spec.rb +9 -10
- data/spec/mongoid/shardable_spec.rb +2 -3
- data/spec/mongoid/stateful_spec.rb +1 -2
- data/spec/mongoid/tasks/database_rake_spec.rb +0 -1
- data/spec/mongoid/tasks/database_spec.rb +0 -1
- data/spec/mongoid/threaded_spec.rb +2 -3
- data/spec/mongoid/timestamps/created/short_spec.rb +1 -2
- data/spec/mongoid/timestamps/created_spec.rb +1 -2
- data/spec/mongoid/timestamps/timeless_spec.rb +2 -3
- data/spec/mongoid/timestamps/updated/short_spec.rb +3 -4
- data/spec/mongoid/timestamps/updated_spec.rb +3 -4
- data/spec/mongoid/timestamps_spec.rb +6 -7
- data/spec/mongoid/touchable_spec.rb +33 -20
- data/spec/mongoid/touchable_spec_models.rb +2 -1
- data/spec/mongoid/traversable_spec.rb +65 -2
- data/spec/mongoid/validatable/associated_spec.rb +0 -1
- data/spec/mongoid/validatable/format_spec.rb +0 -1
- data/spec/mongoid/validatable/length_spec.rb +0 -1
- data/spec/mongoid/validatable/numericality_spec.rb +0 -1
- data/spec/mongoid/validatable/presence_spec.rb +26 -23
- data/spec/mongoid/validatable/uniqueness_spec.rb +67 -68
- data/spec/mongoid/validatable_spec.rb +2 -3
- data/spec/mongoid_spec.rb +0 -1
- data/spec/rails/controller_extension/controller_runtime_spec.rb +0 -1
- data/spec/rails/mongoid_spec.rb +0 -1
- data/spec/shared/lib/mrss/cluster_config.rb +6 -1
- data/spec/shared/lib/mrss/constraints.rb +23 -5
- data/spec/shared/lib/mrss/docker_runner.rb +1 -1
- data/spec/shared/lib/mrss/event_subscriber.rb +200 -0
- data/spec/shared/lib/mrss/lite_constraints.rb +8 -0
- data/spec/shared/lib/mrss/server_version_registry.rb +17 -12
- data/spec/shared/lib/mrss/session_registry.rb +69 -0
- data/spec/shared/lib/mrss/session_registry_legacy.rb +60 -0
- data/spec/shared/share/Dockerfile.erb +27 -10
- data/spec/shared/shlib/distro.sh +2 -1
- data/spec/shared/shlib/server.sh +85 -23
- data/spec/shared/shlib/set_env.sh +6 -5
- data/spec/spec_helper.rb +12 -22
- data/spec/support/authorization.rb +0 -1
- data/spec/support/constraints.rb +0 -1
- data/spec/support/expectations.rb +0 -1
- data/spec/support/macros.rb +22 -1
- data/spec/support/models/account.rb +1 -2
- data/spec/support/models/acolyte.rb +0 -1
- data/spec/support/models/actor.rb +0 -1
- data/spec/support/models/actress.rb +0 -1
- data/spec/support/models/address.rb +0 -1
- data/spec/support/models/address_component.rb +0 -1
- data/spec/support/models/address_number.rb +0 -1
- data/spec/support/models/agency.rb +0 -1
- data/spec/support/models/agent.rb +0 -1
- data/spec/support/models/album.rb +0 -1
- data/spec/support/models/alert.rb +0 -1
- data/spec/support/models/animal.rb +0 -1
- data/spec/support/models/answer.rb +0 -1
- data/spec/support/models/appointment.rb +0 -1
- data/spec/support/models/armrest.rb +0 -1
- data/spec/support/models/array_field.rb +0 -1
- data/spec/support/models/article.rb +0 -1
- data/spec/support/models/artist.rb +2 -1
- data/spec/support/models/artwork.rb +0 -1
- data/spec/support/models/audible_sound.rb +3 -0
- data/spec/support/models/audio.rb +0 -1
- data/spec/support/models/augmentation.rb +0 -1
- data/spec/support/models/author.rb +0 -1
- data/spec/support/models/baby.rb +0 -1
- data/spec/support/models/band.rb +4 -1
- data/spec/support/models/bar.rb +0 -1
- data/spec/support/models/basic.rb +0 -1
- data/spec/support/models/bed.rb +0 -1
- data/spec/support/models/big_palette.rb +0 -1
- data/spec/support/models/birthday.rb +0 -1
- data/spec/support/models/bolt.rb +0 -1
- data/spec/support/models/bomb.rb +0 -1
- data/spec/support/models/book.rb +0 -1
- data/spec/support/models/breed.rb +0 -1
- data/spec/support/models/browser.rb +0 -1
- data/spec/support/models/building.rb +0 -1
- data/spec/support/models/building_address.rb +0 -1
- data/spec/support/models/bus.rb +0 -1
- data/spec/support/models/business.rb +0 -1
- data/spec/support/models/callback_test.rb +0 -1
- data/spec/support/models/canvas.rb +0 -1
- data/spec/support/models/car.rb +0 -1
- data/spec/support/models/cat.rb +0 -1
- data/spec/support/models/category.rb +0 -1
- data/spec/support/models/child.rb +0 -1
- data/spec/support/models/child_doc.rb +3 -4
- data/spec/support/models/church.rb +0 -1
- data/spec/support/models/circle.rb +0 -1
- data/spec/support/models/circuit.rb +0 -1
- data/spec/support/models/circus.rb +0 -1
- data/spec/support/models/code.rb +0 -1
- data/spec/support/models/coding/pull_request.rb +0 -1
- data/spec/support/models/coding.rb +0 -1
- data/spec/support/models/comment.rb +0 -1
- data/spec/support/models/company.rb +0 -1
- data/spec/support/models/consumption_period.rb +0 -1
- data/spec/support/models/contextable_item.rb +0 -1
- data/spec/support/models/contractor.rb +0 -1
- data/spec/support/models/cookie.rb +0 -1
- data/spec/support/models/country_code.rb +2 -1
- data/spec/support/models/courier_job.rb +0 -1
- data/spec/support/models/crate.rb +0 -1
- data/spec/support/models/customer.rb +0 -1
- data/spec/support/models/customer_address.rb +0 -1
- data/spec/support/models/deed.rb +0 -1
- data/spec/support/models/definition.rb +0 -1
- data/spec/support/models/delegating_patient.rb +0 -1
- data/spec/support/models/description.rb +0 -1
- data/spec/support/models/dictionary.rb +0 -1
- data/spec/support/models/division.rb +0 -1
- data/spec/support/models/doctor.rb +0 -1
- data/spec/support/models/dog.rb +0 -1
- data/spec/support/models/dokument.rb +0 -1
- data/spec/support/models/draft.rb +0 -1
- data/spec/support/models/dragon.rb +0 -1
- data/spec/support/models/driver.rb +0 -1
- data/spec/support/models/drug.rb +0 -1
- data/spec/support/models/dungeon.rb +0 -1
- data/spec/support/models/edit.rb +0 -1
- data/spec/support/models/email.rb +0 -1
- data/spec/support/models/employer.rb +0 -1
- data/spec/support/models/entry.rb +0 -1
- data/spec/support/models/eraser.rb +0 -1
- data/spec/support/models/even.rb +0 -1
- data/spec/support/models/event.rb +0 -1
- data/spec/support/models/exhibition.rb +0 -1
- data/spec/support/models/exhibitor.rb +0 -1
- data/spec/support/models/explosion.rb +0 -1
- data/spec/support/models/eye.rb +0 -1
- data/spec/support/models/eye_bowl.rb +0 -1
- data/spec/support/models/face.rb +0 -1
- data/spec/support/models/favorite.rb +0 -1
- data/spec/support/models/filesystem.rb +0 -1
- data/spec/support/models/fire_hydrant.rb +0 -1
- data/spec/support/models/firefox.rb +0 -1
- data/spec/support/models/fish.rb +0 -1
- data/spec/support/models/folder.rb +0 -1
- data/spec/support/models/folder_item.rb +0 -1
- data/spec/support/models/fruits.rb +0 -1
- data/spec/support/models/game.rb +0 -1
- data/spec/support/models/ghost.rb +0 -1
- data/spec/support/models/guitar.rb +0 -1
- data/spec/support/models/hole.rb +0 -1
- data/spec/support/models/home.rb +0 -1
- data/spec/support/models/house.rb +0 -1
- data/spec/support/models/html_writer.rb +0 -1
- data/spec/support/models/id_key.rb +0 -1
- data/spec/support/models/idnodef.rb +0 -1
- data/spec/support/models/image.rb +0 -1
- data/spec/support/models/implant.rb +0 -1
- data/spec/support/models/instrument.rb +0 -1
- data/spec/support/models/item.rb +0 -1
- data/spec/support/models/jar.rb +0 -1
- data/spec/support/models/kaleidoscope.rb +0 -1
- data/spec/support/models/kangaroo.rb +0 -1
- data/spec/support/models/label.rb +2 -2
- data/spec/support/models/language.rb +0 -1
- data/spec/support/models/lat_lng.rb +0 -1
- data/spec/support/models/league.rb +0 -1
- data/spec/support/models/learner.rb +0 -1
- data/spec/support/models/line_item.rb +0 -1
- data/spec/support/models/location.rb +0 -1
- data/spec/support/models/login.rb +0 -1
- data/spec/support/models/manufacturer.rb +0 -1
- data/spec/support/models/meat.rb +0 -1
- data/spec/support/models/membership.rb +0 -1
- data/spec/support/models/message.rb +0 -1
- data/spec/support/models/minim.rb +0 -1
- data/spec/support/models/mixed_drink.rb +0 -1
- data/spec/support/models/mop.rb +0 -1
- data/spec/support/models/movie.rb +0 -1
- data/spec/support/models/my_hash.rb +0 -1
- data/spec/support/models/name.rb +0 -1
- data/spec/support/models/name_only.rb +0 -1
- data/spec/support/models/node.rb +0 -1
- data/spec/support/models/note.rb +0 -1
- data/spec/support/models/nut.rb +0 -1
- data/spec/support/models/odd.rb +0 -1
- data/spec/support/models/order.rb +2 -1
- data/spec/support/models/ordered_post.rb +1 -2
- data/spec/support/models/ordered_preference.rb +0 -1
- data/spec/support/models/oscar.rb +0 -1
- data/spec/support/models/other_owner_object.rb +0 -1
- data/spec/support/models/override.rb +0 -1
- data/spec/support/models/ownable.rb +0 -1
- data/spec/support/models/owner.rb +0 -1
- data/spec/support/models/pack.rb +0 -1
- data/spec/support/models/page.rb +0 -1
- data/spec/support/models/page_question.rb +0 -1
- data/spec/support/models/palette.rb +0 -1
- data/spec/support/models/parent.rb +0 -1
- data/spec/support/models/parent_doc.rb +0 -1
- data/spec/support/models/passport.rb +5 -1
- data/spec/support/models/patient.rb +0 -1
- data/spec/support/models/pdf_writer.rb +0 -1
- data/spec/support/models/pencil.rb +0 -1
- data/spec/support/models/person.rb +1 -1
- data/spec/support/models/pet.rb +0 -1
- data/spec/support/models/pet_owner.rb +0 -1
- data/spec/support/models/phone.rb +2 -2
- data/spec/support/models/piano.rb +0 -1
- data/spec/support/models/pizza.rb +0 -1
- data/spec/support/models/player.rb +0 -1
- data/spec/support/models/post.rb +0 -1
- data/spec/support/models/post_genre.rb +0 -1
- data/spec/support/models/powerup.rb +0 -1
- data/spec/support/models/preference.rb +0 -1
- data/spec/support/models/princess.rb +0 -1
- data/spec/support/models/product.rb +0 -1
- data/spec/support/models/profile.rb +0 -1
- data/spec/support/models/pronunciation.rb +0 -1
- data/spec/support/models/pub.rb +0 -1
- data/spec/support/models/publication/encyclopedia.rb +0 -1
- data/spec/support/models/publication/review.rb +0 -1
- data/spec/support/models/publication.rb +0 -1
- data/spec/support/models/purchase.rb +0 -1
- data/spec/support/models/purchased_item.rb +10 -0
- data/spec/support/models/question.rb +0 -1
- data/spec/support/models/quiz.rb +0 -1
- data/spec/support/models/rating.rb +0 -1
- data/spec/support/models/record.rb +0 -1
- data/spec/support/models/registry.rb +0 -1
- data/spec/support/models/role.rb +0 -1
- data/spec/support/models/root_category.rb +0 -1
- data/spec/support/models/sandwich.rb +0 -1
- data/spec/support/models/scheduler.rb +0 -1
- data/spec/support/models/scribe.rb +0 -1
- data/spec/support/models/sealer.rb +0 -1
- data/spec/support/models/seat.rb +0 -1
- data/spec/support/models/seo.rb +0 -1
- data/spec/support/models/series.rb +0 -1
- data/spec/support/models/server.rb +0 -1
- data/spec/support/models/service.rb +0 -1
- data/spec/support/models/shape.rb +0 -1
- data/spec/support/models/shelf.rb +0 -1
- data/spec/support/models/shipment_address.rb +0 -1
- data/spec/support/models/shipping_container.rb +0 -1
- data/spec/support/models/shipping_pack.rb +0 -1
- data/spec/support/models/shirt.rb +0 -1
- data/spec/support/models/shop.rb +0 -1
- data/spec/support/models/short_agent.rb +0 -1
- data/spec/support/models/short_quiz.rb +0 -1
- data/spec/support/models/simple.rb +0 -1
- data/spec/support/models/slave.rb +0 -1
- data/spec/support/models/song.rb +0 -1
- data/spec/support/models/sound.rb +0 -1
- data/spec/support/models/spacer.rb +0 -1
- data/spec/support/models/square.rb +0 -1
- data/spec/support/models/staff.rb +0 -1
- data/spec/support/models/store_as_dup_test1.rb +0 -1
- data/spec/support/models/store_as_dup_test2.rb +0 -1
- data/spec/support/models/store_as_dup_test3.rb +0 -1
- data/spec/support/models/store_as_dup_test4.rb +0 -1
- data/spec/support/models/strategy.rb +0 -1
- data/spec/support/models/sub_item.rb +0 -1
- data/spec/support/models/subscription.rb +0 -1
- data/spec/support/models/survey.rb +0 -1
- data/spec/support/models/symptom.rb +0 -1
- data/spec/support/models/tag.rb +0 -1
- data/spec/support/models/target.rb +0 -1
- data/spec/support/models/template.rb +0 -1
- data/spec/support/models/thing.rb +0 -1
- data/spec/support/models/threadlocker.rb +0 -1
- data/spec/support/models/title.rb +0 -1
- data/spec/support/models/tool.rb +0 -1
- data/spec/support/models/topping.rb +0 -1
- data/spec/support/models/toy.rb +0 -1
- data/spec/support/models/track.rb +0 -1
- data/spec/support/models/translation.rb +0 -1
- data/spec/support/models/tree.rb +0 -1
- data/spec/support/models/truck.rb +0 -1
- data/spec/support/models/updatable.rb +0 -1
- data/spec/support/models/user.rb +0 -1
- data/spec/support/models/user_account.rb +0 -1
- data/spec/support/models/validation_callback.rb +0 -1
- data/spec/support/models/vehicle.rb +0 -1
- data/spec/support/models/version.rb +0 -1
- data/spec/support/models/vertex.rb +0 -1
- data/spec/support/models/vet_visit.rb +0 -1
- data/spec/support/models/video.rb +0 -1
- data/spec/support/models/video_game.rb +0 -1
- data/spec/support/models/washer.rb +0 -1
- data/spec/support/models/weapon.rb +0 -1
- data/spec/support/models/wiki_page.rb +0 -1
- data/spec/support/models/word.rb +0 -1
- data/spec/support/models/word_origin.rb +0 -1
- data/spec/support/models/writer.rb +0 -1
- data/spec/support/shared/time.rb +0 -1
- data/spec/support/spec_config.rb +3 -1
- data.tar.gz.sig +0 -0
- metadata +642 -610
- metadata.gz.sig +0 -0
- data/lib/support/ruby_version.rb +0 -29
- data/spec/support/session_registry.rb +0 -50
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
require 'mongoid/association/referenced/has_one/binding'
|
|
5
4
|
require 'mongoid/association/referenced/has_one/buildable'
|
|
@@ -11,8 +10,6 @@ module Mongoid
|
|
|
11
10
|
module Referenced
|
|
12
11
|
|
|
13
12
|
# The has_one association.
|
|
14
|
-
#
|
|
15
|
-
# @since 7.0
|
|
16
13
|
class HasOne
|
|
17
14
|
include Relatable
|
|
18
15
|
include Buildable
|
|
@@ -21,37 +18,30 @@ module Mongoid
|
|
|
21
18
|
# common ones.
|
|
22
19
|
#
|
|
23
20
|
# @return [ Array<Symbol> ] The extra valid options.
|
|
24
|
-
#
|
|
25
|
-
# @since 7.0
|
|
26
21
|
ASSOCIATION_OPTIONS = [
|
|
27
22
|
:as,
|
|
28
23
|
:autobuild,
|
|
29
24
|
:autosave,
|
|
30
25
|
:dependent,
|
|
31
26
|
:foreign_key,
|
|
32
|
-
:primary_key
|
|
27
|
+
:primary_key,
|
|
28
|
+
:scope,
|
|
33
29
|
].freeze
|
|
34
30
|
|
|
35
31
|
# The complete list of valid options for this association, including
|
|
36
32
|
# the shared ones.
|
|
37
33
|
#
|
|
38
34
|
# @return [ Array<Symbol> ] The valid options.
|
|
39
|
-
#
|
|
40
|
-
# @since 7.0
|
|
41
35
|
VALID_OPTIONS = (ASSOCIATION_OPTIONS + SHARED_OPTIONS).freeze
|
|
42
36
|
|
|
43
37
|
# The default foreign key suffix.
|
|
44
38
|
#
|
|
45
39
|
# @return [ String ] '_id'
|
|
46
|
-
#
|
|
47
|
-
# @since 7.0
|
|
48
40
|
FOREIGN_KEY_SUFFIX = '_id'.freeze
|
|
49
41
|
|
|
50
42
|
# The list of association complements.
|
|
51
43
|
#
|
|
52
44
|
# @return [ Array<Association> ] The association complements.
|
|
53
|
-
#
|
|
54
|
-
# @since 7.0
|
|
55
45
|
def relation_complements
|
|
56
46
|
@relation_complements ||= [ Referenced::BelongsTo ].freeze
|
|
57
47
|
end
|
|
@@ -59,8 +49,6 @@ module Mongoid
|
|
|
59
49
|
# Setup the instance methods, fields, etc. on the association owning class.
|
|
60
50
|
#
|
|
61
51
|
# @return [ self ]
|
|
62
|
-
#
|
|
63
|
-
# @since 7.0
|
|
64
52
|
def setup!
|
|
65
53
|
setup_instance_methods!
|
|
66
54
|
self
|
|
@@ -70,8 +58,6 @@ module Mongoid
|
|
|
70
58
|
#
|
|
71
59
|
# @return [ String ] The foreign key field for saving the
|
|
72
60
|
# association reference.
|
|
73
|
-
#
|
|
74
|
-
# @since 7.0
|
|
75
61
|
def foreign_key
|
|
76
62
|
@foreign_key ||= @options[:foreign_key] ? @options[:foreign_key].to_s :
|
|
77
63
|
default_foreign_key_field
|
|
@@ -80,22 +66,16 @@ module Mongoid
|
|
|
80
66
|
# Is this association type embedded?
|
|
81
67
|
#
|
|
82
68
|
# @return [ false ] Always false.
|
|
83
|
-
#
|
|
84
|
-
# @since 7.0
|
|
85
69
|
def embedded?; false; end
|
|
86
70
|
|
|
87
71
|
# The default for validation the association object.
|
|
88
72
|
#
|
|
89
73
|
# @return [ true ] Always true.
|
|
90
|
-
#
|
|
91
|
-
# @since 7.0
|
|
92
74
|
def validation_default; true; end
|
|
93
75
|
|
|
94
76
|
# Get the association proxy class for this association type.
|
|
95
77
|
#
|
|
96
78
|
# @return [ Association::HasOne::Proxy ] The proxy class.
|
|
97
|
-
#
|
|
98
|
-
# @since 7.0
|
|
99
79
|
def relation
|
|
100
80
|
Proxy
|
|
101
81
|
end
|
|
@@ -106,8 +86,6 @@ module Mongoid
|
|
|
106
86
|
# @param [ Hash ] options The options for the association.
|
|
107
87
|
#
|
|
108
88
|
# @return [ Association::Nested::Many ] The Nested Builder object.
|
|
109
|
-
#
|
|
110
|
-
# @since 7.0
|
|
111
89
|
def nested_builder(attributes, options)
|
|
112
90
|
Nested::One.new(self, attributes, options)
|
|
113
91
|
end
|
|
@@ -115,8 +93,6 @@ module Mongoid
|
|
|
115
93
|
# Is this association polymorphic?
|
|
116
94
|
#
|
|
117
95
|
# @return [ true, false ] Whether this association is polymorphic.
|
|
118
|
-
#
|
|
119
|
-
# @since 7.0
|
|
120
96
|
def polymorphic?
|
|
121
97
|
@polymorphic ||= !!as
|
|
122
98
|
end
|
|
@@ -126,8 +102,6 @@ module Mongoid
|
|
|
126
102
|
# @note Only relevant for polymorphic associations.
|
|
127
103
|
#
|
|
128
104
|
# @return [ String, nil ] The type field.
|
|
129
|
-
#
|
|
130
|
-
# @since 7.0
|
|
131
105
|
def type
|
|
132
106
|
@type ||= "#{as}_type" if polymorphic?
|
|
133
107
|
end
|
|
@@ -152,19 +126,22 @@ module Mongoid
|
|
|
152
126
|
# @param [ Document ] document The document to calculate on.
|
|
153
127
|
#
|
|
154
128
|
# @return [ Root ] The root atomic path calculator.
|
|
155
|
-
#
|
|
156
|
-
# @since 2.1.0
|
|
157
129
|
def path(document)
|
|
158
130
|
Mongoid::Atomic::Paths::Root.new(document)
|
|
159
131
|
end
|
|
160
132
|
|
|
133
|
+
# Get the scope to be applied when querying the association.
|
|
134
|
+
#
|
|
135
|
+
# @return [ Proc | Symbol | nil ] The association scope, if any.
|
|
136
|
+
def scope
|
|
137
|
+
@options[:scope]
|
|
138
|
+
end
|
|
139
|
+
|
|
161
140
|
private
|
|
162
141
|
|
|
163
142
|
# Setup the instance methods on the class having this association type.
|
|
164
143
|
#
|
|
165
144
|
# @return [ self ]
|
|
166
|
-
#
|
|
167
|
-
# @since 7.0
|
|
168
145
|
def setup_instance_methods!
|
|
169
146
|
define_getter!
|
|
170
147
|
define_setter!
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
module Association
|
|
@@ -18,8 +17,6 @@ module Mongoid
|
|
|
18
17
|
# @param [ Association ] association The association metadata.
|
|
19
18
|
#
|
|
20
19
|
# @return [ true, false ] If we can sync.
|
|
21
|
-
#
|
|
22
|
-
# @since 2.1.0
|
|
23
20
|
def _syncable?(association)
|
|
24
21
|
!_synced?(association.foreign_key) && send(association.foreign_key_check)
|
|
25
22
|
end
|
|
@@ -30,8 +27,6 @@ module Mongoid
|
|
|
30
27
|
# document._synced
|
|
31
28
|
#
|
|
32
29
|
# @return [ Hash ] The synced foreign keys.
|
|
33
|
-
#
|
|
34
|
-
# @since 2.1.0
|
|
35
30
|
def _synced
|
|
36
31
|
@_synced ||= {}
|
|
37
32
|
end
|
|
@@ -44,8 +39,6 @@ module Mongoid
|
|
|
44
39
|
# @param [ String ] foreign_key The foreign key.
|
|
45
40
|
#
|
|
46
41
|
# @return [ true, false ] If we can sync.
|
|
47
|
-
#
|
|
48
|
-
# @since 2.1.0
|
|
49
42
|
def _synced?(foreign_key)
|
|
50
43
|
!!_synced[foreign_key]
|
|
51
44
|
end
|
|
@@ -58,8 +51,6 @@ module Mongoid
|
|
|
58
51
|
# @param [ Association ] association The association.
|
|
59
52
|
#
|
|
60
53
|
# @return [ Object ] The updated values.
|
|
61
|
-
#
|
|
62
|
-
# @since 2.2.1
|
|
63
54
|
def remove_inverse_keys(association)
|
|
64
55
|
foreign_keys = send(association.foreign_key)
|
|
65
56
|
unless foreign_keys.nil? || foreign_keys.empty?
|
|
@@ -75,8 +66,6 @@ module Mongoid
|
|
|
75
66
|
# @param [ Association ] association The document association.
|
|
76
67
|
#
|
|
77
68
|
# @return [ Object ] The updated values.
|
|
78
|
-
#
|
|
79
|
-
# @since 2.1.0
|
|
80
69
|
def update_inverse_keys(association)
|
|
81
70
|
if changes.has_key?(association.foreign_key)
|
|
82
71
|
old, new = changes[association.foreign_key]
|
|
@@ -110,8 +99,6 @@ module Mongoid
|
|
|
110
99
|
# Person._synced(association)
|
|
111
100
|
#
|
|
112
101
|
# @param [ Association ] association The association metadata.
|
|
113
|
-
#
|
|
114
|
-
# @since 2.1.0
|
|
115
102
|
def _synced(association)
|
|
116
103
|
unless association.forced_nil_inverse?
|
|
117
104
|
synced_save(association)
|
|
@@ -133,8 +120,6 @@ module Mongoid
|
|
|
133
120
|
# @param [ Association ] association The association metadata.
|
|
134
121
|
#
|
|
135
122
|
# @return [ Class ] The class getting set up.
|
|
136
|
-
#
|
|
137
|
-
# @since 2.1.0
|
|
138
123
|
def synced_save(association)
|
|
139
124
|
set_callback(
|
|
140
125
|
:save,
|
|
@@ -154,8 +139,6 @@ module Mongoid
|
|
|
154
139
|
# @param [ Association ] association The association metadata.
|
|
155
140
|
#
|
|
156
141
|
# @return [ Class ] The class getting set up.
|
|
157
|
-
#
|
|
158
|
-
# @since 2.2.1
|
|
159
142
|
def synced_destroy(association)
|
|
160
143
|
set_callback(
|
|
161
144
|
:destroy,
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
require 'mongoid/association/constrainable'
|
|
5
4
|
require 'mongoid/association/options'
|
|
@@ -8,8 +7,6 @@ module Mongoid
|
|
|
8
7
|
module Association
|
|
9
8
|
|
|
10
9
|
# This module provides behaviors shared between Association types.
|
|
11
|
-
#
|
|
12
|
-
# @since 7.0
|
|
13
10
|
module Relatable
|
|
14
11
|
include Constrainable
|
|
15
12
|
include Options
|
|
@@ -17,8 +14,6 @@ module Mongoid
|
|
|
17
14
|
# The options shared between all association types.
|
|
18
15
|
#
|
|
19
16
|
# @return [ Array<Symbol> ] The shared options.
|
|
20
|
-
#
|
|
21
|
-
# @since 7.0
|
|
22
17
|
SHARED_OPTIONS = [
|
|
23
18
|
:class_name,
|
|
24
19
|
:inverse_of,
|
|
@@ -29,22 +24,16 @@ module Mongoid
|
|
|
29
24
|
# The primary key default.
|
|
30
25
|
#
|
|
31
26
|
# @return [ String ] The primary key field default.
|
|
32
|
-
#
|
|
33
|
-
# @since 7.0
|
|
34
27
|
PRIMARY_KEY_DEFAULT = '_id'.freeze
|
|
35
28
|
|
|
36
29
|
# The name of the association.
|
|
37
30
|
#
|
|
38
31
|
# @return [ Symbol ] The name of the association.
|
|
39
|
-
#
|
|
40
|
-
# @since 7.0
|
|
41
32
|
attr_reader :name
|
|
42
33
|
|
|
43
34
|
# The options on this association.
|
|
44
35
|
#
|
|
45
36
|
# @return [ Hash ] The options.
|
|
46
|
-
#
|
|
47
|
-
# @since 7.0
|
|
48
37
|
attr_reader :options
|
|
49
38
|
|
|
50
39
|
# Initialize the Association.
|
|
@@ -53,8 +42,6 @@ module Mongoid
|
|
|
53
42
|
# @param [ Symbol ] name The name of the association.
|
|
54
43
|
# @param [ Hash ] opts The association options.
|
|
55
44
|
# @param [ Block ] block The optional block.
|
|
56
|
-
#
|
|
57
|
-
# @since 7.0
|
|
58
45
|
def initialize(_class, name, opts = {}, &block)
|
|
59
46
|
@owner_class = _class
|
|
60
47
|
@name = name
|
|
@@ -71,8 +58,6 @@ module Mongoid
|
|
|
71
58
|
# Compare this association to another.
|
|
72
59
|
#
|
|
73
60
|
# @return [ Object ] The object to compare to this association.
|
|
74
|
-
#
|
|
75
|
-
# @since 7.0
|
|
76
61
|
def ==(other)
|
|
77
62
|
relation_class_name == other.relation_class_name &&
|
|
78
63
|
inverse_class_name == other.inverse_class_name &&
|
|
@@ -86,8 +71,6 @@ module Mongoid
|
|
|
86
71
|
#
|
|
87
72
|
# @return [ Array<Proc, Symbol> ] A list of the callbacks, either method
|
|
88
73
|
# names or Procs.
|
|
89
|
-
#
|
|
90
|
-
# @since 7.0
|
|
91
74
|
def get_callbacks(callback_type)
|
|
92
75
|
Array(options[callback_type])
|
|
93
76
|
end
|
|
@@ -96,8 +79,6 @@ module Mongoid
|
|
|
96
79
|
# @note Only relevant for polymorphic associations that take the :as option.
|
|
97
80
|
#
|
|
98
81
|
# @return [ String ] The type setter method.
|
|
99
|
-
#
|
|
100
|
-
# @since 7.0
|
|
101
82
|
def type_setter
|
|
102
83
|
@type_setter ||= type.__setter__
|
|
103
84
|
end
|
|
@@ -108,8 +89,6 @@ module Mongoid
|
|
|
108
89
|
# @param [ Document ] doc The document to be bound.
|
|
109
90
|
#
|
|
110
91
|
# @return [ true, false ] Whether the document can be bound.
|
|
111
|
-
#
|
|
112
|
-
# @since 7.0
|
|
113
92
|
def bindable?(doc); false; end
|
|
114
93
|
|
|
115
94
|
# Get the inverse names.
|
|
@@ -118,10 +97,10 @@ module Mongoid
|
|
|
118
97
|
# determining inverses.
|
|
119
98
|
#
|
|
120
99
|
# @return [ Array<Symbol> ] The list of inverse names.
|
|
121
|
-
#
|
|
122
|
-
# @since 7.0
|
|
123
100
|
def inverses(other = nil)
|
|
124
101
|
return [ inverse_of ] if inverse_of
|
|
102
|
+
return [] if @options.key?(:inverse_of) && !inverse_of
|
|
103
|
+
|
|
125
104
|
if polymorphic?
|
|
126
105
|
polymorphic_inverses(other)
|
|
127
106
|
else
|
|
@@ -135,8 +114,6 @@ module Mongoid
|
|
|
135
114
|
# determining inverses.
|
|
136
115
|
#
|
|
137
116
|
# @return [ Association ] The inverse's association metadata.
|
|
138
|
-
#
|
|
139
|
-
# @since 7.0
|
|
140
117
|
def inverse_association(other = nil)
|
|
141
118
|
(other || relation_class).relations[inverse(other)]
|
|
142
119
|
end
|
|
@@ -144,8 +121,6 @@ module Mongoid
|
|
|
144
121
|
# Get the inverse type.
|
|
145
122
|
#
|
|
146
123
|
# @return [ nil ] Default is nil for an association.
|
|
147
|
-
#
|
|
148
|
-
# @since 7.0
|
|
149
124
|
def inverse_type; end
|
|
150
125
|
|
|
151
126
|
# The class name, possibly unqualified or :: prefixed, of the association
|
|
@@ -169,8 +144,6 @@ module Mongoid
|
|
|
169
144
|
# the +relation_class+ method.
|
|
170
145
|
#
|
|
171
146
|
# @return [ String ] The association objects' class name.
|
|
172
|
-
#
|
|
173
|
-
# @since 7.0
|
|
174
147
|
def relation_class_name
|
|
175
148
|
@class_name ||= @options[:class_name] || ActiveSupport::Inflector.classify(name)
|
|
176
149
|
end
|
|
@@ -190,8 +163,6 @@ module Mongoid
|
|
|
190
163
|
# happen to be defined with the same name as the association name).
|
|
191
164
|
#
|
|
192
165
|
# @return [ String ] The association objects' class.
|
|
193
|
-
#
|
|
194
|
-
# @since 7.0
|
|
195
166
|
def relation_class
|
|
196
167
|
@klass ||= begin
|
|
197
168
|
cls_name = @options[:class_name] || ActiveSupport::Inflector.classify(name)
|
|
@@ -203,8 +174,6 @@ module Mongoid
|
|
|
203
174
|
# The class name of the object owning this association.
|
|
204
175
|
#
|
|
205
176
|
# @return [ String ] The owning objects' class name.
|
|
206
|
-
#
|
|
207
|
-
# @since 7.0
|
|
208
177
|
def inverse_class_name
|
|
209
178
|
@inverse_class_name ||= @owner_class.name
|
|
210
179
|
end
|
|
@@ -212,8 +181,6 @@ module Mongoid
|
|
|
212
181
|
# The class of the object owning this association.
|
|
213
182
|
#
|
|
214
183
|
# @return [ String ] The owning objects' class.
|
|
215
|
-
#
|
|
216
|
-
# @since 7.0
|
|
217
184
|
def inverse_class
|
|
218
185
|
@owner_class
|
|
219
186
|
end
|
|
@@ -223,8 +190,6 @@ module Mongoid
|
|
|
223
190
|
# Otherwise, the primary key.
|
|
224
191
|
#
|
|
225
192
|
# @return [ Symbol, String ] The primary key.
|
|
226
|
-
#
|
|
227
|
-
# @since 7.0
|
|
228
193
|
def key
|
|
229
194
|
stores_foreign_key? ? foreign_key : primary_key
|
|
230
195
|
end
|
|
@@ -232,8 +197,6 @@ module Mongoid
|
|
|
232
197
|
# The name of the setter on this object for assigning an associated object.
|
|
233
198
|
#
|
|
234
199
|
# @return [ String ] The setter name.
|
|
235
|
-
#
|
|
236
|
-
# @since 7.0
|
|
237
200
|
def setter
|
|
238
201
|
@setter ||= "#{name}="
|
|
239
202
|
end
|
|
@@ -241,8 +204,6 @@ module Mongoid
|
|
|
241
204
|
# The name of the inverse setter method.
|
|
242
205
|
#
|
|
243
206
|
# @return [ String ] The name of the inverse setter.
|
|
244
|
-
#
|
|
245
|
-
# @since 7.0
|
|
246
207
|
def inverse_setter(other = nil)
|
|
247
208
|
@inverse_setter ||= "#{inverses(other).first}=" unless inverses(other).blank?
|
|
248
209
|
end
|
|
@@ -250,8 +211,6 @@ module Mongoid
|
|
|
250
211
|
# The name of the foreign key setter method.
|
|
251
212
|
#
|
|
252
213
|
# @return [ String ] The name of the foreign key setter.
|
|
253
|
-
#
|
|
254
|
-
# @since 7.0
|
|
255
214
|
def foreign_key_setter
|
|
256
215
|
# note: You can't check if this association stores foreign key
|
|
257
216
|
# See HasOne and HasMany binding, they referenced foreign_key_setter
|
|
@@ -261,8 +220,6 @@ module Mongoid
|
|
|
261
220
|
# The atomic path for this association.
|
|
262
221
|
#
|
|
263
222
|
# @return [ Mongoid::Atomic::Paths::Root ] The atomic path object.
|
|
264
|
-
#
|
|
265
|
-
# @since 7.0
|
|
266
223
|
def path(document)
|
|
267
224
|
relation.path(document)
|
|
268
225
|
end
|
|
@@ -274,8 +231,6 @@ module Mongoid
|
|
|
274
231
|
# association.inverse_type_setter
|
|
275
232
|
#
|
|
276
233
|
# @return [ String ] The name of the setter.
|
|
277
|
-
#
|
|
278
|
-
# @since 7.0
|
|
279
234
|
def inverse_type_setter
|
|
280
235
|
@inverse_type_setter ||= inverse_type.__setter__
|
|
281
236
|
end
|
|
@@ -286,8 +241,6 @@ module Mongoid
|
|
|
286
241
|
# association.foreign_key_check
|
|
287
242
|
#
|
|
288
243
|
# @return [ String ] The foreign key check.
|
|
289
|
-
#
|
|
290
|
-
# @since 7.0
|
|
291
244
|
def foreign_key_check
|
|
292
245
|
@foreign_key_check ||= "#{foreign_key}_changed?" if (stores_foreign_key? && foreign_key)
|
|
293
246
|
end
|
|
@@ -299,8 +252,6 @@ module Mongoid
|
|
|
299
252
|
# association.
|
|
300
253
|
#
|
|
301
254
|
# @return [ Proxy ]
|
|
302
|
-
#
|
|
303
|
-
# @since 7.0
|
|
304
255
|
def create_relation(owner, target)
|
|
305
256
|
relation.new(owner, target, self)
|
|
306
257
|
end
|
|
@@ -308,8 +259,6 @@ module Mongoid
|
|
|
308
259
|
# Whether the dependent method is destructive.
|
|
309
260
|
#
|
|
310
261
|
# @return [ true, false ] If the dependent method is destructive.
|
|
311
|
-
#
|
|
312
|
-
# @since 7.0
|
|
313
262
|
def destructive?
|
|
314
263
|
@destructive ||= !!(dependent && (dependent == :delete_all || dependent == :destroy))
|
|
315
264
|
end
|
|
@@ -317,8 +266,6 @@ module Mongoid
|
|
|
317
266
|
# Get the counter cache column name.
|
|
318
267
|
#
|
|
319
268
|
# @return [ String ] The counter cache column name.
|
|
320
|
-
#
|
|
321
|
-
# @since 7.0
|
|
322
269
|
def counter_cache_column_name
|
|
323
270
|
@counter_cache_column_name ||= (@options[:counter_cache].is_a?(String) ||
|
|
324
271
|
@options[:counter_cache].is_a?(Symbol)) ?
|
|
@@ -328,8 +275,6 @@ module Mongoid
|
|
|
328
275
|
# Get the extension.
|
|
329
276
|
#
|
|
330
277
|
# @return [ Module ] The extension module, if one has been defined.
|
|
331
|
-
#
|
|
332
|
-
# @since 7.0
|
|
333
278
|
def extension
|
|
334
279
|
@extension ||= @options[:extend]
|
|
335
280
|
end
|
|
@@ -337,8 +282,6 @@ module Mongoid
|
|
|
337
282
|
# Get the inverse name.
|
|
338
283
|
#
|
|
339
284
|
# @return [ Symbol ] The inverse name.
|
|
340
|
-
#
|
|
341
|
-
# @since 7.0
|
|
342
285
|
def inverse(other = nil)
|
|
343
286
|
candidates = inverses(other)
|
|
344
287
|
candidates.detect { |c| c } if candidates
|
|
@@ -348,8 +291,6 @@ module Mongoid
|
|
|
348
291
|
#
|
|
349
292
|
# @return [ true, false ] If the associated object(s)
|
|
350
293
|
# should be validated.
|
|
351
|
-
#
|
|
352
|
-
# @since 7.0
|
|
353
294
|
def validate?
|
|
354
295
|
@validate ||= if @options[:validate].nil?
|
|
355
296
|
validation_default
|
data/lib/mongoid/association.rb
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
require 'mongoid/association/accessors'
|
|
5
4
|
require 'mongoid/association/builders'
|
|
@@ -34,8 +33,6 @@ module Mongoid
|
|
|
34
33
|
# Map the macros to their corresponding Association classes.
|
|
35
34
|
#
|
|
36
35
|
# @return [ Hash ] The mapping from macros to their Association class.
|
|
37
|
-
#
|
|
38
|
-
# @since 7.0
|
|
39
36
|
MACRO_MAPPING = {
|
|
40
37
|
embeds_one: Association::Embedded::EmbedsOne,
|
|
41
38
|
embeds_many: Association::Embedded::EmbedsMany,
|
|
@@ -60,8 +57,6 @@ module Mongoid
|
|
|
60
57
|
# address.embedded?
|
|
61
58
|
#
|
|
62
59
|
# @return [ true, false ] True if the document has a parent document.
|
|
63
|
-
#
|
|
64
|
-
# @since 2.0.0.rc.1
|
|
65
60
|
def embedded?
|
|
66
61
|
@embedded ||= (cyclic ? _parent.present? : self.class.embedded?)
|
|
67
62
|
end
|
|
@@ -72,8 +67,6 @@ module Mongoid
|
|
|
72
67
|
# address.embedded_many?
|
|
73
68
|
#
|
|
74
69
|
# @return [ true, false ] True if in an embeds many.
|
|
75
|
-
#
|
|
76
|
-
# @since 2.0.0.rc.1
|
|
77
70
|
def embedded_many?
|
|
78
71
|
_association && _association.is_a?(Association::Embedded::EmbedsMany)
|
|
79
72
|
end
|
|
@@ -84,8 +77,6 @@ module Mongoid
|
|
|
84
77
|
# address.embedded_one?
|
|
85
78
|
#
|
|
86
79
|
# @return [ true, false ] True if in an embeds one.
|
|
87
|
-
#
|
|
88
|
-
# @since 2.0.0.rc.1
|
|
89
80
|
def embedded_one?
|
|
90
81
|
_association && _association.is_a?(Association::Embedded::EmbedsOne)
|
|
91
82
|
end
|
|
@@ -99,8 +90,6 @@ module Mongoid
|
|
|
99
90
|
# @raise [ Errors::NoMetadata ] If no association metadata is present.
|
|
100
91
|
#
|
|
101
92
|
# @return [ Symbol ] The association name.
|
|
102
|
-
#
|
|
103
|
-
# @since 3.0.0
|
|
104
93
|
def association_name
|
|
105
94
|
raise Errors::NoMetadata.new(self.class.name) unless _association
|
|
106
95
|
_association.name
|
|
@@ -112,8 +101,6 @@ module Mongoid
|
|
|
112
101
|
# post.referenced_many?
|
|
113
102
|
#
|
|
114
103
|
# @return [ true, false ] True if in a references many.
|
|
115
|
-
#
|
|
116
|
-
# @since 2.0.0.rc.1
|
|
117
104
|
def referenced_many?
|
|
118
105
|
_association && _association.is_a?(Association::Referenced::HasMany)
|
|
119
106
|
end
|
|
@@ -124,8 +111,6 @@ module Mongoid
|
|
|
124
111
|
# address.referenced_one?
|
|
125
112
|
#
|
|
126
113
|
# @return [ true, false ] True if in a references one.
|
|
127
|
-
#
|
|
128
|
-
# @since 2.0.0.rc.1
|
|
129
114
|
def referenced_one?
|
|
130
115
|
_association && _association.is_a?(Association::Referenced::HasOne)
|
|
131
116
|
end
|
|
@@ -137,8 +122,6 @@ module Mongoid
|
|
|
137
122
|
# document.reload_relations
|
|
138
123
|
#
|
|
139
124
|
# @return [ Hash ] The association metadata.
|
|
140
|
-
#
|
|
141
|
-
# @since 2.1.6
|
|
142
125
|
def reload_relations
|
|
143
126
|
relations.each_pair do |name, meta|
|
|
144
127
|
if instance_variable_defined?("@_#{name}")
|