mongoid 7.3.2 → 7.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +17 -17
- data/README.md +2 -2
- data/lib/config/locales/en.yml +30 -16
- data/lib/mongoid/association/accessors.rb +0 -27
- data/lib/mongoid/association/bindable.rb +0 -21
- data/lib/mongoid/association/builders.rb +0 -9
- data/lib/mongoid/association/constrainable.rb +0 -3
- data/lib/mongoid/association/depending.rb +0 -7
- data/lib/mongoid/association/eager_loadable.rb +0 -3
- data/lib/mongoid/association/embedded/batchable.rb +11 -39
- data/lib/mongoid/association/embedded/cyclic.rb +2 -11
- data/lib/mongoid/association/embedded/embedded_in/binding.rb +0 -7
- data/lib/mongoid/association/embedded/embedded_in/buildable.rb +0 -3
- data/lib/mongoid/association/embedded/embedded_in/proxy.rb +0 -13
- data/lib/mongoid/association/embedded/embedded_in.rb +0 -23
- data/lib/mongoid/association/embedded/embeds_many/binding.rb +0 -7
- data/lib/mongoid/association/embedded/embeds_many/buildable.rb +0 -3
- data/lib/mongoid/association/embedded/embeds_many/proxy.rb +31 -44
- data/lib/mongoid/association/embedded/embeds_many.rb +0 -31
- data/lib/mongoid/association/embedded/embeds_one/binding.rb +0 -7
- data/lib/mongoid/association/embedded/embeds_one/buildable.rb +0 -3
- data/lib/mongoid/association/embedded/embeds_one/proxy.rb +26 -14
- data/lib/mongoid/association/embedded/embeds_one.rb +0 -27
- data/lib/mongoid/association/embedded.rb +0 -1
- data/lib/mongoid/association/macros.rb +6 -5
- data/lib/mongoid/association/many.rb +0 -17
- data/lib/mongoid/association/marshalable.rb +0 -5
- data/lib/mongoid/association/nested/many.rb +0 -11
- data/lib/mongoid/association/nested/nested_buildable.rb +0 -9
- data/lib/mongoid/association/nested/one.rb +1 -16
- data/lib/mongoid/association/nested.rb +0 -3
- data/lib/mongoid/association/one.rb +1 -10
- data/lib/mongoid/association/options.rb +0 -33
- data/lib/mongoid/association/proxy.rb +0 -21
- data/lib/mongoid/association/referenced/auto_save.rb +0 -9
- data/lib/mongoid/association/referenced/belongs_to/binding.rb +0 -7
- data/lib/mongoid/association/referenced/belongs_to/buildable.rb +4 -5
- data/lib/mongoid/association/referenced/belongs_to/eager.rb +0 -1
- data/lib/mongoid/association/referenced/belongs_to/proxy.rb +0 -13
- data/lib/mongoid/association/referenced/belongs_to.rb +9 -34
- data/lib/mongoid/association/referenced/counter_cache.rb +2 -15
- data/lib/mongoid/association/referenced/eager.rb +3 -24
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/binding.rb +0 -5
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/buildable.rb +0 -3
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/eager.rb +0 -1
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/proxy.rb +12 -39
- data/lib/mongoid/association/referenced/has_and_belongs_to_many.rb +11 -38
- data/lib/mongoid/association/referenced/has_many/binding.rb +0 -5
- data/lib/mongoid/association/referenced/has_many/buildable.rb +0 -3
- data/lib/mongoid/association/referenced/has_many/eager.rb +0 -1
- data/lib/mongoid/association/referenced/has_many/enumerable.rb +11 -63
- data/lib/mongoid/association/referenced/has_many/proxy.rb +18 -61
- data/lib/mongoid/association/referenced/has_many.rb +12 -39
- data/lib/mongoid/association/referenced/has_one/binding.rb +0 -7
- data/lib/mongoid/association/referenced/has_one/buildable.rb +3 -4
- data/lib/mongoid/association/referenced/has_one/eager.rb +0 -1
- data/lib/mongoid/association/referenced/has_one/nested_builder.rb +0 -15
- data/lib/mongoid/association/referenced/has_one/proxy.rb +0 -9
- data/lib/mongoid/association/referenced/has_one.rb +9 -32
- data/lib/mongoid/association/referenced/syncable.rb +0 -17
- data/lib/mongoid/association/referenced.rb +0 -1
- data/lib/mongoid/association/reflections.rb +0 -1
- data/lib/mongoid/association/relatable.rb +2 -61
- data/lib/mongoid/association.rb +0 -17
- data/lib/mongoid/atomic/modifiers.rb +4 -51
- data/lib/mongoid/atomic/paths/embedded/many.rb +0 -5
- data/lib/mongoid/atomic/paths/embedded/one.rb +0 -5
- data/lib/mongoid/atomic/paths/embedded.rb +0 -3
- data/lib/mongoid/atomic/paths/root.rb +0 -5
- data/lib/mongoid/atomic/paths.rb +0 -1
- data/lib/mongoid/atomic.rb +27 -44
- data/lib/mongoid/attributes/dynamic.rb +0 -17
- data/lib/mongoid/attributes/nested.rb +0 -5
- data/lib/mongoid/attributes/processing.rb +1 -18
- data/lib/mongoid/attributes/projector.rb +0 -1
- data/lib/mongoid/attributes/readonly.rb +0 -5
- data/lib/mongoid/attributes.rb +0 -33
- data/lib/mongoid/cacheable.rb +1 -6
- data/lib/mongoid/changeable.rb +3 -59
- data/lib/mongoid/clients/factory.rb +0 -7
- data/lib/mongoid/clients/options.rb +0 -5
- data/lib/mongoid/clients/sessions.rb +0 -7
- data/lib/mongoid/clients/storage_options.rb +0 -7
- data/lib/mongoid/clients/validators/storage.rb +0 -9
- data/lib/mongoid/clients/validators.rb +0 -1
- data/lib/mongoid/clients.rb +0 -9
- data/lib/mongoid/composable.rb +0 -7
- data/lib/mongoid/config/environment.rb +13 -6
- data/lib/mongoid/config/options.rb +0 -11
- data/lib/mongoid/config/validators/client.rb +0 -17
- data/lib/mongoid/config/validators/option.rb +0 -3
- data/lib/mongoid/config/validators.rb +0 -1
- data/lib/mongoid/config.rb +37 -29
- data/lib/mongoid/contextual/aggregable/memory.rb +14 -11
- data/lib/mongoid/contextual/aggregable/mongo.rb +15 -20
- data/lib/mongoid/contextual/aggregable/none.rb +65 -0
- data/lib/mongoid/contextual/aggregable.rb +17 -0
- data/lib/mongoid/contextual/atomic.rb +7 -27
- data/lib/mongoid/contextual/command.rb +0 -5
- data/lib/mongoid/contextual/geo_near.rb +1 -34
- data/lib/mongoid/contextual/map_reduce.rb +0 -31
- data/lib/mongoid/contextual/memory.rb +4 -59
- data/lib/mongoid/contextual/mongo.rb +132 -78
- data/lib/mongoid/contextual/none.rb +42 -28
- data/lib/mongoid/contextual/queryable.rb +0 -3
- data/lib/mongoid/contextual.rb +0 -5
- data/lib/mongoid/copyable.rb +0 -5
- data/lib/mongoid/criteria/findable.rb +0 -13
- data/lib/mongoid/criteria/includable.rb +0 -9
- data/lib/mongoid/criteria/inspectable.rb +0 -3
- data/lib/mongoid/criteria/marshalable.rb +0 -5
- data/lib/mongoid/criteria/modifiable.rb +0 -19
- data/lib/mongoid/criteria/options.rb +0 -3
- data/lib/mongoid/criteria/permission.rb +0 -1
- data/lib/mongoid/criteria/queryable/aggregable.rb +0 -13
- data/lib/mongoid/criteria/queryable/expandable.rb +0 -1
- data/lib/mongoid/criteria/queryable/extensions/array.rb +1 -26
- data/lib/mongoid/criteria/queryable/extensions/big_decimal.rb +0 -3
- data/lib/mongoid/criteria/queryable/extensions/boolean.rb +0 -3
- data/lib/mongoid/criteria/queryable/extensions/date.rb +0 -7
- data/lib/mongoid/criteria/queryable/extensions/date_time.rb +0 -5
- data/lib/mongoid/criteria/queryable/extensions/hash.rb +0 -25
- data/lib/mongoid/criteria/queryable/extensions/nil_class.rb +0 -13
- data/lib/mongoid/criteria/queryable/extensions/numeric.rb +0 -11
- data/lib/mongoid/criteria/queryable/extensions/object.rb +1 -28
- data/lib/mongoid/criteria/queryable/extensions/range.rb +38 -16
- data/lib/mongoid/criteria/queryable/extensions/regexp.rb +0 -9
- data/lib/mongoid/criteria/queryable/extensions/set.rb +0 -3
- data/lib/mongoid/criteria/queryable/extensions/string.rb +0 -17
- data/lib/mongoid/criteria/queryable/extensions/symbol.rb +0 -9
- data/lib/mongoid/criteria/queryable/extensions/time.rb +0 -7
- data/lib/mongoid/criteria/queryable/extensions/time_with_zone.rb +0 -7
- data/lib/mongoid/criteria/queryable/extensions.rb +0 -1
- data/lib/mongoid/criteria/queryable/key.rb +1 -14
- data/lib/mongoid/criteria/queryable/macroable.rb +0 -3
- data/lib/mongoid/criteria/queryable/mergeable.rb +1 -30
- data/lib/mongoid/criteria/queryable/optional.rb +0 -45
- data/lib/mongoid/criteria/queryable/options.rb +0 -19
- data/lib/mongoid/criteria/queryable/pipeline.rb +0 -13
- data/lib/mongoid/criteria/queryable/selectable.rb +22 -69
- data/lib/mongoid/criteria/queryable/selector.rb +0 -17
- data/lib/mongoid/criteria/queryable/smash.rb +0 -11
- data/lib/mongoid/criteria/queryable/storable.rb +11 -7
- data/lib/mongoid/criteria/queryable.rb +0 -7
- data/lib/mongoid/criteria/scopable.rb +25 -19
- data/lib/mongoid/criteria.rb +0 -57
- data/lib/mongoid/document.rb +3 -53
- data/lib/mongoid/equality.rb +26 -10
- data/lib/mongoid/errors/ambiguous_relationship.rb +2 -5
- data/lib/mongoid/errors/callback.rb +0 -3
- data/lib/mongoid/errors/criteria_argument_required.rb +0 -1
- data/lib/mongoid/errors/delete_restriction.rb +0 -3
- data/lib/mongoid/errors/document_not_destroyed.rb +2 -7
- data/lib/mongoid/errors/document_not_found.rb +0 -9
- data/lib/mongoid/errors/eager_load.rb +0 -3
- data/lib/mongoid/errors/empty_config_file.rb +25 -0
- data/lib/mongoid/errors/in_memory_collation_not_supported.rb +0 -3
- data/lib/mongoid/errors/invalid_collection.rb +0 -1
- data/lib/mongoid/errors/invalid_config_file.rb +25 -0
- data/lib/mongoid/errors/invalid_config_option.rb +0 -3
- data/lib/mongoid/errors/invalid_dependent_strategy.rb +0 -3
- data/lib/mongoid/errors/invalid_discriminator_key_target.rb +0 -1
- data/lib/mongoid/errors/invalid_elem_match_operator.rb +0 -1
- data/lib/mongoid/errors/invalid_estimated_count_criteria.rb +0 -1
- data/lib/mongoid/errors/invalid_expression_operator.rb +0 -1
- data/lib/mongoid/errors/invalid_field.rb +0 -5
- data/lib/mongoid/errors/invalid_field_operator.rb +0 -1
- data/lib/mongoid/errors/invalid_field_option.rb +0 -3
- data/lib/mongoid/errors/invalid_find.rb +0 -3
- data/lib/mongoid/errors/invalid_includes.rb +0 -3
- data/lib/mongoid/errors/invalid_index.rb +0 -3
- data/lib/mongoid/errors/invalid_options.rb +0 -3
- data/lib/mongoid/errors/invalid_path.rb +0 -3
- data/lib/mongoid/errors/invalid_persistence_option.rb +0 -5
- data/lib/mongoid/errors/invalid_query.rb +0 -1
- data/lib/mongoid/errors/invalid_relation.rb +0 -7
- data/lib/mongoid/errors/invalid_relation_option.rb +0 -3
- data/lib/mongoid/errors/invalid_scope.rb +0 -3
- data/lib/mongoid/errors/invalid_session_use.rb +1 -6
- data/lib/mongoid/errors/invalid_set_polymorphic_relation.rb +0 -1
- data/lib/mongoid/errors/invalid_storage_options.rb +0 -3
- data/lib/mongoid/errors/invalid_storage_parent.rb +0 -3
- data/lib/mongoid/errors/invalid_time.rb +0 -3
- data/lib/mongoid/errors/invalid_value.rb +0 -1
- data/lib/mongoid/errors/inverse_not_found.rb +0 -3
- data/lib/mongoid/errors/mixed_client_configuration.rb +0 -3
- data/lib/mongoid/errors/mixed_relations.rb +0 -3
- data/lib/mongoid/errors/mongoid_error.rb +0 -9
- data/lib/mongoid/errors/nested_attributes_metadata_not_found.rb +0 -3
- data/lib/mongoid/errors/no_client_config.rb +0 -3
- data/lib/mongoid/errors/no_client_database.rb +0 -3
- data/lib/mongoid/errors/no_client_hosts.rb +0 -3
- data/lib/mongoid/errors/no_clients_config.rb +0 -3
- data/lib/mongoid/errors/no_default_client.rb +0 -3
- data/lib/mongoid/errors/no_environment.rb +0 -3
- data/lib/mongoid/errors/no_map_reduce_output.rb +0 -3
- data/lib/mongoid/errors/no_metadata.rb +0 -3
- data/lib/mongoid/errors/no_parent.rb +0 -3
- data/lib/mongoid/errors/readonly_attribute.rb +0 -3
- data/lib/mongoid/errors/readonly_document.rb +1 -6
- data/lib/mongoid/errors/scope_overwrite.rb +0 -1
- data/lib/mongoid/errors/too_many_nested_attribute_records.rb +0 -1
- data/lib/mongoid/errors/unknown_attribute.rb +0 -3
- data/lib/mongoid/errors/unknown_model.rb +0 -3
- data/lib/mongoid/errors/unsaved_document.rb +1 -2
- data/lib/mongoid/errors/unsupported_javascript.rb +0 -3
- data/lib/mongoid/errors/validations.rb +0 -1
- data/lib/mongoid/errors.rb +2 -1
- data/lib/mongoid/evolvable.rb +0 -3
- data/lib/mongoid/extensions/array.rb +3 -29
- data/lib/mongoid/extensions/big_decimal.rb +0 -11
- data/lib/mongoid/extensions/boolean.rb +0 -3
- data/lib/mongoid/extensions/date.rb +0 -9
- data/lib/mongoid/extensions/date_time.rb +0 -9
- data/lib/mongoid/extensions/decimal128.rb +0 -5
- data/lib/mongoid/extensions/false_class.rb +1 -6
- data/lib/mongoid/extensions/float.rb +0 -7
- data/lib/mongoid/extensions/hash.rb +0 -27
- data/lib/mongoid/extensions/integer.rb +0 -9
- data/lib/mongoid/extensions/module.rb +0 -3
- data/lib/mongoid/extensions/nil_class.rb +0 -5
- data/lib/mongoid/extensions/object.rb +1 -40
- data/lib/mongoid/extensions/object_id.rb +0 -7
- data/lib/mongoid/extensions/range.rb +0 -11
- data/lib/mongoid/extensions/regexp.rb +0 -3
- data/lib/mongoid/extensions/set.rb +0 -7
- data/lib/mongoid/extensions/string.rb +1 -30
- data/lib/mongoid/extensions/symbol.rb +0 -7
- data/lib/mongoid/extensions/time.rb +0 -11
- data/lib/mongoid/extensions/time_with_zone.rb +13 -9
- data/lib/mongoid/extensions/true_class.rb +1 -6
- data/lib/mongoid/extensions.rb +15 -3
- data/lib/mongoid/factory.rb +1 -2
- data/lib/mongoid/fields/foreign_key.rb +0 -21
- data/lib/mongoid/fields/localized.rb +0 -11
- data/lib/mongoid/fields/standard.rb +0 -33
- data/lib/mongoid/fields/validators/macro.rb +0 -9
- data/lib/mongoid/fields/validators.rb +0 -1
- data/lib/mongoid/fields.rb +64 -57
- data/lib/mongoid/findable.rb +0 -5
- data/lib/mongoid/indexable/specification.rb +0 -15
- data/lib/mongoid/indexable/validators/options.rb +0 -7
- data/lib/mongoid/indexable.rb +1 -18
- data/lib/mongoid/inspectable.rb +1 -10
- data/lib/mongoid/interceptable.rb +0 -25
- data/lib/mongoid/loggable.rb +0 -9
- data/lib/mongoid/matchable.rb +0 -5
- data/lib/mongoid/matcher/eq_impl.rb +37 -2
- data/lib/mongoid/matcher/eq_impl_with_regexp.rb +6 -1
- data/lib/mongoid/persistable/creatable.rb +1 -20
- data/lib/mongoid/persistable/deletable.rb +0 -17
- data/lib/mongoid/persistable/destroyable.rb +0 -7
- data/lib/mongoid/persistable/incrementable.rb +0 -5
- data/lib/mongoid/persistable/logical.rb +0 -5
- data/lib/mongoid/persistable/poppable.rb +0 -5
- data/lib/mongoid/persistable/pullable.rb +0 -7
- data/lib/mongoid/persistable/pushable.rb +0 -7
- data/lib/mongoid/persistable/renamable.rb +0 -5
- data/lib/mongoid/persistable/savable.rb +0 -7
- data/lib/mongoid/persistable/settable.rb +0 -5
- data/lib/mongoid/persistable/unsettable.rb +0 -5
- data/lib/mongoid/persistable/updatable.rb +2 -17
- data/lib/mongoid/persistable/upsertable.rb +0 -7
- data/lib/mongoid/persistable.rb +0 -23
- data/lib/mongoid/persistence_context.rb +3 -28
- data/lib/mongoid/positional.rb +0 -5
- data/lib/mongoid/query_cache.rb +11 -34
- data/lib/mongoid/railtie.rb +0 -15
- data/lib/mongoid/railties/controller_runtime.rb +0 -1
- data/lib/mongoid/reloadable.rb +4 -16
- data/lib/mongoid/scopable.rb +6 -34
- data/lib/mongoid/selectable.rb +0 -9
- data/lib/mongoid/serializable.rb +0 -15
- data/lib/mongoid/shardable.rb +0 -7
- data/lib/mongoid/stateful.rb +0 -9
- data/lib/mongoid/stringified_symbol.rb +2 -3
- data/lib/mongoid/tasks/database.rb +1 -6
- data/lib/mongoid/threaded/lifecycle.rb +0 -21
- data/lib/mongoid/threaded.rb +0 -55
- data/lib/mongoid/timestamps/created/short.rb +0 -1
- data/lib/mongoid/timestamps/created.rb +0 -1
- data/lib/mongoid/timestamps/short.rb +0 -1
- data/lib/mongoid/timestamps/timeless.rb +0 -7
- data/lib/mongoid/timestamps/updated/short.rb +0 -1
- data/lib/mongoid/timestamps/updated.rb +0 -3
- data/lib/mongoid/timestamps.rb +0 -1
- data/lib/mongoid/touchable.rb +10 -7
- data/lib/mongoid/traversable.rb +64 -53
- data/lib/mongoid/validatable/associated.rb +0 -3
- data/lib/mongoid/validatable/format.rb +0 -1
- data/lib/mongoid/validatable/length.rb +0 -1
- data/lib/mongoid/validatable/localizable.rb +0 -3
- data/lib/mongoid/validatable/macros.rb +0 -7
- data/lib/mongoid/validatable/presence.rb +1 -8
- data/lib/mongoid/validatable/queryable.rb +0 -3
- data/lib/mongoid/validatable/uniqueness.rb +15 -30
- data/lib/mongoid/validatable.rb +1 -22
- data/lib/mongoid/version.rb +1 -2
- data/lib/mongoid.rb +0 -15
- data/lib/rails/generators/mongoid/config/config_generator.rb +0 -1
- data/lib/rails/generators/mongoid/model/model_generator.rb +0 -1
- data/lib/rails/generators/mongoid_generator.rb +0 -1
- data/lib/rails/mongoid.rb +0 -3
- data/spec/integration/app_spec.rb +0 -1
- data/spec/integration/associations/belongs_to_spec.rb +0 -1
- data/spec/integration/associations/embedded_dirty_spec.rb +29 -0
- data/spec/integration/associations/embedded_spec.rb +0 -1
- data/spec/integration/associations/embeds_many_spec.rb +139 -1
- data/spec/integration/associations/embeds_one_spec.rb +0 -1
- data/spec/integration/associations/foreign_key_spec.rb +0 -1
- data/spec/integration/associations/foreign_key_spec_models.rb +0 -1
- data/spec/integration/associations/has_many_spec.rb +0 -1
- data/spec/integration/associations/has_one_spec.rb +0 -1
- data/spec/integration/associations/nested_attributes_assignment_spec.rb +0 -1
- data/spec/integration/associations/reverse_population_spec.rb +0 -1
- data/spec/integration/associations/reverse_population_spec_models.rb +0 -1
- data/spec/integration/associations/scope_option_spec.rb +101 -0
- data/spec/integration/atomic/modifiers_spec.rb +0 -1
- data/spec/integration/bson_regexp_raw_spec.rb +0 -1
- data/spec/integration/callbacks_models.rb +12 -0
- data/spec/integration/callbacks_spec.rb +18 -6
- data/spec/integration/contextual/empty_spec.rb +141 -0
- data/spec/integration/criteria/alias_query_spec.rb +161 -0
- data/spec/integration/criteria/date_field_spec.rb +0 -1
- data/spec/integration/criteria/default_scope_spec.rb +51 -0
- data/spec/integration/criteria/logical_spec.rb +30 -0
- data/spec/integration/criteria/range_spec.rb +265 -0
- data/spec/integration/criteria/time_with_zone_spec.rb +125 -15
- data/spec/integration/discriminator_key_spec.rb +0 -1
- data/spec/integration/discriminator_value_spec.rb +0 -1
- data/spec/integration/document_spec.rb +0 -1
- data/spec/integration/i18n_fallbacks_spec.rb +0 -1
- data/spec/integration/matcher_examples_spec.rb +0 -1
- data/spec/integration/matcher_operator_spec.rb +27 -3
- data/spec/integration/matcher_spec.rb +95 -1
- data/spec/integration/server_query_spec.rb +0 -1
- data/spec/integration/shardable_spec.rb +0 -1
- data/spec/integration/stringified_symbol_field_spec.rb +16 -3
- data/spec/lite_spec_helper.rb +8 -2
- data/spec/mongoid/association/accessors_spec.rb +44 -15
- data/spec/mongoid/association/auto_save_spec.rb +72 -34
- data/spec/mongoid/association/builders_spec.rb +1 -2
- data/spec/mongoid/association/constrainable_spec.rb +0 -1
- data/spec/mongoid/association/counter_cache_spec.rb +32 -33
- data/spec/mongoid/association/depending_spec.rb +12 -13
- data/spec/mongoid/association/eager_spec.rb +4 -5
- data/spec/mongoid/association/embedded/cyclic_spec.rb +2 -3
- data/spec/mongoid/association/embedded/dirty_spec.rb +2 -3
- data/spec/mongoid/association/embedded/embedded_in/binding_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embedded_in/buildable_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embedded_in/proxy_spec.rb +13 -14
- data/spec/mongoid/association/embedded/embedded_in_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_many/binding_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_many/buildable_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_many/proxy_spec.rb +384 -135
- data/spec/mongoid/association/embedded/embeds_many_models.rb +16 -1
- data/spec/mongoid/association/embedded/embeds_many_query_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_many_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one/binding_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one/buildable_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one/proxy_spec.rb +21 -22
- data/spec/mongoid/association/embedded/embeds_one_dnl_models.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one_models.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one_query_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one_spec.rb +0 -1
- data/spec/mongoid/association/macros_spec.rb +9 -10
- data/spec/mongoid/association/nested/many_spec.rb +0 -1
- data/spec/mongoid/association/nested/one_spec.rb +0 -1
- data/spec/mongoid/association/options_spec.rb +0 -1
- data/spec/mongoid/association/polymorphic_spec.rb +0 -1
- data/spec/mongoid/association/referenced/belongs_to/binding_spec.rb +0 -1
- data/spec/mongoid/association/referenced/belongs_to/buildable_spec.rb +55 -17
- data/spec/mongoid/association/referenced/belongs_to/eager_spec.rb +50 -15
- data/spec/mongoid/association/referenced/belongs_to/proxy_spec.rb +57 -53
- data/spec/mongoid/association/referenced/belongs_to_query_spec.rb +20 -1
- data/spec/mongoid/association/referenced/belongs_to_spec.rb +22 -2
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/binding_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/buildable_spec.rb +26 -2
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/eager_spec.rb +31 -3
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_persistence_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_spec.rb +179 -154
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_models.rb +18 -1
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_spec.rb +21 -1
- data/spec/mongoid/association/referenced/has_many/binding_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_many/buildable_spec.rb +21 -1
- data/spec/mongoid/association/referenced/has_many/eager_spec.rb +23 -7
- data/spec/mongoid/association/referenced/has_many/enumerable_spec.rb +303 -125
- data/spec/mongoid/association/referenced/has_many/proxy_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_many/proxy_spec.rb +227 -164
- data/spec/mongoid/association/referenced/has_many_models.rb +35 -1
- data/spec/mongoid/association/referenced/has_many_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_many_spec.rb +21 -1
- data/spec/mongoid/association/referenced/has_one/binding_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_one/buildable_spec.rb +51 -8
- data/spec/mongoid/association/referenced/has_one/eager_spec.rb +17 -2
- data/spec/mongoid/association/referenced/has_one/proxy_spec.rb +26 -27
- data/spec/mongoid/association/referenced/has_one_models.rb +18 -1
- data/spec/mongoid/association/referenced/has_one_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_one_spec.rb +21 -1
- data/spec/mongoid/association/reflections_spec.rb +0 -1
- data/spec/mongoid/association/syncable_spec.rb +31 -32
- data/spec/mongoid/association_spec.rb +0 -1
- data/spec/mongoid/atomic/modifiers_spec.rb +0 -1
- data/spec/mongoid/atomic/paths/embedded/many_spec.rb +0 -1
- data/spec/mongoid/atomic/paths/embedded/one_spec.rb +0 -1
- data/spec/mongoid/atomic/paths/root_spec.rb +0 -1
- data/spec/mongoid/atomic/paths_spec.rb +0 -1
- data/spec/mongoid/atomic_spec.rb +6 -7
- data/spec/mongoid/attributes/dynamic_spec.rb +0 -1
- data/spec/mongoid/attributes/nested_spec.rb +66 -67
- data/spec/mongoid/attributes/projector_spec.rb +5 -2
- data/spec/mongoid/attributes/readonly_spec.rb +22 -23
- data/spec/mongoid/attributes_spec.rb +32 -33
- data/spec/mongoid/cacheable_spec.rb +1 -2
- data/spec/mongoid/changeable_spec.rb +35 -36
- data/spec/mongoid/clients/factory_spec.rb +9 -4
- data/spec/mongoid/clients/options_spec.rb +15 -10
- data/spec/mongoid/clients/sessions_spec.rb +22 -23
- data/spec/mongoid/clients/transactions_spec.rb +49 -27
- data/spec/mongoid/clients_spec.rb +6 -7
- data/spec/mongoid/composable_spec.rb +0 -1
- data/spec/mongoid/config/environment_spec.rb +86 -9
- data/spec/mongoid/config/options_spec.rb +0 -1
- data/spec/mongoid/config_spec.rb +194 -17
- data/spec/mongoid/contextual/aggregable/memory_spec.rb +51 -12
- data/spec/mongoid/contextual/aggregable/mongo_spec.rb +120 -21
- data/spec/mongoid/contextual/aggregable/none_spec.rb +60 -0
- data/spec/mongoid/contextual/atomic_spec.rb +109 -71
- data/spec/mongoid/contextual/geo_near_spec.rb +18 -19
- data/spec/mongoid/contextual/map_reduce_spec.rb +2 -3
- data/spec/mongoid/contextual/memory_spec.rb +23 -24
- data/spec/mongoid/contextual/mongo_spec.rb +339 -77
- data/spec/mongoid/contextual/none_spec.rb +7 -82
- data/spec/mongoid/copyable_spec.rb +11 -12
- data/spec/mongoid/copyable_spec_models.rb +0 -1
- data/spec/mongoid/criteria/findable_spec.rb +23 -24
- data/spec/mongoid/criteria/inspectable_spec.rb +0 -1
- data/spec/mongoid/criteria/marshalable_spec.rb +0 -1
- data/spec/mongoid/criteria/modifiable_spec.rb +36 -37
- data/spec/mongoid/criteria/options_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/aggregable_spec.rb +1 -2
- data/spec/mongoid/criteria/queryable/expandable_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/array_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/big_decimal_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/bignum_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/boolean_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/date_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/date_time_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/fixnum_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/float_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/hash_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/integer_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/nil_class_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/numeric_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/object_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/range_spec.rb +237 -179
- data/spec/mongoid/criteria/queryable/extensions/regexp_raw_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/regexp_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/set_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/string_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/symbol_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/time_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/time_with_zone_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/key_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/mergeable_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/optional_spec.rb +1 -2
- data/spec/mongoid/criteria/queryable/options_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/pipeline_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/queryable_spec.rb +1 -2
- data/spec/mongoid/criteria/queryable/selectable_logical_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/selectable_shared_examples.rb +0 -1
- data/spec/mongoid/criteria/queryable/selectable_spec.rb +15 -16
- data/spec/mongoid/criteria/queryable/selectable_where_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/selector_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/smash_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/storable_spec.rb +37 -1
- data/spec/mongoid/criteria/scopable_spec.rb +127 -1
- data/spec/mongoid/criteria_projection_spec.rb +3 -4
- data/spec/mongoid/criteria_spec.rb +546 -186
- data/spec/mongoid/document_fields_spec.rb +0 -1
- data/spec/mongoid/document_persistence_context_spec.rb +0 -1
- data/spec/mongoid/document_query_spec.rb +0 -1
- data/spec/mongoid/document_spec.rb +32 -34
- data/spec/mongoid/equality_spec.rb +142 -41
- data/spec/mongoid/errors/ambiguous_relationship_spec.rb +0 -1
- data/spec/mongoid/errors/callback_spec.rb +0 -1
- data/spec/mongoid/errors/delete_restriction_spec.rb +0 -1
- data/spec/mongoid/errors/document_not_destroyed_spec.rb +0 -1
- data/spec/mongoid/errors/document_not_found_spec.rb +0 -1
- data/spec/mongoid/errors/eager_load_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_collection_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_config_file_spec.rb +31 -0
- data/spec/mongoid/errors/invalid_config_option_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_field_option_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_field_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_find_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_includes_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_index_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_options_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_path_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_relation_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_scope_spec.rb +1 -2
- data/spec/mongoid/errors/invalid_set_polymorphic_relation_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_storage_options_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_time_spec.rb +0 -1
- data/spec/mongoid/errors/inverse_not_found_spec.rb +0 -1
- data/spec/mongoid/errors/mixed_client_configuration_spec.rb +0 -1
- data/spec/mongoid/errors/mixed_relations_spec.rb +0 -1
- data/spec/mongoid/errors/mongoid_error_spec.rb +0 -1
- data/spec/mongoid/errors/nested_attributes_metadata_not_found_spec.rb +0 -1
- data/spec/mongoid/errors/no_client_config_spec.rb +0 -1
- data/spec/mongoid/errors/no_client_database_spec.rb +0 -1
- data/spec/mongoid/errors/no_client_hosts_spec.rb +0 -1
- data/spec/mongoid/errors/no_clients_config_spec.rb +0 -1
- data/spec/mongoid/errors/no_environment_spec.rb +0 -1
- data/spec/mongoid/errors/no_map_reduce_output_spec.rb +0 -1
- data/spec/mongoid/errors/no_metadata_spec.rb +0 -1
- data/spec/mongoid/errors/no_parent_spec.rb +0 -1
- data/spec/mongoid/errors/readonly_attribute_spec.rb +0 -1
- data/spec/mongoid/errors/readonly_document_spec.rb +0 -1
- data/spec/mongoid/errors/scope_overwrite_spec.rb +0 -1
- data/spec/mongoid/errors/too_many_nested_attribute_records_spec.rb +0 -1
- data/spec/mongoid/errors/unknown_attribute_spec.rb +2 -3
- data/spec/mongoid/errors/unsaved_document_spec.rb +0 -1
- data/spec/mongoid/errors/unsupported_javascript_spec.rb +0 -1
- data/spec/mongoid/errors/validations_spec.rb +0 -1
- data/spec/mongoid/extensions/array_spec.rb +0 -1
- data/spec/mongoid/extensions/big_decimal_spec.rb +0 -1
- data/spec/mongoid/extensions/binary_spec.rb +0 -1
- data/spec/mongoid/extensions/boolean_spec.rb +0 -1
- data/spec/mongoid/extensions/date_class_mongoize_spec.rb +0 -1
- data/spec/mongoid/extensions/date_spec.rb +0 -1
- data/spec/mongoid/extensions/date_time_spec.rb +0 -1
- data/spec/mongoid/extensions/decimal128_spec.rb +0 -1
- data/spec/mongoid/extensions/false_class_spec.rb +0 -1
- data/spec/mongoid/extensions/float_spec.rb +0 -1
- data/spec/mongoid/extensions/hash_spec.rb +0 -1
- data/spec/mongoid/extensions/integer_spec.rb +0 -1
- data/spec/mongoid/extensions/module_spec.rb +0 -1
- data/spec/mongoid/extensions/nil_class_spec.rb +0 -1
- data/spec/mongoid/extensions/object_id_spec.rb +0 -1
- data/spec/mongoid/extensions/object_spec.rb +0 -1
- data/spec/mongoid/extensions/range_spec.rb +0 -1
- data/spec/mongoid/extensions/regexp_spec.rb +0 -1
- data/spec/mongoid/extensions/set_spec.rb +0 -1
- data/spec/mongoid/extensions/string_spec.rb +2 -3
- data/spec/mongoid/extensions/stringified_symbol_spec.rb +0 -1
- data/spec/mongoid/extensions/symbol_spec.rb +0 -1
- data/spec/mongoid/extensions/time_spec.rb +0 -1
- data/spec/mongoid/extensions/time_with_zone_spec.rb +0 -1
- data/spec/mongoid/extensions/true_class_spec.rb +0 -1
- data/spec/mongoid/extensions_spec.rb +14 -3
- data/spec/mongoid/factory_spec.rb +1 -1
- data/spec/mongoid/fields/foreign_key_spec.rb +0 -1
- data/spec/mongoid/fields/localized_spec.rb +0 -1
- data/spec/mongoid/fields/standard_spec.rb +0 -1
- data/spec/mongoid/fields_spec.rb +326 -31
- data/spec/mongoid/findable_spec.rb +21 -22
- data/spec/mongoid/indexable/specification_spec.rb +0 -1
- data/spec/mongoid/indexable_spec.rb +0 -1
- data/spec/mongoid/inspectable_spec.rb +0 -1
- data/spec/mongoid/interceptable_spec.rb +102 -95
- data/spec/mongoid/loggable_spec.rb +0 -1
- data/spec/mongoid/matcher/extract_attribute_spec.rb +5 -2
- data/spec/mongoid/persistable/creatable_spec.rb +2 -3
- data/spec/mongoid/persistable/deletable_spec.rb +18 -19
- data/spec/mongoid/persistable/destroyable_spec.rb +8 -9
- data/spec/mongoid/persistable/incrementable_spec.rb +8 -9
- data/spec/mongoid/persistable/logical_spec.rb +4 -5
- data/spec/mongoid/persistable/poppable_spec.rb +4 -5
- data/spec/mongoid/persistable/pullable_spec.rb +8 -9
- data/spec/mongoid/persistable/pushable_spec.rb +8 -9
- data/spec/mongoid/persistable/renamable_spec.rb +3 -4
- data/spec/mongoid/persistable/savable_spec.rb +15 -11
- data/spec/mongoid/persistable/settable_spec.rb +9 -10
- data/spec/mongoid/persistable/unsettable_spec.rb +4 -5
- data/spec/mongoid/persistable/updatable_spec.rb +43 -24
- data/spec/mongoid/persistable/upsertable_spec.rb +1 -2
- data/spec/mongoid/persistable_spec.rb +1 -2
- data/spec/mongoid/persistence_context_spec.rb +0 -1
- data/spec/mongoid/positional_spec.rb +0 -1
- data/spec/mongoid/query_cache_middleware_spec.rb +1 -2
- data/spec/mongoid/query_cache_spec.rb +56 -10
- data/spec/mongoid/relations/proxy_spec.rb +6 -7
- data/spec/mongoid/reloadable_spec.rb +209 -23
- data/spec/mongoid/scopable_spec.rb +65 -22
- data/spec/mongoid/selectable_spec.rb +6 -7
- data/spec/mongoid/serializable_spec.rb +9 -10
- data/spec/mongoid/shardable_spec.rb +2 -3
- data/spec/mongoid/stateful_spec.rb +1 -2
- data/spec/mongoid/tasks/database_rake_spec.rb +0 -1
- data/spec/mongoid/tasks/database_spec.rb +0 -1
- data/spec/mongoid/threaded_spec.rb +2 -3
- data/spec/mongoid/timestamps/created/short_spec.rb +1 -2
- data/spec/mongoid/timestamps/created_spec.rb +1 -2
- data/spec/mongoid/timestamps/timeless_spec.rb +2 -3
- data/spec/mongoid/timestamps/updated/short_spec.rb +3 -4
- data/spec/mongoid/timestamps/updated_spec.rb +3 -4
- data/spec/mongoid/timestamps_spec.rb +6 -7
- data/spec/mongoid/touchable_spec.rb +33 -20
- data/spec/mongoid/touchable_spec_models.rb +2 -1
- data/spec/mongoid/traversable_spec.rb +65 -2
- data/spec/mongoid/validatable/associated_spec.rb +0 -1
- data/spec/mongoid/validatable/format_spec.rb +0 -1
- data/spec/mongoid/validatable/length_spec.rb +0 -1
- data/spec/mongoid/validatable/numericality_spec.rb +0 -1
- data/spec/mongoid/validatable/presence_spec.rb +26 -23
- data/spec/mongoid/validatable/uniqueness_spec.rb +67 -68
- data/spec/mongoid/validatable_spec.rb +2 -3
- data/spec/mongoid_spec.rb +0 -1
- data/spec/rails/controller_extension/controller_runtime_spec.rb +0 -1
- data/spec/rails/mongoid_spec.rb +0 -1
- data/spec/shared/lib/mrss/cluster_config.rb +6 -1
- data/spec/shared/lib/mrss/constraints.rb +23 -5
- data/spec/shared/lib/mrss/docker_runner.rb +1 -1
- data/spec/shared/lib/mrss/event_subscriber.rb +200 -0
- data/spec/shared/lib/mrss/lite_constraints.rb +8 -0
- data/spec/shared/lib/mrss/server_version_registry.rb +17 -12
- data/spec/shared/lib/mrss/session_registry.rb +69 -0
- data/spec/shared/lib/mrss/session_registry_legacy.rb +60 -0
- data/spec/shared/share/Dockerfile.erb +27 -10
- data/spec/shared/shlib/distro.sh +2 -1
- data/spec/shared/shlib/server.sh +85 -23
- data/spec/shared/shlib/set_env.sh +6 -5
- data/spec/spec_helper.rb +12 -22
- data/spec/support/authorization.rb +0 -1
- data/spec/support/constraints.rb +0 -1
- data/spec/support/expectations.rb +0 -1
- data/spec/support/macros.rb +22 -1
- data/spec/support/models/account.rb +1 -2
- data/spec/support/models/acolyte.rb +0 -1
- data/spec/support/models/actor.rb +0 -1
- data/spec/support/models/actress.rb +0 -1
- data/spec/support/models/address.rb +0 -1
- data/spec/support/models/address_component.rb +0 -1
- data/spec/support/models/address_number.rb +0 -1
- data/spec/support/models/agency.rb +0 -1
- data/spec/support/models/agent.rb +0 -1
- data/spec/support/models/album.rb +0 -1
- data/spec/support/models/alert.rb +0 -1
- data/spec/support/models/animal.rb +0 -1
- data/spec/support/models/answer.rb +0 -1
- data/spec/support/models/appointment.rb +0 -1
- data/spec/support/models/armrest.rb +0 -1
- data/spec/support/models/array_field.rb +0 -1
- data/spec/support/models/article.rb +0 -1
- data/spec/support/models/artist.rb +2 -1
- data/spec/support/models/artwork.rb +0 -1
- data/spec/support/models/audible_sound.rb +3 -0
- data/spec/support/models/audio.rb +0 -1
- data/spec/support/models/augmentation.rb +0 -1
- data/spec/support/models/author.rb +0 -1
- data/spec/support/models/baby.rb +0 -1
- data/spec/support/models/band.rb +4 -1
- data/spec/support/models/bar.rb +0 -1
- data/spec/support/models/basic.rb +0 -1
- data/spec/support/models/bed.rb +0 -1
- data/spec/support/models/big_palette.rb +0 -1
- data/spec/support/models/birthday.rb +0 -1
- data/spec/support/models/bolt.rb +0 -1
- data/spec/support/models/bomb.rb +0 -1
- data/spec/support/models/book.rb +0 -1
- data/spec/support/models/breed.rb +0 -1
- data/spec/support/models/browser.rb +0 -1
- data/spec/support/models/building.rb +0 -1
- data/spec/support/models/building_address.rb +0 -1
- data/spec/support/models/bus.rb +0 -1
- data/spec/support/models/business.rb +0 -1
- data/spec/support/models/callback_test.rb +0 -1
- data/spec/support/models/canvas.rb +0 -1
- data/spec/support/models/car.rb +0 -1
- data/spec/support/models/cat.rb +0 -1
- data/spec/support/models/category.rb +0 -1
- data/spec/support/models/child.rb +0 -1
- data/spec/support/models/child_doc.rb +3 -4
- data/spec/support/models/church.rb +0 -1
- data/spec/support/models/circle.rb +0 -1
- data/spec/support/models/circuit.rb +0 -1
- data/spec/support/models/circus.rb +0 -1
- data/spec/support/models/code.rb +0 -1
- data/spec/support/models/coding/pull_request.rb +0 -1
- data/spec/support/models/coding.rb +0 -1
- data/spec/support/models/comment.rb +0 -1
- data/spec/support/models/company.rb +0 -1
- data/spec/support/models/consumption_period.rb +0 -1
- data/spec/support/models/contextable_item.rb +0 -1
- data/spec/support/models/contractor.rb +0 -1
- data/spec/support/models/cookie.rb +0 -1
- data/spec/support/models/country_code.rb +2 -1
- data/spec/support/models/courier_job.rb +0 -1
- data/spec/support/models/crate.rb +0 -1
- data/spec/support/models/customer.rb +0 -1
- data/spec/support/models/customer_address.rb +0 -1
- data/spec/support/models/deed.rb +0 -1
- data/spec/support/models/definition.rb +0 -1
- data/spec/support/models/delegating_patient.rb +0 -1
- data/spec/support/models/description.rb +0 -1
- data/spec/support/models/dictionary.rb +0 -1
- data/spec/support/models/division.rb +0 -1
- data/spec/support/models/doctor.rb +0 -1
- data/spec/support/models/dog.rb +0 -1
- data/spec/support/models/dokument.rb +0 -1
- data/spec/support/models/draft.rb +0 -1
- data/spec/support/models/dragon.rb +0 -1
- data/spec/support/models/driver.rb +0 -1
- data/spec/support/models/drug.rb +0 -1
- data/spec/support/models/dungeon.rb +0 -1
- data/spec/support/models/edit.rb +0 -1
- data/spec/support/models/email.rb +0 -1
- data/spec/support/models/employer.rb +0 -1
- data/spec/support/models/entry.rb +0 -1
- data/spec/support/models/eraser.rb +0 -1
- data/spec/support/models/even.rb +0 -1
- data/spec/support/models/event.rb +0 -1
- data/spec/support/models/exhibition.rb +0 -1
- data/spec/support/models/exhibitor.rb +0 -1
- data/spec/support/models/explosion.rb +0 -1
- data/spec/support/models/eye.rb +0 -1
- data/spec/support/models/eye_bowl.rb +0 -1
- data/spec/support/models/face.rb +0 -1
- data/spec/support/models/favorite.rb +0 -1
- data/spec/support/models/filesystem.rb +0 -1
- data/spec/support/models/fire_hydrant.rb +0 -1
- data/spec/support/models/firefox.rb +0 -1
- data/spec/support/models/fish.rb +0 -1
- data/spec/support/models/folder.rb +0 -1
- data/spec/support/models/folder_item.rb +0 -1
- data/spec/support/models/fruits.rb +0 -1
- data/spec/support/models/game.rb +0 -1
- data/spec/support/models/ghost.rb +0 -1
- data/spec/support/models/guitar.rb +0 -1
- data/spec/support/models/hole.rb +0 -1
- data/spec/support/models/home.rb +0 -1
- data/spec/support/models/house.rb +0 -1
- data/spec/support/models/html_writer.rb +0 -1
- data/spec/support/models/id_key.rb +0 -1
- data/spec/support/models/idnodef.rb +0 -1
- data/spec/support/models/image.rb +0 -1
- data/spec/support/models/implant.rb +0 -1
- data/spec/support/models/instrument.rb +0 -1
- data/spec/support/models/item.rb +0 -1
- data/spec/support/models/jar.rb +0 -1
- data/spec/support/models/kaleidoscope.rb +0 -1
- data/spec/support/models/kangaroo.rb +0 -1
- data/spec/support/models/label.rb +2 -2
- data/spec/support/models/language.rb +0 -1
- data/spec/support/models/lat_lng.rb +0 -1
- data/spec/support/models/league.rb +0 -1
- data/spec/support/models/learner.rb +0 -1
- data/spec/support/models/line_item.rb +0 -1
- data/spec/support/models/location.rb +0 -1
- data/spec/support/models/login.rb +0 -1
- data/spec/support/models/manufacturer.rb +0 -1
- data/spec/support/models/meat.rb +0 -1
- data/spec/support/models/membership.rb +0 -1
- data/spec/support/models/message.rb +0 -1
- data/spec/support/models/minim.rb +0 -1
- data/spec/support/models/mixed_drink.rb +0 -1
- data/spec/support/models/mop.rb +0 -1
- data/spec/support/models/movie.rb +0 -1
- data/spec/support/models/my_hash.rb +0 -1
- data/spec/support/models/name.rb +0 -1
- data/spec/support/models/name_only.rb +0 -1
- data/spec/support/models/node.rb +0 -1
- data/spec/support/models/note.rb +0 -1
- data/spec/support/models/nut.rb +0 -1
- data/spec/support/models/odd.rb +0 -1
- data/spec/support/models/order.rb +2 -1
- data/spec/support/models/ordered_post.rb +1 -2
- data/spec/support/models/ordered_preference.rb +0 -1
- data/spec/support/models/oscar.rb +0 -1
- data/spec/support/models/other_owner_object.rb +0 -1
- data/spec/support/models/override.rb +0 -1
- data/spec/support/models/ownable.rb +0 -1
- data/spec/support/models/owner.rb +0 -1
- data/spec/support/models/pack.rb +0 -1
- data/spec/support/models/page.rb +0 -1
- data/spec/support/models/page_question.rb +0 -1
- data/spec/support/models/palette.rb +0 -1
- data/spec/support/models/parent.rb +0 -1
- data/spec/support/models/parent_doc.rb +0 -1
- data/spec/support/models/passport.rb +5 -1
- data/spec/support/models/patient.rb +0 -1
- data/spec/support/models/pdf_writer.rb +0 -1
- data/spec/support/models/pencil.rb +0 -1
- data/spec/support/models/person.rb +1 -1
- data/spec/support/models/pet.rb +0 -1
- data/spec/support/models/pet_owner.rb +0 -1
- data/spec/support/models/phone.rb +2 -2
- data/spec/support/models/piano.rb +0 -1
- data/spec/support/models/pizza.rb +0 -1
- data/spec/support/models/player.rb +0 -1
- data/spec/support/models/post.rb +0 -1
- data/spec/support/models/post_genre.rb +0 -1
- data/spec/support/models/powerup.rb +0 -1
- data/spec/support/models/preference.rb +0 -1
- data/spec/support/models/princess.rb +0 -1
- data/spec/support/models/product.rb +0 -1
- data/spec/support/models/profile.rb +0 -1
- data/spec/support/models/pronunciation.rb +0 -1
- data/spec/support/models/pub.rb +0 -1
- data/spec/support/models/publication/encyclopedia.rb +0 -1
- data/spec/support/models/publication/review.rb +0 -1
- data/spec/support/models/publication.rb +0 -1
- data/spec/support/models/purchase.rb +0 -1
- data/spec/support/models/purchased_item.rb +10 -0
- data/spec/support/models/question.rb +0 -1
- data/spec/support/models/quiz.rb +0 -1
- data/spec/support/models/rating.rb +0 -1
- data/spec/support/models/record.rb +0 -1
- data/spec/support/models/registry.rb +0 -1
- data/spec/support/models/role.rb +0 -1
- data/spec/support/models/root_category.rb +0 -1
- data/spec/support/models/sandwich.rb +0 -1
- data/spec/support/models/scheduler.rb +0 -1
- data/spec/support/models/scribe.rb +0 -1
- data/spec/support/models/sealer.rb +0 -1
- data/spec/support/models/seat.rb +0 -1
- data/spec/support/models/seo.rb +0 -1
- data/spec/support/models/series.rb +0 -1
- data/spec/support/models/server.rb +0 -1
- data/spec/support/models/service.rb +0 -1
- data/spec/support/models/shape.rb +0 -1
- data/spec/support/models/shelf.rb +0 -1
- data/spec/support/models/shipment_address.rb +0 -1
- data/spec/support/models/shipping_container.rb +0 -1
- data/spec/support/models/shipping_pack.rb +0 -1
- data/spec/support/models/shirt.rb +0 -1
- data/spec/support/models/shop.rb +0 -1
- data/spec/support/models/short_agent.rb +0 -1
- data/spec/support/models/short_quiz.rb +0 -1
- data/spec/support/models/simple.rb +0 -1
- data/spec/support/models/slave.rb +0 -1
- data/spec/support/models/song.rb +0 -1
- data/spec/support/models/sound.rb +0 -1
- data/spec/support/models/spacer.rb +0 -1
- data/spec/support/models/square.rb +0 -1
- data/spec/support/models/staff.rb +0 -1
- data/spec/support/models/store_as_dup_test1.rb +0 -1
- data/spec/support/models/store_as_dup_test2.rb +0 -1
- data/spec/support/models/store_as_dup_test3.rb +0 -1
- data/spec/support/models/store_as_dup_test4.rb +0 -1
- data/spec/support/models/strategy.rb +0 -1
- data/spec/support/models/sub_item.rb +0 -1
- data/spec/support/models/subscription.rb +0 -1
- data/spec/support/models/survey.rb +0 -1
- data/spec/support/models/symptom.rb +0 -1
- data/spec/support/models/tag.rb +0 -1
- data/spec/support/models/target.rb +0 -1
- data/spec/support/models/template.rb +0 -1
- data/spec/support/models/thing.rb +0 -1
- data/spec/support/models/threadlocker.rb +0 -1
- data/spec/support/models/title.rb +0 -1
- data/spec/support/models/tool.rb +0 -1
- data/spec/support/models/topping.rb +0 -1
- data/spec/support/models/toy.rb +0 -1
- data/spec/support/models/track.rb +0 -1
- data/spec/support/models/translation.rb +0 -1
- data/spec/support/models/tree.rb +0 -1
- data/spec/support/models/truck.rb +0 -1
- data/spec/support/models/updatable.rb +0 -1
- data/spec/support/models/user.rb +0 -1
- data/spec/support/models/user_account.rb +0 -1
- data/spec/support/models/validation_callback.rb +0 -1
- data/spec/support/models/vehicle.rb +0 -1
- data/spec/support/models/version.rb +0 -1
- data/spec/support/models/vertex.rb +0 -1
- data/spec/support/models/vet_visit.rb +0 -1
- data/spec/support/models/video.rb +0 -1
- data/spec/support/models/video_game.rb +0 -1
- data/spec/support/models/washer.rb +0 -1
- data/spec/support/models/weapon.rb +0 -1
- data/spec/support/models/wiki_page.rb +0 -1
- data/spec/support/models/word.rb +0 -1
- data/spec/support/models/word_origin.rb +0 -1
- data/spec/support/models/writer.rb +0 -1
- data/spec/support/shared/time.rb +0 -1
- data/spec/support/spec_config.rb +3 -1
- data.tar.gz.sig +0 -0
- metadata +642 -610
- metadata.gz.sig +0 -0
- data/lib/support/ruby_version.rb +0 -29
- data/spec/support/session_registry.rb +0 -50
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
module Contextual
|
|
@@ -13,8 +12,6 @@ module Mongoid
|
|
|
13
12
|
# @param [ Hash ] adds The operations.
|
|
14
13
|
#
|
|
15
14
|
# @return [ nil ] Nil.
|
|
16
|
-
#
|
|
17
|
-
# @since 3.0.0
|
|
18
15
|
def add_to_set(adds)
|
|
19
16
|
view.update_many("$addToSet" => collect_operations(adds))
|
|
20
17
|
end
|
|
@@ -27,8 +24,6 @@ module Mongoid
|
|
|
27
24
|
# @param [ Hash ] adds The operations.
|
|
28
25
|
#
|
|
29
26
|
# @return [ nil ] Nil.
|
|
30
|
-
#
|
|
31
|
-
# @since 7.0.0
|
|
32
27
|
def add_each_to_set(adds)
|
|
33
28
|
view.update_many("$addToSet" => collect_each_operations(adds))
|
|
34
29
|
end
|
|
@@ -41,8 +36,6 @@ module Mongoid
|
|
|
41
36
|
# @param [ Hash ] bits The operations.
|
|
42
37
|
#
|
|
43
38
|
# @return [ nil ] Nil.
|
|
44
|
-
#
|
|
45
|
-
# @since 3.0.0
|
|
46
39
|
def bit(bits)
|
|
47
40
|
view.update_many("$bit" => collect_operations(bits))
|
|
48
41
|
end
|
|
@@ -55,8 +48,6 @@ module Mongoid
|
|
|
55
48
|
# @param [ Hash ] incs The operations.
|
|
56
49
|
#
|
|
57
50
|
# @return [ nil ] Nil.
|
|
58
|
-
#
|
|
59
|
-
# @since 3.0.0
|
|
60
51
|
def inc(incs)
|
|
61
52
|
view.update_many("$inc" => collect_operations(incs))
|
|
62
53
|
end
|
|
@@ -72,8 +63,6 @@ module Mongoid
|
|
|
72
63
|
# @param [ Hash ] pops The operations.
|
|
73
64
|
#
|
|
74
65
|
# @return [ nil ] Nil.
|
|
75
|
-
#
|
|
76
|
-
# @since 3.0.0
|
|
77
66
|
def pop(pops)
|
|
78
67
|
view.update_many("$pop" => collect_operations(pops))
|
|
79
68
|
end
|
|
@@ -88,8 +77,6 @@ module Mongoid
|
|
|
88
77
|
# @param [ Hash ] pulls The operations.
|
|
89
78
|
#
|
|
90
79
|
# @return [ nil ] Nil.
|
|
91
|
-
#
|
|
92
|
-
# @since 3.0.0
|
|
93
80
|
def pull(pulls)
|
|
94
81
|
view.update_many("$pull" => collect_operations(pulls))
|
|
95
82
|
end
|
|
@@ -102,8 +89,6 @@ module Mongoid
|
|
|
102
89
|
# @param [ Hash ] pulls The operations.
|
|
103
90
|
#
|
|
104
91
|
# @return [ nil ] Nil.
|
|
105
|
-
#
|
|
106
|
-
# @since 3.0.0
|
|
107
92
|
def pull_all(pulls)
|
|
108
93
|
view.update_many("$pullAll" => collect_operations(pulls))
|
|
109
94
|
end
|
|
@@ -116,8 +101,6 @@ module Mongoid
|
|
|
116
101
|
# @param [ Hash ] pushes The operations.
|
|
117
102
|
#
|
|
118
103
|
# @return [ nil ] Nil.
|
|
119
|
-
#
|
|
120
|
-
# @since 3.0.0
|
|
121
104
|
def push(pushes)
|
|
122
105
|
view.update_many("$push" => collect_operations(pushes))
|
|
123
106
|
end
|
|
@@ -130,8 +113,6 @@ module Mongoid
|
|
|
130
113
|
# @param [ Hash ] pushes The operations.
|
|
131
114
|
#
|
|
132
115
|
# @return [ nil ] Nil.
|
|
133
|
-
#
|
|
134
|
-
# @since 3.0.0
|
|
135
116
|
def push_all(pushes)
|
|
136
117
|
view.update_many("$push" => collect_each_operations(pushes))
|
|
137
118
|
end
|
|
@@ -144,8 +125,6 @@ module Mongoid
|
|
|
144
125
|
# @param [ Hash ] renames The operations.
|
|
145
126
|
#
|
|
146
127
|
# @return [ nil ] Nil.
|
|
147
|
-
#
|
|
148
|
-
# @since 3.0.0
|
|
149
128
|
def rename(renames)
|
|
150
129
|
operations = renames.inject({}) do |ops, (old_name, new_name)|
|
|
151
130
|
ops[old_name] = new_name.to_s
|
|
@@ -162,8 +141,6 @@ module Mongoid
|
|
|
162
141
|
# @param [ Hash ] sets The operations.
|
|
163
142
|
#
|
|
164
143
|
# @return [ nil ] Nil.
|
|
165
|
-
#
|
|
166
|
-
# @since 3.0.0
|
|
167
144
|
def set(sets)
|
|
168
145
|
view.update_many("$set" => collect_operations(sets))
|
|
169
146
|
end
|
|
@@ -173,13 +150,16 @@ module Mongoid
|
|
|
173
150
|
# @example Unset the field on the matches.
|
|
174
151
|
# context.unset(:name)
|
|
175
152
|
#
|
|
176
|
-
# @param [ String
|
|
153
|
+
# @param [ String | Symbol | Array<String|Symbol> | Hash ] args
|
|
154
|
+
# The name(s) of the field(s) to unset.
|
|
155
|
+
# If a Hash is specified, its keys will be used irrespective of what
|
|
156
|
+
# each key's value is, even if the value is nil or false.
|
|
177
157
|
#
|
|
178
158
|
# @return [ nil ] Nil.
|
|
179
|
-
#
|
|
180
|
-
# @since 3.0.0
|
|
181
159
|
def unset(*args)
|
|
182
|
-
fields = args.
|
|
160
|
+
fields = args.map { |a| a.is_a?(Hash) ? a.keys : a }
|
|
161
|
+
.__find_args__
|
|
162
|
+
.map { |f| [database_field_name(f), true] }
|
|
183
163
|
view.update_many("$unset" => Hash[fields])
|
|
184
164
|
end
|
|
185
165
|
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
module Contextual
|
|
@@ -15,8 +14,6 @@ module Mongoid
|
|
|
15
14
|
# command.command
|
|
16
15
|
#
|
|
17
16
|
# @return [ Hash ] The db command.
|
|
18
|
-
#
|
|
19
|
-
# @since 3.0.0
|
|
20
17
|
def command
|
|
21
18
|
@command ||= {}
|
|
22
19
|
end
|
|
@@ -27,8 +24,6 @@ module Mongoid
|
|
|
27
24
|
# command.client
|
|
28
25
|
#
|
|
29
26
|
# @return [ Mongo::Client ] The Mongo client.
|
|
30
|
-
#
|
|
31
|
-
# @since 3.0.0
|
|
32
27
|
def client
|
|
33
28
|
collection.database.client
|
|
34
29
|
end
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
module Contextual
|
|
@@ -18,8 +17,6 @@ module Mongoid
|
|
|
18
17
|
# geo_near.average_distance
|
|
19
18
|
#
|
|
20
19
|
# @return [ Float, nil ] The average distance.
|
|
21
|
-
#
|
|
22
|
-
# @since 3.1.0
|
|
23
20
|
def average_distance
|
|
24
21
|
average = stats["avgDistance"]
|
|
25
22
|
(average.nil? || average.nan?) ? nil : average
|
|
@@ -34,8 +31,6 @@ module Mongoid
|
|
|
34
31
|
# end
|
|
35
32
|
#
|
|
36
33
|
# @return [ Enumerator ] The enumerator.
|
|
37
|
-
#
|
|
38
|
-
# @since 3.1.0
|
|
39
34
|
def each
|
|
40
35
|
if block_given?
|
|
41
36
|
documents.each do |doc|
|
|
@@ -54,8 +49,6 @@ module Mongoid
|
|
|
54
49
|
# @param [ Integer, Float ] value The distance multiplier.
|
|
55
50
|
#
|
|
56
51
|
# @return [ GeoNear ] The GeoNear wrapper.
|
|
57
|
-
#
|
|
58
|
-
# @since 3.1.0
|
|
59
52
|
def distance_multiplier(value)
|
|
60
53
|
command[:distanceMultiplier] = value
|
|
61
54
|
self
|
|
@@ -70,8 +63,6 @@ module Mongoid
|
|
|
70
63
|
# operation on.
|
|
71
64
|
# @param [ Criteria ] criteria The Mongoid criteria.
|
|
72
65
|
# @param [ String ] near
|
|
73
|
-
#
|
|
74
|
-
# @since 3.0.0
|
|
75
66
|
def initialize(collection, criteria, near)
|
|
76
67
|
@collection, @criteria = collection, criteria
|
|
77
68
|
command[:geoNear] = collection.name.to_s
|
|
@@ -85,8 +76,6 @@ module Mongoid
|
|
|
85
76
|
# geo_near.inspect
|
|
86
77
|
#
|
|
87
78
|
# @return [ String ] The inspection string.
|
|
88
|
-
#
|
|
89
|
-
# @since 3.1.0
|
|
90
79
|
def inspect
|
|
91
80
|
%Q{#<Mongoid::Contextual::GeoNear
|
|
92
81
|
selector: #{criteria.selector.inspect}
|
|
@@ -112,8 +101,6 @@ module Mongoid
|
|
|
112
101
|
# @param [ Integer, Float ] value The maximum distance.
|
|
113
102
|
#
|
|
114
103
|
# @return [ GeoNear, Float ] The GeoNear command or the value.
|
|
115
|
-
#
|
|
116
|
-
# @since 3.1.0
|
|
117
104
|
def max_distance(value = nil)
|
|
118
105
|
if value
|
|
119
106
|
command[:maxDistance] = value
|
|
@@ -131,8 +118,6 @@ module Mongoid
|
|
|
131
118
|
# @param [ Integer, Float ] value The minimum distance.
|
|
132
119
|
#
|
|
133
120
|
# @return [ GeoNear ] The GeoNear command.
|
|
134
|
-
#
|
|
135
|
-
# @since 3.1.0
|
|
136
121
|
def min_distance(value)
|
|
137
122
|
command[:minDistance] = value
|
|
138
123
|
self
|
|
@@ -144,14 +129,12 @@ module Mongoid
|
|
|
144
129
|
# geo_near.spherical
|
|
145
130
|
#
|
|
146
131
|
# @return [ GeoNear ] The command.
|
|
147
|
-
#
|
|
148
|
-
# @since 3.1.0
|
|
149
132
|
def spherical
|
|
150
133
|
command[:spherical] = true
|
|
151
134
|
self
|
|
152
135
|
end
|
|
153
136
|
|
|
154
|
-
# Tell the command whether or not the
|
|
137
|
+
# Tell the command whether or not the returned results should be unique.
|
|
155
138
|
#
|
|
156
139
|
# @example Set the unique flag.
|
|
157
140
|
# geo_near.unique(false)
|
|
@@ -159,8 +142,6 @@ module Mongoid
|
|
|
159
142
|
# @param [ true, false ] value Whether to return unique documents.
|
|
160
143
|
#
|
|
161
144
|
# @return [ GeoNear ] The command.
|
|
162
|
-
#
|
|
163
|
-
# @since 3.1.0
|
|
164
145
|
def unique(value = true)
|
|
165
146
|
command[:unique] = value
|
|
166
147
|
self
|
|
@@ -172,8 +153,6 @@ module Mongoid
|
|
|
172
153
|
# geo_near.execute
|
|
173
154
|
#
|
|
174
155
|
# @return [ Hash ] The raw output
|
|
175
|
-
#
|
|
176
|
-
# @since 3.1.0
|
|
177
156
|
def execute
|
|
178
157
|
results
|
|
179
158
|
end
|
|
@@ -184,8 +163,6 @@ module Mongoid
|
|
|
184
163
|
# geo_near.stats
|
|
185
164
|
#
|
|
186
165
|
# @return [ Hash ] The stats from the command run.
|
|
187
|
-
#
|
|
188
|
-
# @since 3.1.0
|
|
189
166
|
def stats
|
|
190
167
|
results["stats"]
|
|
191
168
|
end
|
|
@@ -196,8 +173,6 @@ module Mongoid
|
|
|
196
173
|
# geo_near.time
|
|
197
174
|
#
|
|
198
175
|
# @return [ Float ] The execution time.
|
|
199
|
-
#
|
|
200
|
-
# @since 3.1.0
|
|
201
176
|
def time
|
|
202
177
|
stats["time"]
|
|
203
178
|
end
|
|
@@ -208,8 +183,6 @@ module Mongoid
|
|
|
208
183
|
# geo_near.empty_and_chainable?
|
|
209
184
|
#
|
|
210
185
|
# @return [ true ] Always true.
|
|
211
|
-
#
|
|
212
|
-
# @since 5.1.0
|
|
213
186
|
def empty_and_chainable?
|
|
214
187
|
true
|
|
215
188
|
end
|
|
@@ -224,8 +197,6 @@ module Mongoid
|
|
|
224
197
|
# geo_near.apply_criteria_options
|
|
225
198
|
#
|
|
226
199
|
# @return [ nil ] Nothing.
|
|
227
|
-
#
|
|
228
|
-
# @since 3.0.0
|
|
229
200
|
def apply_criteria_options
|
|
230
201
|
command[:query] = criteria.selector
|
|
231
202
|
if limit = criteria.options[:limit]
|
|
@@ -241,8 +212,6 @@ module Mongoid
|
|
|
241
212
|
# geo_near.documents
|
|
242
213
|
#
|
|
243
214
|
# @return [ Array, Cursor ] The documents.
|
|
244
|
-
#
|
|
245
|
-
# @since 3.0.0
|
|
246
215
|
def documents
|
|
247
216
|
results["results"].map do |attributes|
|
|
248
217
|
doc = Factory.from_db(criteria.klass, attributes["obj"], criteria)
|
|
@@ -259,8 +228,6 @@ module Mongoid
|
|
|
259
228
|
# geo_near.results
|
|
260
229
|
#
|
|
261
230
|
# @return [ Hash ] The results of the command.
|
|
262
|
-
#
|
|
263
|
-
# @since 3.0.0
|
|
264
231
|
def results
|
|
265
232
|
@results ||= client.command(command).first
|
|
266
233
|
end
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
module Contextual
|
|
@@ -17,8 +16,6 @@ module Mongoid
|
|
|
17
16
|
# map_reduce.counts
|
|
18
17
|
#
|
|
19
18
|
# @return [ Hash ] The counts.
|
|
20
|
-
#
|
|
21
|
-
# @since 3.0.0
|
|
22
19
|
def counts
|
|
23
20
|
results["counts"]
|
|
24
21
|
end
|
|
@@ -32,8 +29,6 @@ module Mongoid
|
|
|
32
29
|
# end
|
|
33
30
|
#
|
|
34
31
|
# @return [ Enumerator ] The enumerator.
|
|
35
|
-
#
|
|
36
|
-
# @since 3.0.0
|
|
37
32
|
def each
|
|
38
33
|
validate_out!
|
|
39
34
|
if block_given?
|
|
@@ -51,8 +46,6 @@ module Mongoid
|
|
|
51
46
|
# map_reduce.emitted
|
|
52
47
|
#
|
|
53
48
|
# @return [ Integer ] The number of emitted documents.
|
|
54
|
-
#
|
|
55
|
-
# @since 3.0.0
|
|
56
49
|
def emitted
|
|
57
50
|
counts["emit"]
|
|
58
51
|
end
|
|
@@ -65,8 +58,6 @@ module Mongoid
|
|
|
65
58
|
# @param [ String ] function The finalize function.
|
|
66
59
|
#
|
|
67
60
|
# @return [ MapReduce ] The map reduce.
|
|
68
|
-
#
|
|
69
|
-
# @since 3.0.0
|
|
70
61
|
def finalize(function)
|
|
71
62
|
@map_reduce = @map_reduce.finalize(function)
|
|
72
63
|
self
|
|
@@ -80,8 +71,6 @@ module Mongoid
|
|
|
80
71
|
# @param [ Criteria ] criteria The Mongoid criteria.
|
|
81
72
|
# @param [ String ] map The map js function.
|
|
82
73
|
# @param [ String ] reduce The reduce js function.
|
|
83
|
-
#
|
|
84
|
-
# @since 3.0.0
|
|
85
74
|
def initialize(collection, criteria, map, reduce)
|
|
86
75
|
@collection = collection
|
|
87
76
|
@criteria = criteria
|
|
@@ -94,8 +83,6 @@ module Mongoid
|
|
|
94
83
|
# map_reduce.input
|
|
95
84
|
#
|
|
96
85
|
# @return [ Integer ] The number of input documents.
|
|
97
|
-
#
|
|
98
|
-
# @since 3.0.0
|
|
99
86
|
def input
|
|
100
87
|
counts["input"]
|
|
101
88
|
end
|
|
@@ -106,8 +93,6 @@ module Mongoid
|
|
|
106
93
|
# map_reduce.js_mode
|
|
107
94
|
#
|
|
108
95
|
# @return [ MapReduce ] The map/reduce.
|
|
109
|
-
#
|
|
110
|
-
# @since 3.0.0
|
|
111
96
|
def js_mode
|
|
112
97
|
@map_reduce = @map_reduce.js_mode(true)
|
|
113
98
|
self
|
|
@@ -134,8 +119,6 @@ module Mongoid
|
|
|
134
119
|
# @param [ Hash ] location The place to store the results.
|
|
135
120
|
#
|
|
136
121
|
# @return [ MapReduce ] The map/reduce object.
|
|
137
|
-
#
|
|
138
|
-
# @since 3.0.0
|
|
139
122
|
def out(location)
|
|
140
123
|
normalized = location.dup
|
|
141
124
|
normalized.update_values do |value|
|
|
@@ -151,8 +134,6 @@ module Mongoid
|
|
|
151
134
|
# map_reduce.output
|
|
152
135
|
#
|
|
153
136
|
# @return [ Integer ] The number of output documents.
|
|
154
|
-
#
|
|
155
|
-
# @since 3.0.0
|
|
156
137
|
def output
|
|
157
138
|
counts["output"]
|
|
158
139
|
end
|
|
@@ -163,8 +144,6 @@ module Mongoid
|
|
|
163
144
|
# map_reduce.raw
|
|
164
145
|
#
|
|
165
146
|
# @return [ Hash ] The raw output.
|
|
166
|
-
#
|
|
167
|
-
# @since 3.0.0
|
|
168
147
|
def raw
|
|
169
148
|
validate_out!
|
|
170
149
|
cmd = command
|
|
@@ -180,8 +159,6 @@ module Mongoid
|
|
|
180
159
|
# map_reduce.execute
|
|
181
160
|
#
|
|
182
161
|
# @return [ Hash ] The raw output
|
|
183
|
-
#
|
|
184
|
-
# @since 3.1.0
|
|
185
162
|
alias :execute :raw
|
|
186
163
|
|
|
187
164
|
# Get the number of documents reduced by the map/reduce.
|
|
@@ -190,8 +167,6 @@ module Mongoid
|
|
|
190
167
|
# map_reduce.reduced
|
|
191
168
|
#
|
|
192
169
|
# @return [ Integer ] The number of reduced documents.
|
|
193
|
-
#
|
|
194
|
-
# @since 3.0.0
|
|
195
170
|
def reduced
|
|
196
171
|
counts["reduce"]
|
|
197
172
|
end
|
|
@@ -204,8 +179,6 @@ module Mongoid
|
|
|
204
179
|
# @param [ Hash ] object A hash of key/values for the global scope.
|
|
205
180
|
#
|
|
206
181
|
# @return [ MapReduce ]
|
|
207
|
-
#
|
|
208
|
-
# @since 3.0.0
|
|
209
182
|
def scope(object)
|
|
210
183
|
@map_reduce = @map_reduce.scope(object)
|
|
211
184
|
self
|
|
@@ -217,8 +190,6 @@ module Mongoid
|
|
|
217
190
|
# map_reduce.time
|
|
218
191
|
#
|
|
219
192
|
# @return [ Float ] The time in milliseconds.
|
|
220
|
-
#
|
|
221
|
-
# @since 3.0.0
|
|
222
193
|
def time
|
|
223
194
|
results["timeMillis"]
|
|
224
195
|
end
|
|
@@ -230,8 +201,6 @@ module Mongoid
|
|
|
230
201
|
# map_reduce.inspect
|
|
231
202
|
#
|
|
232
203
|
# @return [ String ] The inspection string.
|
|
233
|
-
#
|
|
234
|
-
# @since 3.1.0
|
|
235
204
|
def inspect
|
|
236
205
|
%Q{#<Mongoid::Contextual::MapReduce
|
|
237
206
|
selector: #{criteria.selector.inspect}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
require "mongoid/contextual/aggregable/memory"
|
|
5
4
|
require "mongoid/association/eager_loadable"
|
|
@@ -27,8 +26,6 @@ module Mongoid
|
|
|
27
26
|
# @param [ Array ] other The other array.
|
|
28
27
|
#
|
|
29
28
|
# @return [ true, false ] If the objects are equal.
|
|
30
|
-
#
|
|
31
|
-
# @since 3.0.0
|
|
32
29
|
def ==(other)
|
|
33
30
|
return false unless other.respond_to?(:entries)
|
|
34
31
|
entries == other.entries
|
|
@@ -40,8 +37,6 @@ module Mongoid
|
|
|
40
37
|
# context.delete
|
|
41
38
|
#
|
|
42
39
|
# @return [ nil ] Nil.
|
|
43
|
-
#
|
|
44
|
-
# @since 3.0.0
|
|
45
40
|
def delete
|
|
46
41
|
deleted = count
|
|
47
42
|
removed = map do |doc|
|
|
@@ -64,8 +59,6 @@ module Mongoid
|
|
|
64
59
|
# context.destroy
|
|
65
60
|
#
|
|
66
61
|
# @return [ nil ] Nil.
|
|
67
|
-
#
|
|
68
|
-
# @since 3.0.0
|
|
69
62
|
def destroy
|
|
70
63
|
deleted = count
|
|
71
64
|
each do |doc|
|
|
@@ -84,8 +77,6 @@ module Mongoid
|
|
|
84
77
|
# @param [ String, Symbol ] field The name of the field.
|
|
85
78
|
#
|
|
86
79
|
# @return [ Array<Object> ] The distinct values for the field.
|
|
87
|
-
#
|
|
88
|
-
# @since 3.0.0
|
|
89
80
|
def distinct(field)
|
|
90
81
|
documents.map{ |doc| doc.send(field) }.uniq
|
|
91
82
|
end
|
|
@@ -99,8 +90,6 @@ module Mongoid
|
|
|
99
90
|
# end
|
|
100
91
|
#
|
|
101
92
|
# @return [ Enumerator ] The enumerator.
|
|
102
|
-
#
|
|
103
|
-
# @since 3.0.0
|
|
104
93
|
def each
|
|
105
94
|
if block_given?
|
|
106
95
|
documents_for_iteration.each do |doc|
|
|
@@ -118,8 +107,6 @@ module Mongoid
|
|
|
118
107
|
# context.exists?
|
|
119
108
|
#
|
|
120
109
|
# @return [ true, false ] If the count is more than zero.
|
|
121
|
-
#
|
|
122
|
-
# @since 3.0.0
|
|
123
110
|
def exists?
|
|
124
111
|
count > 0
|
|
125
112
|
end
|
|
@@ -130,8 +117,6 @@ module Mongoid
|
|
|
130
117
|
# context.first
|
|
131
118
|
#
|
|
132
119
|
# @return [ Document ] The first document.
|
|
133
|
-
#
|
|
134
|
-
# @since 3.0.0
|
|
135
120
|
def first(*args)
|
|
136
121
|
eager_load([documents.first]).first
|
|
137
122
|
end
|
|
@@ -144,8 +129,6 @@ module Mongoid
|
|
|
144
129
|
# Memory.new(criteria)
|
|
145
130
|
#
|
|
146
131
|
# @param [ Criteria ] criteria The criteria.
|
|
147
|
-
#
|
|
148
|
-
# @since 3.0.0
|
|
149
132
|
def initialize(criteria)
|
|
150
133
|
@criteria, @klass = criteria, criteria.klass
|
|
151
134
|
@documents = criteria.documents.select do |doc|
|
|
@@ -165,8 +148,6 @@ module Mongoid
|
|
|
165
148
|
# @param [ Hash ] incs The operations.
|
|
166
149
|
#
|
|
167
150
|
# @return [ Enumerator ] The enumerator.
|
|
168
|
-
#
|
|
169
|
-
# @since 7.0.0
|
|
170
151
|
def inc(incs)
|
|
171
152
|
each do |document|
|
|
172
153
|
document.inc(incs)
|
|
@@ -179,8 +160,6 @@ module Mongoid
|
|
|
179
160
|
# context.last
|
|
180
161
|
#
|
|
181
162
|
# @return [ Document ] The last document.
|
|
182
|
-
#
|
|
183
|
-
# @since 3.0.0
|
|
184
163
|
def last
|
|
185
164
|
eager_load([documents.last]).first
|
|
186
165
|
end
|
|
@@ -191,8 +170,6 @@ module Mongoid
|
|
|
191
170
|
# context.length
|
|
192
171
|
#
|
|
193
172
|
# @return [ Integer ] The matching length.
|
|
194
|
-
#
|
|
195
|
-
# @since 3.0.0
|
|
196
173
|
def length
|
|
197
174
|
documents.length
|
|
198
175
|
end
|
|
@@ -206,8 +183,6 @@ module Mongoid
|
|
|
206
183
|
# @param [ Integer ] value The number of documents to return.
|
|
207
184
|
#
|
|
208
185
|
# @return [ Mongo ] The context.
|
|
209
|
-
#
|
|
210
|
-
# @since 3.0.0
|
|
211
186
|
def limit(value)
|
|
212
187
|
self.limiting = value
|
|
213
188
|
self
|
|
@@ -232,8 +207,6 @@ module Mongoid
|
|
|
232
207
|
# @param [ Integer ] value The number of documents to skip.
|
|
233
208
|
#
|
|
234
209
|
# @return [ Mongo ] The context.
|
|
235
|
-
#
|
|
236
|
-
# @since 3.0.0
|
|
237
210
|
def skip(value)
|
|
238
211
|
self.skipping = value
|
|
239
212
|
self
|
|
@@ -248,8 +221,6 @@ module Mongoid
|
|
|
248
221
|
# pairs.
|
|
249
222
|
#
|
|
250
223
|
# @return [ Mongo ] The context.
|
|
251
|
-
#
|
|
252
|
-
# @since 3.0.0
|
|
253
224
|
def sort(values)
|
|
254
225
|
in_place_sort(values) and self
|
|
255
226
|
end
|
|
@@ -262,8 +233,6 @@ module Mongoid
|
|
|
262
233
|
# @param [ Hash ] attributes The new attributes for the document.
|
|
263
234
|
#
|
|
264
235
|
# @return [ nil, false ] False if no attributes were provided.
|
|
265
|
-
#
|
|
266
|
-
# @since 3.0.0
|
|
267
236
|
def update(attributes = nil)
|
|
268
237
|
update_documents(attributes, [ first ])
|
|
269
238
|
end
|
|
@@ -276,8 +245,6 @@ module Mongoid
|
|
|
276
245
|
# @param [ Hash ] attributes The new attributes for each document.
|
|
277
246
|
#
|
|
278
247
|
# @return [ nil, false ] False if no attributes were provided.
|
|
279
|
-
#
|
|
280
|
-
# @since 3.0.0
|
|
281
248
|
def update_all(attributes = nil)
|
|
282
249
|
update_documents(attributes, entries)
|
|
283
250
|
end
|
|
@@ -292,8 +259,6 @@ module Mongoid
|
|
|
292
259
|
# context.documents_for_iteration
|
|
293
260
|
#
|
|
294
261
|
# @return [ Array<Document> ] The docs to iterate.
|
|
295
|
-
#
|
|
296
|
-
# @since 3.1.0
|
|
297
262
|
def documents_for_iteration
|
|
298
263
|
docs = documents[skipping || 0, limiting || documents.length] || []
|
|
299
264
|
if eager_loadable?
|
|
@@ -311,8 +276,6 @@ module Mongoid
|
|
|
311
276
|
#
|
|
312
277
|
# @param [ Hash ] attributes The attributes.
|
|
313
278
|
# @param [ Array<Document> ] docs The docs to update.
|
|
314
|
-
#
|
|
315
|
-
# @since 3.0.4
|
|
316
279
|
def update_documents(attributes, docs)
|
|
317
280
|
return false if !attributes || docs.empty?
|
|
318
281
|
updates = { "$set" => {}}
|
|
@@ -332,8 +295,6 @@ module Mongoid
|
|
|
332
295
|
# @example Get the limiting value.
|
|
333
296
|
#
|
|
334
297
|
# @return [ Integer ] The limit.
|
|
335
|
-
#
|
|
336
|
-
# @since 3.0.0
|
|
337
298
|
def limiting
|
|
338
299
|
defined?(@limiting) ? @limiting : nil
|
|
339
300
|
end
|
|
@@ -347,36 +308,30 @@ module Mongoid
|
|
|
347
308
|
# @param [ Integer ] value The limit.
|
|
348
309
|
#
|
|
349
310
|
# @return [ Integer ] The limit.
|
|
350
|
-
#
|
|
351
|
-
# @since 3.0.0
|
|
352
311
|
def limiting=(value)
|
|
353
312
|
@limiting = value
|
|
354
313
|
end
|
|
355
314
|
|
|
356
|
-
# Get the
|
|
315
|
+
# Get the skipping value.
|
|
357
316
|
#
|
|
358
317
|
# @api private
|
|
359
318
|
#
|
|
360
|
-
# @example Get the
|
|
319
|
+
# @example Get the skipping value.
|
|
361
320
|
#
|
|
362
321
|
# @return [ Integer ] The skip.
|
|
363
|
-
#
|
|
364
|
-
# @since 3.0.0
|
|
365
322
|
def skipping
|
|
366
323
|
defined?(@skipping) ? @skipping : nil
|
|
367
324
|
end
|
|
368
325
|
|
|
369
|
-
# Set the
|
|
326
|
+
# Set the skipping value.
|
|
370
327
|
#
|
|
371
328
|
# @api private
|
|
372
329
|
#
|
|
373
|
-
# @example Set the
|
|
330
|
+
# @example Set the skipping value.
|
|
374
331
|
#
|
|
375
332
|
# @param [ Integer ] value The skip.
|
|
376
333
|
#
|
|
377
334
|
# @return [ Integer ] The skip.
|
|
378
|
-
#
|
|
379
|
-
# @since 3.0.0
|
|
380
335
|
def skipping=(value)
|
|
381
336
|
@skipping = value
|
|
382
337
|
end
|
|
@@ -389,8 +344,6 @@ module Mongoid
|
|
|
389
344
|
# context.apply_options
|
|
390
345
|
#
|
|
391
346
|
# @return [ Memory ] self.
|
|
392
|
-
#
|
|
393
|
-
# @since 3.0.0
|
|
394
347
|
def apply_options
|
|
395
348
|
raise Errors::InMemoryCollationNotSupported.new if criteria.options[:collation]
|
|
396
349
|
skip(criteria.options[:skip]).limit(criteria.options[:limit])
|
|
@@ -400,8 +353,6 @@ module Mongoid
|
|
|
400
353
|
#
|
|
401
354
|
# @example Apply the sorting params.
|
|
402
355
|
# context.apply_sorting
|
|
403
|
-
#
|
|
404
|
-
# @since 3.0.0
|
|
405
356
|
def apply_sorting
|
|
406
357
|
if spec = criteria.options[:sort]
|
|
407
358
|
in_place_sort(spec)
|
|
@@ -419,8 +370,6 @@ module Mongoid
|
|
|
419
370
|
# @param [ Object ] b The first object.
|
|
420
371
|
#
|
|
421
372
|
# @return [ Integer ] The comparison value.
|
|
422
|
-
#
|
|
423
|
-
# @since 3.0.0
|
|
424
373
|
def compare(a, b)
|
|
425
374
|
case
|
|
426
375
|
when a.nil? then b.nil? ? 0 : 1
|
|
@@ -435,8 +384,6 @@ module Mongoid
|
|
|
435
384
|
# context.in_place_sort(name: 1)
|
|
436
385
|
#
|
|
437
386
|
# @param [ Hash ] values The field/direction sorting pairs.
|
|
438
|
-
#
|
|
439
|
-
# @since 3.0.0
|
|
440
387
|
def in_place_sort(values)
|
|
441
388
|
documents.sort! do |a, b|
|
|
442
389
|
values.map do |field, direction|
|
|
@@ -454,8 +401,6 @@ module Mongoid
|
|
|
454
401
|
# context.prepare_remove(doc)
|
|
455
402
|
#
|
|
456
403
|
# @param [ Document ] doc The document.
|
|
457
|
-
#
|
|
458
|
-
# @since 3.0.0
|
|
459
404
|
def prepare_remove(doc)
|
|
460
405
|
@selector ||= root.atomic_selector
|
|
461
406
|
@path ||= doc.atomic_path
|