mongoid 7.3.5 → 7.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +17 -17
- data/README.md +2 -2
- data/lib/config/locales/en.yml +21 -20
- data/lib/mongoid/association/accessors.rb +0 -27
- data/lib/mongoid/association/bindable.rb +0 -21
- data/lib/mongoid/association/builders.rb +0 -9
- data/lib/mongoid/association/constrainable.rb +0 -3
- data/lib/mongoid/association/depending.rb +0 -7
- data/lib/mongoid/association/eager_loadable.rb +0 -3
- data/lib/mongoid/association/embedded/batchable.rb +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 +6 -5
- data/lib/mongoid/association/many.rb +0 -17
- data/lib/mongoid/association/marshalable.rb +0 -5
- data/lib/mongoid/association/nested/many.rb +0 -11
- data/lib/mongoid/association/nested/nested_buildable.rb +0 -9
- data/lib/mongoid/association/nested/one.rb +1 -16
- data/lib/mongoid/association/nested.rb +0 -3
- data/lib/mongoid/association/one.rb +1 -10
- data/lib/mongoid/association/options.rb +0 -33
- data/lib/mongoid/association/proxy.rb +0 -21
- data/lib/mongoid/association/referenced/auto_save.rb +0 -9
- data/lib/mongoid/association/referenced/belongs_to/binding.rb +0 -7
- data/lib/mongoid/association/referenced/belongs_to/buildable.rb +4 -5
- data/lib/mongoid/association/referenced/belongs_to/eager.rb +0 -1
- data/lib/mongoid/association/referenced/belongs_to/proxy.rb +0 -13
- data/lib/mongoid/association/referenced/belongs_to.rb +9 -34
- data/lib/mongoid/association/referenced/counter_cache.rb +2 -15
- data/lib/mongoid/association/referenced/eager.rb +3 -24
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/binding.rb +0 -5
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/buildable.rb +0 -3
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/eager.rb +0 -1
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/proxy.rb +12 -39
- data/lib/mongoid/association/referenced/has_and_belongs_to_many.rb +11 -38
- data/lib/mongoid/association/referenced/has_many/binding.rb +0 -5
- data/lib/mongoid/association/referenced/has_many/buildable.rb +0 -3
- data/lib/mongoid/association/referenced/has_many/eager.rb +0 -1
- data/lib/mongoid/association/referenced/has_many/enumerable.rb +8 -56
- data/lib/mongoid/association/referenced/has_many/proxy.rb +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 +5 -6
- data/lib/mongoid/config/options.rb +0 -11
- data/lib/mongoid/config/validators/client.rb +0 -17
- data/lib/mongoid/config/validators/option.rb +0 -3
- data/lib/mongoid/config/validators.rb +0 -1
- data/lib/mongoid/config.rb +37 -29
- data/lib/mongoid/contextual/aggregable/memory.rb +14 -11
- data/lib/mongoid/contextual/aggregable/mongo.rb +15 -20
- data/lib/mongoid/contextual/aggregable/none.rb +65 -0
- data/lib/mongoid/contextual/aggregable.rb +17 -0
- data/lib/mongoid/contextual/atomic.rb +0 -25
- data/lib/mongoid/contextual/command.rb +0 -5
- data/lib/mongoid/contextual/geo_near.rb +1 -34
- data/lib/mongoid/contextual/map_reduce.rb +0 -31
- data/lib/mongoid/contextual/memory.rb +4 -59
- data/lib/mongoid/contextual/mongo.rb +132 -78
- data/lib/mongoid/contextual/none.rb +39 -28
- data/lib/mongoid/contextual/queryable.rb +0 -3
- data/lib/mongoid/contextual.rb +0 -5
- data/lib/mongoid/copyable.rb +0 -5
- data/lib/mongoid/criteria/findable.rb +0 -13
- data/lib/mongoid/criteria/includable.rb +0 -9
- data/lib/mongoid/criteria/inspectable.rb +0 -3
- data/lib/mongoid/criteria/marshalable.rb +0 -5
- data/lib/mongoid/criteria/modifiable.rb +0 -19
- data/lib/mongoid/criteria/options.rb +0 -3
- data/lib/mongoid/criteria/permission.rb +0 -1
- data/lib/mongoid/criteria/queryable/aggregable.rb +0 -13
- data/lib/mongoid/criteria/queryable/expandable.rb +0 -1
- data/lib/mongoid/criteria/queryable/extensions/array.rb +1 -26
- data/lib/mongoid/criteria/queryable/extensions/big_decimal.rb +0 -3
- data/lib/mongoid/criteria/queryable/extensions/boolean.rb +0 -3
- data/lib/mongoid/criteria/queryable/extensions/date.rb +0 -7
- data/lib/mongoid/criteria/queryable/extensions/date_time.rb +0 -5
- data/lib/mongoid/criteria/queryable/extensions/hash.rb +0 -25
- data/lib/mongoid/criteria/queryable/extensions/nil_class.rb +0 -13
- data/lib/mongoid/criteria/queryable/extensions/numeric.rb +0 -11
- data/lib/mongoid/criteria/queryable/extensions/object.rb +1 -28
- data/lib/mongoid/criteria/queryable/extensions/range.rb +38 -16
- data/lib/mongoid/criteria/queryable/extensions/regexp.rb +0 -9
- data/lib/mongoid/criteria/queryable/extensions/set.rb +0 -3
- data/lib/mongoid/criteria/queryable/extensions/string.rb +0 -17
- data/lib/mongoid/criteria/queryable/extensions/symbol.rb +0 -9
- data/lib/mongoid/criteria/queryable/extensions/time.rb +0 -7
- data/lib/mongoid/criteria/queryable/extensions/time_with_zone.rb +0 -7
- data/lib/mongoid/criteria/queryable/extensions.rb +0 -1
- data/lib/mongoid/criteria/queryable/key.rb +1 -14
- data/lib/mongoid/criteria/queryable/macroable.rb +0 -3
- data/lib/mongoid/criteria/queryable/mergeable.rb +1 -30
- data/lib/mongoid/criteria/queryable/optional.rb +0 -45
- data/lib/mongoid/criteria/queryable/options.rb +0 -19
- data/lib/mongoid/criteria/queryable/pipeline.rb +0 -13
- data/lib/mongoid/criteria/queryable/selectable.rb +20 -67
- data/lib/mongoid/criteria/queryable/selector.rb +0 -17
- data/lib/mongoid/criteria/queryable/smash.rb +0 -11
- data/lib/mongoid/criteria/queryable/storable.rb +6 -2
- data/lib/mongoid/criteria/queryable.rb +0 -7
- data/lib/mongoid/criteria/scopable.rb +25 -19
- data/lib/mongoid/criteria.rb +0 -57
- data/lib/mongoid/document.rb +0 -51
- data/lib/mongoid/equality.rb +26 -10
- data/lib/mongoid/errors/ambiguous_relationship.rb +2 -5
- data/lib/mongoid/errors/callback.rb +0 -3
- data/lib/mongoid/errors/criteria_argument_required.rb +0 -1
- data/lib/mongoid/errors/delete_restriction.rb +0 -3
- data/lib/mongoid/errors/document_not_destroyed.rb +2 -7
- data/lib/mongoid/errors/document_not_found.rb +0 -9
- data/lib/mongoid/errors/eager_load.rb +0 -3
- data/lib/mongoid/errors/empty_config_file.rb +0 -1
- data/lib/mongoid/errors/in_memory_collation_not_supported.rb +0 -3
- data/lib/mongoid/errors/invalid_collection.rb +0 -1
- data/lib/mongoid/errors/invalid_config_file.rb +0 -1
- data/lib/mongoid/errors/invalid_config_option.rb +0 -3
- data/lib/mongoid/errors/invalid_dependent_strategy.rb +0 -3
- data/lib/mongoid/errors/invalid_discriminator_key_target.rb +0 -1
- data/lib/mongoid/errors/invalid_elem_match_operator.rb +0 -1
- data/lib/mongoid/errors/invalid_estimated_count_criteria.rb +0 -1
- data/lib/mongoid/errors/invalid_expression_operator.rb +0 -1
- data/lib/mongoid/errors/invalid_field.rb +0 -5
- data/lib/mongoid/errors/invalid_field_operator.rb +0 -1
- data/lib/mongoid/errors/invalid_field_option.rb +0 -3
- data/lib/mongoid/errors/invalid_find.rb +0 -3
- data/lib/mongoid/errors/invalid_includes.rb +0 -3
- data/lib/mongoid/errors/invalid_index.rb +0 -3
- data/lib/mongoid/errors/invalid_options.rb +0 -3
- data/lib/mongoid/errors/invalid_path.rb +0 -3
- data/lib/mongoid/errors/invalid_persistence_option.rb +0 -5
- data/lib/mongoid/errors/invalid_query.rb +0 -1
- data/lib/mongoid/errors/invalid_relation.rb +0 -7
- data/lib/mongoid/errors/invalid_relation_option.rb +0 -3
- data/lib/mongoid/errors/invalid_scope.rb +0 -3
- data/lib/mongoid/errors/invalid_session_use.rb +1 -6
- data/lib/mongoid/errors/invalid_set_polymorphic_relation.rb +0 -1
- data/lib/mongoid/errors/invalid_storage_options.rb +0 -3
- data/lib/mongoid/errors/invalid_storage_parent.rb +0 -3
- data/lib/mongoid/errors/invalid_time.rb +0 -3
- data/lib/mongoid/errors/invalid_value.rb +0 -1
- data/lib/mongoid/errors/inverse_not_found.rb +0 -3
- data/lib/mongoid/errors/mixed_client_configuration.rb +0 -3
- data/lib/mongoid/errors/mixed_relations.rb +0 -3
- data/lib/mongoid/errors/mongoid_error.rb +0 -9
- data/lib/mongoid/errors/nested_attributes_metadata_not_found.rb +0 -3
- data/lib/mongoid/errors/no_client_config.rb +0 -3
- data/lib/mongoid/errors/no_client_database.rb +0 -3
- data/lib/mongoid/errors/no_client_hosts.rb +0 -3
- data/lib/mongoid/errors/no_clients_config.rb +0 -3
- data/lib/mongoid/errors/no_default_client.rb +0 -3
- data/lib/mongoid/errors/no_environment.rb +0 -3
- data/lib/mongoid/errors/no_map_reduce_output.rb +0 -3
- data/lib/mongoid/errors/no_metadata.rb +0 -3
- data/lib/mongoid/errors/no_parent.rb +0 -3
- data/lib/mongoid/errors/readonly_attribute.rb +0 -3
- data/lib/mongoid/errors/readonly_document.rb +1 -6
- data/lib/mongoid/errors/scope_overwrite.rb +0 -1
- data/lib/mongoid/errors/too_many_nested_attribute_records.rb +0 -1
- data/lib/mongoid/errors/unknown_attribute.rb +0 -3
- data/lib/mongoid/errors/unknown_model.rb +0 -3
- data/lib/mongoid/errors/unsaved_document.rb +1 -2
- data/lib/mongoid/errors/unsupported_javascript.rb +0 -3
- data/lib/mongoid/errors/validations.rb +0 -1
- data/lib/mongoid/errors.rb +0 -1
- data/lib/mongoid/evolvable.rb +0 -3
- data/lib/mongoid/extensions/array.rb +3 -29
- data/lib/mongoid/extensions/big_decimal.rb +0 -11
- data/lib/mongoid/extensions/boolean.rb +0 -3
- data/lib/mongoid/extensions/date.rb +0 -9
- data/lib/mongoid/extensions/date_time.rb +0 -9
- data/lib/mongoid/extensions/decimal128.rb +0 -5
- data/lib/mongoid/extensions/false_class.rb +1 -6
- data/lib/mongoid/extensions/float.rb +0 -7
- data/lib/mongoid/extensions/hash.rb +0 -27
- data/lib/mongoid/extensions/integer.rb +0 -9
- data/lib/mongoid/extensions/module.rb +0 -3
- data/lib/mongoid/extensions/nil_class.rb +0 -5
- data/lib/mongoid/extensions/object.rb +1 -40
- data/lib/mongoid/extensions/object_id.rb +0 -7
- data/lib/mongoid/extensions/range.rb +0 -11
- data/lib/mongoid/extensions/regexp.rb +0 -3
- data/lib/mongoid/extensions/set.rb +0 -7
- data/lib/mongoid/extensions/string.rb +1 -30
- data/lib/mongoid/extensions/symbol.rb +0 -7
- data/lib/mongoid/extensions/time.rb +0 -11
- data/lib/mongoid/extensions/time_with_zone.rb +13 -9
- data/lib/mongoid/extensions/true_class.rb +1 -6
- data/lib/mongoid/extensions.rb +15 -3
- data/lib/mongoid/factory.rb +1 -2
- data/lib/mongoid/fields/foreign_key.rb +0 -21
- data/lib/mongoid/fields/localized.rb +0 -11
- data/lib/mongoid/fields/standard.rb +0 -33
- data/lib/mongoid/fields/validators/macro.rb +0 -9
- data/lib/mongoid/fields/validators.rb +0 -1
- data/lib/mongoid/fields.rb +64 -57
- data/lib/mongoid/findable.rb +0 -5
- data/lib/mongoid/indexable/specification.rb +0 -15
- data/lib/mongoid/indexable/validators/options.rb +0 -7
- data/lib/mongoid/indexable.rb +1 -18
- data/lib/mongoid/inspectable.rb +1 -10
- data/lib/mongoid/interceptable.rb +0 -25
- data/lib/mongoid/loggable.rb +0 -9
- data/lib/mongoid/matchable.rb +0 -5
- data/lib/mongoid/matcher/eq_impl.rb +37 -2
- data/lib/mongoid/matcher/eq_impl_with_regexp.rb +6 -1
- data/lib/mongoid/persistable/creatable.rb +1 -20
- data/lib/mongoid/persistable/deletable.rb +0 -17
- data/lib/mongoid/persistable/destroyable.rb +0 -7
- data/lib/mongoid/persistable/incrementable.rb +0 -5
- data/lib/mongoid/persistable/logical.rb +0 -5
- data/lib/mongoid/persistable/poppable.rb +0 -5
- data/lib/mongoid/persistable/pullable.rb +0 -7
- data/lib/mongoid/persistable/pushable.rb +0 -7
- data/lib/mongoid/persistable/renamable.rb +0 -5
- data/lib/mongoid/persistable/savable.rb +0 -7
- data/lib/mongoid/persistable/settable.rb +0 -5
- data/lib/mongoid/persistable/unsettable.rb +0 -5
- data/lib/mongoid/persistable/updatable.rb +2 -17
- data/lib/mongoid/persistable/upsertable.rb +1 -8
- data/lib/mongoid/persistable.rb +0 -23
- data/lib/mongoid/persistence_context.rb +0 -27
- data/lib/mongoid/positional.rb +0 -5
- data/lib/mongoid/query_cache.rb +0 -33
- data/lib/mongoid/railtie.rb +0 -15
- data/lib/mongoid/railties/controller_runtime.rb +0 -1
- data/lib/mongoid/reloadable.rb +4 -16
- data/lib/mongoid/scopable.rb +6 -34
- data/lib/mongoid/selectable.rb +0 -9
- data/lib/mongoid/serializable.rb +0 -15
- data/lib/mongoid/shardable.rb +0 -7
- data/lib/mongoid/stateful.rb +0 -9
- data/lib/mongoid/stringified_symbol.rb +2 -3
- data/lib/mongoid/tasks/database.rb +0 -5
- data/lib/mongoid/threaded/lifecycle.rb +0 -21
- data/lib/mongoid/threaded.rb +0 -55
- data/lib/mongoid/timestamps/created/short.rb +0 -1
- data/lib/mongoid/timestamps/created.rb +0 -1
- data/lib/mongoid/timestamps/short.rb +0 -1
- data/lib/mongoid/timestamps/timeless.rb +0 -7
- data/lib/mongoid/timestamps/updated/short.rb +0 -1
- data/lib/mongoid/timestamps/updated.rb +0 -3
- data/lib/mongoid/timestamps.rb +0 -1
- data/lib/mongoid/touchable.rb +0 -7
- data/lib/mongoid/traversable.rb +64 -53
- data/lib/mongoid/validatable/associated.rb +0 -3
- data/lib/mongoid/validatable/format.rb +0 -1
- data/lib/mongoid/validatable/length.rb +0 -1
- data/lib/mongoid/validatable/localizable.rb +0 -3
- data/lib/mongoid/validatable/macros.rb +0 -7
- data/lib/mongoid/validatable/presence.rb +1 -8
- data/lib/mongoid/validatable/queryable.rb +0 -3
- data/lib/mongoid/validatable/uniqueness.rb +15 -30
- data/lib/mongoid/validatable.rb +1 -22
- data/lib/mongoid/version.rb +1 -2
- data/lib/mongoid.rb +0 -15
- data/lib/rails/generators/mongoid/config/config_generator.rb +0 -1
- data/lib/rails/generators/mongoid/config/templates/mongoid.yml +2 -7
- data/lib/rails/generators/mongoid/model/model_generator.rb +0 -1
- data/lib/rails/generators/mongoid_generator.rb +0 -1
- data/lib/rails/mongoid.rb +0 -3
- data/spec/integration/app_spec.rb +0 -1
- data/spec/integration/associations/belongs_to_spec.rb +0 -1
- data/spec/integration/associations/embedded_dirty_spec.rb +29 -0
- data/spec/integration/associations/embedded_spec.rb +0 -1
- data/spec/integration/associations/embeds_many_spec.rb +0 -1
- data/spec/integration/associations/embeds_one_spec.rb +0 -1
- data/spec/integration/associations/foreign_key_spec.rb +0 -1
- data/spec/integration/associations/foreign_key_spec_models.rb +0 -1
- data/spec/integration/associations/has_many_spec.rb +0 -1
- data/spec/integration/associations/has_one_spec.rb +0 -1
- data/spec/integration/associations/nested_attributes_assignment_spec.rb +0 -1
- data/spec/integration/associations/reverse_population_spec.rb +0 -1
- data/spec/integration/associations/reverse_population_spec_models.rb +0 -1
- data/spec/integration/associations/scope_option_spec.rb +101 -0
- data/spec/integration/atomic/modifiers_spec.rb +0 -1
- data/spec/integration/bson_regexp_raw_spec.rb +0 -1
- data/spec/integration/callbacks_models.rb +12 -0
- data/spec/integration/callbacks_spec.rb +18 -6
- data/spec/integration/contextual/empty_spec.rb +0 -1
- data/spec/integration/criteria/alias_query_spec.rb +161 -0
- data/spec/integration/criteria/date_field_spec.rb +0 -1
- data/spec/integration/criteria/default_scope_spec.rb +51 -0
- data/spec/integration/criteria/logical_spec.rb +30 -0
- data/spec/integration/criteria/range_spec.rb +265 -0
- data/spec/integration/criteria/time_with_zone_spec.rb +125 -15
- data/spec/integration/discriminator_key_spec.rb +0 -1
- data/spec/integration/discriminator_value_spec.rb +0 -1
- data/spec/integration/document_spec.rb +0 -1
- data/spec/integration/i18n_fallbacks_spec.rb +0 -1
- data/spec/integration/matcher_examples_spec.rb +0 -1
- data/spec/integration/matcher_operator_spec.rb +27 -3
- data/spec/integration/matcher_spec.rb +95 -1
- data/spec/integration/server_query_spec.rb +0 -1
- data/spec/integration/shardable_spec.rb +0 -1
- data/spec/integration/stringified_symbol_field_spec.rb +14 -1
- data/spec/lite_spec_helper.rb +0 -1
- 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 +59 -33
- data/spec/mongoid/association/referenced/has_many/proxy_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_many/proxy_spec.rb +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 +6 -7
- data/spec/mongoid/attributes/dynamic_spec.rb +0 -1
- data/spec/mongoid/attributes/nested_spec.rb +66 -67
- data/spec/mongoid/attributes/projector_spec.rb +5 -2
- data/spec/mongoid/attributes/readonly_spec.rb +22 -23
- data/spec/mongoid/attributes_spec.rb +32 -33
- data/spec/mongoid/cacheable_spec.rb +1 -2
- data/spec/mongoid/changeable_spec.rb +35 -36
- data/spec/mongoid/clients/factory_spec.rb +0 -1
- data/spec/mongoid/clients/options_spec.rb +4 -5
- data/spec/mongoid/clients/sessions_spec.rb +22 -23
- data/spec/mongoid/clients/transactions_spec.rb +49 -27
- data/spec/mongoid/clients_spec.rb +6 -7
- data/spec/mongoid/composable_spec.rb +0 -1
- data/spec/mongoid/config/environment_spec.rb +0 -1
- data/spec/mongoid/config/options_spec.rb +0 -1
- data/spec/mongoid/config_spec.rb +105 -1
- data/spec/mongoid/contextual/aggregable/memory_spec.rb +51 -12
- data/spec/mongoid/contextual/aggregable/mongo_spec.rb +120 -21
- data/spec/mongoid/contextual/aggregable/none_spec.rb +60 -0
- data/spec/mongoid/contextual/atomic_spec.rb +46 -47
- data/spec/mongoid/contextual/geo_near_spec.rb +17 -18
- data/spec/mongoid/contextual/map_reduce_spec.rb +2 -3
- data/spec/mongoid/contextual/memory_spec.rb +23 -24
- data/spec/mongoid/contextual/mongo_spec.rb +339 -77
- data/spec/mongoid/contextual/none_spec.rb +7 -82
- data/spec/mongoid/copyable_spec.rb +12 -13
- data/spec/mongoid/copyable_spec_models.rb +0 -1
- data/spec/mongoid/criteria/findable_spec.rb +23 -24
- data/spec/mongoid/criteria/inspectable_spec.rb +0 -1
- data/spec/mongoid/criteria/marshalable_spec.rb +0 -1
- data/spec/mongoid/criteria/modifiable_spec.rb +36 -37
- data/spec/mongoid/criteria/options_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/aggregable_spec.rb +1 -2
- data/spec/mongoid/criteria/queryable/expandable_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/array_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/big_decimal_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/bignum_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/boolean_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/date_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/date_time_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/fixnum_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/float_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/hash_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/integer_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/nil_class_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/numeric_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/object_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/range_spec.rb +237 -179
- data/spec/mongoid/criteria/queryable/extensions/regexp_raw_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/regexp_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/set_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/string_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/symbol_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/time_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/time_with_zone_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/key_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/mergeable_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/optional_spec.rb +1 -2
- data/spec/mongoid/criteria/queryable/options_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/pipeline_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/queryable_spec.rb +1 -2
- data/spec/mongoid/criteria/queryable/selectable_logical_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/selectable_shared_examples.rb +0 -1
- data/spec/mongoid/criteria/queryable/selectable_spec.rb +15 -16
- data/spec/mongoid/criteria/queryable/selectable_where_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/selector_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/smash_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/storable_spec.rb +37 -1
- data/spec/mongoid/criteria/scopable_spec.rb +127 -1
- data/spec/mongoid/criteria_projection_spec.rb +3 -4
- data/spec/mongoid/criteria_spec.rb +515 -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 +0 -1
- data/spec/mongoid/errors/eager_load_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_collection_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_config_file_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_config_option_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_field_option_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_field_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_find_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_includes_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_index_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_options_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_path_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_relation_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_scope_spec.rb +1 -2
- data/spec/mongoid/errors/invalid_set_polymorphic_relation_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_storage_options_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_time_spec.rb +0 -1
- data/spec/mongoid/errors/inverse_not_found_spec.rb +0 -1
- data/spec/mongoid/errors/mixed_client_configuration_spec.rb +0 -1
- data/spec/mongoid/errors/mixed_relations_spec.rb +0 -1
- data/spec/mongoid/errors/mongoid_error_spec.rb +0 -1
- data/spec/mongoid/errors/nested_attributes_metadata_not_found_spec.rb +0 -1
- data/spec/mongoid/errors/no_client_config_spec.rb +0 -1
- data/spec/mongoid/errors/no_client_database_spec.rb +0 -1
- data/spec/mongoid/errors/no_client_hosts_spec.rb +0 -1
- data/spec/mongoid/errors/no_clients_config_spec.rb +0 -1
- data/spec/mongoid/errors/no_environment_spec.rb +0 -1
- data/spec/mongoid/errors/no_map_reduce_output_spec.rb +0 -1
- data/spec/mongoid/errors/no_metadata_spec.rb +0 -1
- data/spec/mongoid/errors/no_parent_spec.rb +0 -1
- data/spec/mongoid/errors/readonly_attribute_spec.rb +0 -1
- data/spec/mongoid/errors/readonly_document_spec.rb +0 -1
- data/spec/mongoid/errors/scope_overwrite_spec.rb +0 -1
- data/spec/mongoid/errors/too_many_nested_attribute_records_spec.rb +0 -1
- data/spec/mongoid/errors/unknown_attribute_spec.rb +2 -3
- data/spec/mongoid/errors/unsaved_document_spec.rb +0 -1
- data/spec/mongoid/errors/unsupported_javascript_spec.rb +0 -1
- data/spec/mongoid/errors/validations_spec.rb +0 -1
- data/spec/mongoid/extensions/array_spec.rb +0 -1
- data/spec/mongoid/extensions/big_decimal_spec.rb +0 -1
- data/spec/mongoid/extensions/binary_spec.rb +0 -1
- data/spec/mongoid/extensions/boolean_spec.rb +0 -1
- data/spec/mongoid/extensions/date_class_mongoize_spec.rb +0 -1
- data/spec/mongoid/extensions/date_spec.rb +0 -1
- data/spec/mongoid/extensions/date_time_spec.rb +0 -1
- data/spec/mongoid/extensions/decimal128_spec.rb +0 -1
- data/spec/mongoid/extensions/false_class_spec.rb +0 -1
- data/spec/mongoid/extensions/float_spec.rb +0 -1
- data/spec/mongoid/extensions/hash_spec.rb +0 -1
- data/spec/mongoid/extensions/integer_spec.rb +0 -1
- data/spec/mongoid/extensions/module_spec.rb +0 -1
- data/spec/mongoid/extensions/nil_class_spec.rb +0 -1
- data/spec/mongoid/extensions/object_id_spec.rb +0 -1
- data/spec/mongoid/extensions/object_spec.rb +0 -1
- data/spec/mongoid/extensions/range_spec.rb +0 -1
- data/spec/mongoid/extensions/regexp_spec.rb +0 -1
- data/spec/mongoid/extensions/set_spec.rb +0 -1
- data/spec/mongoid/extensions/string_spec.rb +2 -3
- data/spec/mongoid/extensions/stringified_symbol_spec.rb +0 -1
- data/spec/mongoid/extensions/symbol_spec.rb +0 -1
- data/spec/mongoid/extensions/time_spec.rb +0 -1
- data/spec/mongoid/extensions/time_with_zone_spec.rb +0 -1
- data/spec/mongoid/extensions/true_class_spec.rb +0 -1
- data/spec/mongoid/extensions_spec.rb +14 -3
- data/spec/mongoid/factory_spec.rb +1 -1
- data/spec/mongoid/fields/foreign_key_spec.rb +0 -1
- data/spec/mongoid/fields/localized_spec.rb +0 -1
- data/spec/mongoid/fields/standard_spec.rb +0 -1
- data/spec/mongoid/fields_spec.rb +326 -31
- data/spec/mongoid/findable_spec.rb +21 -22
- data/spec/mongoid/indexable/specification_spec.rb +0 -1
- data/spec/mongoid/indexable_spec.rb +0 -1
- data/spec/mongoid/inspectable_spec.rb +0 -1
- data/spec/mongoid/interceptable_spec.rb +102 -95
- data/spec/mongoid/loggable_spec.rb +0 -1
- data/spec/mongoid/matcher/extract_attribute_spec.rb +5 -2
- data/spec/mongoid/persistable/creatable_spec.rb +2 -3
- data/spec/mongoid/persistable/deletable_spec.rb +18 -19
- data/spec/mongoid/persistable/destroyable_spec.rb +8 -9
- data/spec/mongoid/persistable/incrementable_spec.rb +8 -9
- data/spec/mongoid/persistable/logical_spec.rb +4 -5
- data/spec/mongoid/persistable/poppable_spec.rb +4 -5
- data/spec/mongoid/persistable/pullable_spec.rb +8 -9
- data/spec/mongoid/persistable/pushable_spec.rb +8 -9
- data/spec/mongoid/persistable/renamable_spec.rb +3 -4
- data/spec/mongoid/persistable/savable_spec.rb +15 -11
- data/spec/mongoid/persistable/settable_spec.rb +9 -10
- data/spec/mongoid/persistable/unsettable_spec.rb +4 -5
- data/spec/mongoid/persistable/updatable_spec.rb +41 -24
- data/spec/mongoid/persistable/upsertable_spec.rb +1 -2
- data/spec/mongoid/persistable_spec.rb +1 -2
- data/spec/mongoid/persistence_context_spec.rb +0 -1
- data/spec/mongoid/positional_spec.rb +0 -1
- data/spec/mongoid/query_cache_middleware_spec.rb +1 -2
- data/spec/mongoid/query_cache_spec.rb +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 +2 -1
- data/spec/shared/lib/mrss/docker_runner.rb +1 -1
- data/spec/shared/lib/mrss/lite_constraints.rb +8 -0
- data/spec/shared/share/Dockerfile.erb +25 -9
- data/spec/shared/shlib/distro.sh +2 -1
- data/spec/shared/shlib/server.sh +16 -4
- 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/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 +25 -12
- metadata.gz.sig +0 -0
- data/lib/support/ruby_version.rb +0 -29
@@ -1,5 +1,4 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
# encoding: utf-8
|
3
2
|
|
4
3
|
module Mongoid
|
5
4
|
class Criteria
|
@@ -12,18 +11,12 @@ module Mongoid
|
|
12
11
|
extend Macroable
|
13
12
|
|
14
13
|
# Constant for a LineString $geometry.
|
15
|
-
#
|
16
|
-
# @since 2.0.0
|
17
14
|
LINE_STRING = "LineString"
|
18
15
|
|
19
16
|
# Constant for a Point $geometry.
|
20
|
-
#
|
21
|
-
# @since 2.0.0
|
22
17
|
POINT = "Point"
|
23
18
|
|
24
19
|
# Constant for a Polygon $geometry.
|
25
|
-
#
|
26
|
-
# @since 2.0.0
|
27
20
|
POLYGON = "Polygon"
|
28
21
|
|
29
22
|
# @attribute [rw] negating If the next expression is negated.
|
@@ -41,8 +34,6 @@ module Mongoid
|
|
41
34
|
# @param [ Hash ] criterion The key value pairs for $all matching.
|
42
35
|
#
|
43
36
|
# @return [ Selectable ] The cloned selectable.
|
44
|
-
#
|
45
|
-
# @since 1.0.0
|
46
37
|
def all(*criteria)
|
47
38
|
if criteria.empty?
|
48
39
|
return clone.tap do |query|
|
@@ -82,8 +73,6 @@ module Mongoid
|
|
82
73
|
# matches or Criteria objects that all must match to return results.
|
83
74
|
#
|
84
75
|
# @return [ Selectable ] The new selectable.
|
85
|
-
#
|
86
|
-
# @since 1.0.0
|
87
76
|
def and(*criteria)
|
88
77
|
_mongoid_flatten_arrays(criteria).inject(self.clone) do |c, new_s|
|
89
78
|
if new_s.is_a?(Selectable)
|
@@ -130,8 +119,6 @@ module Mongoid
|
|
130
119
|
# @param [ Hash ] criterion Multiple key/range pairs.
|
131
120
|
#
|
132
121
|
# @return [ Selectable ] The cloned selectable.
|
133
|
-
#
|
134
|
-
# @since 1.0.0
|
135
122
|
def between(criterion)
|
136
123
|
if criterion.nil?
|
137
124
|
raise Errors::CriteriaArgumentRequired, :between
|
@@ -162,8 +149,6 @@ module Mongoid
|
|
162
149
|
# @param [ Hash ] criterion The field/match pairs.
|
163
150
|
#
|
164
151
|
# @return [ Selectable ] The cloned selectable.
|
165
|
-
#
|
166
|
-
# @since 1.0.0
|
167
152
|
def elem_match(criterion)
|
168
153
|
if criterion.nil?
|
169
154
|
raise Errors::CriteriaArgumentRequired, :elem_match
|
@@ -187,8 +172,6 @@ module Mongoid
|
|
187
172
|
# @param [ Hash ] criterion The field/boolean existence checks.
|
188
173
|
#
|
189
174
|
# @return [ Selectable ] The cloned selectable.
|
190
|
-
#
|
191
|
-
# @since 1.0.0
|
192
175
|
def exists(criterion)
|
193
176
|
if criterion.nil?
|
194
177
|
raise Errors::CriteriaArgumentRequired, :exists
|
@@ -271,6 +254,26 @@ module Mongoid
|
|
271
254
|
end
|
272
255
|
key :within_box, :override, "$geoWithin", "$box"
|
273
256
|
|
257
|
+
# Add the $eq criterion to the selector.
|
258
|
+
#
|
259
|
+
# @example Add the $eq criterion.
|
260
|
+
# selectable.eq(age: 60)
|
261
|
+
#
|
262
|
+
# @example Execute an $eq in a where query.
|
263
|
+
# selectable.where(:field.eq => 10)
|
264
|
+
#
|
265
|
+
# @param [ Hash ] criterion The field/value pairs to check.
|
266
|
+
#
|
267
|
+
# @return [ Selectable ] The cloned selectable.
|
268
|
+
def eq(criterion)
|
269
|
+
if criterion.nil?
|
270
|
+
raise Errors::CriteriaArgumentRequired, :eq
|
271
|
+
end
|
272
|
+
|
273
|
+
__override__(criterion, "$eq")
|
274
|
+
end
|
275
|
+
key :eq, :override, "$eq"
|
276
|
+
|
274
277
|
# Add the $gt criterion to the selector.
|
275
278
|
#
|
276
279
|
# @example Add the $gt criterion.
|
@@ -282,8 +285,6 @@ module Mongoid
|
|
282
285
|
# @param [ Hash ] criterion The field/value pairs to check.
|
283
286
|
#
|
284
287
|
# @return [ Selectable ] The cloned selectable.
|
285
|
-
#
|
286
|
-
# @since 1.0.0
|
287
288
|
def gt(criterion)
|
288
289
|
if criterion.nil?
|
289
290
|
raise Errors::CriteriaArgumentRequired, :gt
|
@@ -304,8 +305,6 @@ module Mongoid
|
|
304
305
|
# @param [ Hash ] criterion The field/value pairs to check.
|
305
306
|
#
|
306
307
|
# @return [ Selectable ] The cloned selectable.
|
307
|
-
#
|
308
|
-
# @since 1.0.0
|
309
308
|
def gte(criterion)
|
310
309
|
if criterion.nil?
|
311
310
|
raise Errors::CriteriaArgumentRequired, :gte
|
@@ -329,8 +328,6 @@ module Mongoid
|
|
329
328
|
# @param [ Hash ] condition The field/value criterion pairs.
|
330
329
|
#
|
331
330
|
# @return [ Selectable ] The cloned selectable.
|
332
|
-
#
|
333
|
-
# @since 1.0.0
|
334
331
|
def in(condition)
|
335
332
|
if condition.nil?
|
336
333
|
raise Errors::CriteriaArgumentRequired, :in
|
@@ -364,8 +361,6 @@ module Mongoid
|
|
364
361
|
# @param [ Hash ] criterion The field/value pairs to check.
|
365
362
|
#
|
366
363
|
# @return [ Selectable ] The cloned selectable.
|
367
|
-
#
|
368
|
-
# @since 1.0.0
|
369
364
|
def lt(criterion)
|
370
365
|
if criterion.nil?
|
371
366
|
raise Errors::CriteriaArgumentRequired, :lt
|
@@ -386,8 +381,6 @@ module Mongoid
|
|
386
381
|
# @param [ Hash ] criterion The field/value pairs to check.
|
387
382
|
#
|
388
383
|
# @return [ Selectable ] The cloned selectable.
|
389
|
-
#
|
390
|
-
# @since 1.0.0
|
391
384
|
def lte(criterion)
|
392
385
|
if criterion.nil?
|
393
386
|
raise Errors::CriteriaArgumentRequired, :lte
|
@@ -405,8 +398,6 @@ module Mongoid
|
|
405
398
|
# @param [ Hash ] criterion The field/distance pairs.
|
406
399
|
#
|
407
400
|
# @return [ Selectable ] The cloned selectable.
|
408
|
-
#
|
409
|
-
# @since 1.0.0
|
410
401
|
def max_distance(criterion)
|
411
402
|
if criterion.nil?
|
412
403
|
raise Errors::CriteriaArgumentRequired, :max_distance
|
@@ -427,8 +418,6 @@ module Mongoid
|
|
427
418
|
# @param [ Hash ] criterion The field/mod selections.
|
428
419
|
#
|
429
420
|
# @return [ Selectable ] The cloned selectable.
|
430
|
-
#
|
431
|
-
# @since 1.0.0
|
432
421
|
def mod(criterion)
|
433
422
|
if criterion.nil?
|
434
423
|
raise Errors::CriteriaArgumentRequired, :mod
|
@@ -449,8 +438,6 @@ module Mongoid
|
|
449
438
|
# @param [ Hash ] criterion The field/ne selections.
|
450
439
|
#
|
451
440
|
# @return [ Selectable ] The cloned selectable.
|
452
|
-
#
|
453
|
-
# @since 1.0.0
|
454
441
|
def ne(criterion)
|
455
442
|
if criterion.nil?
|
456
443
|
raise Errors::CriteriaArgumentRequired, :ne
|
@@ -472,8 +459,6 @@ module Mongoid
|
|
472
459
|
# @param [ Hash ] criterion The field/location pair.
|
473
460
|
#
|
474
461
|
# @return [ Selectable ] The cloned selectable.
|
475
|
-
#
|
476
|
-
# @since 1.0.0
|
477
462
|
def near(criterion)
|
478
463
|
if criterion.nil?
|
479
464
|
raise Errors::CriteriaArgumentRequired, :near
|
@@ -494,8 +479,6 @@ module Mongoid
|
|
494
479
|
# @param [ Hash ] criterion The field/location pair.
|
495
480
|
#
|
496
481
|
# @return [ Selectable ] The cloned selectable.
|
497
|
-
#
|
498
|
-
# @since 1.0.0
|
499
482
|
def near_sphere(criterion)
|
500
483
|
if criterion.nil?
|
501
484
|
raise Errors::CriteriaArgumentRequired, :near_sphere
|
@@ -519,8 +502,6 @@ module Mongoid
|
|
519
502
|
# @param [ Hash ] condition The field/value criterion pairs.
|
520
503
|
#
|
521
504
|
# @return [ Selectable ] The cloned selectable.
|
522
|
-
#
|
523
|
-
# @since 1.0.0
|
524
505
|
def nin(condition)
|
525
506
|
if condition.nil?
|
526
507
|
raise Errors::CriteriaArgumentRequired, :nin
|
@@ -552,8 +533,6 @@ module Mongoid
|
|
552
533
|
# matches or Criteria objects.
|
553
534
|
#
|
554
535
|
# @return [ Selectable ] The new selectable.
|
555
|
-
#
|
556
|
-
# @since 1.0.0
|
557
536
|
def nor(*criteria)
|
558
537
|
_mongoid_add_top_level_operation('$nor', criteria)
|
559
538
|
end
|
@@ -564,8 +543,6 @@ module Mongoid
|
|
564
543
|
# selectable.negating?
|
565
544
|
#
|
566
545
|
# @return [ true, false ] If the selectable is negating.
|
567
|
-
#
|
568
|
-
# @since 1.0.0
|
569
546
|
def negating?
|
570
547
|
!!negating
|
571
548
|
end
|
@@ -585,8 +562,6 @@ module Mongoid
|
|
585
562
|
# matches or Criteria objects to negate.
|
586
563
|
#
|
587
564
|
# @return [ Selectable ] The new selectable.
|
588
|
-
#
|
589
|
-
# @since 1.0.0
|
590
565
|
def not(*criteria)
|
591
566
|
if criteria.empty?
|
592
567
|
dup.tap { |query| query.negating = true }
|
@@ -648,8 +623,6 @@ module Mongoid
|
|
648
623
|
# thereof. Passing arrays is deprecated.
|
649
624
|
#
|
650
625
|
# @return [ Selectable ] The new selectable.
|
651
|
-
#
|
652
|
-
# @since 1.0.0
|
653
626
|
def or(*criteria)
|
654
627
|
_mongoid_add_top_level_operation('$or', criteria)
|
655
628
|
end
|
@@ -680,8 +653,6 @@ module Mongoid
|
|
680
653
|
# thereof. Passing arrays is deprecated.
|
681
654
|
#
|
682
655
|
# @return [ Selectable ] The new selectable.
|
683
|
-
#
|
684
|
-
# @since 1.0.0
|
685
656
|
def any_of(*criteria)
|
686
657
|
criteria = _mongoid_flatten_arrays(criteria)
|
687
658
|
case criteria.length
|
@@ -735,8 +706,6 @@ module Mongoid
|
|
735
706
|
# @param [ Hash ] criterion The field/size pairs criterion.
|
736
707
|
#
|
737
708
|
# @return [ Selectable ] The cloned selectable.
|
738
|
-
#
|
739
|
-
# @since 1.0.0
|
740
709
|
def with_size(criterion)
|
741
710
|
if criterion.nil?
|
742
711
|
raise Errors::CriteriaArgumentRequired, :with_size
|
@@ -763,8 +732,6 @@ module Mongoid
|
|
763
732
|
# @param [ Hash ] criterion The field/type pairs.
|
764
733
|
#
|
765
734
|
# @return [ Selectable ] The cloned selectable.
|
766
|
-
#
|
767
|
-
# @since 1.0.0
|
768
735
|
def with_type(criterion)
|
769
736
|
if criterion.nil?
|
770
737
|
raise Errors::CriteriaArgumentRequired, :with_type
|
@@ -797,8 +764,6 @@ module Mongoid
|
|
797
764
|
# for options.
|
798
765
|
#
|
799
766
|
# @return [ Selectable ] The cloned selectable.
|
800
|
-
#
|
801
|
-
# @since 2.2.0
|
802
767
|
def text_search(terms, opts = nil)
|
803
768
|
if terms.nil?
|
804
769
|
raise Errors::CriteriaArgumentRequired, :terms
|
@@ -834,8 +799,6 @@ module Mongoid
|
|
834
799
|
# @param [ String, Hash ] criterion The javascript or standard selection.
|
835
800
|
#
|
836
801
|
# @return [ Selectable ] The cloned selectable.
|
837
|
-
#
|
838
|
-
# @since 1.0.0
|
839
802
|
def where(*criteria)
|
840
803
|
criteria.inject(clone) do |query, criterion|
|
841
804
|
if criterion.nil?
|
@@ -875,8 +838,6 @@ module Mongoid
|
|
875
838
|
# @param [ Hash ] criterion The field/value pairs.
|
876
839
|
#
|
877
840
|
# @return [ Selectable ] The cloned selectable.
|
878
|
-
#
|
879
|
-
# @since 1.0.0
|
880
841
|
# @api private
|
881
842
|
def expr_query(criterion)
|
882
843
|
if criterion.nil?
|
@@ -911,8 +872,6 @@ module Mongoid
|
|
911
872
|
# end
|
912
873
|
#
|
913
874
|
# @param [ Hash ] criterion The criterion.
|
914
|
-
#
|
915
|
-
# @since 1.0.0
|
916
875
|
def typed_override(criterion, operator)
|
917
876
|
if criterion
|
918
877
|
criterion.update_values do |value|
|
@@ -932,8 +891,6 @@ module Mongoid
|
|
932
891
|
# @param [ String ] criterion The javascript as a string.
|
933
892
|
#
|
934
893
|
# @return [ Selectable ] The cloned selectable
|
935
|
-
#
|
936
|
-
# @since 1.0.0
|
937
894
|
def js_query(criterion)
|
938
895
|
clone.tap do |query|
|
939
896
|
if negating?
|
@@ -955,8 +912,6 @@ module Mongoid
|
|
955
912
|
# @param [ Hash ] criterion The selection to store.
|
956
913
|
#
|
957
914
|
# @return [ Selectable ] The cloned selectable.
|
958
|
-
#
|
959
|
-
# @since 1.0.0
|
960
915
|
# @api private
|
961
916
|
def selection(criterion = nil)
|
962
917
|
clone.tap do |query|
|
@@ -977,8 +932,6 @@ module Mongoid
|
|
977
932
|
# Selectable.forwardables
|
978
933
|
#
|
979
934
|
# @return [ Array<Symbol> ] The names of the forwardable methods.
|
980
|
-
#
|
981
|
-
# @since 1.0.0
|
982
935
|
def forwardables
|
983
936
|
public_instance_methods(false) -
|
984
937
|
[ :negating, :negating=, :negating?, :selector, :selector= ]
|
@@ -1,5 +1,4 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
# encoding: utf-8
|
3
2
|
|
4
3
|
module Mongoid
|
5
4
|
class Criteria
|
@@ -17,8 +16,6 @@ module Mongoid
|
|
17
16
|
# @param [ Hash, Selector ] other The object to merge in.
|
18
17
|
#
|
19
18
|
# @return [ Selector ] The selector.
|
20
|
-
#
|
21
|
-
# @since 1.0.0
|
22
19
|
def merge!(other)
|
23
20
|
other.each_pair do |key, value|
|
24
21
|
if value.is_a?(Hash) && self[key.to_s].is_a?(Hash)
|
@@ -50,8 +47,6 @@ module Mongoid
|
|
50
47
|
# @param [ Object ] value The value to add.
|
51
48
|
#
|
52
49
|
# @return [ Object ] The stored object.
|
53
|
-
#
|
54
|
-
# @since 1.0.0
|
55
50
|
def store(key, value)
|
56
51
|
name, serializer = storage_pair(key)
|
57
52
|
if multi_selection?(name)
|
@@ -71,8 +66,6 @@ module Mongoid
|
|
71
66
|
# selector.to_pipeline
|
72
67
|
#
|
73
68
|
# @return [ Array<Hash> ] The pipeline entry for the selector.
|
74
|
-
#
|
75
|
-
# @since 2.0.0
|
76
69
|
def to_pipeline
|
77
70
|
pipeline = []
|
78
71
|
pipeline.push({ "$match" => self }) unless empty?
|
@@ -91,8 +84,6 @@ module Mongoid
|
|
91
84
|
#
|
92
85
|
# @return [ Array<Hash> ] The serialized values.
|
93
86
|
#
|
94
|
-
# @since 1.0.0
|
95
|
-
#
|
96
87
|
# @api private
|
97
88
|
def evolve_multi(specs)
|
98
89
|
unless specs.is_a?(Array)
|
@@ -142,8 +133,6 @@ module Mongoid
|
|
142
133
|
# @param [ Object ] value The value to serialize.
|
143
134
|
#
|
144
135
|
# @return [ Object ] The serialized object.
|
145
|
-
#
|
146
|
-
# @since 1.0.0
|
147
136
|
def evolve(serializer, value)
|
148
137
|
case value
|
149
138
|
when Hash
|
@@ -166,8 +155,6 @@ module Mongoid
|
|
166
155
|
# @param [ Array<Object> ] value The array to serialize.
|
167
156
|
#
|
168
157
|
# @return [ Object ] The serialized array.
|
169
|
-
#
|
170
|
-
# @since 1.0.0
|
171
158
|
def evolve_array(serializer, value)
|
172
159
|
value.map do |_value|
|
173
160
|
evolve(serializer, _value)
|
@@ -185,8 +172,6 @@ module Mongoid
|
|
185
172
|
# @param [ Hash ] value The hash to serialize.
|
186
173
|
#
|
187
174
|
# @return [ Object ] The serialized hash.
|
188
|
-
#
|
189
|
-
# @since 1.0.0
|
190
175
|
def evolve_hash(serializer, value)
|
191
176
|
value.each_pair do |operator, _value|
|
192
177
|
if operator =~ /exists|type|size/
|
@@ -208,8 +193,6 @@ module Mongoid
|
|
208
193
|
# @param [ String ] key The key to check.
|
209
194
|
#
|
210
195
|
# @return [ true, false ] If the key is for a multi-select.
|
211
|
-
#
|
212
|
-
# @since 1.0.0
|
213
196
|
def multi_selection?(key)
|
214
197
|
%w($and $or $nor).include?(key)
|
215
198
|
end
|
@@ -1,5 +1,4 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
# encoding: utf-8
|
3
2
|
|
4
3
|
module Mongoid
|
5
4
|
class Criteria
|
@@ -18,8 +17,6 @@ module Mongoid
|
|
18
17
|
# smash.__deep_copy__
|
19
18
|
#
|
20
19
|
# @return [ Smash ] The copied hash.
|
21
|
-
#
|
22
|
-
# @since 1.0.0
|
23
20
|
def __deep_copy__
|
24
21
|
self.class.new(aliases, serializers) do |copy|
|
25
22
|
each_pair do |key, value|
|
@@ -39,8 +36,6 @@ module Mongoid
|
|
39
36
|
# responsible for serializing values. The keys of the hash must be
|
40
37
|
# strings that match the field name, and the values must respond to
|
41
38
|
# #localized? and #evolve(object).
|
42
|
-
#
|
43
|
-
# @since 1.0.0
|
44
39
|
def initialize(aliases = {}, serializers = {})
|
45
40
|
@aliases, @serializers = aliases, serializers
|
46
41
|
yield(self) if block_given?
|
@@ -54,8 +49,6 @@ module Mongoid
|
|
54
49
|
# @param [ String ] key The key.
|
55
50
|
#
|
56
51
|
# @return [ Object ] The found object.
|
57
|
-
#
|
58
|
-
# @since 2.0.0
|
59
52
|
def [](key)
|
60
53
|
fetch(aliases[key]) { super }
|
61
54
|
end
|
@@ -75,8 +68,6 @@ module Mongoid
|
|
75
68
|
# @param [ Object ] serializer The optional field serializer.
|
76
69
|
#
|
77
70
|
# @return [ String ] The normalized key.
|
78
|
-
#
|
79
|
-
# @since 1.0.0
|
80
71
|
def localized_key(name, serializer)
|
81
72
|
serializer && serializer.localized? ? "#{name}.#{::I18n.locale}" : name
|
82
73
|
end
|
@@ -93,8 +84,6 @@ module Mongoid
|
|
93
84
|
#
|
94
85
|
# @return [ Array<String, Object> ] The name of the db field and
|
95
86
|
# serializer.
|
96
|
-
#
|
97
|
-
# @since 1.0.0
|
98
87
|
def storage_pair(key)
|
99
88
|
field = key.to_s
|
100
89
|
name = aliases[field] || field
|
@@ -1,5 +1,4 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
# encoding: utf-8
|
3
2
|
|
4
3
|
module Mongoid
|
5
4
|
class Criteria
|
@@ -124,7 +123,12 @@ module Mongoid
|
|
124
123
|
elsif operator == '$and' || selector.empty?
|
125
124
|
# $and can always be added to top level and it will be combined
|
126
125
|
# with whatever other conditions exist.
|
127
|
-
selector
|
126
|
+
if !Mongoid.broken_and && current_value = selector[operator]
|
127
|
+
new_value = current_value + op_expr
|
128
|
+
selector.store(operator, new_value)
|
129
|
+
else
|
130
|
+
selector.store(operator, op_expr)
|
131
|
+
end
|
128
132
|
else
|
129
133
|
# Other operators need to be added separately
|
130
134
|
if selector[operator]
|
@@ -1,5 +1,4 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
# encoding: utf-8
|
3
2
|
|
4
3
|
require "mongoid/criteria/queryable/expandable"
|
5
4
|
require "mongoid/criteria/queryable/extensions"
|
@@ -47,8 +46,6 @@ module Mongoid
|
|
47
46
|
# @param [ Object ] other The object to compare against.
|
48
47
|
#
|
49
48
|
# @return [ true, false ] If the objects are equal.
|
50
|
-
#
|
51
|
-
# @since 1.0.0
|
52
49
|
def ==(other)
|
53
50
|
return false unless other.is_a?(Queryable)
|
54
51
|
selector == other.selector && options == other.options
|
@@ -63,8 +60,6 @@ module Mongoid
|
|
63
60
|
# @param [ Hash ] aliases The optional field aliases.
|
64
61
|
# @param [ Hash ] serializers The optional field serializers.
|
65
62
|
# @param [ Symbol ] driver The driver being used.
|
66
|
-
#
|
67
|
-
# @since 1.0.0
|
68
63
|
def initialize(aliases = {}, serializers = {}, driver = :mongo)
|
69
64
|
@aliases, @driver, @serializers = aliases, driver.to_sym, serializers
|
70
65
|
@options = Options.new(aliases, serializers)
|
@@ -80,8 +75,6 @@ module Mongoid
|
|
80
75
|
# queryable.initialize_copy(criteria)
|
81
76
|
#
|
82
77
|
# @param [ Queryable ] other The original copy.
|
83
|
-
#
|
84
|
-
# @since 1.0.0
|
85
78
|
def initialize_copy(other)
|
86
79
|
@options = other.options.__deep_copy__
|
87
80
|
@selector = other.selector.__deep_copy__
|
@@ -1,5 +1,4 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
# encoding: utf-8
|
3
2
|
|
4
3
|
module Mongoid
|
5
4
|
class Criteria
|
@@ -11,8 +10,6 @@ module Mongoid
|
|
11
10
|
# criteria.apply_default_scope
|
12
11
|
#
|
13
12
|
# @return [ Criteria ] The criteria.
|
14
|
-
#
|
15
|
-
# @since 3.0.0
|
16
13
|
def apply_default_scope
|
17
14
|
klass.without_default_scope do
|
18
15
|
merge!(klass.default_scoping.call)
|
@@ -20,6 +17,31 @@ module Mongoid
|
|
20
17
|
self.scoping_options = true, false
|
21
18
|
end
|
22
19
|
|
20
|
+
# Applies a scope to the current criteria.
|
21
|
+
#
|
22
|
+
# This method does not modify the receiver but it may return a new
|
23
|
+
# object or the receiver depending on the argument: if the +scope+
|
24
|
+
# argument is nil, the receiver is returned without modification,
|
25
|
+
# otherwise a new criteria object is returned.
|
26
|
+
#
|
27
|
+
# @param [ Proc | Symbol | Criteria | nil ] scope The scope to apply.
|
28
|
+
#
|
29
|
+
# @return [ Criteria ] The criteria with the scope applied.
|
30
|
+
#
|
31
|
+
# @api private
|
32
|
+
def apply_scope(scope)
|
33
|
+
case scope
|
34
|
+
when Proc
|
35
|
+
instance_exec(&scope)
|
36
|
+
when Symbol
|
37
|
+
send(scope)
|
38
|
+
when Criteria
|
39
|
+
merge(scope)
|
40
|
+
else
|
41
|
+
self
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
23
45
|
# Given another criteria, remove the other criteria's scoping from this
|
24
46
|
# criteria.
|
25
47
|
#
|
@@ -29,8 +51,6 @@ module Mongoid
|
|
29
51
|
# @param [ Criteria ] other The other criteria.
|
30
52
|
#
|
31
53
|
# @return [ Criteria ] The criteria with scoping removed.
|
32
|
-
#
|
33
|
-
# @since 3.0.0
|
34
54
|
def remove_scoping(other)
|
35
55
|
if other
|
36
56
|
reject_matching(other, :selector, :options)
|
@@ -49,8 +69,6 @@ module Mongoid
|
|
49
69
|
# @param [ Hash ] options Additional query options.
|
50
70
|
#
|
51
71
|
# @return [ Criteria ] The scoped criteria.
|
52
|
-
#
|
53
|
-
# @since 3.0.0
|
54
72
|
def scoped(options = nil)
|
55
73
|
crit = clone
|
56
74
|
crit.options.merge!(options || {})
|
@@ -66,8 +84,6 @@ module Mongoid
|
|
66
84
|
# criteria.scoped?
|
67
85
|
#
|
68
86
|
# @return [ true, false ] If the default scope is applied.
|
69
|
-
#
|
70
|
-
# @since 3.0.0
|
71
87
|
def scoped?
|
72
88
|
!!(defined?(@scoped) ? @scoped : nil)
|
73
89
|
end
|
@@ -78,8 +94,6 @@ module Mongoid
|
|
78
94
|
# criteria.unscoped
|
79
95
|
#
|
80
96
|
# @return [ Criteria ] The unscoped criteria.
|
81
|
-
#
|
82
|
-
# @since 3.0.0
|
83
97
|
def unscoped
|
84
98
|
crit = clone
|
85
99
|
unless unscoped?
|
@@ -95,8 +109,6 @@ module Mongoid
|
|
95
109
|
# criteria.unscoped?
|
96
110
|
#
|
97
111
|
# @return [ true, false ] If the criteria is force unscoped.
|
98
|
-
#
|
99
|
-
# @since 3.0.0
|
100
112
|
def unscoped?
|
101
113
|
!!(defined?(@unscoped) ? @unscoped : nil)
|
102
114
|
end
|
@@ -107,8 +119,6 @@ module Mongoid
|
|
107
119
|
# criteria.scoping_options
|
108
120
|
#
|
109
121
|
# @return [ Array ] Scoped, unscoped.
|
110
|
-
#
|
111
|
-
# @since 3.0.0
|
112
122
|
def scoping_options
|
113
123
|
[ (defined?(@scoped) ? @scoped : nil), (defined?(@unscoped) ? @unscoped : nil) ]
|
114
124
|
end
|
@@ -121,8 +131,6 @@ module Mongoid
|
|
121
131
|
# @param [ Array ] options Scoped, unscoped.
|
122
132
|
#
|
123
133
|
# @return [ Array ] The new scoping options.
|
124
|
-
#
|
125
|
-
# @since 3.0.0
|
126
134
|
def scoping_options=(options)
|
127
135
|
@scoped, @unscoped = options
|
128
136
|
end
|
@@ -136,8 +144,6 @@ module Mongoid
|
|
136
144
|
# criteria.with_default_scope
|
137
145
|
#
|
138
146
|
# @return [ Criteria ] The criteria.
|
139
|
-
#
|
140
|
-
# @since 3.0.0
|
141
147
|
def with_default_scope
|
142
148
|
crit = clone
|
143
149
|
if klass.default_scopable? && !unscoped? && !scoped?
|