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
|
module Mongoid
|
|
5
4
|
module Association
|
|
@@ -19,8 +18,6 @@ module Mongoid
|
|
|
19
18
|
# person.addresses.blank?
|
|
20
19
|
#
|
|
21
20
|
# @return [ true, false ] If the association is empty or not.
|
|
22
|
-
#
|
|
23
|
-
# @since 2.1.0
|
|
24
21
|
def blank?
|
|
25
22
|
!any?
|
|
26
23
|
end
|
|
@@ -36,8 +33,6 @@ module Mongoid
|
|
|
36
33
|
# @param [ Class ] type The optional type of document to create.
|
|
37
34
|
#
|
|
38
35
|
# @return [ Document ] The newly created document.
|
|
39
|
-
#
|
|
40
|
-
# @since 2.0.0.beta.1
|
|
41
36
|
def create(attributes = nil, type = nil, &block)
|
|
42
37
|
if attributes.is_a?(::Array)
|
|
43
38
|
attributes.map { |attrs| create(attrs, type, &block) }
|
|
@@ -61,8 +56,6 @@ module Mongoid
|
|
|
61
56
|
# @raise [ Errors::Validations ] If validation failed.
|
|
62
57
|
#
|
|
63
58
|
# @return [ Document ] The newly created document.
|
|
64
|
-
#
|
|
65
|
-
# @since 2.0.0.beta.1
|
|
66
59
|
def create!(attributes = nil, type = nil, &block)
|
|
67
60
|
if attributes.is_a?(::Array)
|
|
68
61
|
attributes.map { |attrs| create!(attrs, type, &block) }
|
|
@@ -123,8 +116,6 @@ module Mongoid
|
|
|
123
116
|
# relation.nil?
|
|
124
117
|
#
|
|
125
118
|
# @return [ false ] Always false.
|
|
126
|
-
#
|
|
127
|
-
# @since 2.0.0
|
|
128
119
|
def nil?
|
|
129
120
|
false
|
|
130
121
|
end
|
|
@@ -138,8 +129,6 @@ module Mongoid
|
|
|
138
129
|
# @param [ true, false ] include_private Whether to include private methods.
|
|
139
130
|
#
|
|
140
131
|
# @return [ true, false ] If the proxy responds to the method.
|
|
141
|
-
#
|
|
142
|
-
# @since 2.0.0
|
|
143
132
|
def respond_to?(name, include_private = false)
|
|
144
133
|
[].respond_to?(name, include_private) ||
|
|
145
134
|
klass.respond_to?(name, include_private) || super
|
|
@@ -151,8 +140,6 @@ module Mongoid
|
|
|
151
140
|
# relation.scoped
|
|
152
141
|
#
|
|
153
142
|
# @return [ Criteria ] The scoped criteria.
|
|
154
|
-
#
|
|
155
|
-
# @since 2.1.0
|
|
156
143
|
def scoped
|
|
157
144
|
criteria
|
|
158
145
|
end
|
|
@@ -171,8 +158,6 @@ module Mongoid
|
|
|
171
158
|
# @option options [ Symbol ] :except Dont include these fields.
|
|
172
159
|
#
|
|
173
160
|
# @return [ Hash ] The documents, ready to be serialized.
|
|
174
|
-
#
|
|
175
|
-
# @since 2.0.0.rc.6
|
|
176
161
|
def serializable_hash(options = {})
|
|
177
162
|
_target.map { |document| document.serializable_hash(options) }
|
|
178
163
|
end
|
|
@@ -184,8 +169,6 @@ module Mongoid
|
|
|
184
169
|
# person.addresses.unscoped
|
|
185
170
|
#
|
|
186
171
|
# @return [ Criteria ] The unscoped criteria.
|
|
187
|
-
#
|
|
188
|
-
# @since 2.4.0
|
|
189
172
|
def unscoped
|
|
190
173
|
criteria.unscoped
|
|
191
174
|
end
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
module Association
|
|
@@ -11,8 +10,6 @@ module Mongoid
|
|
|
11
10
|
# Marshal.dump(proxy)
|
|
12
11
|
#
|
|
13
12
|
# @return [ Array<Object> ] The dumped data.
|
|
14
|
-
#
|
|
15
|
-
# @since 3.0.15
|
|
16
13
|
def marshal_dump
|
|
17
14
|
[ _base, _target, _association ]
|
|
18
15
|
end
|
|
@@ -25,8 +22,6 @@ module Mongoid
|
|
|
25
22
|
# @param [ Array<Object> ] data The data to set on the proxy.
|
|
26
23
|
#
|
|
27
24
|
# @return [ Array<Object> ] The loaded data.
|
|
28
|
-
#
|
|
29
|
-
# @since 3.0.15
|
|
30
25
|
def marshal_load(data)
|
|
31
26
|
@_base, @_target, @_association = data
|
|
32
27
|
extend_proxy(_association.extension) if _association.extension
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
module Association
|
|
@@ -96,8 +95,6 @@ module Mongoid
|
|
|
96
95
|
#
|
|
97
96
|
# @param [ Document ] parent The parent document.
|
|
98
97
|
# @param [ Hash ] attrs The single document attributes to process.
|
|
99
|
-
#
|
|
100
|
-
# @since 2.0.0
|
|
101
98
|
def process_attributes(parent, attrs)
|
|
102
99
|
return if reject?(parent, attrs)
|
|
103
100
|
if id = attrs.extract_id
|
|
@@ -118,8 +115,6 @@ module Mongoid
|
|
|
118
115
|
# @param [ Document ] parent The parent document.
|
|
119
116
|
# @param [ Proxy ] relation The association proxy.
|
|
120
117
|
# @param [ Document ] doc The doc to destroy.
|
|
121
|
-
#
|
|
122
|
-
# @since 3.0.10
|
|
123
118
|
def destroy(parent, relation, doc)
|
|
124
119
|
doc.flagged_for_destroy = true
|
|
125
120
|
if !doc.embedded? || parent.new_record?
|
|
@@ -138,8 +133,6 @@ module Mongoid
|
|
|
138
133
|
#
|
|
139
134
|
# @param [ Proxy ] relation The association proxy.
|
|
140
135
|
# @param [ Document ] doc The document to delete.
|
|
141
|
-
#
|
|
142
|
-
# @since 3.0.10
|
|
143
136
|
def destroy_document(relation, doc)
|
|
144
137
|
relation.delete(doc)
|
|
145
138
|
doc.destroy unless doc.embedded? || doc.destroyed?
|
|
@@ -154,8 +147,6 @@ module Mongoid
|
|
|
154
147
|
#
|
|
155
148
|
# @param [ Document ] doc The document to update.
|
|
156
149
|
# @param [ Hash ] attrs The attributes.
|
|
157
|
-
#
|
|
158
|
-
# @since 3.0.10
|
|
159
150
|
def update_document(doc, attrs)
|
|
160
151
|
attrs.delete_id
|
|
161
152
|
if association.embedded?
|
|
@@ -175,8 +166,6 @@ module Mongoid
|
|
|
175
166
|
# @param [ Document ] parent The parent document.
|
|
176
167
|
# @param [ String, BSON::ObjectId ] id of the related document.
|
|
177
168
|
# @param [ Hash ] attrs The single document attributes to process.
|
|
178
|
-
#
|
|
179
|
-
# @since 6.0.0
|
|
180
169
|
def update_nested_relation(parent, id, attrs)
|
|
181
170
|
first = existing.first
|
|
182
171
|
converted = first ? convert_id(first.class, id) : id
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
module Association
|
|
@@ -14,8 +13,6 @@ module Mongoid
|
|
|
14
13
|
# builder.allow_destroy?
|
|
15
14
|
#
|
|
16
15
|
# @return [ true, false ] True if the allow destroy option was set.
|
|
17
|
-
#
|
|
18
|
-
# @since 2.0.0.rc.1
|
|
19
16
|
def allow_destroy?
|
|
20
17
|
options[:allow_destroy] || false
|
|
21
18
|
end
|
|
@@ -29,8 +26,6 @@ module Mongoid
|
|
|
29
26
|
# @param [ Hash ] attrs The attributes to check for rejection.
|
|
30
27
|
#
|
|
31
28
|
# @return [ true, false ] True and call proc or method if rejectable, false if not.
|
|
32
|
-
#
|
|
33
|
-
# @since 2.0.0.rc.1
|
|
34
29
|
def reject?(document, attrs)
|
|
35
30
|
case callback = options[:reject_if]
|
|
36
31
|
when Symbol
|
|
@@ -49,8 +44,6 @@ module Mongoid
|
|
|
49
44
|
# builder.update_only?
|
|
50
45
|
#
|
|
51
46
|
# @return [ true, false ] True if the update_only option was set.
|
|
52
|
-
#
|
|
53
|
-
# @since 2.0.0.rc.1
|
|
54
47
|
def update_only?
|
|
55
48
|
options[:update_only] || false
|
|
56
49
|
end
|
|
@@ -64,8 +57,6 @@ module Mongoid
|
|
|
64
57
|
# @param [ String ] id The id, usually coming from the form.
|
|
65
58
|
#
|
|
66
59
|
# @return [ BSON::ObjectId, String, Object ] The converted id.
|
|
67
|
-
#
|
|
68
|
-
# @since 2.0.0.rc.6
|
|
69
60
|
def convert_id(klass, id)
|
|
70
61
|
klass.using_object_ids? ? BSON::ObjectId.mongoize(id) : id
|
|
71
62
|
end
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
module Association
|
|
@@ -23,8 +22,6 @@ module Mongoid
|
|
|
23
22
|
# @param [ Document ] parent The parent document.
|
|
24
23
|
#
|
|
25
24
|
# @return [ Document ] The built document.
|
|
26
|
-
#
|
|
27
|
-
# @since 2.0.0
|
|
28
25
|
def build(parent)
|
|
29
26
|
return if reject?(parent, attributes)
|
|
30
27
|
@existing = parent.send(association.name)
|
|
@@ -47,8 +44,6 @@ module Mongoid
|
|
|
47
44
|
# @param [ Association ] association The association metadata.
|
|
48
45
|
# @param [ Hash ] attributes The attributes hash to attempt to set.
|
|
49
46
|
# @param [ Hash ] options The options defined.
|
|
50
|
-
#
|
|
51
|
-
# @since 2.0.0
|
|
52
47
|
def initialize(association, attributes, options)
|
|
53
48
|
@attributes = attributes.with_indifferent_access
|
|
54
49
|
@association = association
|
|
@@ -59,7 +54,7 @@ module Mongoid
|
|
|
59
54
|
|
|
60
55
|
private
|
|
61
56
|
|
|
62
|
-
# Is the id in the
|
|
57
|
+
# Is the id in the attributes acceptable for allowing an update to
|
|
63
58
|
# the existing association?
|
|
64
59
|
#
|
|
65
60
|
# @api private
|
|
@@ -68,8 +63,6 @@ module Mongoid
|
|
|
68
63
|
# one.acceptable_id?
|
|
69
64
|
#
|
|
70
65
|
# @return [ true, false ] If the id part of the logic will allow an update.
|
|
71
|
-
#
|
|
72
|
-
# @since 2.0.0
|
|
73
66
|
def acceptable_id?
|
|
74
67
|
id = association.klass.extract_id_field(attributes)
|
|
75
68
|
id = convert_id(existing.class, id)
|
|
@@ -82,8 +75,6 @@ module Mongoid
|
|
|
82
75
|
# one.delete?
|
|
83
76
|
#
|
|
84
77
|
# @return [ true, false ] If the association should be deleted.
|
|
85
|
-
#
|
|
86
|
-
# @since 2.0.0
|
|
87
78
|
def delete?
|
|
88
79
|
id = association.klass.extract_id_field(attributes)
|
|
89
80
|
destroyable? && !id.nil?
|
|
@@ -96,8 +87,6 @@ module Mongoid
|
|
|
96
87
|
#
|
|
97
88
|
# @return [ true, false ] If the association can potentially be
|
|
98
89
|
# destroyed.
|
|
99
|
-
#
|
|
100
|
-
# @since 2.0.0
|
|
101
90
|
def destroyable?
|
|
102
91
|
Nested::DESTROY_FLAGS.include?(destroy) && allow_destroy?
|
|
103
92
|
end
|
|
@@ -108,8 +97,6 @@ module Mongoid
|
|
|
108
97
|
# one.replace?
|
|
109
98
|
#
|
|
110
99
|
# @return [ true, false ] If the document should be replaced.
|
|
111
|
-
#
|
|
112
|
-
# @since 2.0.0
|
|
113
100
|
def replace?
|
|
114
101
|
!existing && !destroyable? && !attributes.blank?
|
|
115
102
|
end
|
|
@@ -120,8 +107,6 @@ module Mongoid
|
|
|
120
107
|
# one.update?
|
|
121
108
|
#
|
|
122
109
|
# @return [ true, false ] If the object should have its attributes updated.
|
|
123
|
-
#
|
|
124
|
-
# @since 2.0.0
|
|
125
110
|
def update?
|
|
126
111
|
existing && !destroyable? && acceptable_id?
|
|
127
112
|
end
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
require 'mongoid/association/nested/nested_buildable'
|
|
5
4
|
require 'mongoid/association/nested/many'
|
|
@@ -10,8 +9,6 @@ module Mongoid
|
|
|
10
9
|
module Nested
|
|
11
10
|
|
|
12
11
|
# The flags indicating that an association can be destroyed.
|
|
13
|
-
#
|
|
14
|
-
# @since 7.0
|
|
15
12
|
DESTROY_FLAGS = [1, "1", true, "true"].freeze
|
|
16
13
|
end
|
|
17
14
|
end
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
module Association
|
|
@@ -13,9 +12,7 @@ module Mongoid
|
|
|
13
12
|
# @example Clear the relation.
|
|
14
13
|
# relation.clear
|
|
15
14
|
#
|
|
16
|
-
# @return [ true, false ] If the delete
|
|
17
|
-
#
|
|
18
|
-
# @since 3.0.0
|
|
15
|
+
# @return [ true, false ] If the delete succeeded.
|
|
19
16
|
def clear
|
|
20
17
|
_target.delete
|
|
21
18
|
end
|
|
@@ -26,8 +23,6 @@ module Mongoid
|
|
|
26
23
|
# relation.in_memory
|
|
27
24
|
#
|
|
28
25
|
# @return [ Array<Document> ] The documents in memory.
|
|
29
|
-
#
|
|
30
|
-
# @since 2.1.0
|
|
31
26
|
def in_memory
|
|
32
27
|
[ _target ]
|
|
33
28
|
end
|
|
@@ -40,8 +35,6 @@ module Mongoid
|
|
|
40
35
|
# @param [ Symbol ] name The method name.
|
|
41
36
|
#
|
|
42
37
|
# @return [ true, false ] If the proxy responds to the method.
|
|
43
|
-
#
|
|
44
|
-
# @since 2.1.8
|
|
45
38
|
def respond_to?(name, include_private = false)
|
|
46
39
|
_target.respond_to?(name, include_private) || super
|
|
47
40
|
end
|
|
@@ -52,8 +45,6 @@ module Mongoid
|
|
|
52
45
|
# proxy.__evolve_object_id__
|
|
53
46
|
#
|
|
54
47
|
# @return [ Object ] The proxy document's id.
|
|
55
|
-
#
|
|
56
|
-
# @since 4.0.0
|
|
57
48
|
def __evolve_object_id__
|
|
58
49
|
_target._id
|
|
59
50
|
end
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
module Association
|
|
@@ -9,8 +8,6 @@ module Mongoid
|
|
|
9
8
|
# Returns the name of the parent to a polymorphic child.
|
|
10
9
|
#
|
|
11
10
|
# @return [ String, Symbol ] The name.
|
|
12
|
-
#
|
|
13
|
-
# @since 7.0
|
|
14
11
|
def as
|
|
15
12
|
@options[:as]
|
|
16
13
|
end
|
|
@@ -18,8 +15,6 @@ module Mongoid
|
|
|
18
15
|
# Specify what happens to the associated object when the owner is destroyed.
|
|
19
16
|
#
|
|
20
17
|
# @return [ String ] The dependent option.
|
|
21
|
-
#
|
|
22
|
-
# @since 7.0
|
|
23
18
|
def dependent
|
|
24
19
|
@options[:dependent]
|
|
25
20
|
end
|
|
@@ -27,8 +22,6 @@ module Mongoid
|
|
|
27
22
|
# The custom sorting options on the association.
|
|
28
23
|
#
|
|
29
24
|
# @return [ Criteria::Queryable::Key ] The custom sorting options.
|
|
30
|
-
#
|
|
31
|
-
# @since 7.0
|
|
32
25
|
def order
|
|
33
26
|
@options[:order]
|
|
34
27
|
end
|
|
@@ -36,8 +29,6 @@ module Mongoid
|
|
|
36
29
|
# Whether to index the primary or foreign key field.
|
|
37
30
|
#
|
|
38
31
|
# @return [ true, false ]
|
|
39
|
-
#
|
|
40
|
-
# @since 7.0
|
|
41
32
|
def indexed?
|
|
42
33
|
@indexed ||= !!@options[:index]
|
|
43
34
|
end
|
|
@@ -45,8 +36,6 @@ module Mongoid
|
|
|
45
36
|
# Whether the association is autobuilding.
|
|
46
37
|
#
|
|
47
38
|
# @return [ true, false ]
|
|
48
|
-
#
|
|
49
|
-
# @since 7.0
|
|
50
39
|
def autobuilding?
|
|
51
40
|
!!@options[:autobuild]
|
|
52
41
|
end
|
|
@@ -54,8 +43,6 @@ module Mongoid
|
|
|
54
43
|
# Is the association cyclic.
|
|
55
44
|
#
|
|
56
45
|
# @return [ true, false ] Whether the association is cyclic.
|
|
57
|
-
#
|
|
58
|
-
# @since 7.0
|
|
59
46
|
def cyclic?
|
|
60
47
|
!!@options[:cyclic]
|
|
61
48
|
end
|
|
@@ -63,8 +50,6 @@ module Mongoid
|
|
|
63
50
|
# The name the owning object uses to refer to this association.
|
|
64
51
|
#
|
|
65
52
|
# @return [ String ] The inverse_of option.
|
|
66
|
-
#
|
|
67
|
-
# @since 7.0
|
|
68
53
|
def inverse_of
|
|
69
54
|
@options[:inverse_of]
|
|
70
55
|
end
|
|
@@ -73,8 +58,6 @@ module Mongoid
|
|
|
73
58
|
# You can override this and explicitly specify the primary key with the :primary_key option.
|
|
74
59
|
#
|
|
75
60
|
# @return [ Symbol, String ] The primary key.
|
|
76
|
-
#
|
|
77
|
-
# @since 7.0
|
|
78
61
|
def primary_key
|
|
79
62
|
@primary_key ||= @options[:primary_key] ? @options[:primary_key].to_s : Relatable::PRIMARY_KEY_DEFAULT
|
|
80
63
|
end
|
|
@@ -83,8 +66,6 @@ module Mongoid
|
|
|
83
66
|
# when the parent object is saved.
|
|
84
67
|
#
|
|
85
68
|
# @return [ true, false ] The autosave option.
|
|
86
|
-
#
|
|
87
|
-
# @since 7.0
|
|
88
69
|
def autosave
|
|
89
70
|
!!@options[:autosave]
|
|
90
71
|
end
|
|
@@ -93,8 +74,6 @@ module Mongoid
|
|
|
93
74
|
# Whether the association is counter-cached.
|
|
94
75
|
#
|
|
95
76
|
# @return [ true, false ]
|
|
96
|
-
#
|
|
97
|
-
# @since 7.0
|
|
98
77
|
def counter_cached?
|
|
99
78
|
!!@options[:counter_cache]
|
|
100
79
|
end
|
|
@@ -102,15 +81,11 @@ module Mongoid
|
|
|
102
81
|
# Whether this association is polymorphic.
|
|
103
82
|
#
|
|
104
83
|
# @return [ true, false ] Whether the association is polymorphic.
|
|
105
|
-
#
|
|
106
|
-
# @since 7.0
|
|
107
84
|
def polymorphic?; false; end
|
|
108
85
|
|
|
109
86
|
# Whether the association has callbacks cascaded down from the parent.
|
|
110
87
|
#
|
|
111
88
|
# @return [ true, false ] Whether callbacks are cascaded.
|
|
112
|
-
#
|
|
113
|
-
# @since 7.0
|
|
114
89
|
def cascading_callbacks?
|
|
115
90
|
!!@options[:cascade_callbacks]
|
|
116
91
|
end
|
|
@@ -118,29 +93,21 @@ module Mongoid
|
|
|
118
93
|
# The store_as option.
|
|
119
94
|
#
|
|
120
95
|
# @return [ nil ] Default is nil.
|
|
121
|
-
#
|
|
122
|
-
# @since 7.0
|
|
123
96
|
def store_as; end
|
|
124
97
|
|
|
125
98
|
# Whether the association has forced nil inverse (So no foreign keys are saved).
|
|
126
99
|
#
|
|
127
100
|
# @return [ false ] Default is false.
|
|
128
|
-
#
|
|
129
|
-
# @since 7.0
|
|
130
101
|
def forced_nil_inverse?; false; end
|
|
131
102
|
|
|
132
103
|
# The field for saving the associated object's type.
|
|
133
104
|
#
|
|
134
105
|
# @return [ nil ] Default is nil.
|
|
135
|
-
#
|
|
136
|
-
# @since 7.0
|
|
137
106
|
def type; end
|
|
138
107
|
|
|
139
108
|
# The field for saving the associated object's type.
|
|
140
109
|
#
|
|
141
110
|
# @return [ nil ] Default is nil.
|
|
142
|
-
#
|
|
143
|
-
# @since 7.0
|
|
144
111
|
def touch_field
|
|
145
112
|
@touch_field ||= options[:touch] if (options[:touch].is_a?(String) || options[:touch].is_a?(Symbol))
|
|
146
113
|
end
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
require "mongoid/association/marshalable"
|
|
5
4
|
|
|
@@ -51,8 +50,6 @@ module Mongoid
|
|
|
51
50
|
# @param [ Document ] base The base document on the proxy.
|
|
52
51
|
# @param [ Document, Array<Document> ] target The target of the proxy.
|
|
53
52
|
# @param [ Association ] association The association metadata.
|
|
54
|
-
#
|
|
55
|
-
# @since 2.0.0.rc.1
|
|
56
53
|
def init(base, target, association)
|
|
57
54
|
@_base, @_target, @_association = base, target, association
|
|
58
55
|
yield(self) if block_given?
|
|
@@ -70,8 +67,6 @@ module Mongoid
|
|
|
70
67
|
# proxy.klass
|
|
71
68
|
#
|
|
72
69
|
# @return [ Class ] The association class.
|
|
73
|
-
#
|
|
74
|
-
# @since 3.0.15
|
|
75
70
|
def klass
|
|
76
71
|
_association ? _association.klass : nil
|
|
77
72
|
end
|
|
@@ -81,8 +76,6 @@ module Mongoid
|
|
|
81
76
|
#
|
|
82
77
|
# @example Reset the association criteria.
|
|
83
78
|
# person.preferences.reset_relation_criteria
|
|
84
|
-
#
|
|
85
|
-
# @since 3.0.14
|
|
86
79
|
def reset_unloaded
|
|
87
80
|
_target.reset_unloaded(criteria)
|
|
88
81
|
end
|
|
@@ -94,8 +87,6 @@ module Mongoid
|
|
|
94
87
|
# proxy.substitutable
|
|
95
88
|
#
|
|
96
89
|
# @return [ Object ] A clone of the target.
|
|
97
|
-
#
|
|
98
|
-
# @since 2.1.6
|
|
99
90
|
def substitutable
|
|
100
91
|
_target
|
|
101
92
|
end
|
|
@@ -108,8 +99,6 @@ module Mongoid
|
|
|
108
99
|
# relation.collection
|
|
109
100
|
#
|
|
110
101
|
# @return [ Collection ] The root's collection.
|
|
111
|
-
#
|
|
112
|
-
# @since 2.0.0
|
|
113
102
|
def collection
|
|
114
103
|
root = _base._root
|
|
115
104
|
root.collection unless root.embedded?
|
|
@@ -121,8 +110,6 @@ module Mongoid
|
|
|
121
110
|
# proxt.characterize_one(name)
|
|
122
111
|
#
|
|
123
112
|
# @param [ Document ] document The document to set on.
|
|
124
|
-
#
|
|
125
|
-
# @since 2.0.0.rc.4
|
|
126
113
|
def characterize_one(document)
|
|
127
114
|
document._association = _association unless document._association
|
|
128
115
|
end
|
|
@@ -149,8 +136,6 @@ module Mongoid
|
|
|
149
136
|
# relation.raise_mixed
|
|
150
137
|
#
|
|
151
138
|
# @raise [ Errors::MixedRelations ] The error.
|
|
152
|
-
#
|
|
153
|
-
# @since 2.0.0
|
|
154
139
|
def raise_mixed
|
|
155
140
|
raise Errors::MixedRelations.new(_base.class, _association.klass)
|
|
156
141
|
end
|
|
@@ -164,8 +149,6 @@ module Mongoid
|
|
|
164
149
|
# @param [ Document ] doc The child document getting created.
|
|
165
150
|
#
|
|
166
151
|
# @raise [ Errors::UnsavedDocument ] The error.
|
|
167
|
-
#
|
|
168
|
-
# @since 2.0.0.rc.6
|
|
169
152
|
def raise_unsaved(doc)
|
|
170
153
|
raise Errors::UnsavedDocument.new(_base, doc)
|
|
171
154
|
end
|
|
@@ -176,8 +159,6 @@ module Mongoid
|
|
|
176
159
|
# execute_callback(:before_add)
|
|
177
160
|
#
|
|
178
161
|
# @param [ Symbol ] callback to be executed
|
|
179
|
-
#
|
|
180
|
-
# @since 3.1.0
|
|
181
162
|
def execute_callback(callback, doc)
|
|
182
163
|
_association.get_callbacks(callback).each do |c|
|
|
183
164
|
if c.is_a? Proc
|
|
@@ -199,8 +180,6 @@ module Mongoid
|
|
|
199
180
|
# @param [ Association ] association The association metadata.
|
|
200
181
|
#
|
|
201
182
|
# @return [ Criteria ] The ordered criteria.
|
|
202
|
-
#
|
|
203
|
-
# @since 3.0.6
|
|
204
183
|
def apply_ordering(criteria, association)
|
|
205
184
|
association.order ? criteria.order_by(association.order) : criteria
|
|
206
185
|
end
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
module Association
|
|
@@ -14,8 +13,6 @@ module Mongoid
|
|
|
14
13
|
# document.autosaved?
|
|
15
14
|
#
|
|
16
15
|
# @return [ true, false ] Has the document already been autosaved?
|
|
17
|
-
#
|
|
18
|
-
# @since 3.0.0
|
|
19
16
|
def autosaved?
|
|
20
17
|
Threaded.autosaved?(self)
|
|
21
18
|
end
|
|
@@ -24,8 +21,6 @@ module Mongoid
|
|
|
24
21
|
#
|
|
25
22
|
# @example Begin autosave.
|
|
26
23
|
# document.__autosaving__
|
|
27
|
-
#
|
|
28
|
-
# @since 3.1.3
|
|
29
24
|
def __autosaving__
|
|
30
25
|
Threaded.begin_autosave(self)
|
|
31
26
|
yield
|
|
@@ -38,8 +33,6 @@ module Mongoid
|
|
|
38
33
|
# @example Return true if there is changes on self or in
|
|
39
34
|
# autosaved associations.
|
|
40
35
|
# document.changed_for_autosave?
|
|
41
|
-
#
|
|
42
|
-
# @since 3.1.3
|
|
43
36
|
def changed_for_autosave?(doc)
|
|
44
37
|
doc.new_record? || doc.changed? || doc.marked_for_destruction?
|
|
45
38
|
end
|
|
@@ -53,8 +46,6 @@ module Mongoid
|
|
|
53
46
|
# @param [ Association ] association The association for which autosaving is enabled.
|
|
54
47
|
#
|
|
55
48
|
# @return [ Class ] The association's owner class.
|
|
56
|
-
#
|
|
57
|
-
# @since 7.0
|
|
58
49
|
def self.define_autosave!(association)
|
|
59
50
|
association.inverse_class.tap do |klass|
|
|
60
51
|
save_method = :"autosave_documents_for_#{association.name}"
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
module Association
|
|
@@ -19,8 +18,6 @@ module Mongoid
|
|
|
19
18
|
# @example Bind the documents.
|
|
20
19
|
# game.person.bind(:continue => true)
|
|
21
20
|
# game.person = Person.new
|
|
22
|
-
#
|
|
23
|
-
# @since 2.0.0.rc.1
|
|
24
21
|
def bind_one
|
|
25
22
|
binding do
|
|
26
23
|
check_polymorphic_inverses!(_target)
|
|
@@ -44,8 +41,6 @@ module Mongoid
|
|
|
44
41
|
# @example Unbind the document.
|
|
45
42
|
# game.person.unbind(:continue => true)
|
|
46
43
|
# game.person = nil
|
|
47
|
-
#
|
|
48
|
-
# @since 2.0.0.rc.1
|
|
49
44
|
def unbind_one
|
|
50
45
|
binding do
|
|
51
46
|
inverse = _association.inverse(_target)
|
|
@@ -72,8 +67,6 @@ module Mongoid
|
|
|
72
67
|
# binding.check_inverses!(doc)
|
|
73
68
|
#
|
|
74
69
|
# @param [ Document ] doc The document to check.
|
|
75
|
-
#
|
|
76
|
-
# @since 3.0.0
|
|
77
70
|
def check_polymorphic_inverses!(doc)
|
|
78
71
|
inverses = _association.inverses(doc)
|
|
79
72
|
if inverses.length > 1 && _base.send(_association.foreign_key).nil?
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
module Association
|
|
@@ -7,8 +6,6 @@ module Mongoid
|
|
|
7
6
|
class BelongsTo
|
|
8
7
|
|
|
9
8
|
# The Builder behavior for belongs_to associations.
|
|
10
|
-
#
|
|
11
|
-
# @since 7.0
|
|
12
9
|
module Buildable
|
|
13
10
|
|
|
14
11
|
# This method either takes an _id or an object and queries for the
|
|
@@ -35,8 +32,10 @@ module Mongoid
|
|
|
35
32
|
end
|
|
36
33
|
|
|
37
34
|
def query_criteria(object, type)
|
|
38
|
-
|
|
39
|
-
|
|
35
|
+
cls = type ? type.constantize : relation_class
|
|
36
|
+
crit = cls.criteria
|
|
37
|
+
crit = crit.apply_scope(scope)
|
|
38
|
+
crit.where(primary_key => object)
|
|
40
39
|
end
|
|
41
40
|
|
|
42
41
|
def query?(object)
|