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
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
class Criteria
|
|
@@ -15,8 +14,6 @@ module Mongoid
|
|
|
15
14
|
# time.__evolve_date__
|
|
16
15
|
#
|
|
17
16
|
# @return [ Time ] The date at midnight UTC.
|
|
18
|
-
#
|
|
19
|
-
# @since 1.0.0
|
|
20
17
|
def __evolve_date__
|
|
21
18
|
::Time.utc(year, month, day, 0, 0, 0, 0)
|
|
22
19
|
end
|
|
@@ -27,8 +24,6 @@ module Mongoid
|
|
|
27
24
|
# time.__evolve_time__
|
|
28
25
|
#
|
|
29
26
|
# @return [ Time ] The time in UTC.
|
|
30
|
-
#
|
|
31
|
-
# @since 1.0.0
|
|
32
27
|
def __evolve_time__
|
|
33
28
|
getutc
|
|
34
29
|
end
|
|
@@ -46,8 +41,6 @@ module Mongoid
|
|
|
46
41
|
# @param [ Object ] object The object to evolve.
|
|
47
42
|
#
|
|
48
43
|
# @return [ Time ] The evolved date time.
|
|
49
|
-
#
|
|
50
|
-
# @since 1.0.0
|
|
51
44
|
def evolve(object)
|
|
52
45
|
object.__evolve_time__
|
|
53
46
|
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
|
|
@@ -15,8 +14,6 @@ module Mongoid
|
|
|
15
14
|
# time.__evolve_date__
|
|
16
15
|
#
|
|
17
16
|
# @return [ Time ] The date at midnight UTC.
|
|
18
|
-
#
|
|
19
|
-
# @since 1.0.0
|
|
20
17
|
def __evolve_date__
|
|
21
18
|
::Time.utc(year, month, day, 0, 0, 0, 0)
|
|
22
19
|
end
|
|
@@ -27,8 +24,6 @@ module Mongoid
|
|
|
27
24
|
# time.__evolve_time__
|
|
28
25
|
#
|
|
29
26
|
# @return [ Time ] The time in UTC.
|
|
30
|
-
#
|
|
31
|
-
# @since 1.0.0
|
|
32
27
|
def __evolve_time__
|
|
33
28
|
utc
|
|
34
29
|
end
|
|
@@ -46,8 +41,6 @@ module Mongoid
|
|
|
46
41
|
# @param [ Object ] object The object to evolve.
|
|
47
42
|
#
|
|
48
43
|
# @return [ Time ] The evolved date time.
|
|
49
|
-
#
|
|
50
|
-
# @since 1.0.0
|
|
51
44
|
def evolve(object)
|
|
52
45
|
object.__evolve_time__
|
|
53
46
|
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
|
|
@@ -22,7 +21,7 @@ module Mongoid
|
|
|
22
21
|
#
|
|
23
22
|
# Foo.where(:price.gt => 1)
|
|
24
23
|
#
|
|
25
|
-
# ... causes a Key instance to be created
|
|
24
|
+
# ... causes a Key instance to be created as follows:
|
|
26
25
|
#
|
|
27
26
|
# Key.new(:price, :__override__, '$gt')
|
|
28
27
|
#
|
|
@@ -84,8 +83,6 @@ module Mongoid
|
|
|
84
83
|
# @param [ Object ] other The object to compare to.
|
|
85
84
|
#
|
|
86
85
|
# @return [ true, false ] If the objects are equal.
|
|
87
|
-
#
|
|
88
|
-
# @since 1.0.0
|
|
89
86
|
def ==(other)
|
|
90
87
|
return false unless other.is_a?(Key)
|
|
91
88
|
name == other.name && operator == other.operator && expanded == other.expanded
|
|
@@ -95,8 +92,6 @@ module Mongoid
|
|
|
95
92
|
# Calculate the hash code for a key.
|
|
96
93
|
#
|
|
97
94
|
# @return [ Fixnum ] The hash code for the key.
|
|
98
|
-
#
|
|
99
|
-
# @since 1.1.0
|
|
100
95
|
def hash
|
|
101
96
|
[name, operator, expanded].hash
|
|
102
97
|
end
|
|
@@ -114,8 +109,6 @@ module Mongoid
|
|
|
114
109
|
# @param [ String | Integer ] operator The MongoDB operator,
|
|
115
110
|
# or sort direction (1 or -1).
|
|
116
111
|
# @param [ String ] expanded The Mongo expanded operator.
|
|
117
|
-
#
|
|
118
|
-
# @since 1.0.0
|
|
119
112
|
def initialize(name, strategy, operator, expanded = nil, &block)
|
|
120
113
|
unless operator.is_a?(String) || operator.is_a?(Integer)
|
|
121
114
|
raise ArgumentError, "Operator must be a string or an integer: #{operator.inspect}"
|
|
@@ -134,8 +127,6 @@ module Mongoid
|
|
|
134
127
|
# @param [ true, false ] negating If the selection should be negated.
|
|
135
128
|
#
|
|
136
129
|
# @return [ Hash ] The raw MongoDB selector.
|
|
137
|
-
#
|
|
138
|
-
# @since 1.0.0
|
|
139
130
|
def __expr_part__(object, negating = false)
|
|
140
131
|
{ name.to_s => transform_value(object, negating) }
|
|
141
132
|
end
|
|
@@ -166,8 +157,6 @@ module Mongoid
|
|
|
166
157
|
# key.__sort_option__
|
|
167
158
|
#
|
|
168
159
|
# @return [ Hash ] The field/direction pair.
|
|
169
|
-
#
|
|
170
|
-
# @since 1.0.0
|
|
171
160
|
def __sort_option__
|
|
172
161
|
{ name => operator }
|
|
173
162
|
end
|
|
@@ -179,8 +168,6 @@ module Mongoid
|
|
|
179
168
|
# key.to_s
|
|
180
169
|
#
|
|
181
170
|
# @return [ String ] The key as a string.
|
|
182
|
-
#
|
|
183
|
-
# @since 1.1.0
|
|
184
171
|
def to_s
|
|
185
172
|
@name.to_s
|
|
186
173
|
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
|
# @param [ Symbol ] strategy The merge strategy.
|
|
19
18
|
# @param [ String ] operator The MongoDB operator.
|
|
20
19
|
# @param [ String ] additional The additional MongoDB operator.
|
|
21
|
-
#
|
|
22
|
-
# @since 1.0.0
|
|
23
20
|
def key(name, strategy, operator, additional = nil, &block)
|
|
24
21
|
::Symbol.add_key(name, strategy, operator, additional, &block)
|
|
25
22
|
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
|
|
@@ -17,8 +16,6 @@ module Mongoid
|
|
|
17
16
|
# mergeable.intersect.in(field: [ 1, 2, 3 ])
|
|
18
17
|
#
|
|
19
18
|
# @return [ Mergeable ] The intersect flagged mergeable.
|
|
20
|
-
#
|
|
21
|
-
# @since 1.0.0
|
|
22
19
|
def intersect
|
|
23
20
|
use(:__intersect__)
|
|
24
21
|
end
|
|
@@ -29,8 +26,6 @@ module Mongoid
|
|
|
29
26
|
# mergeable.override.in(field: [ 1, 2, 3 ])
|
|
30
27
|
#
|
|
31
28
|
# @return [ Mergeable ] The override flagged mergeable.
|
|
32
|
-
#
|
|
33
|
-
# @since 1.0.0
|
|
34
29
|
def override
|
|
35
30
|
use(:__override__)
|
|
36
31
|
end
|
|
@@ -41,8 +36,6 @@ module Mongoid
|
|
|
41
36
|
# mergeable.union.in(field: [ 1, 2, 3 ])
|
|
42
37
|
#
|
|
43
38
|
# @return [ Mergeable ] The union flagged mergeable.
|
|
44
|
-
#
|
|
45
|
-
# @since 1.0.0
|
|
46
39
|
def union
|
|
47
40
|
use(:__union__)
|
|
48
41
|
end
|
|
@@ -53,14 +46,33 @@ module Mongoid
|
|
|
53
46
|
# mergeable.reset_strategies!
|
|
54
47
|
#
|
|
55
48
|
# @return [ Criteria ] self.
|
|
56
|
-
#
|
|
57
|
-
# @since 1.0.0
|
|
58
49
|
def reset_strategies!
|
|
59
50
|
self.strategy = nil
|
|
60
51
|
self.negating = nil
|
|
61
52
|
self
|
|
62
53
|
end
|
|
63
54
|
|
|
55
|
+
# Merge criteria with operators using the and operator.
|
|
56
|
+
#
|
|
57
|
+
# @param [ Hash ] criterion The criterion to add to the criteria.
|
|
58
|
+
# @param [ String ] operator The MongoDB operator.
|
|
59
|
+
#
|
|
60
|
+
# @return [ Criteria ] The resulting criteria.
|
|
61
|
+
def and_with_operator(criterion, operator)
|
|
62
|
+
crit = self
|
|
63
|
+
if criterion
|
|
64
|
+
criterion.each_pair do |field, value|
|
|
65
|
+
val = prepare(field, operator, value)
|
|
66
|
+
# The prepare method already takes the negation into account. We
|
|
67
|
+
# set negating to false here so that ``and`` doesn't also apply
|
|
68
|
+
# negation and we have a double negative.
|
|
69
|
+
crit.negating = false
|
|
70
|
+
crit = crit.and(field => val)
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
crit
|
|
74
|
+
end
|
|
75
|
+
|
|
64
76
|
private
|
|
65
77
|
|
|
66
78
|
# Adds the criterion to the existing selection.
|
|
@@ -74,8 +86,6 @@ module Mongoid
|
|
|
74
86
|
# @param [ String ] operator The MongoDB operator.
|
|
75
87
|
#
|
|
76
88
|
# @return [ Mergeable ] The new mergeable.
|
|
77
|
-
#
|
|
78
|
-
# @since 1.0.0
|
|
79
89
|
def __add__(criterion, operator)
|
|
80
90
|
with_strategy(:__add__, criterion, operator)
|
|
81
91
|
end
|
|
@@ -92,8 +102,6 @@ module Mongoid
|
|
|
92
102
|
# @param [ String ] inner The inner MongoDB operator.
|
|
93
103
|
#
|
|
94
104
|
# @return [ Mergeable ] The new mergeable.
|
|
95
|
-
#
|
|
96
|
-
# @since 1.0.0
|
|
97
105
|
def __expanded__(criterion, outer, inner)
|
|
98
106
|
selection(criterion) do |selector, field, value|
|
|
99
107
|
selector.store(field, { outer => { inner => value }})
|
|
@@ -111,8 +119,6 @@ module Mongoid
|
|
|
111
119
|
# @param [ Hash ] criterion The criteria.
|
|
112
120
|
#
|
|
113
121
|
# @return [ Mergeable ] The cloned object.
|
|
114
|
-
#
|
|
115
|
-
# @since 2.0.0
|
|
116
122
|
def __merge__(criterion)
|
|
117
123
|
selection(criterion) do |selector, field, value|
|
|
118
124
|
selector.merge!(field.__expr_part__(value))
|
|
@@ -130,8 +136,6 @@ module Mongoid
|
|
|
130
136
|
# @param [ String ] operator The MongoDB operator.
|
|
131
137
|
#
|
|
132
138
|
# @return [ Mergeable ] The new mergeable.
|
|
133
|
-
#
|
|
134
|
-
# @since 1.0.0
|
|
135
139
|
def __intersect__(criterion, operator)
|
|
136
140
|
with_strategy(:__intersect__, criterion, operator)
|
|
137
141
|
end
|
|
@@ -152,8 +156,6 @@ module Mongoid
|
|
|
152
156
|
# @param [ String ] operator The MongoDB operator.
|
|
153
157
|
#
|
|
154
158
|
# @return [ Mergeable ] The new mergeable.
|
|
155
|
-
#
|
|
156
|
-
# @since 1.0.0
|
|
157
159
|
def __multi__(criteria, operator)
|
|
158
160
|
clone.tap do |query|
|
|
159
161
|
sel = query.selector
|
|
@@ -171,7 +173,7 @@ module Mongoid
|
|
|
171
173
|
|
|
172
174
|
# Combines criteria into a MongoDB selector.
|
|
173
175
|
#
|
|
174
|
-
# Criteria is an array of
|
|
176
|
+
# Criteria is an array of criterion objects which will be flattened.
|
|
175
177
|
#
|
|
176
178
|
# Each criterion can be:
|
|
177
179
|
# - A hash
|
|
@@ -337,8 +339,6 @@ module Mongoid
|
|
|
337
339
|
# @param [ String ] operator The MongoDB operator.
|
|
338
340
|
#
|
|
339
341
|
# @return [ Mergeable ] The new mergeable.
|
|
340
|
-
#
|
|
341
|
-
# @since 1.0.0
|
|
342
342
|
def __override__(criterion, operator)
|
|
343
343
|
if criterion.is_a?(Selectable)
|
|
344
344
|
criterion = criterion.selector
|
|
@@ -365,8 +365,6 @@ module Mongoid
|
|
|
365
365
|
# @param [ String ] operator The MongoDB operator.
|
|
366
366
|
#
|
|
367
367
|
# @return [ Mergeable ] The new mergeable.
|
|
368
|
-
#
|
|
369
|
-
# @since 1.0.0
|
|
370
368
|
def __union__(criterion, operator)
|
|
371
369
|
with_strategy(:__union__, criterion, operator)
|
|
372
370
|
end
|
|
@@ -381,8 +379,6 @@ module Mongoid
|
|
|
381
379
|
# @param [ Symbol ] strategy The strategy to use.
|
|
382
380
|
#
|
|
383
381
|
# @return [ Mergeable ] The existing mergeable.
|
|
384
|
-
#
|
|
385
|
-
# @since 1.0.0
|
|
386
382
|
def use(strategy)
|
|
387
383
|
tap do |mergeable|
|
|
388
384
|
mergeable.strategy = strategy
|
|
@@ -401,8 +397,6 @@ module Mongoid
|
|
|
401
397
|
# @param [ String ] operator The MongoDB operator.
|
|
402
398
|
#
|
|
403
399
|
# @return [ Mergeable ] The cloned query.
|
|
404
|
-
#
|
|
405
|
-
# @since 1.0.0
|
|
406
400
|
def with_strategy(strategy, criterion, operator)
|
|
407
401
|
selection(criterion) do |selector, field, value|
|
|
408
402
|
selector.store(
|
|
@@ -423,8 +417,6 @@ module Mongoid
|
|
|
423
417
|
# @param [ Object ] value The value.
|
|
424
418
|
#
|
|
425
419
|
# @return [ Object ] The serialized value.
|
|
426
|
-
#
|
|
427
|
-
# @since 1.0.0
|
|
428
420
|
def prepare(field, operator, value)
|
|
429
421
|
unless operator =~ /exists|type|size/
|
|
430
422
|
value = value.__expand_complex__
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
class Criteria
|
|
@@ -21,8 +20,6 @@ module Mongoid
|
|
|
21
20
|
# @param [ Array<Symbol> ] fields The fields to sort.
|
|
22
21
|
#
|
|
23
22
|
# @return [ Optional ] The cloned optional.
|
|
24
|
-
#
|
|
25
|
-
# @since 1.0.0
|
|
26
23
|
def ascending(*fields)
|
|
27
24
|
sort_with_list(*fields, 1)
|
|
28
25
|
end
|
|
@@ -39,8 +36,6 @@ module Mongoid
|
|
|
39
36
|
# @param [ Integer ] value The batch size.
|
|
40
37
|
#
|
|
41
38
|
# @return [ Optional ] The cloned optional.
|
|
42
|
-
#
|
|
43
|
-
# @since 1.0.0
|
|
44
39
|
def batch_size(value = nil)
|
|
45
40
|
option(value) { |options| options.store(:batch_size, value) }
|
|
46
41
|
end
|
|
@@ -53,8 +48,6 @@ module Mongoid
|
|
|
53
48
|
# @param [ Array<Symbol> ] fields The fields to sort.
|
|
54
49
|
#
|
|
55
50
|
# @return [ Optional ] The cloned optional.
|
|
56
|
-
#
|
|
57
|
-
# @since 1.0.0
|
|
58
51
|
def descending(*fields)
|
|
59
52
|
sort_with_list(*fields, -1)
|
|
60
53
|
end
|
|
@@ -70,8 +63,6 @@ module Mongoid
|
|
|
70
63
|
# @param [ Hash ] value The index hint.
|
|
71
64
|
#
|
|
72
65
|
# @return [ Optional ] The cloned optional.
|
|
73
|
-
#
|
|
74
|
-
# @since 1.0.0
|
|
75
66
|
def hint(value = nil)
|
|
76
67
|
option(value) { |options| options.store(:hint, value) }
|
|
77
68
|
end
|
|
@@ -84,8 +75,6 @@ module Mongoid
|
|
|
84
75
|
# @param [ Integer ] value The number of documents to return.
|
|
85
76
|
#
|
|
86
77
|
# @return [ Optional ] The cloned optional.
|
|
87
|
-
#
|
|
88
|
-
# @since 1.0.0
|
|
89
78
|
def limit(value = nil)
|
|
90
79
|
option(value) do |options, query|
|
|
91
80
|
val = value.to_i
|
|
@@ -103,8 +92,6 @@ module Mongoid
|
|
|
103
92
|
# @param [ Integer ] value The max number of documents to scan.
|
|
104
93
|
#
|
|
105
94
|
# @return [ Optional ] The cloned optional.
|
|
106
|
-
#
|
|
107
|
-
# @since 1.0.0
|
|
108
95
|
def max_scan(value = nil)
|
|
109
96
|
option(value) { |options| options.store(:max_scan, value) }
|
|
110
97
|
end
|
|
@@ -117,8 +104,6 @@ module Mongoid
|
|
|
117
104
|
# @param [ Integer ] value The max time in milliseconds for processing operations on a cursor.
|
|
118
105
|
#
|
|
119
106
|
# @return [ Optional ] The cloned optional.
|
|
120
|
-
#
|
|
121
|
-
# @since 6.0.0
|
|
122
107
|
def max_time_ms(value = nil)
|
|
123
108
|
option(value) { |options| options.store(:max_time_ms, value) }
|
|
124
109
|
end
|
|
@@ -129,8 +114,6 @@ module Mongoid
|
|
|
129
114
|
# optional.no_timeout
|
|
130
115
|
#
|
|
131
116
|
# @return [ Optional ] The cloned optional.
|
|
132
|
-
#
|
|
133
|
-
# @since 1.0.0
|
|
134
117
|
def no_timeout
|
|
135
118
|
clone.tap { |query| query.options.store(:timeout, false) }
|
|
136
119
|
end
|
|
@@ -143,8 +126,6 @@ module Mongoid
|
|
|
143
126
|
# @param [ Array<Symbol> ] args The fields to return.
|
|
144
127
|
#
|
|
145
128
|
# @return [ Optional ] The cloned optional.
|
|
146
|
-
#
|
|
147
|
-
# @since 1.0.0
|
|
148
129
|
def only(*args)
|
|
149
130
|
args = args.flatten
|
|
150
131
|
option(*args) do |options|
|
|
@@ -185,8 +166,6 @@ module Mongoid
|
|
|
185
166
|
# @param [ Array, Hash, String ] spec The sorting specification.
|
|
186
167
|
#
|
|
187
168
|
# @return [ Optional ] The cloned optional.
|
|
188
|
-
#
|
|
189
|
-
# @since 1.0.0
|
|
190
169
|
def order_by(*spec)
|
|
191
170
|
option(spec) do |options, query|
|
|
192
171
|
spec.compact.each do |criterion|
|
|
@@ -208,8 +187,6 @@ module Mongoid
|
|
|
208
187
|
# @param [ Array, Hash, String ] spec The sorting specification.
|
|
209
188
|
#
|
|
210
189
|
# @return [ Optional ] The cloned optional.
|
|
211
|
-
#
|
|
212
|
-
# @since 2.1.0
|
|
213
190
|
def reorder(*spec)
|
|
214
191
|
clone.tap do |query|
|
|
215
192
|
query.options.delete(:sort)
|
|
@@ -224,8 +201,6 @@ module Mongoid
|
|
|
224
201
|
# @param [ Integer ] value The number to skip.
|
|
225
202
|
#
|
|
226
203
|
# @return [ Optional ] The cloned optional.
|
|
227
|
-
#
|
|
228
|
-
# @since 1.0.0
|
|
229
204
|
def skip(value = nil)
|
|
230
205
|
option(value) do |options, query|
|
|
231
206
|
val = value.to_i
|
|
@@ -243,8 +218,6 @@ module Mongoid
|
|
|
243
218
|
# @param [ Hash ] criterion The slice options.
|
|
244
219
|
#
|
|
245
220
|
# @return [ Optional ] The cloned optional.
|
|
246
|
-
#
|
|
247
|
-
# @since 1.0.0
|
|
248
221
|
def slice(criterion = nil)
|
|
249
222
|
option(criterion) do |options|
|
|
250
223
|
options.__union__(
|
|
@@ -261,8 +234,6 @@ module Mongoid
|
|
|
261
234
|
# optional.snapshot
|
|
262
235
|
#
|
|
263
236
|
# @return [ Optional ] The cloned optional.
|
|
264
|
-
#
|
|
265
|
-
# @since 1.0.0
|
|
266
237
|
def snapshot
|
|
267
238
|
clone.tap do |query|
|
|
268
239
|
query.options.store(:snapshot, true)
|
|
@@ -277,8 +248,6 @@ module Mongoid
|
|
|
277
248
|
# @param [ Array<Symbol> ] args The fields to ignore.
|
|
278
249
|
#
|
|
279
250
|
# @return [ Optional ] The cloned optional.
|
|
280
|
-
#
|
|
281
|
-
# @since 1.0.0
|
|
282
251
|
def without(*args)
|
|
283
252
|
args = args.flatten
|
|
284
253
|
option(*args) do |options|
|
|
@@ -301,8 +270,6 @@ module Mongoid
|
|
|
301
270
|
# @param [ String ] comment The comment to be associated with the query.
|
|
302
271
|
#
|
|
303
272
|
# @return [ Optional ] The cloned optional.
|
|
304
|
-
#
|
|
305
|
-
# @since 2.2.0
|
|
306
273
|
def comment(comment = nil)
|
|
307
274
|
clone.tap do |query|
|
|
308
275
|
query.options.store(:comment, comment)
|
|
@@ -320,8 +287,6 @@ module Mongoid
|
|
|
320
287
|
# @param [ Symbol ] type The type of cursor to create.
|
|
321
288
|
#
|
|
322
289
|
# @return [ Optional ] The cloned optional.
|
|
323
|
-
#
|
|
324
|
-
# @since 2.2.0
|
|
325
290
|
def cursor_type(type)
|
|
326
291
|
clone.tap { |query| query.options.store(:cursor_type, type) }
|
|
327
292
|
end
|
|
@@ -334,8 +299,6 @@ module Mongoid
|
|
|
334
299
|
# @param [ Hash ] collation_doc The document describing the collation to use.
|
|
335
300
|
#
|
|
336
301
|
# @return [ Optional ] The cloned optional.
|
|
337
|
-
#
|
|
338
|
-
# @since 6.1.0
|
|
339
302
|
def collation(collation_doc)
|
|
340
303
|
clone.tap { |query| query.options.store(:collation, collation_doc) }
|
|
341
304
|
end
|
|
@@ -354,8 +317,6 @@ module Mongoid
|
|
|
354
317
|
# @param [ Integer ] direction The sort direction.
|
|
355
318
|
#
|
|
356
319
|
# @return [ Optional ] The cloned optional.
|
|
357
|
-
#
|
|
358
|
-
# @since 1.0.0
|
|
359
320
|
def add_sort_option(options, field, direction)
|
|
360
321
|
if driver == :mongo1x
|
|
361
322
|
sorting = (options[:sort] || []).dup
|
|
@@ -379,8 +340,6 @@ module Mongoid
|
|
|
379
340
|
# @param [ Array ] args The options.
|
|
380
341
|
#
|
|
381
342
|
# @return [ Queryable ] The cloned queryable.
|
|
382
|
-
#
|
|
383
|
-
# @since 1.0.0
|
|
384
343
|
def option(*args)
|
|
385
344
|
clone.tap do |query|
|
|
386
345
|
unless args.compact.empty?
|
|
@@ -400,8 +359,6 @@ module Mongoid
|
|
|
400
359
|
# @param [ Integer ] direction The sort direction.
|
|
401
360
|
#
|
|
402
361
|
# @return [ Optional ] The cloned optional.
|
|
403
|
-
#
|
|
404
|
-
# @since 1.0.0
|
|
405
362
|
def sort_with_list(*fields, direction)
|
|
406
363
|
option(fields) do |options, query|
|
|
407
364
|
fields.flatten.compact.each do |field|
|
|
@@ -419,8 +376,6 @@ module Mongoid
|
|
|
419
376
|
# Optional.forwardables
|
|
420
377
|
#
|
|
421
378
|
# @return [ Array<Symbol> ] The names of the forwardable methods.
|
|
422
|
-
#
|
|
423
|
-
# @since 1.0.0
|
|
424
379
|
def forwardables
|
|
425
380
|
public_instance_methods(false) - [ :options, :options= ]
|
|
426
381
|
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
|
|
@@ -15,8 +14,6 @@ module Mongoid
|
|
|
15
14
|
# options.fields
|
|
16
15
|
#
|
|
17
16
|
# @return [ Hash ] The fields options.
|
|
18
|
-
#
|
|
19
|
-
# @since 1.0.0
|
|
20
17
|
def fields
|
|
21
18
|
self[:fields]
|
|
22
19
|
end
|
|
@@ -27,8 +24,6 @@ module Mongoid
|
|
|
27
24
|
# options.limit
|
|
28
25
|
#
|
|
29
26
|
# @return [ Integer ] The limit option.
|
|
30
|
-
#
|
|
31
|
-
# @since 1.0.0
|
|
32
27
|
def limit
|
|
33
28
|
self[:limit]
|
|
34
29
|
end
|
|
@@ -39,8 +34,6 @@ module Mongoid
|
|
|
39
34
|
# options.skip
|
|
40
35
|
#
|
|
41
36
|
# @return [ Integer ] The skip option.
|
|
42
|
-
#
|
|
43
|
-
# @since 1.0.0
|
|
44
37
|
def skip
|
|
45
38
|
self[:skip]
|
|
46
39
|
end
|
|
@@ -51,8 +44,6 @@ module Mongoid
|
|
|
51
44
|
# options.sort
|
|
52
45
|
#
|
|
53
46
|
# @return [ Hash ] The sort options.
|
|
54
|
-
#
|
|
55
|
-
# @since 1.0.0
|
|
56
47
|
def sort
|
|
57
48
|
self[:sort]
|
|
58
49
|
end
|
|
@@ -67,8 +58,6 @@ module Mongoid
|
|
|
67
58
|
# @param [ Object ] value The value to add.
|
|
68
59
|
#
|
|
69
60
|
# @return [ Object ] The stored object.
|
|
70
|
-
#
|
|
71
|
-
# @since 1.0.0
|
|
72
61
|
def store(key, value, localize = true)
|
|
73
62
|
super(key, evolve(value, localize))
|
|
74
63
|
end
|
|
@@ -80,8 +69,6 @@ module Mongoid
|
|
|
80
69
|
# options.to_pipeline
|
|
81
70
|
#
|
|
82
71
|
# @return [ Array<Hash> ] The options in pipeline form.
|
|
83
|
-
#
|
|
84
|
-
# @since 2.0.0
|
|
85
72
|
def to_pipeline
|
|
86
73
|
pipeline = []
|
|
87
74
|
pipeline.push({ "$skip" => skip }) if skip
|
|
@@ -96,8 +83,6 @@ module Mongoid
|
|
|
96
83
|
# options.__deep_copy__
|
|
97
84
|
#
|
|
98
85
|
# @return [ Options ] The copied options.
|
|
99
|
-
#
|
|
100
|
-
# @since 6.1.1
|
|
101
86
|
def __deep_copy__
|
|
102
87
|
self.class.new(aliases, serializers) do |copy|
|
|
103
88
|
each_pair do |key, value|
|
|
@@ -118,8 +103,6 @@ module Mongoid
|
|
|
118
103
|
# @param [ Object ] value The value to serialize.
|
|
119
104
|
#
|
|
120
105
|
# @return [ Object ] The serialized object.
|
|
121
|
-
#
|
|
122
|
-
# @since 1.0.0
|
|
123
106
|
def evolve(value, localize = true)
|
|
124
107
|
case value
|
|
125
108
|
when Hash
|
|
@@ -139,8 +122,6 @@ module Mongoid
|
|
|
139
122
|
# @param [ Hash ] value The hash to serialize.
|
|
140
123
|
#
|
|
141
124
|
# @return [ Object ] The serialized hash.
|
|
142
|
-
#
|
|
143
|
-
# @since 1.0.0
|
|
144
125
|
def evolve_hash(value, localize = true)
|
|
145
126
|
value.inject({}) do |hash, (field, _value)|
|
|
146
127
|
name, serializer = storage_pair(field)
|
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
class Criteria
|
|
6
5
|
module Queryable
|
|
7
6
|
|
|
8
7
|
# Represents an aggregation pipeline.
|
|
9
|
-
#
|
|
10
|
-
# @since 2.0.0
|
|
11
8
|
class Pipeline < Array
|
|
12
9
|
|
|
13
10
|
# @attribute [r] aliases The field aliases.
|
|
@@ -20,8 +17,6 @@ module Mongoid
|
|
|
20
17
|
# pipeline.__deep_copy__
|
|
21
18
|
#
|
|
22
19
|
# @return [ Pipeline ] The cloned pipeline.
|
|
23
|
-
#
|
|
24
|
-
# @since 2.0.0
|
|
25
20
|
def __deep_copy__
|
|
26
21
|
self.class.new(aliases) do |copy|
|
|
27
22
|
each do |entry|
|
|
@@ -38,8 +33,6 @@ module Mongoid
|
|
|
38
33
|
# @param [ Hash ] entry The group entry.
|
|
39
34
|
#
|
|
40
35
|
# @return [ Pipeline ] The pipeline.
|
|
41
|
-
#
|
|
42
|
-
# @since 2.0.0
|
|
43
36
|
def group(entry)
|
|
44
37
|
push("$group" => evolve(entry.__expand_complex__))
|
|
45
38
|
end
|
|
@@ -51,8 +44,6 @@ module Mongoid
|
|
|
51
44
|
#
|
|
52
45
|
# @param [ Hash ] aliases A hash of mappings from aliases to the actual
|
|
53
46
|
# field names in the database.
|
|
54
|
-
#
|
|
55
|
-
# @since 2.0.0
|
|
56
47
|
def initialize(aliases = {})
|
|
57
48
|
@aliases = aliases
|
|
58
49
|
yield(self) if block_given?
|
|
@@ -80,8 +71,6 @@ module Mongoid
|
|
|
80
71
|
# document.
|
|
81
72
|
#
|
|
82
73
|
# @return [ Pipeline ] The pipeline.
|
|
83
|
-
#
|
|
84
|
-
# @since 2.0.0
|
|
85
74
|
def unwind(field_or_doc)
|
|
86
75
|
unless field_or_doc.respond_to? :keys
|
|
87
76
|
normalized = field_or_doc.to_s
|
|
@@ -104,8 +93,6 @@ module Mongoid
|
|
|
104
93
|
# @param [ Hash ] entry The entry to evolve.
|
|
105
94
|
#
|
|
106
95
|
# @return [ Hash ] The evolved entry.
|
|
107
|
-
#
|
|
108
|
-
# @since 2.0.0
|
|
109
96
|
def evolve(entry)
|
|
110
97
|
aggregate = Selector.new(aliases)
|
|
111
98
|
entry.each_pair do |field, value|
|