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,18 +1,13 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
module Indexable
|
|
6
5
|
|
|
7
6
|
# Encapsulates behavior around an index specification.
|
|
8
|
-
#
|
|
9
|
-
# @since 4.0.0
|
|
10
7
|
class Specification
|
|
11
8
|
|
|
12
9
|
# The mappings of nice Ruby-style names to the corresponding driver
|
|
13
10
|
# option name.
|
|
14
|
-
#
|
|
15
|
-
# @since 4.0.0
|
|
16
11
|
MAPPINGS = {
|
|
17
12
|
expire_after_seconds: :expire_after
|
|
18
13
|
}
|
|
@@ -33,8 +28,6 @@ module Mongoid
|
|
|
33
28
|
# @param [ Specification ] other The spec to compare against.
|
|
34
29
|
#
|
|
35
30
|
# @return [ true, false ] If the specs are equal.
|
|
36
|
-
#
|
|
37
|
-
# @since 4.0.0
|
|
38
31
|
def ==(other)
|
|
39
32
|
fields == other.fields && key == other.key
|
|
40
33
|
end
|
|
@@ -47,8 +40,6 @@ module Mongoid
|
|
|
47
40
|
# @param [ Class ] klass The class the index is defined on.
|
|
48
41
|
# @param [ Hash ] key The hash of name/direction pairs.
|
|
49
42
|
# @param [ Hash ] opts the index options.
|
|
50
|
-
#
|
|
51
|
-
# @since 4.0.0
|
|
52
43
|
def initialize(klass, key, opts = nil)
|
|
53
44
|
options = opts || {}
|
|
54
45
|
Validators::Options.validate(klass, key, options)
|
|
@@ -64,8 +55,6 @@ module Mongoid
|
|
|
64
55
|
# specification.name
|
|
65
56
|
#
|
|
66
57
|
# @return [ String ] name The index name.
|
|
67
|
-
#
|
|
68
|
-
# @since 5.0.2
|
|
69
58
|
def name
|
|
70
59
|
@name ||= key.reduce([]) do |n, (k,v)|
|
|
71
60
|
n << "#{k}_#{v}"
|
|
@@ -84,8 +73,6 @@ module Mongoid
|
|
|
84
73
|
# @param [ Hash ] key The index key(s).
|
|
85
74
|
#
|
|
86
75
|
# @return [ Hash ] The normalized specification.
|
|
87
|
-
#
|
|
88
|
-
# @since 4.0.0
|
|
89
76
|
def normalize_key(key)
|
|
90
77
|
normalized = {}
|
|
91
78
|
key.each_pair do |name, direction|
|
|
@@ -104,8 +91,6 @@ module Mongoid
|
|
|
104
91
|
# @param [ Hash ] opts The index options.
|
|
105
92
|
#
|
|
106
93
|
# @return [ Hash ] The normalized options.
|
|
107
|
-
#
|
|
108
|
-
# @since 4.0.0
|
|
109
94
|
def normalize_options(opts)
|
|
110
95
|
options = {}
|
|
111
96
|
opts.each_pair do |option, value|
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
module Indexable
|
|
@@ -53,8 +52,6 @@ module Mongoid
|
|
|
53
52
|
# @param [ Hash ] options The index options.
|
|
54
53
|
#
|
|
55
54
|
# @raise [ Errors::InvalidIndex ] If validation failed.
|
|
56
|
-
#
|
|
57
|
-
# @since 3.0.0
|
|
58
55
|
def validate(klass, spec, options)
|
|
59
56
|
validate_spec(klass, spec, options)
|
|
60
57
|
validate_options(klass, spec, options)
|
|
@@ -74,8 +71,6 @@ module Mongoid
|
|
|
74
71
|
# @param [ Hash ] options The index options.
|
|
75
72
|
#
|
|
76
73
|
# @raise [ Errors::InvalidIndex ] If validation failed.
|
|
77
|
-
#
|
|
78
|
-
# @since 3.0.0
|
|
79
74
|
def validate_options(klass, spec, options)
|
|
80
75
|
options.each_pair do |name, value|
|
|
81
76
|
unless VALID_OPTIONS.include?(name)
|
|
@@ -96,8 +91,6 @@ module Mongoid
|
|
|
96
91
|
# @param [ Hash ] options The index options.
|
|
97
92
|
#
|
|
98
93
|
# @raise [ Errors::InvalidIndex ] If validation failed.
|
|
99
|
-
#
|
|
100
|
-
# @since 3.0.0
|
|
101
94
|
def validate_spec(klass, spec, options)
|
|
102
95
|
raise Errors::InvalidIndex.new(klass, spec, options) if !spec.is_a?(::Hash)
|
|
103
96
|
spec.each_pair do |name, value|
|
data/lib/mongoid/indexable.rb
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
require "mongoid/indexable/specification"
|
|
5
4
|
require "mongoid/indexable/validators/options"
|
|
@@ -8,8 +7,6 @@ require "ostruct"
|
|
|
8
7
|
module Mongoid
|
|
9
8
|
|
|
10
9
|
# Encapsulates behavior around defining indexes.
|
|
11
|
-
#
|
|
12
|
-
# @since 4.0.0
|
|
13
10
|
module Indexable
|
|
14
11
|
extend ActiveSupport::Concern
|
|
15
12
|
|
|
@@ -26,8 +23,6 @@ module Mongoid
|
|
|
26
23
|
# Person.create_indexes
|
|
27
24
|
#
|
|
28
25
|
# @return [ true ] If the operation succeeded.
|
|
29
|
-
#
|
|
30
|
-
# @since 1.0.0
|
|
31
26
|
def create_indexes
|
|
32
27
|
return unless index_specifications
|
|
33
28
|
|
|
@@ -52,8 +47,6 @@ module Mongoid
|
|
|
52
47
|
# Person.remove_indexes
|
|
53
48
|
#
|
|
54
49
|
# @return [ true ] If the operation succeeded.
|
|
55
|
-
#
|
|
56
|
-
# @since 3.0.0
|
|
57
50
|
def remove_indexes
|
|
58
51
|
indexed_database_names.each do |database|
|
|
59
52
|
with(database: database) do |klass|
|
|
@@ -79,8 +72,6 @@ module Mongoid
|
|
|
79
72
|
# Person.add_indexes
|
|
80
73
|
#
|
|
81
74
|
# @return [ true ] If the operation succeeded.
|
|
82
|
-
#
|
|
83
|
-
# @since 1.0.0
|
|
84
75
|
def add_indexes
|
|
85
76
|
if hereditary? && !index_keys.include?(self.discriminator_key.to_sym => 1)
|
|
86
77
|
index({ self.discriminator_key.to_sym => 1 }, unique: false, background: true)
|
|
@@ -97,12 +88,10 @@ module Mongoid
|
|
|
97
88
|
# index({ name: 1 }, { background: true })
|
|
98
89
|
# end
|
|
99
90
|
#
|
|
100
|
-
# @param [
|
|
91
|
+
# @param [ Hash ] spec The index spec.
|
|
101
92
|
# @param [ Hash ] options The index options.
|
|
102
93
|
#
|
|
103
94
|
# @return [ Hash ] The index options.
|
|
104
|
-
#
|
|
105
|
-
# @since 1.0.0
|
|
106
95
|
def index(spec, options = nil)
|
|
107
96
|
specification = Specification.new(self, spec, options)
|
|
108
97
|
if !index_specifications.include?(specification)
|
|
@@ -119,8 +108,6 @@ module Mongoid
|
|
|
119
108
|
# @param [ String ] index_name The index name.
|
|
120
109
|
#
|
|
121
110
|
# @return [ Specification ] The found specification.
|
|
122
|
-
#
|
|
123
|
-
# @since 4.0.0
|
|
124
111
|
def index_specification(index_hash, index_name = nil)
|
|
125
112
|
index = OpenStruct.new(fields: index_hash.keys, key: index_hash)
|
|
126
113
|
index_specifications.detect do |spec|
|
|
@@ -139,8 +126,6 @@ module Mongoid
|
|
|
139
126
|
# Model.indexed_database_names
|
|
140
127
|
#
|
|
141
128
|
# @return [ Array<String> ] The names.
|
|
142
|
-
#
|
|
143
|
-
# @since 3.1.0
|
|
144
129
|
def indexed_database_names
|
|
145
130
|
index_specifications.map do |spec|
|
|
146
131
|
spec.options[:database] || database_name
|
|
@@ -155,8 +140,6 @@ module Mongoid
|
|
|
155
140
|
# Model.index_keys
|
|
156
141
|
#
|
|
157
142
|
# @return [ Array<Hash> ] The specification keys.
|
|
158
|
-
#
|
|
159
|
-
# @since 4.0.0
|
|
160
143
|
def index_keys
|
|
161
144
|
index_specifications.map(&:key)
|
|
162
145
|
end
|
data/lib/mongoid/inspectable.rb
CHANGED
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
|
|
6
|
-
# Contains the
|
|
7
|
-
#
|
|
8
|
-
# @since 4.0.0
|
|
5
|
+
# Contains the behavior around inspecting documents via inspect.
|
|
9
6
|
module Inspectable
|
|
10
7
|
|
|
11
8
|
# Returns the class name plus its attributes. If using dynamic fields will
|
|
@@ -15,8 +12,6 @@ module Mongoid
|
|
|
15
12
|
# person.inspect
|
|
16
13
|
#
|
|
17
14
|
# @return [ String ] A nice pretty string to look at.
|
|
18
|
-
#
|
|
19
|
-
# @since 1.0.0
|
|
20
15
|
def inspect
|
|
21
16
|
inspection = []
|
|
22
17
|
inspection.concat(inspect_fields).concat(inspect_dynamic_fields)
|
|
@@ -33,8 +28,6 @@ module Mongoid
|
|
|
33
28
|
# document.inspect_fields
|
|
34
29
|
#
|
|
35
30
|
# @return [ String ] An array of pretty printed field values.
|
|
36
|
-
#
|
|
37
|
-
# @since 1.0.0
|
|
38
31
|
def inspect_fields
|
|
39
32
|
fields.map do |name, field|
|
|
40
33
|
unless name == "_id"
|
|
@@ -52,8 +45,6 @@ module Mongoid
|
|
|
52
45
|
# document.inspect_dynamic_fields
|
|
53
46
|
#
|
|
54
47
|
# @return [ String ] An array of pretty printed dynamic field values.
|
|
55
|
-
#
|
|
56
|
-
# @since 1.0.0
|
|
57
48
|
def inspect_dynamic_fields
|
|
58
49
|
[]
|
|
59
50
|
end
|
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
|
|
6
5
|
# This module contains all the callback hooks for Mongoid.
|
|
7
|
-
#
|
|
8
|
-
# @since 4.0.0
|
|
9
6
|
module Interceptable
|
|
10
7
|
extend ActiveSupport::Concern
|
|
11
8
|
|
|
@@ -51,8 +48,6 @@ module Mongoid
|
|
|
51
48
|
# @param [ Symbol ] kind The type of callback.
|
|
52
49
|
#
|
|
53
50
|
# @return [ true, false ] If the callback can be executed.
|
|
54
|
-
#
|
|
55
|
-
# @since 3.0.6
|
|
56
51
|
def callback_executable?(kind)
|
|
57
52
|
respond_to?("_#{kind}_callbacks")
|
|
58
53
|
end
|
|
@@ -66,8 +61,6 @@ module Mongoid
|
|
|
66
61
|
# @param [ Symbol ] kind The callback kind.
|
|
67
62
|
#
|
|
68
63
|
# @return [ true, false ] If the document is in a callback state.
|
|
69
|
-
#
|
|
70
|
-
# @since 3.1.0
|
|
71
64
|
def in_callback_state?(kind)
|
|
72
65
|
[ :create, :destroy ].include?(kind) || new_record? || flagged_for_destroy? || changed?
|
|
73
66
|
end
|
|
@@ -83,8 +76,6 @@ module Mongoid
|
|
|
83
76
|
# @param [ Array<Symbol> ] kinds The events that are occurring.
|
|
84
77
|
#
|
|
85
78
|
# @return [ Object ] The result of the chain executing.
|
|
86
|
-
#
|
|
87
|
-
# @since 3.0.0
|
|
88
79
|
def run_after_callbacks(*kinds)
|
|
89
80
|
kinds.each do |kind|
|
|
90
81
|
run_targeted_callbacks(:after, kind)
|
|
@@ -102,8 +93,6 @@ module Mongoid
|
|
|
102
93
|
# @param [ Array<Symbol> ] kinds The events that are occurring.
|
|
103
94
|
#
|
|
104
95
|
# @return [ Object ] The result of the chain executing.
|
|
105
|
-
#
|
|
106
|
-
# @since 3.0.0
|
|
107
96
|
def run_before_callbacks(*kinds)
|
|
108
97
|
kinds.each do |kind|
|
|
109
98
|
run_targeted_callbacks(:before, kind)
|
|
@@ -123,8 +112,6 @@ module Mongoid
|
|
|
123
112
|
# @param [ Array ] args Any options.
|
|
124
113
|
#
|
|
125
114
|
# @return [ Document ] The document
|
|
126
|
-
#
|
|
127
|
-
# @since 2.3.0
|
|
128
115
|
ruby2_keywords def run_callbacks(kind, *args, &block)
|
|
129
116
|
cascadable_children(kind).each do |child|
|
|
130
117
|
if child.run_callbacks(child_callback_type(kind, child), *args) == false
|
|
@@ -149,8 +136,6 @@ module Mongoid
|
|
|
149
136
|
# document.before_callback_halted?
|
|
150
137
|
#
|
|
151
138
|
# @return [ true, false ] If a before callback was halted.
|
|
152
|
-
#
|
|
153
|
-
# @since 3.0.3
|
|
154
139
|
def before_callback_halted?
|
|
155
140
|
!!@before_callback_halted
|
|
156
141
|
end
|
|
@@ -163,8 +148,6 @@ module Mongoid
|
|
|
163
148
|
# @param [ Symbol ] kind The type of callback.
|
|
164
149
|
#
|
|
165
150
|
# @return [ Array<Document> ] The children.
|
|
166
|
-
#
|
|
167
|
-
# @since 2.3.0
|
|
168
151
|
def cascadable_children(kind, children = Set.new)
|
|
169
152
|
embedded_relations.each_pair do |name, association|
|
|
170
153
|
next unless association.cascading_callbacks?
|
|
@@ -193,8 +176,6 @@ module Mongoid
|
|
|
193
176
|
# @param [ Document ] child The child document.
|
|
194
177
|
#
|
|
195
178
|
# @return [ true, false ] If the child should fire the callback.
|
|
196
|
-
#
|
|
197
|
-
# @since 2.3.0
|
|
198
179
|
def cascadable_child?(kind, child, association)
|
|
199
180
|
return false if kind == :initialize || kind == :find || kind == :touch
|
|
200
181
|
return false if kind == :validate && association.validate?
|
|
@@ -213,8 +194,6 @@ module Mongoid
|
|
|
213
194
|
# @param [ Document ] child The child document
|
|
214
195
|
#
|
|
215
196
|
# @return [ Symbol ] The name of the callback.
|
|
216
|
-
#
|
|
217
|
-
# @since 2.3.0
|
|
218
197
|
def child_callback_type(kind, child)
|
|
219
198
|
if kind == :update
|
|
220
199
|
return :create if child.new_record?
|
|
@@ -236,8 +215,6 @@ module Mongoid
|
|
|
236
215
|
# @param [ Symbol ] filter The callback that halted.
|
|
237
216
|
# @param [ Symbol ] name The name of the callback that was halted
|
|
238
217
|
# (requires Rails 6.1+)
|
|
239
|
-
#
|
|
240
|
-
# @since 3.0.3
|
|
241
218
|
def halted_callback_hook(filter, name = nil)
|
|
242
219
|
@before_callback_halted = true
|
|
243
220
|
end
|
|
@@ -252,8 +229,6 @@ module Mongoid
|
|
|
252
229
|
# @param [ Symbol ] kind The type of callback, :save, :create, :update.
|
|
253
230
|
#
|
|
254
231
|
# @return [ Object ] The result of the chain execution.
|
|
255
|
-
#
|
|
256
|
-
# @since 3.0.0
|
|
257
232
|
def run_targeted_callbacks(place, kind)
|
|
258
233
|
name = "_run__#{place}__#{kind}__callbacks"
|
|
259
234
|
unless respond_to?(name)
|
data/lib/mongoid/loggable.rb
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
|
|
@@ -15,8 +14,6 @@ module Mongoid
|
|
|
15
14
|
# Loggable.logger
|
|
16
15
|
#
|
|
17
16
|
# @return [ Logger ] The logger.
|
|
18
|
-
#
|
|
19
|
-
# @since 3.0.0
|
|
20
17
|
def logger
|
|
21
18
|
return @logger if defined?(@logger)
|
|
22
19
|
@logger = rails_logger || default_logger
|
|
@@ -30,8 +27,6 @@ module Mongoid
|
|
|
30
27
|
# @param [ Logger ] logger The logger to set.
|
|
31
28
|
#
|
|
32
29
|
# @return [ Logger ] The new logger.
|
|
33
|
-
#
|
|
34
|
-
# @since 3.0.0
|
|
35
30
|
def logger=(logger)
|
|
36
31
|
@logger = logger
|
|
37
32
|
end
|
|
@@ -46,8 +41,6 @@ module Mongoid
|
|
|
46
41
|
# Loggable.default_logger
|
|
47
42
|
#
|
|
48
43
|
# @return [ Logger ] The default logger.
|
|
49
|
-
#
|
|
50
|
-
# @since 3.0.0
|
|
51
44
|
def default_logger
|
|
52
45
|
logger = Logger.new(STDERR)
|
|
53
46
|
logger.level = Mongoid::Config.log_level
|
|
@@ -62,8 +55,6 @@ module Mongoid
|
|
|
62
55
|
# Loggable.rails_logger
|
|
63
56
|
#
|
|
64
57
|
# @return [ Logger ] The Rails logger.
|
|
65
|
-
#
|
|
66
|
-
# @since 3.0.0
|
|
67
58
|
def rails_logger
|
|
68
59
|
if defined?(::Rails)
|
|
69
60
|
::Rails.logger
|
data/lib/mongoid/matchable.rb
CHANGED
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
|
|
6
5
|
# This module contains all the behavior for Ruby implementations of MongoDB
|
|
7
6
|
# selectors.
|
|
8
|
-
#
|
|
9
|
-
# @since 4.0.0
|
|
10
7
|
module Matchable
|
|
11
8
|
extend ActiveSupport::Concern
|
|
12
9
|
|
|
@@ -19,8 +16,6 @@ module Mongoid
|
|
|
19
16
|
# @param [ Hash ] selector The MongoDB selector.
|
|
20
17
|
#
|
|
21
18
|
# @return [ true, false ] True if matches, false if not.
|
|
22
|
-
#
|
|
23
|
-
# @since 1.0.0
|
|
24
19
|
def _matches?(selector)
|
|
25
20
|
Matcher::Expression.matches?(self, selector)
|
|
26
21
|
end
|
|
@@ -23,10 +23,45 @@ module Mongoid
|
|
|
23
23
|
end
|
|
24
24
|
=end
|
|
25
25
|
else
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
# When doing a comparison with Time objects, compare using millisecond precision
|
|
27
|
+
if Mongoid.compare_time_by_ms
|
|
28
|
+
if value.kind_of?(Time) && condition.kind_of?(Time)
|
|
29
|
+
time_eq?(value, condition)
|
|
30
|
+
elsif value.is_a?(Array) && condition.kind_of?(Time)
|
|
31
|
+
value.map do |v|
|
|
32
|
+
if v.kind_of?(Time)
|
|
33
|
+
time_rounded_to_millis(v)
|
|
34
|
+
else
|
|
35
|
+
v
|
|
36
|
+
end
|
|
37
|
+
end.include?(time_rounded_to_millis(condition))
|
|
38
|
+
else
|
|
39
|
+
value == condition ||
|
|
40
|
+
value.is_a?(Array) && value.include?(condition)
|
|
41
|
+
end
|
|
42
|
+
else
|
|
43
|
+
value == condition ||
|
|
44
|
+
value.is_a?(Array) && value.include?(condition)
|
|
45
|
+
end
|
|
28
46
|
end
|
|
29
47
|
end
|
|
48
|
+
|
|
49
|
+
# Per https://docs.mongodb.com/ruby-driver/current/tutorials/bson-v4/#time-instances,
|
|
50
|
+
# > Times in BSON (and MongoDB) can only have millisecond precision. When Ruby Time instances
|
|
51
|
+
# are serialized to BSON or Extended JSON, the times are floored to the nearest millisecond.
|
|
52
|
+
#
|
|
53
|
+
# > Because of this flooring, applications are strongly recommended to perform all time
|
|
54
|
+
# calculations using integer math, as inexactness of floating point calculations may produce
|
|
55
|
+
# unexpected results.
|
|
56
|
+
#
|
|
57
|
+
# As such, perform a similar operation to what the bson-ruby gem does
|
|
58
|
+
module_function def time_eq?(time_a, time_b)
|
|
59
|
+
time_rounded_to_millis(time_a) == time_rounded_to_millis(time_b)
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
module_function def time_rounded_to_millis(time)
|
|
63
|
+
return time._bson_to_i * 1000 + time.usec.divmod(1000).first
|
|
64
|
+
end
|
|
30
65
|
end
|
|
31
66
|
end
|
|
32
67
|
end
|
|
@@ -13,7 +13,12 @@ module Mongoid
|
|
|
13
13
|
when ::BSON::Regexp::Raw
|
|
14
14
|
value =~ condition.compile
|
|
15
15
|
else
|
|
16
|
-
|
|
16
|
+
if Mongoid.compare_time_by_ms &&
|
|
17
|
+
value.kind_of?(Time) && condition.kind_of?(Time)
|
|
18
|
+
EqImpl.time_eq?(value, condition)
|
|
19
|
+
else
|
|
20
|
+
value == condition
|
|
21
|
+
end
|
|
17
22
|
end
|
|
18
23
|
end
|
|
19
24
|
end
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
module Persistable
|
|
6
5
|
|
|
7
6
|
# Defines behavior for persistence operations that create new documents.
|
|
8
|
-
#
|
|
9
|
-
# @since 4.0.0
|
|
10
7
|
module Creatable
|
|
11
8
|
extend ActiveSupport::Concern
|
|
12
9
|
|
|
@@ -19,8 +16,6 @@ module Mongoid
|
|
|
19
16
|
# @param [ Hash ] options Options to pass to insert.
|
|
20
17
|
#
|
|
21
18
|
# @return [ Document ] The persisted document.
|
|
22
|
-
#
|
|
23
|
-
# @since 1.0.0
|
|
24
19
|
def insert(options = {})
|
|
25
20
|
prepare_insert(options) do
|
|
26
21
|
if embedded?
|
|
@@ -41,8 +36,6 @@ module Mongoid
|
|
|
41
36
|
# document.inserts
|
|
42
37
|
#
|
|
43
38
|
# @return [ Hash ] The insert ops.
|
|
44
|
-
#
|
|
45
|
-
# @since 2.1.0
|
|
46
39
|
def atomic_inserts
|
|
47
40
|
{ atomic_insert_modifier => { atomic_position => as_attributes }}
|
|
48
41
|
end
|
|
@@ -55,8 +48,6 @@ module Mongoid
|
|
|
55
48
|
# document.insert_as_embedded
|
|
56
49
|
#
|
|
57
50
|
# @return [ Document ] The document.
|
|
58
|
-
#
|
|
59
|
-
# @since 4.0.0
|
|
60
51
|
def insert_as_embedded
|
|
61
52
|
raise Errors::NoParent.new(self.class.name) unless _parent
|
|
62
53
|
if _parent.new_record?
|
|
@@ -77,8 +68,6 @@ module Mongoid
|
|
|
77
68
|
# document.insert_as_root
|
|
78
69
|
#
|
|
79
70
|
# @return [ Document ] The document.
|
|
80
|
-
#
|
|
81
|
-
# @since 4.0.0
|
|
82
71
|
def insert_as_root
|
|
83
72
|
collection.insert_one(as_attributes, session: _session)
|
|
84
73
|
end
|
|
@@ -92,11 +81,9 @@ module Mongoid
|
|
|
92
81
|
# document.post_process_insert
|
|
93
82
|
#
|
|
94
83
|
# @return [ true ] true.
|
|
95
|
-
#
|
|
96
|
-
# @since 4.0.0
|
|
97
84
|
def post_process_insert
|
|
98
85
|
self.new_record = false
|
|
99
|
-
|
|
86
|
+
flag_descendants_persisted
|
|
100
87
|
true
|
|
101
88
|
end
|
|
102
89
|
|
|
@@ -112,8 +99,6 @@ module Mongoid
|
|
|
112
99
|
# @param [ Hash ] options The options.
|
|
113
100
|
#
|
|
114
101
|
# @return [ Document ] The document.
|
|
115
|
-
#
|
|
116
|
-
# @since 4.0.0
|
|
117
102
|
def prepare_insert(options = {})
|
|
118
103
|
return self if performing_validations?(options) &&
|
|
119
104
|
invalid?(options[:context] || :create)
|
|
@@ -142,8 +127,6 @@ module Mongoid
|
|
|
142
127
|
# Array of multiple attributes for multiple documents.
|
|
143
128
|
#
|
|
144
129
|
# @return [ Document, Array<Document> ] The newly created document(s).
|
|
145
|
-
#
|
|
146
|
-
# @since 1.0.0
|
|
147
130
|
def create(attributes = nil, &block)
|
|
148
131
|
_creating do
|
|
149
132
|
if attributes.is_a?(::Array)
|
|
@@ -171,8 +154,6 @@ module Mongoid
|
|
|
171
154
|
# Array of multiple attributes for multiple documents.
|
|
172
155
|
#
|
|
173
156
|
# @return [ Document, Array<Document> ] The newly created document(s).
|
|
174
|
-
#
|
|
175
|
-
# @since 1.0.0
|
|
176
157
|
def create!(attributes = nil, &block)
|
|
177
158
|
_creating do
|
|
178
159
|
if attributes.is_a?(::Array)
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
module Persistable
|
|
6
5
|
|
|
7
6
|
# Defines behavior for persistence operations that delete documents.
|
|
8
|
-
#
|
|
9
|
-
# @since 4.0.0
|
|
10
7
|
module Deletable
|
|
11
8
|
extend ActiveSupport::Concern
|
|
12
9
|
|
|
@@ -18,8 +15,6 @@ module Mongoid
|
|
|
18
15
|
# @param [ Hash ] options Options to pass to remove.
|
|
19
16
|
#
|
|
20
17
|
# @return [ TrueClass ] True.
|
|
21
|
-
#
|
|
22
|
-
# @since 1.0.0
|
|
23
18
|
def delete(options = {})
|
|
24
19
|
raise Errors::ReadonlyDocument.new(self.class) if readonly?
|
|
25
20
|
prepare_delete do
|
|
@@ -44,8 +39,6 @@ module Mongoid
|
|
|
44
39
|
# document.atomic_deletes
|
|
45
40
|
#
|
|
46
41
|
# @return [ Hash ] The atomic deletes.
|
|
47
|
-
#
|
|
48
|
-
# @since 4.0.0
|
|
49
42
|
def atomic_deletes
|
|
50
43
|
{ atomic_delete_modifier => { atomic_path => _index ? { "_id" => _id } : true }}
|
|
51
44
|
end
|
|
@@ -60,8 +53,6 @@ module Mongoid
|
|
|
60
53
|
# @param [ Hash ] options The deletion options.
|
|
61
54
|
#
|
|
62
55
|
# @return [ true ] If the operation succeeded.
|
|
63
|
-
#
|
|
64
|
-
# @since 4.0.0
|
|
65
56
|
def delete_as_embedded(options = {})
|
|
66
57
|
_parent.remove_child(self) if notifying_parent?(options)
|
|
67
58
|
if _parent.persisted?
|
|
@@ -81,8 +72,6 @@ module Mongoid
|
|
|
81
72
|
# document.delete_as_root
|
|
82
73
|
#
|
|
83
74
|
# @return [ true ] If the document was removed.
|
|
84
|
-
#
|
|
85
|
-
# @since 4.0.0
|
|
86
75
|
def delete_as_root
|
|
87
76
|
collection.find(atomic_selector).delete_one(session: _session)
|
|
88
77
|
true
|
|
@@ -98,8 +87,6 @@ module Mongoid
|
|
|
98
87
|
# @param [ Hash ] options The delete options.
|
|
99
88
|
#
|
|
100
89
|
# @return [ true, false ] If the parent should be notified.
|
|
101
|
-
#
|
|
102
|
-
# @since 4.0.0
|
|
103
90
|
def notifying_parent?(options = {})
|
|
104
91
|
!options.delete(:suppress)
|
|
105
92
|
end
|
|
@@ -114,8 +101,6 @@ module Mongoid
|
|
|
114
101
|
# end
|
|
115
102
|
#
|
|
116
103
|
# @return [ Object ] The result of the block.
|
|
117
|
-
#
|
|
118
|
-
# @since 4.0.0
|
|
119
104
|
def prepare_delete
|
|
120
105
|
yield(self)
|
|
121
106
|
freeze
|
|
@@ -137,8 +122,6 @@ module Mongoid
|
|
|
137
122
|
# @param [ Hash ] conditions Optional conditions to delete by.
|
|
138
123
|
#
|
|
139
124
|
# @return [ Integer ] The number of documents deleted.
|
|
140
|
-
#
|
|
141
|
-
# @since 1.0.0
|
|
142
125
|
def delete_all(conditions = {})
|
|
143
126
|
selector = hereditary? ? conditions.merge(discriminator_key.to_sym => discriminator_value) : conditions
|
|
144
127
|
where(selector).delete
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
module Persistable
|
|
6
5
|
|
|
7
6
|
# Defines behavior for persistence operations that destroy documents.
|
|
8
|
-
#
|
|
9
|
-
# @since 4.0.0
|
|
10
7
|
module Destroyable
|
|
11
8
|
extend ActiveSupport::Concern
|
|
12
9
|
|
|
@@ -18,8 +15,6 @@ module Mongoid
|
|
|
18
15
|
# @param [ Hash ] options Options to pass to destroy.
|
|
19
16
|
#
|
|
20
17
|
# @return [ true, false ] True if successful, false if not.
|
|
21
|
-
#
|
|
22
|
-
# @since 1.0.0
|
|
23
18
|
def destroy(options = nil)
|
|
24
19
|
raise Errors::ReadonlyDocument.new(self.class) if readonly?
|
|
25
20
|
self.flagged_for_destroy = true
|
|
@@ -53,8 +48,6 @@ module Mongoid
|
|
|
53
48
|
# @param [ Hash ] conditions Optional conditions to destroy by.
|
|
54
49
|
#
|
|
55
50
|
# @return [ Integer ] The number of documents destroyed.
|
|
56
|
-
#
|
|
57
|
-
# @since 1.0.0
|
|
58
51
|
def destroy_all(conditions = nil)
|
|
59
52
|
where(conditions || {}).destroy
|
|
60
53
|
end
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
module Persistable
|
|
6
5
|
|
|
7
6
|
# Defines behavior for $inc operations.
|
|
8
|
-
#
|
|
9
|
-
# @since 4.0.0
|
|
10
7
|
module Incrementable
|
|
11
8
|
extend ActiveSupport::Concern
|
|
12
9
|
|
|
@@ -20,8 +17,6 @@ module Mongoid
|
|
|
20
17
|
# @param [ Hash ] increments The field/inc increment pairs.
|
|
21
18
|
#
|
|
22
19
|
# @return [ Document ] The document.
|
|
23
|
-
#
|
|
24
|
-
# @since 4.0.0
|
|
25
20
|
def inc(increments)
|
|
26
21
|
prepare_atomic_operation do |ops|
|
|
27
22
|
process_atomic_operations(increments) do |field, value|
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
module Persistable
|
|
6
5
|
|
|
7
6
|
# Defines behavior for logical bitwise operations.
|
|
8
|
-
#
|
|
9
|
-
# @since 4.0.0
|
|
10
7
|
module Logical
|
|
11
8
|
extend ActiveSupport::Concern
|
|
12
9
|
|
|
@@ -19,8 +16,6 @@ module Mongoid
|
|
|
19
16
|
# @param [ Hash ] operations The bitwise operations.
|
|
20
17
|
#
|
|
21
18
|
# @return [ Document ] The document.
|
|
22
|
-
#
|
|
23
|
-
# @since 4.0.0
|
|
24
19
|
def bit(operations)
|
|
25
20
|
prepare_atomic_operation do |ops|
|
|
26
21
|
process_atomic_operations(operations) do |field, values|
|