mongoid 7.3.5 → 7.5.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 +3 -3
- data/lib/config/locales/en.yml +28 -20
- data/lib/mongoid/association/accessors.rb +0 -27
- data/lib/mongoid/association/bindable.rb +0 -21
- data/lib/mongoid/association/builders.rb +0 -9
- data/lib/mongoid/association/constrainable.rb +0 -3
- data/lib/mongoid/association/depending.rb +0 -7
- data/lib/mongoid/association/eager_loadable.rb +0 -3
- data/lib/mongoid/association/embedded/batchable.rb +12 -59
- 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 +26 -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 +20 -64
- data/lib/mongoid/association/referenced/has_many/proxy.rb +20 -63
- data/lib/mongoid/association/referenced/has_many.rb +12 -39
- data/lib/mongoid/association/referenced/has_one/binding.rb +0 -7
- data/lib/mongoid/association/referenced/has_one/buildable.rb +3 -4
- data/lib/mongoid/association/referenced/has_one/eager.rb +0 -1
- data/lib/mongoid/association/referenced/has_one/nested_builder.rb +0 -15
- data/lib/mongoid/association/referenced/has_one/proxy.rb +0 -9
- data/lib/mongoid/association/referenced/has_one.rb +9 -32
- data/lib/mongoid/association/referenced/syncable.rb +0 -17
- data/lib/mongoid/association/referenced.rb +0 -1
- data/lib/mongoid/association/reflections.rb +0 -1
- data/lib/mongoid/association/relatable.rb +0 -61
- data/lib/mongoid/association.rb +0 -17
- data/lib/mongoid/atomic/modifiers.rb +4 -51
- data/lib/mongoid/atomic/paths/embedded/many.rb +0 -24
- data/lib/mongoid/atomic/paths/embedded/one.rb +0 -5
- data/lib/mongoid/atomic/paths/embedded.rb +0 -3
- data/lib/mongoid/atomic/paths/root.rb +0 -5
- data/lib/mongoid/atomic/paths.rb +0 -1
- data/lib/mongoid/atomic.rb +1 -42
- data/lib/mongoid/attributes/dynamic.rb +0 -17
- data/lib/mongoid/attributes/nested.rb +0 -5
- data/lib/mongoid/attributes/processing.rb +1 -18
- data/lib/mongoid/attributes/projector.rb +0 -1
- data/lib/mongoid/attributes/readonly.rb +0 -5
- data/lib/mongoid/attributes.rb +0 -33
- data/lib/mongoid/cacheable.rb +1 -6
- data/lib/mongoid/changeable.rb +3 -59
- data/lib/mongoid/clients/factory.rb +0 -7
- data/lib/mongoid/clients/options.rb +0 -5
- data/lib/mongoid/clients/sessions.rb +0 -7
- data/lib/mongoid/clients/storage_options.rb +0 -7
- data/lib/mongoid/clients/validators/storage.rb +0 -9
- data/lib/mongoid/clients/validators.rb +0 -1
- data/lib/mongoid/clients.rb +0 -9
- data/lib/mongoid/composable.rb +0 -7
- data/lib/mongoid/config/environment.rb +21 -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 +43 -30
- data/lib/mongoid/contextual/aggregable/memory.rb +14 -11
- data/lib/mongoid/contextual/aggregable/mongo.rb +15 -20
- data/lib/mongoid/contextual/aggregable/none.rb +65 -0
- data/lib/mongoid/contextual/aggregable.rb +17 -0
- data/lib/mongoid/contextual/atomic.rb +0 -25
- data/lib/mongoid/contextual/command.rb +0 -5
- data/lib/mongoid/contextual/geo_near.rb +1 -34
- data/lib/mongoid/contextual/map_reduce.rb +0 -31
- data/lib/mongoid/contextual/memory.rb +147 -70
- data/lib/mongoid/contextual/mongo.rb +249 -103
- data/lib/mongoid/contextual/none.rb +83 -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 +2 -25
- 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 +1 -24
- 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 +22 -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 +45 -76
- 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 +6 -2
- data/lib/mongoid/criteria/queryable.rb +0 -7
- data/lib/mongoid/criteria/scopable.rb +25 -19
- data/lib/mongoid/criteria.rb +2 -57
- data/lib/mongoid/document.rb +1 -50
- 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 +23 -15
- data/lib/mongoid/errors/eager_load.rb +0 -3
- data/lib/mongoid/errors/empty_config_file.rb +0 -1
- data/lib/mongoid/errors/in_memory_collation_not_supported.rb +0 -3
- data/lib/mongoid/errors/invalid_collection.rb +0 -1
- data/lib/mongoid/errors/invalid_config_file.rb +0 -1
- data/lib/mongoid/errors/invalid_config_option.rb +0 -3
- data/lib/mongoid/errors/invalid_dependent_strategy.rb +0 -3
- data/lib/mongoid/errors/invalid_discriminator_key_target.rb +0 -1
- data/lib/mongoid/errors/invalid_elem_match_operator.rb +0 -1
- data/lib/mongoid/errors/invalid_estimated_count_criteria.rb +0 -1
- data/lib/mongoid/errors/invalid_expression_operator.rb +0 -1
- data/lib/mongoid/errors/invalid_field.rb +0 -5
- data/lib/mongoid/errors/invalid_field_operator.rb +0 -1
- data/lib/mongoid/errors/invalid_field_option.rb +0 -3
- data/lib/mongoid/errors/invalid_find.rb +0 -3
- data/lib/mongoid/errors/invalid_includes.rb +0 -3
- data/lib/mongoid/errors/invalid_index.rb +0 -3
- data/lib/mongoid/errors/invalid_options.rb +0 -3
- data/lib/mongoid/errors/invalid_path.rb +0 -3
- data/lib/mongoid/errors/invalid_persistence_option.rb +0 -5
- data/lib/mongoid/errors/invalid_query.rb +0 -1
- data/lib/mongoid/errors/invalid_relation.rb +0 -7
- data/lib/mongoid/errors/invalid_relation_option.rb +0 -3
- data/lib/mongoid/errors/invalid_scope.rb +0 -3
- data/lib/mongoid/errors/invalid_session_use.rb +1 -6
- data/lib/mongoid/errors/invalid_set_polymorphic_relation.rb +0 -1
- data/lib/mongoid/errors/invalid_storage_options.rb +0 -3
- data/lib/mongoid/errors/invalid_storage_parent.rb +0 -3
- data/lib/mongoid/errors/invalid_time.rb +0 -3
- data/lib/mongoid/errors/invalid_value.rb +0 -1
- data/lib/mongoid/errors/inverse_not_found.rb +0 -3
- data/lib/mongoid/errors/mixed_client_configuration.rb +0 -3
- data/lib/mongoid/errors/mixed_relations.rb +0 -3
- data/lib/mongoid/errors/mongoid_error.rb +0 -9
- data/lib/mongoid/errors/nested_attributes_metadata_not_found.rb +0 -3
- data/lib/mongoid/errors/no_client_config.rb +0 -3
- data/lib/mongoid/errors/no_client_database.rb +0 -3
- data/lib/mongoid/errors/no_client_hosts.rb +0 -3
- data/lib/mongoid/errors/no_clients_config.rb +0 -3
- data/lib/mongoid/errors/no_default_client.rb +0 -3
- data/lib/mongoid/errors/no_environment.rb +0 -3
- data/lib/mongoid/errors/no_map_reduce_output.rb +0 -3
- data/lib/mongoid/errors/no_metadata.rb +0 -3
- data/lib/mongoid/errors/no_parent.rb +0 -3
- data/lib/mongoid/errors/readonly_attribute.rb +0 -3
- data/lib/mongoid/errors/readonly_document.rb +1 -6
- data/lib/mongoid/errors/scope_overwrite.rb +0 -1
- data/lib/mongoid/errors/too_many_nested_attribute_records.rb +0 -1
- data/lib/mongoid/errors/unknown_attribute.rb +0 -3
- data/lib/mongoid/errors/unknown_model.rb +0 -3
- data/lib/mongoid/errors/unsaved_document.rb +1 -2
- data/lib/mongoid/errors/unsupported_javascript.rb +0 -3
- data/lib/mongoid/errors/validations.rb +0 -1
- data/lib/mongoid/errors.rb +0 -1
- data/lib/mongoid/evolvable.rb +0 -3
- data/lib/mongoid/extensions/array.rb +3 -29
- data/lib/mongoid/extensions/big_decimal.rb +0 -11
- data/lib/mongoid/extensions/boolean.rb +0 -3
- data/lib/mongoid/extensions/date.rb +0 -9
- data/lib/mongoid/extensions/date_time.rb +0 -9
- data/lib/mongoid/extensions/decimal128.rb +0 -5
- data/lib/mongoid/extensions/false_class.rb +1 -6
- data/lib/mongoid/extensions/float.rb +0 -7
- data/lib/mongoid/extensions/hash.rb +0 -27
- data/lib/mongoid/extensions/integer.rb +0 -9
- data/lib/mongoid/extensions/module.rb +0 -3
- data/lib/mongoid/extensions/nil_class.rb +0 -5
- data/lib/mongoid/extensions/object.rb +1 -40
- data/lib/mongoid/extensions/object_id.rb +0 -7
- data/lib/mongoid/extensions/range.rb +0 -11
- data/lib/mongoid/extensions/regexp.rb +0 -3
- data/lib/mongoid/extensions/set.rb +0 -7
- data/lib/mongoid/extensions/string.rb +1 -30
- data/lib/mongoid/extensions/symbol.rb +0 -7
- data/lib/mongoid/extensions/time.rb +0 -11
- data/lib/mongoid/extensions/time_with_zone.rb +13 -9
- data/lib/mongoid/extensions/true_class.rb +1 -6
- data/lib/mongoid/extensions.rb +15 -3
- data/lib/mongoid/factory.rb +1 -2
- data/lib/mongoid/fields/foreign_key.rb +0 -21
- data/lib/mongoid/fields/localized.rb +0 -11
- data/lib/mongoid/fields/standard.rb +0 -33
- data/lib/mongoid/fields/validators/macro.rb +0 -9
- data/lib/mongoid/fields/validators.rb +0 -1
- data/lib/mongoid/fields.rb +191 -60
- data/lib/mongoid/findable.rb +20 -10
- data/lib/mongoid/indexable/specification.rb +0 -15
- data/lib/mongoid/indexable/validators/options.rb +0 -7
- data/lib/mongoid/indexable.rb +1 -18
- data/lib/mongoid/inspectable.rb +1 -10
- data/lib/mongoid/interceptable.rb +0 -25
- data/lib/mongoid/loggable.rb +0 -9
- data/lib/mongoid/matchable.rb +0 -5
- data/lib/mongoid/matcher/eq_impl.rb +37 -2
- data/lib/mongoid/matcher/eq_impl_with_regexp.rb +6 -1
- data/lib/mongoid/persistable/creatable.rb +1 -20
- data/lib/mongoid/persistable/deletable.rb +0 -17
- data/lib/mongoid/persistable/destroyable.rb +0 -7
- data/lib/mongoid/persistable/incrementable.rb +0 -5
- data/lib/mongoid/persistable/logical.rb +0 -5
- data/lib/mongoid/persistable/poppable.rb +0 -5
- data/lib/mongoid/persistable/pullable.rb +0 -7
- data/lib/mongoid/persistable/pushable.rb +0 -7
- data/lib/mongoid/persistable/renamable.rb +0 -5
- data/lib/mongoid/persistable/savable.rb +0 -7
- data/lib/mongoid/persistable/settable.rb +0 -5
- data/lib/mongoid/persistable/unsettable.rb +0 -5
- data/lib/mongoid/persistable/updatable.rb +2 -17
- data/lib/mongoid/persistable/upsertable.rb +0 -7
- data/lib/mongoid/persistable.rb +0 -23
- data/lib/mongoid/persistence_context.rb +0 -27
- data/lib/mongoid/positional.rb +0 -5
- data/lib/mongoid/query_cache.rb +0 -33
- data/lib/mongoid/railtie.rb +0 -15
- data/lib/mongoid/railties/controller_runtime.rb +0 -1
- data/lib/mongoid/reloadable.rb +4 -16
- data/lib/mongoid/scopable.rb +6 -34
- data/lib/mongoid/selectable.rb +0 -9
- data/lib/mongoid/serializable.rb +0 -15
- data/lib/mongoid/shardable.rb +0 -7
- data/lib/mongoid/stateful.rb +0 -9
- data/lib/mongoid/stringified_symbol.rb +2 -3
- data/lib/mongoid/tasks/database.rb +0 -5
- data/lib/mongoid/threaded/lifecycle.rb +0 -21
- data/lib/mongoid/threaded.rb +0 -55
- data/lib/mongoid/timestamps/created/short.rb +0 -1
- data/lib/mongoid/timestamps/created.rb +0 -1
- data/lib/mongoid/timestamps/short.rb +0 -1
- data/lib/mongoid/timestamps/timeless.rb +0 -7
- data/lib/mongoid/timestamps/updated/short.rb +0 -1
- data/lib/mongoid/timestamps/updated.rb +0 -3
- data/lib/mongoid/timestamps.rb +0 -1
- data/lib/mongoid/touchable.rb +0 -7
- data/lib/mongoid/traversable.rb +67 -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/warnings.rb +29 -0
- data/lib/mongoid.rb +1 -15
- data/lib/rails/generators/mongoid/config/config_generator.rb +0 -1
- data/lib/rails/generators/mongoid/config/templates/mongoid.yml +4 -3
- 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/config/mongoid_with_schema_map_uuid.yml +27 -0
- data/spec/integration/app_spec.rb +20 -15
- data/spec/integration/associations/belongs_to_spec.rb +0 -1
- data/spec/integration/associations/embedded_dirty_spec.rb +57 -0
- data/spec/integration/associations/embedded_spec.rb +0 -1
- data/spec/integration/associations/embeds_many_spec.rb +0 -1
- data/spec/integration/associations/embeds_one_spec.rb +0 -1
- data/spec/integration/associations/foreign_key_spec.rb +0 -1
- data/spec/integration/associations/foreign_key_spec_models.rb +0 -1
- data/spec/integration/associations/has_many_spec.rb +0 -1
- data/spec/integration/associations/has_one_spec.rb +0 -1
- data/spec/integration/associations/nested_attributes_assignment_spec.rb +0 -1
- data/spec/integration/associations/reverse_population_spec.rb +0 -1
- data/spec/integration/associations/reverse_population_spec_models.rb +0 -1
- data/spec/integration/associations/scope_option_spec.rb +101 -0
- data/spec/integration/atomic/modifiers_spec.rb +0 -1
- data/spec/integration/bson_regexp_raw_spec.rb +0 -1
- data/spec/integration/callbacks_models.rb +12 -0
- data/spec/integration/callbacks_spec.rb +18 -6
- data/spec/integration/contextual/empty_spec.rb +0 -1
- data/spec/integration/criteria/alias_query_spec.rb +161 -0
- data/spec/integration/criteria/date_field_spec.rb +0 -1
- data/spec/integration/criteria/default_scope_spec.rb +51 -0
- data/spec/integration/criteria/logical_spec.rb +30 -0
- data/spec/integration/criteria/range_spec.rb +265 -0
- data/spec/integration/criteria/time_with_zone_spec.rb +125 -15
- data/spec/integration/discriminator_key_spec.rb +0 -1
- data/spec/integration/discriminator_value_spec.rb +0 -1
- data/spec/integration/document_spec.rb +0 -1
- data/spec/integration/i18n_fallbacks_spec.rb +15 -2
- data/spec/integration/matcher_examples_spec.rb +0 -1
- data/spec/integration/matcher_operator_spec.rb +27 -3
- data/spec/integration/matcher_spec.rb +95 -1
- data/spec/integration/server_query_spec.rb +0 -1
- data/spec/integration/shardable_spec.rb +0 -1
- data/spec/integration/stringified_symbol_field_spec.rb +14 -1
- data/spec/lite_spec_helper.rb +1 -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 -156
- data/spec/mongoid/association/embedded/embeds_many_models.rb +0 -122
- data/spec/mongoid/association/embedded/embeds_many_query_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_many_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one/binding_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one/buildable_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one/proxy_spec.rb +21 -22
- data/spec/mongoid/association/embedded/embeds_one_dnl_models.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one_models.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one_query_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one_spec.rb +0 -1
- data/spec/mongoid/association/macros_spec.rb +9 -10
- data/spec/mongoid/association/nested/many_spec.rb +0 -1
- data/spec/mongoid/association/nested/one_spec.rb +0 -1
- data/spec/mongoid/association/options_spec.rb +0 -1
- data/spec/mongoid/association/polymorphic_spec.rb +0 -1
- data/spec/mongoid/association/referenced/belongs_to/binding_spec.rb +0 -1
- data/spec/mongoid/association/referenced/belongs_to/buildable_spec.rb +55 -17
- data/spec/mongoid/association/referenced/belongs_to/eager_spec.rb +50 -15
- data/spec/mongoid/association/referenced/belongs_to/proxy_spec.rb +57 -53
- data/spec/mongoid/association/referenced/belongs_to_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/belongs_to_spec.rb +22 -2
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/binding_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/buildable_spec.rb +26 -2
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/eager_spec.rb +31 -3
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_persistence_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_spec.rb +179 -162
- 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 +113 -33
- data/spec/mongoid/association/referenced/has_many/proxy_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_many/proxy_spec.rb +225 -178
- data/spec/mongoid/association/referenced/has_many_models.rb +18 -1
- data/spec/mongoid/association/referenced/has_many_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_many_spec.rb +21 -1
- data/spec/mongoid/association/referenced/has_one/binding_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_one/buildable_spec.rb +51 -8
- data/spec/mongoid/association/referenced/has_one/eager_spec.rb +17 -2
- data/spec/mongoid/association/referenced/has_one/proxy_spec.rb +26 -27
- data/spec/mongoid/association/referenced/has_one_models.rb +18 -1
- data/spec/mongoid/association/referenced/has_one_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_one_spec.rb +21 -1
- data/spec/mongoid/association/reflections_spec.rb +0 -1
- data/spec/mongoid/association/syncable_spec.rb +31 -32
- data/spec/mongoid/association_spec.rb +0 -1
- data/spec/mongoid/atomic/modifiers_spec.rb +0 -1
- data/spec/mongoid/atomic/paths/embedded/many_spec.rb +0 -1
- data/spec/mongoid/atomic/paths/embedded/one_spec.rb +0 -1
- data/spec/mongoid/atomic/paths/root_spec.rb +0 -1
- data/spec/mongoid/atomic/paths_spec.rb +0 -1
- data/spec/mongoid/atomic_spec.rb +28 -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 +11 -13
- data/spec/mongoid/clients/options_spec.rb +5 -5
- data/spec/mongoid/clients/sessions_spec.rb +22 -23
- data/spec/mongoid/clients/transactions_spec.rb +49 -27
- data/spec/mongoid/clients_spec.rb +6 -7
- data/spec/mongoid/composable_spec.rb +0 -1
- data/spec/mongoid/config/environment_spec.rb +39 -2
- data/spec/mongoid/config/options_spec.rb +0 -1
- data/spec/mongoid/config_spec.rb +154 -4
- data/spec/mongoid/contextual/aggregable/memory_spec.rb +51 -12
- data/spec/mongoid/contextual/aggregable/mongo_spec.rb +120 -21
- data/spec/mongoid/contextual/aggregable/none_spec.rb +60 -0
- data/spec/mongoid/contextual/atomic_spec.rb +46 -47
- data/spec/mongoid/contextual/geo_near_spec.rb +17 -18
- data/spec/mongoid/contextual/map_reduce_spec.rb +2 -3
- data/spec/mongoid/contextual/memory_spec.rb +849 -89
- data/spec/mongoid/contextual/mongo_spec.rb +1185 -160
- data/spec/mongoid/contextual/none_spec.rb +43 -72
- data/spec/mongoid/copyable_spec.rb +12 -13
- data/spec/mongoid/copyable_spec_models.rb +0 -1
- data/spec/mongoid/criteria/findable_spec.rb +23 -24
- data/spec/mongoid/criteria/inspectable_spec.rb +0 -1
- data/spec/mongoid/criteria/marshalable_spec.rb +0 -1
- data/spec/mongoid/criteria/modifiable_spec.rb +36 -37
- data/spec/mongoid/criteria/options_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/aggregable_spec.rb +1 -2
- data/spec/mongoid/criteria/queryable/expandable_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/array_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/big_decimal_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/bignum_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/boolean_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/date_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/date_time_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/fixnum_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/float_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/hash_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/integer_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/nil_class_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/numeric_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/object_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/range_spec.rb +237 -179
- data/spec/mongoid/criteria/queryable/extensions/regexp_raw_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/regexp_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/set_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/string_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/symbol_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/time_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/time_with_zone_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/key_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/mergeable_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/optional_spec.rb +1 -2
- data/spec/mongoid/criteria/queryable/options_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/pipeline_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/queryable_spec.rb +1 -2
- data/spec/mongoid/criteria/queryable/selectable_logical_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/selectable_shared_examples.rb +0 -1
- data/spec/mongoid/criteria/queryable/selectable_spec.rb +227 -55
- 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 +523 -187
- data/spec/mongoid/document_fields_spec.rb +0 -1
- data/spec/mongoid/document_persistence_context_spec.rb +0 -1
- data/spec/mongoid/document_query_spec.rb +0 -1
- data/spec/mongoid/document_spec.rb +11 -33
- data/spec/mongoid/equality_spec.rb +142 -41
- data/spec/mongoid/errors/ambiguous_relationship_spec.rb +0 -1
- data/spec/mongoid/errors/callback_spec.rb +0 -1
- data/spec/mongoid/errors/delete_restriction_spec.rb +0 -1
- data/spec/mongoid/errors/document_not_destroyed_spec.rb +0 -1
- data/spec/mongoid/errors/document_not_found_spec.rb +49 -1
- data/spec/mongoid/errors/eager_load_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_collection_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_config_file_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_config_option_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_field_option_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_field_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_find_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_includes_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_index_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_options_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_path_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_relation_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_scope_spec.rb +1 -2
- data/spec/mongoid/errors/invalid_set_polymorphic_relation_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_storage_options_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_time_spec.rb +0 -1
- data/spec/mongoid/errors/inverse_not_found_spec.rb +0 -1
- data/spec/mongoid/errors/mixed_client_configuration_spec.rb +0 -1
- data/spec/mongoid/errors/mixed_relations_spec.rb +0 -1
- data/spec/mongoid/errors/mongoid_error_spec.rb +1 -2
- 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 +51 -22
- data/spec/mongoid/indexable/specification_spec.rb +0 -1
- data/spec/mongoid/indexable_spec.rb +0 -1
- data/spec/mongoid/inspectable_spec.rb +0 -1
- data/spec/mongoid/interceptable_spec.rb +102 -95
- data/spec/mongoid/loggable_spec.rb +0 -1
- data/spec/mongoid/matcher/extract_attribute_spec.rb +5 -2
- data/spec/mongoid/persistable/creatable_spec.rb +2 -3
- data/spec/mongoid/persistable/deletable_spec.rb +18 -19
- data/spec/mongoid/persistable/destroyable_spec.rb +8 -9
- data/spec/mongoid/persistable/incrementable_spec.rb +8 -9
- data/spec/mongoid/persistable/logical_spec.rb +4 -5
- data/spec/mongoid/persistable/poppable_spec.rb +4 -5
- data/spec/mongoid/persistable/pullable_spec.rb +8 -9
- data/spec/mongoid/persistable/pushable_spec.rb +8 -9
- data/spec/mongoid/persistable/renamable_spec.rb +3 -4
- data/spec/mongoid/persistable/savable_spec.rb +15 -11
- data/spec/mongoid/persistable/settable_spec.rb +9 -10
- data/spec/mongoid/persistable/unsettable_spec.rb +4 -5
- data/spec/mongoid/persistable/updatable_spec.rb +41 -24
- data/spec/mongoid/persistable/upsertable_spec.rb +1 -2
- data/spec/mongoid/persistable_spec.rb +1 -2
- data/spec/mongoid/persistence_context_spec.rb +0 -1
- data/spec/mongoid/positional_spec.rb +0 -1
- data/spec/mongoid/query_cache_middleware_spec.rb +1 -2
- data/spec/mongoid/query_cache_spec.rb +30 -8
- data/spec/mongoid/relations/proxy_spec.rb +6 -7
- data/spec/mongoid/reloadable_spec.rb +209 -23
- data/spec/mongoid/scopable_spec.rb +54 -22
- data/spec/mongoid/selectable_spec.rb +6 -7
- data/spec/mongoid/serializable_spec.rb +9 -10
- data/spec/mongoid/shardable_spec.rb +2 -3
- data/spec/mongoid/stateful_spec.rb +1 -2
- data/spec/mongoid/tasks/database_rake_spec.rb +0 -1
- data/spec/mongoid/tasks/database_spec.rb +0 -1
- data/spec/mongoid/threaded_spec.rb +2 -3
- data/spec/mongoid/timestamps/created/short_spec.rb +1 -2
- data/spec/mongoid/timestamps/created_spec.rb +1 -2
- data/spec/mongoid/timestamps/timeless_spec.rb +2 -3
- data/spec/mongoid/timestamps/updated/short_spec.rb +3 -4
- data/spec/mongoid/timestamps/updated_spec.rb +3 -4
- data/spec/mongoid/timestamps_spec.rb +6 -7
- data/spec/mongoid/touchable_spec.rb +15 -20
- data/spec/mongoid/touchable_spec_models.rb +0 -1
- data/spec/mongoid/traversable_spec.rb +65 -2
- data/spec/mongoid/validatable/associated_spec.rb +0 -1
- data/spec/mongoid/validatable/format_spec.rb +0 -1
- data/spec/mongoid/validatable/length_spec.rb +0 -1
- data/spec/mongoid/validatable/numericality_spec.rb +0 -1
- data/spec/mongoid/validatable/presence_spec.rb +26 -23
- data/spec/mongoid/validatable/uniqueness_spec.rb +67 -68
- data/spec/mongoid/validatable_spec.rb +2 -3
- data/spec/mongoid_spec.rb +0 -1
- data/spec/rails/controller_extension/controller_runtime_spec.rb +0 -1
- data/spec/rails/mongoid_spec.rb +0 -1
- data/spec/shared/lib/mrss/constraints.rb +10 -17
- data/spec/shared/lib/mrss/docker_runner.rb +23 -3
- data/spec/shared/lib/mrss/eg_config_utils.rb +51 -0
- data/spec/shared/lib/mrss/event_subscriber.rb +15 -5
- data/spec/shared/lib/mrss/lite_constraints.rb +40 -1
- data/spec/shared/share/Dockerfile.erb +56 -54
- data/spec/shared/shlib/config.sh +27 -0
- data/spec/shared/shlib/distro.sh +2 -1
- data/spec/shared/shlib/server.sh +46 -21
- data/spec/shared/shlib/set_env.sh +43 -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 +31 -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/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 +2 -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 +1 -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/schema_maps/schema_map_aws.json +17 -0
- data/spec/support/schema_maps/schema_map_aws_key_alt_names.json +12 -0
- data/spec/support/schema_maps/schema_map_azure.json +17 -0
- data/spec/support/schema_maps/schema_map_azure_key_alt_names.json +12 -0
- data/spec/support/schema_maps/schema_map_gcp.json +17 -0
- data/spec/support/schema_maps/schema_map_gcp_key_alt_names.json +12 -0
- data/spec/support/schema_maps/schema_map_kmip.json +17 -0
- data/spec/support/schema_maps/schema_map_kmip_key_alt_names.json +12 -0
- data/spec/support/schema_maps/schema_map_local.json +18 -0
- data/spec/support/schema_maps/schema_map_local_key_alt_names.json +12 -0
- data/spec/support/shared/time.rb +0 -1
- data/spec/support/spec_config.rb +7 -1
- data.tar.gz.sig +0 -0
- metadata +51 -11
- metadata.gz.sig +0 -0
- data/lib/support/ruby_version.rb +0 -29
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
|
|
@@ -127,6 +122,7 @@ module Mongoid
|
|
|
127
122
|
#
|
|
128
123
|
# @return [ Criteria ] The cloned criteria.
|
|
129
124
|
def cache
|
|
125
|
+
Mongoid::Warnings.warn_criteria_cache_deprecated
|
|
130
126
|
crit = clone
|
|
131
127
|
crit.options.merge!(cache: true)
|
|
132
128
|
crit
|
|
@@ -139,6 +135,7 @@ module Mongoid
|
|
|
139
135
|
#
|
|
140
136
|
# @return [ true, false ] If the criteria is flagged as cached.
|
|
141
137
|
def cached?
|
|
138
|
+
Mongoid::Warnings.warn_criteria_cache_deprecated
|
|
142
139
|
options[:cache] == true
|
|
143
140
|
end
|
|
144
141
|
|
|
@@ -148,8 +145,6 @@ module Mongoid
|
|
|
148
145
|
# criteria.documents
|
|
149
146
|
#
|
|
150
147
|
# @return [ Array<Document> ] The documents.
|
|
151
|
-
#
|
|
152
|
-
# @since 3.0.0
|
|
153
148
|
def documents
|
|
154
149
|
@documents ||= []
|
|
155
150
|
end
|
|
@@ -161,8 +156,6 @@ module Mongoid
|
|
|
161
156
|
# @param [ Array<Document> ] docs The embedded documents.
|
|
162
157
|
#
|
|
163
158
|
# @return [ Array<Document> ] The embedded documents.
|
|
164
|
-
#
|
|
165
|
-
# @since 3.0.0
|
|
166
159
|
def documents=(docs)
|
|
167
160
|
@documents = docs
|
|
168
161
|
end
|
|
@@ -173,8 +166,6 @@ module Mongoid
|
|
|
173
166
|
# criteria.embedded?
|
|
174
167
|
#
|
|
175
168
|
# @return [ true, false ] If the criteria is embedded.
|
|
176
|
-
#
|
|
177
|
-
# @since 3.0.0
|
|
178
169
|
def embedded?
|
|
179
170
|
!!@embedded
|
|
180
171
|
end
|
|
@@ -186,8 +177,6 @@ module Mongoid
|
|
|
186
177
|
# criteria.extract_id
|
|
187
178
|
#
|
|
188
179
|
# @return [ Object ] The id.
|
|
189
|
-
#
|
|
190
|
-
# @since 2.3.0
|
|
191
180
|
def extract_id
|
|
192
181
|
selector.extract_id
|
|
193
182
|
end
|
|
@@ -201,8 +190,6 @@ module Mongoid
|
|
|
201
190
|
# @param [ Hash ] extras The extra driver options.
|
|
202
191
|
#
|
|
203
192
|
# @return [ Criteria ] The cloned criteria.
|
|
204
|
-
#
|
|
205
|
-
# @since 2.0.0
|
|
206
193
|
def extras(extras)
|
|
207
194
|
crit = clone
|
|
208
195
|
crit.options.merge!(extras)
|
|
@@ -215,8 +202,6 @@ module Mongoid
|
|
|
215
202
|
# criteria.field_list
|
|
216
203
|
#
|
|
217
204
|
# @return [ Array<String> ] The fields.
|
|
218
|
-
#
|
|
219
|
-
# @since 2.0.0
|
|
220
205
|
def field_list
|
|
221
206
|
if options[:fields]
|
|
222
207
|
options[:fields].keys.reject{ |key| key == klass.discriminator_key }
|
|
@@ -233,8 +218,6 @@ module Mongoid
|
|
|
233
218
|
# criteria.freeze
|
|
234
219
|
#
|
|
235
220
|
# @return [ Criteria ] The frozen criteria.
|
|
236
|
-
#
|
|
237
|
-
# @since 2.0.0
|
|
238
221
|
def freeze
|
|
239
222
|
context and inclusions and super
|
|
240
223
|
end
|
|
@@ -245,8 +228,6 @@ module Mongoid
|
|
|
245
228
|
# Criteria.new(Band)
|
|
246
229
|
#
|
|
247
230
|
# @param [ Class ] klass The model class.
|
|
248
|
-
#
|
|
249
|
-
# @since 1.0.0
|
|
250
231
|
def initialize(klass)
|
|
251
232
|
@klass = klass
|
|
252
233
|
@embedded = nil
|
|
@@ -288,8 +269,6 @@ module Mongoid
|
|
|
288
269
|
# @param [ Criteria ] other The criteria to merge in.
|
|
289
270
|
#
|
|
290
271
|
# @return [ Criteria ] The merged criteria.
|
|
291
|
-
#
|
|
292
|
-
# @since 3.0.0
|
|
293
272
|
def merge!(other)
|
|
294
273
|
criteria = other.to_criteria
|
|
295
274
|
selector.merge!(criteria.selector)
|
|
@@ -307,8 +286,6 @@ module Mongoid
|
|
|
307
286
|
# criteria.none
|
|
308
287
|
#
|
|
309
288
|
# @return [ Criteria ] The none criteria.
|
|
310
|
-
#
|
|
311
|
-
# @since 4.0.0
|
|
312
289
|
def none
|
|
313
290
|
@none = true and self
|
|
314
291
|
end
|
|
@@ -319,8 +296,6 @@ module Mongoid
|
|
|
319
296
|
# criteria.empty_and_chainable?
|
|
320
297
|
#
|
|
321
298
|
# @return [ true, false ] If the criteria is a none.
|
|
322
|
-
#
|
|
323
|
-
# @since 4.0.0
|
|
324
299
|
def empty_and_chainable?
|
|
325
300
|
!!@none
|
|
326
301
|
end
|
|
@@ -333,8 +308,6 @@ module Mongoid
|
|
|
333
308
|
# @param [ Array<Symbol> ] args The names of the fields.
|
|
334
309
|
#
|
|
335
310
|
# @return [ Criteria ] The cloned criteria.
|
|
336
|
-
#
|
|
337
|
-
# @since 1.0.0
|
|
338
311
|
def only(*args)
|
|
339
312
|
args = args.flatten
|
|
340
313
|
return clone if args.empty?
|
|
@@ -355,8 +328,6 @@ module Mongoid
|
|
|
355
328
|
# @param [ Hash ] value The mode preference.
|
|
356
329
|
#
|
|
357
330
|
# @return [ Criteria ] The cloned criteria.
|
|
358
|
-
#
|
|
359
|
-
# @since 5.0.0
|
|
360
331
|
def read(value = nil)
|
|
361
332
|
clone.tap do |criteria|
|
|
362
333
|
criteria.options.merge!(read: value)
|
|
@@ -371,8 +342,6 @@ module Mongoid
|
|
|
371
342
|
# @param [ Array<Symbol> ] args The names of the fields.
|
|
372
343
|
#
|
|
373
344
|
# @return [ Criteria ] The cloned criteria.
|
|
374
|
-
#
|
|
375
|
-
# @since 4.0.3
|
|
376
345
|
def without(*args)
|
|
377
346
|
args -= id_fields
|
|
378
347
|
super(*args)
|
|
@@ -399,8 +368,6 @@ module Mongoid
|
|
|
399
368
|
# criteria.to_criteria
|
|
400
369
|
#
|
|
401
370
|
# @return [ Criteria ] self.
|
|
402
|
-
#
|
|
403
|
-
# @since 3.0.0
|
|
404
371
|
def to_criteria
|
|
405
372
|
self
|
|
406
373
|
end
|
|
@@ -411,8 +378,6 @@ module Mongoid
|
|
|
411
378
|
# criteria.to_proc
|
|
412
379
|
#
|
|
413
380
|
# @return [ Proc ] The wrapped criteria.
|
|
414
|
-
#
|
|
415
|
-
# @since 3.0.0
|
|
416
381
|
def to_proc
|
|
417
382
|
->{ self }
|
|
418
383
|
end
|
|
@@ -447,8 +412,6 @@ module Mongoid
|
|
|
447
412
|
# is embedded.
|
|
448
413
|
#
|
|
449
414
|
# @return [ Criteria ] The cloned selectable.
|
|
450
|
-
#
|
|
451
|
-
# @since 1.0.0
|
|
452
415
|
def where(*args)
|
|
453
416
|
# Historically this method required exactly one argument.
|
|
454
417
|
# As of https://jira.mongodb.org/browse/MONGOID-4804 it also accepts
|
|
@@ -476,8 +439,6 @@ module Mongoid
|
|
|
476
439
|
# criteria.without_options
|
|
477
440
|
#
|
|
478
441
|
# @return [ Criteria ] The cloned criteria.
|
|
479
|
-
#
|
|
480
|
-
# @since 3.0.4
|
|
481
442
|
def without_options
|
|
482
443
|
crit = clone
|
|
483
444
|
crit.options.clear
|
|
@@ -496,8 +457,6 @@ module Mongoid
|
|
|
496
457
|
# @param [ Hash ] scope The scope for the code.
|
|
497
458
|
#
|
|
498
459
|
# @return [ Criteria ] The criteria.
|
|
499
|
-
#
|
|
500
|
-
# @since 3.1.0
|
|
501
460
|
def for_js(javascript, scope = {})
|
|
502
461
|
code = if scope.empty?
|
|
503
462
|
# CodeWithScope is not supported for $where as of MongoDB 4.4
|
|
@@ -523,8 +482,6 @@ module Mongoid
|
|
|
523
482
|
#
|
|
524
483
|
# @raise [ Errors::DocumentNotFound ] If none are found and raising an
|
|
525
484
|
# error.
|
|
526
|
-
#
|
|
527
|
-
# @since 3.0.0
|
|
528
485
|
def check_for_missing_documents!(result, ids)
|
|
529
486
|
if (result.size < ids.size) && Mongoid.raise_not_found_error
|
|
530
487
|
raise Errors::DocumentNotFound.new(klass, ids, ids - result.map(&:_id))
|
|
@@ -545,8 +502,6 @@ module Mongoid
|
|
|
545
502
|
# @param [ Criteria ] other The criteria getting cloned.
|
|
546
503
|
#
|
|
547
504
|
# @return [ nil ] nil.
|
|
548
|
-
#
|
|
549
|
-
# @since 1.0.0
|
|
550
505
|
def initialize_copy(other)
|
|
551
506
|
@inclusions = other.inclusions.dup
|
|
552
507
|
@scoping_options = other.scoping_options
|
|
@@ -565,8 +520,6 @@ module Mongoid
|
|
|
565
520
|
# @param [ Array ] args The arguments.
|
|
566
521
|
#
|
|
567
522
|
# @return [ Object ] The result of the method call.
|
|
568
|
-
#
|
|
569
|
-
# @since 1.0.0
|
|
570
523
|
ruby2_keywords def method_missing(name, *args, &block)
|
|
571
524
|
if klass.respond_to?(name)
|
|
572
525
|
klass.send(:with_scope, self) do
|
|
@@ -586,8 +539,6 @@ module Mongoid
|
|
|
586
539
|
# criteria.merge_type_selection
|
|
587
540
|
#
|
|
588
541
|
# @return [ true, false ] If type selection was added.
|
|
589
|
-
#
|
|
590
|
-
# @since 3.0.3
|
|
591
542
|
def merge_type_selection
|
|
592
543
|
selector.merge!(type_selection) if type_selectable?
|
|
593
544
|
end
|
|
@@ -600,8 +551,6 @@ module Mongoid
|
|
|
600
551
|
# criteria.type_selectable?
|
|
601
552
|
#
|
|
602
553
|
# @return [ true, false ] If type selection should be added.
|
|
603
|
-
#
|
|
604
|
-
# @since 3.0.3
|
|
605
554
|
def type_selectable?
|
|
606
555
|
klass.hereditary? &&
|
|
607
556
|
!selector.keys.include?(self.discriminator_key) &&
|
|
@@ -616,8 +565,6 @@ module Mongoid
|
|
|
616
565
|
# criteria.type_selection
|
|
617
566
|
#
|
|
618
567
|
# @return [ Hash ] The type selection.
|
|
619
|
-
#
|
|
620
|
-
# @since 3.0.3
|
|
621
568
|
def type_selection
|
|
622
569
|
klasses = klass._types
|
|
623
570
|
if klasses.size > 1
|
|
@@ -635,8 +582,6 @@ module Mongoid
|
|
|
635
582
|
# criteria.selector_with_type_selection
|
|
636
583
|
#
|
|
637
584
|
# @return [ Hash ] The selector.
|
|
638
|
-
#
|
|
639
|
-
# @since 3.0.3
|
|
640
585
|
def selector_with_type_selection
|
|
641
586
|
type_selectable? ? selector.merge(type_selection) : selector
|
|
642
587
|
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
|
|
@@ -161,7 +144,7 @@ module Mongoid
|
|
|
161
144
|
#
|
|
162
145
|
# @return [ Array<Document> ] An array with the document as its only item.
|
|
163
146
|
#
|
|
164
|
-
# @
|
|
147
|
+
# @deprecated
|
|
165
148
|
def to_a
|
|
166
149
|
[ self ]
|
|
167
150
|
end
|
|
@@ -174,8 +157,6 @@ module Mongoid
|
|
|
174
157
|
# person.as_document
|
|
175
158
|
#
|
|
176
159
|
# @return [ Hash ] A hash of all attributes in the hierarchy.
|
|
177
|
-
#
|
|
178
|
-
# @since 1.0.0
|
|
179
160
|
def as_document
|
|
180
161
|
BSON::Document.new(as_attributes)
|
|
181
162
|
end
|
|
@@ -198,8 +179,6 @@ module Mongoid
|
|
|
198
179
|
# with nil values in the json document.
|
|
199
180
|
#
|
|
200
181
|
# @return [ Hash ] The document as json.
|
|
201
|
-
#
|
|
202
|
-
# @since 5.1.0
|
|
203
182
|
def as_json(options = nil)
|
|
204
183
|
rv = super
|
|
205
184
|
if options && options[:compact]
|
|
@@ -220,8 +199,6 @@ module Mongoid
|
|
|
220
199
|
# @param [ Class ] klass The class to become.
|
|
221
200
|
#
|
|
222
201
|
# @return [ Document ] An instance of the specified class.
|
|
223
|
-
#
|
|
224
|
-
# @since 2.0.0
|
|
225
202
|
def becomes(klass)
|
|
226
203
|
unless klass.include?(Mongoid::Document)
|
|
227
204
|
raise ArgumentError, "A class which includes Mongoid::Document is expected"
|
|
@@ -256,8 +233,6 @@ module Mongoid
|
|
|
256
233
|
# Returns the logger
|
|
257
234
|
#
|
|
258
235
|
# @return [ Logger ] The configured logger or a default Logger instance.
|
|
259
|
-
#
|
|
260
|
-
# @since 2.2.0
|
|
261
236
|
def logger
|
|
262
237
|
Mongoid.logger
|
|
263
238
|
end
|
|
@@ -268,8 +243,6 @@ module Mongoid
|
|
|
268
243
|
# model.model_key
|
|
269
244
|
#
|
|
270
245
|
# @return [ String ] The model key.
|
|
271
|
-
#
|
|
272
|
-
# @since 2.4.0
|
|
273
246
|
def model_key
|
|
274
247
|
@model_cache_key ||= self.class.model_name.cache_key
|
|
275
248
|
end
|
|
@@ -293,20 +266,6 @@ module Mongoid
|
|
|
293
266
|
|
|
294
267
|
module ClassMethods
|
|
295
268
|
|
|
296
|
-
# Performs class equality checking.
|
|
297
|
-
#
|
|
298
|
-
# @example Compare the classes.
|
|
299
|
-
# document === other
|
|
300
|
-
#
|
|
301
|
-
# @param [ Document, Object ] other The other object to compare with.
|
|
302
|
-
#
|
|
303
|
-
# @return [ true, false ] True if the classes are equal, false if not.
|
|
304
|
-
#
|
|
305
|
-
# @since 2.0.0.rc.4
|
|
306
|
-
def ===(other)
|
|
307
|
-
other.class == Class ? self <= other : other.is_a?(self)
|
|
308
|
-
end
|
|
309
|
-
|
|
310
269
|
# Instantiate a new object, only when loaded from the database or when
|
|
311
270
|
# the attributes have already been typecast.
|
|
312
271
|
#
|
|
@@ -318,8 +277,6 @@ module Mongoid
|
|
|
318
277
|
# criteria.
|
|
319
278
|
#
|
|
320
279
|
# @return [ Document ] A new document.
|
|
321
|
-
#
|
|
322
|
-
# @since 1.0.0
|
|
323
280
|
def instantiate(attrs = nil, selected_fields = nil)
|
|
324
281
|
attributes = attrs || {}
|
|
325
282
|
doc = allocate
|
|
@@ -338,8 +295,6 @@ module Mongoid
|
|
|
338
295
|
# document._types
|
|
339
296
|
#
|
|
340
297
|
# @return [ Array<Class> ] All subclasses of the current document.
|
|
341
|
-
#
|
|
342
|
-
# @since 1.0.0
|
|
343
298
|
def _types
|
|
344
299
|
@_type ||= (descendants + [ self ]).uniq.map(&:discriminator_value)
|
|
345
300
|
end
|
|
@@ -359,8 +314,6 @@ module Mongoid
|
|
|
359
314
|
# Set the i18n scope to overwrite ActiveModel.
|
|
360
315
|
#
|
|
361
316
|
# @return [ Symbol ] :mongoid
|
|
362
|
-
#
|
|
363
|
-
# @since 2.0.0
|
|
364
317
|
def i18n_scope
|
|
365
318
|
:mongoid
|
|
366
319
|
end
|
|
@@ -371,8 +324,6 @@ module Mongoid
|
|
|
371
324
|
# Person.logger
|
|
372
325
|
#
|
|
373
326
|
# @return [ Logger ] The configured logger or a default Logger instance.
|
|
374
|
-
#
|
|
375
|
-
# @since 2.2.0
|
|
376
327
|
def logger
|
|
377
328
|
Mongoid.logger
|
|
378
329
|
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
|
|
@@ -24,13 +23,13 @@ module Mongoid
|
|
|
24
23
|
# @param [ Array ] unmatched The unmatched ids, if appropriate
|
|
25
24
|
def initialize(klass, params, unmatched = nil)
|
|
26
25
|
if !unmatched && !params.is_a?(Hash)
|
|
27
|
-
unmatched = Array(params)
|
|
26
|
+
unmatched = Array(params) if params
|
|
28
27
|
end
|
|
29
28
|
|
|
30
29
|
@klass, @params = klass, params
|
|
31
30
|
super(
|
|
32
31
|
compose_message(
|
|
33
|
-
message_key(params),
|
|
32
|
+
message_key(params, unmatched),
|
|
34
33
|
{
|
|
35
34
|
klass: klass.name,
|
|
36
35
|
searched: searched(params),
|
|
@@ -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,12 +93,27 @@ module Mongoid
|
|
|
100
93
|
# error.problem
|
|
101
94
|
#
|
|
102
95
|
# @return [ String ] The problem.
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
96
|
+
def message_key(params, unmatched)
|
|
97
|
+
if !params && !unmatched
|
|
98
|
+
"no_documents_found"
|
|
99
|
+
elsif Hash === params
|
|
100
|
+
"document_with_attributes_not_found"
|
|
101
|
+
elsif Hash === unmatched && unmatched.size >= 2
|
|
102
|
+
"document_with_shard_key_not_found"
|
|
103
|
+
else
|
|
104
|
+
"document_not_found"
|
|
105
|
+
end
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
# Get the shard key from the unmatched hash.
|
|
109
|
+
#
|
|
110
|
+
# @return [ String ] the shard key and value.
|
|
111
|
+
def shard_key(unmatched)
|
|
112
|
+
if Hash === unmatched
|
|
113
|
+
h = unmatched.dup
|
|
114
|
+
h.delete("_id")
|
|
115
|
+
h.delete(:_id)
|
|
116
|
+
h.map{|k,v| "#{k}: #{v}" }.join(", ")
|
|
109
117
|
end
|
|
110
118
|
end
|
|
111
119
|
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
|
|
@@ -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
|