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
data/lib/mongoid/criteria.rb
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
require "mongoid/criteria/findable"
|
|
5
4
|
require "mongoid/criteria/includable"
|
|
@@ -42,8 +41,6 @@ module Mongoid
|
|
|
42
41
|
|
|
43
42
|
# Static array used to check with method missing - we only need to ever
|
|
44
43
|
# instantiate once.
|
|
45
|
-
#
|
|
46
|
-
# @since 4.0.0
|
|
47
44
|
CHECK = []
|
|
48
45
|
|
|
49
46
|
attr_accessor :embedded, :klass, :parent_document, :association
|
|
@@ -56,8 +53,6 @@ module Mongoid
|
|
|
56
53
|
# @param [ Object ] other The other +Enumerable+ or +Criteria+ to compare to.
|
|
57
54
|
#
|
|
58
55
|
# @return [ true, false ] If the objects are equal.
|
|
59
|
-
#
|
|
60
|
-
# @since 1.0.0
|
|
61
56
|
def ==(other)
|
|
62
57
|
return super if other.respond_to?(:selector)
|
|
63
58
|
entries == other
|
|
@@ -148,8 +143,6 @@ module Mongoid
|
|
|
148
143
|
# criteria.documents
|
|
149
144
|
#
|
|
150
145
|
# @return [ Array<Document> ] The documents.
|
|
151
|
-
#
|
|
152
|
-
# @since 3.0.0
|
|
153
146
|
def documents
|
|
154
147
|
@documents ||= []
|
|
155
148
|
end
|
|
@@ -161,8 +154,6 @@ module Mongoid
|
|
|
161
154
|
# @param [ Array<Document> ] docs The embedded documents.
|
|
162
155
|
#
|
|
163
156
|
# @return [ Array<Document> ] The embedded documents.
|
|
164
|
-
#
|
|
165
|
-
# @since 3.0.0
|
|
166
157
|
def documents=(docs)
|
|
167
158
|
@documents = docs
|
|
168
159
|
end
|
|
@@ -173,8 +164,6 @@ module Mongoid
|
|
|
173
164
|
# criteria.embedded?
|
|
174
165
|
#
|
|
175
166
|
# @return [ true, false ] If the criteria is embedded.
|
|
176
|
-
#
|
|
177
|
-
# @since 3.0.0
|
|
178
167
|
def embedded?
|
|
179
168
|
!!@embedded
|
|
180
169
|
end
|
|
@@ -186,8 +175,6 @@ module Mongoid
|
|
|
186
175
|
# criteria.extract_id
|
|
187
176
|
#
|
|
188
177
|
# @return [ Object ] The id.
|
|
189
|
-
#
|
|
190
|
-
# @since 2.3.0
|
|
191
178
|
def extract_id
|
|
192
179
|
selector.extract_id
|
|
193
180
|
end
|
|
@@ -201,8 +188,6 @@ module Mongoid
|
|
|
201
188
|
# @param [ Hash ] extras The extra driver options.
|
|
202
189
|
#
|
|
203
190
|
# @return [ Criteria ] The cloned criteria.
|
|
204
|
-
#
|
|
205
|
-
# @since 2.0.0
|
|
206
191
|
def extras(extras)
|
|
207
192
|
crit = clone
|
|
208
193
|
crit.options.merge!(extras)
|
|
@@ -215,8 +200,6 @@ module Mongoid
|
|
|
215
200
|
# criteria.field_list
|
|
216
201
|
#
|
|
217
202
|
# @return [ Array<String> ] The fields.
|
|
218
|
-
#
|
|
219
|
-
# @since 2.0.0
|
|
220
203
|
def field_list
|
|
221
204
|
if options[:fields]
|
|
222
205
|
options[:fields].keys.reject{ |key| key == klass.discriminator_key }
|
|
@@ -233,8 +216,6 @@ module Mongoid
|
|
|
233
216
|
# criteria.freeze
|
|
234
217
|
#
|
|
235
218
|
# @return [ Criteria ] The frozen criteria.
|
|
236
|
-
#
|
|
237
|
-
# @since 2.0.0
|
|
238
219
|
def freeze
|
|
239
220
|
context and inclusions and super
|
|
240
221
|
end
|
|
@@ -245,8 +226,6 @@ module Mongoid
|
|
|
245
226
|
# Criteria.new(Band)
|
|
246
227
|
#
|
|
247
228
|
# @param [ Class ] klass The model class.
|
|
248
|
-
#
|
|
249
|
-
# @since 1.0.0
|
|
250
229
|
def initialize(klass)
|
|
251
230
|
@klass = klass
|
|
252
231
|
@embedded = nil
|
|
@@ -288,8 +267,6 @@ module Mongoid
|
|
|
288
267
|
# @param [ Criteria ] other The criteria to merge in.
|
|
289
268
|
#
|
|
290
269
|
# @return [ Criteria ] The merged criteria.
|
|
291
|
-
#
|
|
292
|
-
# @since 3.0.0
|
|
293
270
|
def merge!(other)
|
|
294
271
|
criteria = other.to_criteria
|
|
295
272
|
selector.merge!(criteria.selector)
|
|
@@ -307,8 +284,6 @@ module Mongoid
|
|
|
307
284
|
# criteria.none
|
|
308
285
|
#
|
|
309
286
|
# @return [ Criteria ] The none criteria.
|
|
310
|
-
#
|
|
311
|
-
# @since 4.0.0
|
|
312
287
|
def none
|
|
313
288
|
@none = true and self
|
|
314
289
|
end
|
|
@@ -319,8 +294,6 @@ module Mongoid
|
|
|
319
294
|
# criteria.empty_and_chainable?
|
|
320
295
|
#
|
|
321
296
|
# @return [ true, false ] If the criteria is a none.
|
|
322
|
-
#
|
|
323
|
-
# @since 4.0.0
|
|
324
297
|
def empty_and_chainable?
|
|
325
298
|
!!@none
|
|
326
299
|
end
|
|
@@ -333,8 +306,6 @@ module Mongoid
|
|
|
333
306
|
# @param [ Array<Symbol> ] args The names of the fields.
|
|
334
307
|
#
|
|
335
308
|
# @return [ Criteria ] The cloned criteria.
|
|
336
|
-
#
|
|
337
|
-
# @since 1.0.0
|
|
338
309
|
def only(*args)
|
|
339
310
|
args = args.flatten
|
|
340
311
|
return clone if args.empty?
|
|
@@ -355,8 +326,6 @@ module Mongoid
|
|
|
355
326
|
# @param [ Hash ] value The mode preference.
|
|
356
327
|
#
|
|
357
328
|
# @return [ Criteria ] The cloned criteria.
|
|
358
|
-
#
|
|
359
|
-
# @since 5.0.0
|
|
360
329
|
def read(value = nil)
|
|
361
330
|
clone.tap do |criteria|
|
|
362
331
|
criteria.options.merge!(read: value)
|
|
@@ -371,8 +340,6 @@ module Mongoid
|
|
|
371
340
|
# @param [ Array<Symbol> ] args The names of the fields.
|
|
372
341
|
#
|
|
373
342
|
# @return [ Criteria ] The cloned criteria.
|
|
374
|
-
#
|
|
375
|
-
# @since 4.0.3
|
|
376
343
|
def without(*args)
|
|
377
344
|
args -= id_fields
|
|
378
345
|
super(*args)
|
|
@@ -399,8 +366,6 @@ module Mongoid
|
|
|
399
366
|
# criteria.to_criteria
|
|
400
367
|
#
|
|
401
368
|
# @return [ Criteria ] self.
|
|
402
|
-
#
|
|
403
|
-
# @since 3.0.0
|
|
404
369
|
def to_criteria
|
|
405
370
|
self
|
|
406
371
|
end
|
|
@@ -411,8 +376,6 @@ module Mongoid
|
|
|
411
376
|
# criteria.to_proc
|
|
412
377
|
#
|
|
413
378
|
# @return [ Proc ] The wrapped criteria.
|
|
414
|
-
#
|
|
415
|
-
# @since 3.0.0
|
|
416
379
|
def to_proc
|
|
417
380
|
->{ self }
|
|
418
381
|
end
|
|
@@ -447,8 +410,6 @@ module Mongoid
|
|
|
447
410
|
# is embedded.
|
|
448
411
|
#
|
|
449
412
|
# @return [ Criteria ] The cloned selectable.
|
|
450
|
-
#
|
|
451
|
-
# @since 1.0.0
|
|
452
413
|
def where(*args)
|
|
453
414
|
# Historically this method required exactly one argument.
|
|
454
415
|
# As of https://jira.mongodb.org/browse/MONGOID-4804 it also accepts
|
|
@@ -476,8 +437,6 @@ module Mongoid
|
|
|
476
437
|
# criteria.without_options
|
|
477
438
|
#
|
|
478
439
|
# @return [ Criteria ] The cloned criteria.
|
|
479
|
-
#
|
|
480
|
-
# @since 3.0.4
|
|
481
440
|
def without_options
|
|
482
441
|
crit = clone
|
|
483
442
|
crit.options.clear
|
|
@@ -496,8 +455,6 @@ module Mongoid
|
|
|
496
455
|
# @param [ Hash ] scope The scope for the code.
|
|
497
456
|
#
|
|
498
457
|
# @return [ Criteria ] The criteria.
|
|
499
|
-
#
|
|
500
|
-
# @since 3.1.0
|
|
501
458
|
def for_js(javascript, scope = {})
|
|
502
459
|
code = if scope.empty?
|
|
503
460
|
# CodeWithScope is not supported for $where as of MongoDB 4.4
|
|
@@ -523,8 +480,6 @@ module Mongoid
|
|
|
523
480
|
#
|
|
524
481
|
# @raise [ Errors::DocumentNotFound ] If none are found and raising an
|
|
525
482
|
# error.
|
|
526
|
-
#
|
|
527
|
-
# @since 3.0.0
|
|
528
483
|
def check_for_missing_documents!(result, ids)
|
|
529
484
|
if (result.size < ids.size) && Mongoid.raise_not_found_error
|
|
530
485
|
raise Errors::DocumentNotFound.new(klass, ids, ids - result.map(&:_id))
|
|
@@ -545,8 +500,6 @@ module Mongoid
|
|
|
545
500
|
# @param [ Criteria ] other The criteria getting cloned.
|
|
546
501
|
#
|
|
547
502
|
# @return [ nil ] nil.
|
|
548
|
-
#
|
|
549
|
-
# @since 1.0.0
|
|
550
503
|
def initialize_copy(other)
|
|
551
504
|
@inclusions = other.inclusions.dup
|
|
552
505
|
@scoping_options = other.scoping_options
|
|
@@ -565,8 +518,6 @@ module Mongoid
|
|
|
565
518
|
# @param [ Array ] args The arguments.
|
|
566
519
|
#
|
|
567
520
|
# @return [ Object ] The result of the method call.
|
|
568
|
-
#
|
|
569
|
-
# @since 1.0.0
|
|
570
521
|
ruby2_keywords def method_missing(name, *args, &block)
|
|
571
522
|
if klass.respond_to?(name)
|
|
572
523
|
klass.send(:with_scope, self) do
|
|
@@ -586,8 +537,6 @@ module Mongoid
|
|
|
586
537
|
# criteria.merge_type_selection
|
|
587
538
|
#
|
|
588
539
|
# @return [ true, false ] If type selection was added.
|
|
589
|
-
#
|
|
590
|
-
# @since 3.0.3
|
|
591
540
|
def merge_type_selection
|
|
592
541
|
selector.merge!(type_selection) if type_selectable?
|
|
593
542
|
end
|
|
@@ -600,8 +549,6 @@ module Mongoid
|
|
|
600
549
|
# criteria.type_selectable?
|
|
601
550
|
#
|
|
602
551
|
# @return [ true, false ] If type selection should be added.
|
|
603
|
-
#
|
|
604
|
-
# @since 3.0.3
|
|
605
552
|
def type_selectable?
|
|
606
553
|
klass.hereditary? &&
|
|
607
554
|
!selector.keys.include?(self.discriminator_key) &&
|
|
@@ -616,8 +563,6 @@ module Mongoid
|
|
|
616
563
|
# criteria.type_selection
|
|
617
564
|
#
|
|
618
565
|
# @return [ Hash ] The type selection.
|
|
619
|
-
#
|
|
620
|
-
# @since 3.0.3
|
|
621
566
|
def type_selection
|
|
622
567
|
klasses = klass._types
|
|
623
568
|
if klasses.size > 1
|
|
@@ -635,8 +580,6 @@ module Mongoid
|
|
|
635
580
|
# criteria.selector_with_type_selection
|
|
636
581
|
#
|
|
637
582
|
# @return [ Hash ] The selector.
|
|
638
|
-
#
|
|
639
|
-
# @since 3.0.3
|
|
640
583
|
def selector_with_type_selection
|
|
641
584
|
type_selectable? ? selector.merge(type_selection) : selector
|
|
642
585
|
end
|
data/lib/mongoid/document.rb
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
require "mongoid/positional"
|
|
5
4
|
require "mongoid/evolvable"
|
|
@@ -40,8 +39,6 @@ module Mongoid
|
|
|
40
39
|
# that should be used instead.
|
|
41
40
|
# When ruby driver 2.3.0 is released and Mongoid can be updated
|
|
42
41
|
# to require >= 2.3.0, the BSON constant can be used.
|
|
43
|
-
#
|
|
44
|
-
# @since 6.0.0
|
|
45
42
|
ILLEGAL_KEY = /(\A[$])|(\.)/.freeze
|
|
46
43
|
|
|
47
44
|
# Freezes the internal attributes of the document.
|
|
@@ -50,8 +47,6 @@ module Mongoid
|
|
|
50
47
|
# document.freeze
|
|
51
48
|
#
|
|
52
49
|
# @return [ Document ] The document.
|
|
53
|
-
#
|
|
54
|
-
# @since 2.0.0
|
|
55
50
|
def freeze
|
|
56
51
|
as_attributes.freeze and self
|
|
57
52
|
end
|
|
@@ -62,8 +57,6 @@ module Mongoid
|
|
|
62
57
|
# document.frozen?
|
|
63
58
|
#
|
|
64
59
|
# @return [ true, false ] True if frozen, else false.
|
|
65
|
-
#
|
|
66
|
-
# @since 2.0.0
|
|
67
60
|
def frozen?
|
|
68
61
|
attributes.frozen?
|
|
69
62
|
end
|
|
@@ -78,8 +71,6 @@ module Mongoid
|
|
|
78
71
|
# document.hash
|
|
79
72
|
#
|
|
80
73
|
# @return [ Integer ] The hash of the document's identity.
|
|
81
|
-
#
|
|
82
|
-
# @since 1.0.0
|
|
83
74
|
def hash
|
|
84
75
|
identity.hash
|
|
85
76
|
end
|
|
@@ -92,8 +83,6 @@ module Mongoid
|
|
|
92
83
|
# document.identity
|
|
93
84
|
#
|
|
94
85
|
# @return [ Array ] An array containing [document.class, document._id]
|
|
95
|
-
#
|
|
96
|
-
# @since 3.0.0
|
|
97
86
|
def identity
|
|
98
87
|
[ self.class, self._id ]
|
|
99
88
|
end
|
|
@@ -111,8 +100,6 @@ module Mongoid
|
|
|
111
100
|
# @param [ Hash ] attrs The attributes to set up the document with.
|
|
112
101
|
#
|
|
113
102
|
# @return [ Document ] A new document.
|
|
114
|
-
#
|
|
115
|
-
# @since 1.0.0
|
|
116
103
|
def initialize(attrs = nil)
|
|
117
104
|
@__parent = nil
|
|
118
105
|
_building do
|
|
@@ -136,8 +123,6 @@ module Mongoid
|
|
|
136
123
|
# document.model_name
|
|
137
124
|
#
|
|
138
125
|
# @return [ String ] The model name.
|
|
139
|
-
#
|
|
140
|
-
# @since 3.0.16
|
|
141
126
|
def model_name
|
|
142
127
|
self.class.model_name
|
|
143
128
|
end
|
|
@@ -148,8 +133,6 @@ module Mongoid
|
|
|
148
133
|
# document.to_key
|
|
149
134
|
#
|
|
150
135
|
# @return [ String ] The id of the document or nil if new.
|
|
151
|
-
#
|
|
152
|
-
# @since 2.4.0
|
|
153
136
|
def to_key
|
|
154
137
|
(persisted? || destroyed?) ? [ _id.to_s ] : nil
|
|
155
138
|
end
|
|
@@ -160,8 +143,6 @@ module Mongoid
|
|
|
160
143
|
# document.to_a
|
|
161
144
|
#
|
|
162
145
|
# @return [ Array<Document> ] An array with the document as its only item.
|
|
163
|
-
#
|
|
164
|
-
# @since 1.0.0
|
|
165
146
|
def to_a
|
|
166
147
|
[ self ]
|
|
167
148
|
end
|
|
@@ -174,8 +155,6 @@ module Mongoid
|
|
|
174
155
|
# person.as_document
|
|
175
156
|
#
|
|
176
157
|
# @return [ Hash ] A hash of all attributes in the hierarchy.
|
|
177
|
-
#
|
|
178
|
-
# @since 1.0.0
|
|
179
158
|
def as_document
|
|
180
159
|
BSON::Document.new(as_attributes)
|
|
181
160
|
end
|
|
@@ -194,15 +173,14 @@ module Mongoid
|
|
|
194
173
|
#
|
|
195
174
|
# @param [ Hash ] options The options.
|
|
196
175
|
#
|
|
197
|
-
# @option options [ true, false ] :compact Whether to include fields
|
|
198
|
-
# nil values in the json document.
|
|
176
|
+
# @option options [ true, false ] :compact (Deprecated) Whether to include fields
|
|
177
|
+
# with nil values in the json document.
|
|
199
178
|
#
|
|
200
179
|
# @return [ Hash ] The document as json.
|
|
201
|
-
#
|
|
202
|
-
# @since 5.1.0
|
|
203
180
|
def as_json(options = nil)
|
|
204
181
|
rv = super
|
|
205
182
|
if options && options[:compact]
|
|
183
|
+
Mongoid.logger.warn('#as_json :compact option is deprecated. Please call #compact on the returned Hash object instead.')
|
|
206
184
|
rv = rv.compact
|
|
207
185
|
end
|
|
208
186
|
rv
|
|
@@ -219,8 +197,6 @@ module Mongoid
|
|
|
219
197
|
# @param [ Class ] klass The class to become.
|
|
220
198
|
#
|
|
221
199
|
# @return [ Document ] An instance of the specified class.
|
|
222
|
-
#
|
|
223
|
-
# @since 2.0.0
|
|
224
200
|
def becomes(klass)
|
|
225
201
|
unless klass.include?(Mongoid::Document)
|
|
226
202
|
raise ArgumentError, "A class which includes Mongoid::Document is expected"
|
|
@@ -255,8 +231,6 @@ module Mongoid
|
|
|
255
231
|
# Returns the logger
|
|
256
232
|
#
|
|
257
233
|
# @return [ Logger ] The configured logger or a default Logger instance.
|
|
258
|
-
#
|
|
259
|
-
# @since 2.2.0
|
|
260
234
|
def logger
|
|
261
235
|
Mongoid.logger
|
|
262
236
|
end
|
|
@@ -267,8 +241,6 @@ module Mongoid
|
|
|
267
241
|
# model.model_key
|
|
268
242
|
#
|
|
269
243
|
# @return [ String ] The model key.
|
|
270
|
-
#
|
|
271
|
-
# @since 2.4.0
|
|
272
244
|
def model_key
|
|
273
245
|
@model_cache_key ||= self.class.model_name.cache_key
|
|
274
246
|
end
|
|
@@ -292,20 +264,6 @@ module Mongoid
|
|
|
292
264
|
|
|
293
265
|
module ClassMethods
|
|
294
266
|
|
|
295
|
-
# Performs class equality checking.
|
|
296
|
-
#
|
|
297
|
-
# @example Compare the classes.
|
|
298
|
-
# document === other
|
|
299
|
-
#
|
|
300
|
-
# @param [ Document, Object ] other The other object to compare with.
|
|
301
|
-
#
|
|
302
|
-
# @return [ true, false ] True if the classes are equal, false if not.
|
|
303
|
-
#
|
|
304
|
-
# @since 2.0.0.rc.4
|
|
305
|
-
def ===(other)
|
|
306
|
-
other.class == Class ? self <= other : other.is_a?(self)
|
|
307
|
-
end
|
|
308
|
-
|
|
309
267
|
# Instantiate a new object, only when loaded from the database or when
|
|
310
268
|
# the attributes have already been typecast.
|
|
311
269
|
#
|
|
@@ -317,8 +275,6 @@ module Mongoid
|
|
|
317
275
|
# criteria.
|
|
318
276
|
#
|
|
319
277
|
# @return [ Document ] A new document.
|
|
320
|
-
#
|
|
321
|
-
# @since 1.0.0
|
|
322
278
|
def instantiate(attrs = nil, selected_fields = nil)
|
|
323
279
|
attributes = attrs || {}
|
|
324
280
|
doc = allocate
|
|
@@ -337,8 +293,6 @@ module Mongoid
|
|
|
337
293
|
# document._types
|
|
338
294
|
#
|
|
339
295
|
# @return [ Array<Class> ] All subclasses of the current document.
|
|
340
|
-
#
|
|
341
|
-
# @since 1.0.0
|
|
342
296
|
def _types
|
|
343
297
|
@_type ||= (descendants + [ self ]).uniq.map(&:discriminator_value)
|
|
344
298
|
end
|
|
@@ -358,8 +312,6 @@ module Mongoid
|
|
|
358
312
|
# Set the i18n scope to overwrite ActiveModel.
|
|
359
313
|
#
|
|
360
314
|
# @return [ Symbol ] :mongoid
|
|
361
|
-
#
|
|
362
|
-
# @since 2.0.0
|
|
363
315
|
def i18n_scope
|
|
364
316
|
:mongoid
|
|
365
317
|
end
|
|
@@ -370,8 +322,6 @@ module Mongoid
|
|
|
370
322
|
# Person.logger
|
|
371
323
|
#
|
|
372
324
|
# @return [ Logger ] The configured logger or a default Logger instance.
|
|
373
|
-
#
|
|
374
|
-
# @since 2.2.0
|
|
375
325
|
def logger
|
|
376
326
|
Mongoid.logger
|
|
377
327
|
end
|
data/lib/mongoid/equality.rb
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
|
|
6
5
|
# This module contains the behavior of Mongoid's clone/dup of documents.
|
|
7
6
|
module Equality
|
|
7
|
+
# Leave the current contents of this module outside of InstanceMethods
|
|
8
|
+
# to prevent cherry picking conflicts. For now...
|
|
9
|
+
extend ActiveSupport::Concern
|
|
8
10
|
|
|
9
11
|
# Default comparison is via the string version of the id.
|
|
10
12
|
#
|
|
@@ -14,8 +16,6 @@ module Mongoid
|
|
|
14
16
|
# @param [ Document ] other The document to compare with.
|
|
15
17
|
#
|
|
16
18
|
# @return [ Integer ] -1, 0, 1.
|
|
17
|
-
#
|
|
18
|
-
# @since 1.0.0
|
|
19
19
|
def <=>(other)
|
|
20
20
|
attributes["_id"].to_s <=> other.attributes["_id"].to_s
|
|
21
21
|
end
|
|
@@ -29,8 +29,6 @@ module Mongoid
|
|
|
29
29
|
# @param [ Document, Object ] other The other object to compare with.
|
|
30
30
|
#
|
|
31
31
|
# @return [ true, false ] True if the ids are equal, false if not.
|
|
32
|
-
#
|
|
33
|
-
# @since 1.0.0
|
|
34
32
|
def ==(other)
|
|
35
33
|
self.class == other.class &&
|
|
36
34
|
attributes["_id"] == other.attributes["_id"]
|
|
@@ -44,10 +42,12 @@ module Mongoid
|
|
|
44
42
|
# @param [ Document, Object ] other The other object to compare with.
|
|
45
43
|
#
|
|
46
44
|
# @return [ true, false ] True if the classes are equal, false if not.
|
|
47
|
-
#
|
|
48
|
-
# @since 1.0.0
|
|
49
45
|
def ===(other)
|
|
50
|
-
|
|
46
|
+
if Mongoid.legacy_triple_equals
|
|
47
|
+
super
|
|
48
|
+
else
|
|
49
|
+
other.class == Class ? self.class === other : self == other
|
|
50
|
+
end
|
|
51
51
|
end
|
|
52
52
|
|
|
53
53
|
# Delegates to ==. Used when needing checks in hashes.
|
|
@@ -58,10 +58,26 @@ module Mongoid
|
|
|
58
58
|
# @param [ Document, Object ] other The object to check against.
|
|
59
59
|
#
|
|
60
60
|
# @return [ true, false ] True if equal, false if not.
|
|
61
|
-
#
|
|
62
|
-
# @since 1.0.0
|
|
63
61
|
def eql?(other)
|
|
64
62
|
self == (other)
|
|
65
63
|
end
|
|
64
|
+
|
|
65
|
+
module ClassMethods
|
|
66
|
+
# Performs class equality checking.
|
|
67
|
+
#
|
|
68
|
+
# @example Compare the classes.
|
|
69
|
+
# document === other
|
|
70
|
+
#
|
|
71
|
+
# @param [ Document, Object ] other The other object to compare with.
|
|
72
|
+
#
|
|
73
|
+
# @return [ true, false ] True if the classes are equal, false if not.
|
|
74
|
+
def ===(other)
|
|
75
|
+
if Mongoid.legacy_triple_equals
|
|
76
|
+
other.is_a?(self)
|
|
77
|
+
else
|
|
78
|
+
other.class == Class ? self <= other : other.is_a?(self)
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
end
|
|
66
82
|
end
|
|
67
83
|
end
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
module Errors
|
|
6
5
|
|
|
7
|
-
# This error is raised in case of an
|
|
6
|
+
# This error is raised in case of an ambiguous association.
|
|
8
7
|
#
|
|
9
|
-
# @example An
|
|
8
|
+
# @example An ambiguous association.
|
|
10
9
|
# class Person
|
|
11
10
|
# include Mongoid::Document
|
|
12
11
|
#
|
|
@@ -33,8 +32,6 @@ module Mongoid
|
|
|
33
32
|
# @param [ Class ] inverse The inverse class.
|
|
34
33
|
# @param [ Symbol ] name The relation name.
|
|
35
34
|
# @param [ Array<Symbol> ] candidates The potential inverses.
|
|
36
|
-
#
|
|
37
|
-
# @since 3.0.0
|
|
38
35
|
def initialize(klass, inverse, name, candidates)
|
|
39
36
|
super(
|
|
40
37
|
compose_message(
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
module Errors
|
|
@@ -15,8 +14,6 @@ module Mongoid
|
|
|
15
14
|
#
|
|
16
15
|
# @param [ Class ] klass The class of the document.
|
|
17
16
|
# @param [ Symbol ] method The name of the method.
|
|
18
|
-
#
|
|
19
|
-
# @since 2.2.0
|
|
20
17
|
def initialize(klass, method)
|
|
21
18
|
super(
|
|
22
19
|
compose_message("callbacks", { klass: klass, method: method })
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
module Errors
|
|
@@ -14,8 +13,6 @@ module Mongoid
|
|
|
14
13
|
# destroyed.
|
|
15
14
|
# @param [ Symbol ] association_name The name of the dependent
|
|
16
15
|
# association that prevents the document from being deleted.
|
|
17
|
-
#
|
|
18
|
-
# @since 3.0.0
|
|
19
16
|
def initialize(document, association_name)
|
|
20
17
|
super(
|
|
21
18
|
compose_message(
|
|
@@ -1,24 +1,19 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
module Errors
|
|
6
5
|
|
|
7
|
-
# Raised when attempting to destroy a document that had
|
|
6
|
+
# Raised when attempting to destroy a document that had destroy callbacks
|
|
8
7
|
# return false.
|
|
9
|
-
#
|
|
10
|
-
# @since 4.0.0
|
|
11
8
|
class DocumentNotDestroyed < MongoidError
|
|
12
9
|
|
|
13
|
-
#
|
|
10
|
+
# Instantiate the exception.
|
|
14
11
|
#
|
|
15
12
|
# @example Create the error.
|
|
16
13
|
# DocumentNotDestroyed.new(Band)
|
|
17
14
|
#
|
|
18
15
|
# @param [ Object ] id The document id.
|
|
19
16
|
# @param [ Class ] klass The document class.
|
|
20
|
-
#
|
|
21
|
-
# @since 4.0.0
|
|
22
17
|
def initialize(id, klass)
|
|
23
18
|
super(compose_message("document_not_destroyed", { id: id.inspect, klass: klass }))
|
|
24
19
|
end
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
module Errors
|
|
@@ -52,8 +51,6 @@ module Mongoid
|
|
|
52
51
|
# @param [ Object, Array ] unmatched The ids that did not match.
|
|
53
52
|
#
|
|
54
53
|
# @return [ String ] The missing string.
|
|
55
|
-
#
|
|
56
|
-
# @since 3.0.0
|
|
57
54
|
def missing(unmatched)
|
|
58
55
|
if unmatched.is_a?(::Array)
|
|
59
56
|
unmatched.join(", ")
|
|
@@ -70,8 +67,6 @@ module Mongoid
|
|
|
70
67
|
# @param [ Object, Array ] params The ids that were searched for.
|
|
71
68
|
#
|
|
72
69
|
# @return [ String ] The searched string.
|
|
73
|
-
#
|
|
74
|
-
# @since 3.0.0
|
|
75
70
|
def searched(params)
|
|
76
71
|
if params.is_a?(::Array)
|
|
77
72
|
params.take(3).join(", ") + " ..."
|
|
@@ -88,8 +83,6 @@ module Mongoid
|
|
|
88
83
|
# @param [ Object, Array ] params What was searched for.
|
|
89
84
|
#
|
|
90
85
|
# @return [ Integer ] The total number.
|
|
91
|
-
#
|
|
92
|
-
# @since 3.0.0
|
|
93
86
|
def total(params)
|
|
94
87
|
params.is_a?(::Array) ? params.count : 1
|
|
95
88
|
end
|
|
@@ -100,8 +93,6 @@ module Mongoid
|
|
|
100
93
|
# error.problem
|
|
101
94
|
#
|
|
102
95
|
# @return [ String ] The problem.
|
|
103
|
-
#
|
|
104
|
-
# @since 3.0.0
|
|
105
96
|
def message_key(params)
|
|
106
97
|
case params
|
|
107
98
|
when Hash then "document_with_attributes_not_found"
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
module Errors
|
|
@@ -16,8 +15,6 @@ module Mongoid
|
|
|
16
15
|
# EagerLoad.new(:preferences)
|
|
17
16
|
#
|
|
18
17
|
# @param [ Symbol ] name The name of the association.
|
|
19
|
-
#
|
|
20
|
-
# @since 2.2.0
|
|
21
18
|
def initialize(name)
|
|
22
19
|
super(compose_message("eager_load", { name: name }))
|
|
23
20
|
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Mongoid
|
|
4
|
+
module Errors
|
|
5
|
+
|
|
6
|
+
# This error is raised when an empty configuration file is attempted to be
|
|
7
|
+
# loaded.
|
|
8
|
+
class EmptyConfigFile < MongoidError
|
|
9
|
+
|
|
10
|
+
# Create the new error.
|
|
11
|
+
#
|
|
12
|
+
# @param [ String ] path The path of the config file used.
|
|
13
|
+
#
|
|
14
|
+
# @api private
|
|
15
|
+
def initialize(path)
|
|
16
|
+
super(
|
|
17
|
+
compose_message(
|
|
18
|
+
"empty_config_file",
|
|
19
|
+
{ path: path }
|
|
20
|
+
)
|
|
21
|
+
)
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
module Errors
|
|
@@ -12,8 +11,6 @@ module Mongoid
|
|
|
12
11
|
#
|
|
13
12
|
# @example Create the new unsupported collation error.
|
|
14
13
|
# InMemoryCollationNotSupported.new
|
|
15
|
-
#
|
|
16
|
-
# @since 6.1.0
|
|
17
14
|
def initialize
|
|
18
15
|
super(compose_message("in_memory_collation_not_supported"))
|
|
19
16
|
end
|