mongoid 7.3.4 → 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 +21 -20
- 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 +9 -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 +8 -56
- 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 +0 -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 +1 -42
- 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 +5 -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 +0 -25
- 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 +39 -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 +20 -67
- 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 +7 -3
- 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 +0 -51
- 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 +0 -1
- 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 +0 -1
- 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 +0 -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 +0 -27
- data/lib/mongoid/positional.rb +0 -5
- data/lib/mongoid/query_cache.rb +0 -33
- 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 +0 -5
- 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 +0 -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 +0 -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 +0 -1
- 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 +14 -1
- 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 +0 -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 +59 -33
- data/spec/mongoid/association/referenced/has_many/proxy_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_many/proxy_spec.rb +221 -158
- data/spec/mongoid/association/referenced/has_many_models.rb +18 -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 +0 -1
- data/spec/mongoid/clients/options_spec.rb +4 -5
- 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 +0 -1
- data/spec/mongoid/config/options_spec.rb +0 -1
- data/spec/mongoid/config_spec.rb +105 -1
- 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 +46 -47
- data/spec/mongoid/contextual/geo_near_spec.rb +17 -18
- 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 +12 -13
- 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 +11 -33
- 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 +0 -1
- 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 +41 -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 +32 -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 +15 -20
- data/spec/mongoid/touchable_spec_models.rb +0 -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 +2 -1
- data/spec/shared/lib/mrss/docker_runner.rb +1 -1
- data/spec/shared/lib/mrss/lite_constraints.rb +8 -0
- 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 +22 -6
- data/spec/shared/shlib/distro.sh +2 -1
- data/spec/shared/shlib/server.sh +15 -3
- 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 +604 -587
- 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,8 +97,6 @@ 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
|
|
125
102
|
return [] if @options.key?(:inverse_of) && !inverse_of
|
|
@@ -137,8 +114,6 @@ module Mongoid
|
|
|
137
114
|
# determining inverses.
|
|
138
115
|
#
|
|
139
116
|
# @return [ Association ] The inverse's association metadata.
|
|
140
|
-
#
|
|
141
|
-
# @since 7.0
|
|
142
117
|
def inverse_association(other = nil)
|
|
143
118
|
(other || relation_class).relations[inverse(other)]
|
|
144
119
|
end
|
|
@@ -146,8 +121,6 @@ module Mongoid
|
|
|
146
121
|
# Get the inverse type.
|
|
147
122
|
#
|
|
148
123
|
# @return [ nil ] Default is nil for an association.
|
|
149
|
-
#
|
|
150
|
-
# @since 7.0
|
|
151
124
|
def inverse_type; end
|
|
152
125
|
|
|
153
126
|
# The class name, possibly unqualified or :: prefixed, of the association
|
|
@@ -171,8 +144,6 @@ module Mongoid
|
|
|
171
144
|
# the +relation_class+ method.
|
|
172
145
|
#
|
|
173
146
|
# @return [ String ] The association objects' class name.
|
|
174
|
-
#
|
|
175
|
-
# @since 7.0
|
|
176
147
|
def relation_class_name
|
|
177
148
|
@class_name ||= @options[:class_name] || ActiveSupport::Inflector.classify(name)
|
|
178
149
|
end
|
|
@@ -192,8 +163,6 @@ module Mongoid
|
|
|
192
163
|
# happen to be defined with the same name as the association name).
|
|
193
164
|
#
|
|
194
165
|
# @return [ String ] The association objects' class.
|
|
195
|
-
#
|
|
196
|
-
# @since 7.0
|
|
197
166
|
def relation_class
|
|
198
167
|
@klass ||= begin
|
|
199
168
|
cls_name = @options[:class_name] || ActiveSupport::Inflector.classify(name)
|
|
@@ -205,8 +174,6 @@ module Mongoid
|
|
|
205
174
|
# The class name of the object owning this association.
|
|
206
175
|
#
|
|
207
176
|
# @return [ String ] The owning objects' class name.
|
|
208
|
-
#
|
|
209
|
-
# @since 7.0
|
|
210
177
|
def inverse_class_name
|
|
211
178
|
@inverse_class_name ||= @owner_class.name
|
|
212
179
|
end
|
|
@@ -214,8 +181,6 @@ module Mongoid
|
|
|
214
181
|
# The class of the object owning this association.
|
|
215
182
|
#
|
|
216
183
|
# @return [ String ] The owning objects' class.
|
|
217
|
-
#
|
|
218
|
-
# @since 7.0
|
|
219
184
|
def inverse_class
|
|
220
185
|
@owner_class
|
|
221
186
|
end
|
|
@@ -225,8 +190,6 @@ module Mongoid
|
|
|
225
190
|
# Otherwise, the primary key.
|
|
226
191
|
#
|
|
227
192
|
# @return [ Symbol, String ] The primary key.
|
|
228
|
-
#
|
|
229
|
-
# @since 7.0
|
|
230
193
|
def key
|
|
231
194
|
stores_foreign_key? ? foreign_key : primary_key
|
|
232
195
|
end
|
|
@@ -234,8 +197,6 @@ module Mongoid
|
|
|
234
197
|
# The name of the setter on this object for assigning an associated object.
|
|
235
198
|
#
|
|
236
199
|
# @return [ String ] The setter name.
|
|
237
|
-
#
|
|
238
|
-
# @since 7.0
|
|
239
200
|
def setter
|
|
240
201
|
@setter ||= "#{name}="
|
|
241
202
|
end
|
|
@@ -243,8 +204,6 @@ module Mongoid
|
|
|
243
204
|
# The name of the inverse setter method.
|
|
244
205
|
#
|
|
245
206
|
# @return [ String ] The name of the inverse setter.
|
|
246
|
-
#
|
|
247
|
-
# @since 7.0
|
|
248
207
|
def inverse_setter(other = nil)
|
|
249
208
|
@inverse_setter ||= "#{inverses(other).first}=" unless inverses(other).blank?
|
|
250
209
|
end
|
|
@@ -252,8 +211,6 @@ module Mongoid
|
|
|
252
211
|
# The name of the foreign key setter method.
|
|
253
212
|
#
|
|
254
213
|
# @return [ String ] The name of the foreign key setter.
|
|
255
|
-
#
|
|
256
|
-
# @since 7.0
|
|
257
214
|
def foreign_key_setter
|
|
258
215
|
# note: You can't check if this association stores foreign key
|
|
259
216
|
# See HasOne and HasMany binding, they referenced foreign_key_setter
|
|
@@ -263,8 +220,6 @@ module Mongoid
|
|
|
263
220
|
# The atomic path for this association.
|
|
264
221
|
#
|
|
265
222
|
# @return [ Mongoid::Atomic::Paths::Root ] The atomic path object.
|
|
266
|
-
#
|
|
267
|
-
# @since 7.0
|
|
268
223
|
def path(document)
|
|
269
224
|
relation.path(document)
|
|
270
225
|
end
|
|
@@ -276,8 +231,6 @@ module Mongoid
|
|
|
276
231
|
# association.inverse_type_setter
|
|
277
232
|
#
|
|
278
233
|
# @return [ String ] The name of the setter.
|
|
279
|
-
#
|
|
280
|
-
# @since 7.0
|
|
281
234
|
def inverse_type_setter
|
|
282
235
|
@inverse_type_setter ||= inverse_type.__setter__
|
|
283
236
|
end
|
|
@@ -288,8 +241,6 @@ module Mongoid
|
|
|
288
241
|
# association.foreign_key_check
|
|
289
242
|
#
|
|
290
243
|
# @return [ String ] The foreign key check.
|
|
291
|
-
#
|
|
292
|
-
# @since 7.0
|
|
293
244
|
def foreign_key_check
|
|
294
245
|
@foreign_key_check ||= "#{foreign_key}_changed?" if (stores_foreign_key? && foreign_key)
|
|
295
246
|
end
|
|
@@ -301,8 +252,6 @@ module Mongoid
|
|
|
301
252
|
# association.
|
|
302
253
|
#
|
|
303
254
|
# @return [ Proxy ]
|
|
304
|
-
#
|
|
305
|
-
# @since 7.0
|
|
306
255
|
def create_relation(owner, target)
|
|
307
256
|
relation.new(owner, target, self)
|
|
308
257
|
end
|
|
@@ -310,8 +259,6 @@ module Mongoid
|
|
|
310
259
|
# Whether the dependent method is destructive.
|
|
311
260
|
#
|
|
312
261
|
# @return [ true, false ] If the dependent method is destructive.
|
|
313
|
-
#
|
|
314
|
-
# @since 7.0
|
|
315
262
|
def destructive?
|
|
316
263
|
@destructive ||= !!(dependent && (dependent == :delete_all || dependent == :destroy))
|
|
317
264
|
end
|
|
@@ -319,8 +266,6 @@ module Mongoid
|
|
|
319
266
|
# Get the counter cache column name.
|
|
320
267
|
#
|
|
321
268
|
# @return [ String ] The counter cache column name.
|
|
322
|
-
#
|
|
323
|
-
# @since 7.0
|
|
324
269
|
def counter_cache_column_name
|
|
325
270
|
@counter_cache_column_name ||= (@options[:counter_cache].is_a?(String) ||
|
|
326
271
|
@options[:counter_cache].is_a?(Symbol)) ?
|
|
@@ -330,8 +275,6 @@ module Mongoid
|
|
|
330
275
|
# Get the extension.
|
|
331
276
|
#
|
|
332
277
|
# @return [ Module ] The extension module, if one has been defined.
|
|
333
|
-
#
|
|
334
|
-
# @since 7.0
|
|
335
278
|
def extension
|
|
336
279
|
@extension ||= @options[:extend]
|
|
337
280
|
end
|
|
@@ -339,8 +282,6 @@ module Mongoid
|
|
|
339
282
|
# Get the inverse name.
|
|
340
283
|
#
|
|
341
284
|
# @return [ Symbol ] The inverse name.
|
|
342
|
-
#
|
|
343
|
-
# @since 7.0
|
|
344
285
|
def inverse(other = nil)
|
|
345
286
|
candidates = inverses(other)
|
|
346
287
|
candidates.detect { |c| c } if candidates
|
|
@@ -350,8 +291,6 @@ module Mongoid
|
|
|
350
291
|
#
|
|
351
292
|
# @return [ true, false ] If the associated object(s)
|
|
352
293
|
# should be validated.
|
|
353
|
-
#
|
|
354
|
-
# @since 7.0
|
|
355
294
|
def validate?
|
|
356
295
|
@validate ||= if @options[:validate].nil?
|
|
357
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}")
|