mongoid 7.3.5 → 7.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +17 -17
- data/README.md +3 -3
- data/lib/config/locales/en.yml +28 -20
- data/lib/mongoid/association/accessors.rb +0 -27
- data/lib/mongoid/association/bindable.rb +0 -21
- data/lib/mongoid/association/builders.rb +0 -9
- data/lib/mongoid/association/constrainable.rb +0 -3
- data/lib/mongoid/association/depending.rb +0 -7
- data/lib/mongoid/association/eager_loadable.rb +0 -3
- data/lib/mongoid/association/embedded/batchable.rb +12 -59
- data/lib/mongoid/association/embedded/cyclic.rb +2 -11
- data/lib/mongoid/association/embedded/embedded_in/binding.rb +0 -7
- data/lib/mongoid/association/embedded/embedded_in/buildable.rb +0 -3
- data/lib/mongoid/association/embedded/embedded_in/proxy.rb +0 -13
- data/lib/mongoid/association/embedded/embedded_in.rb +0 -23
- data/lib/mongoid/association/embedded/embeds_many/binding.rb +0 -7
- data/lib/mongoid/association/embedded/embeds_many/buildable.rb +0 -3
- data/lib/mongoid/association/embedded/embeds_many/proxy.rb +31 -44
- data/lib/mongoid/association/embedded/embeds_many.rb +0 -31
- data/lib/mongoid/association/embedded/embeds_one/binding.rb +0 -7
- data/lib/mongoid/association/embedded/embeds_one/buildable.rb +0 -3
- data/lib/mongoid/association/embedded/embeds_one/proxy.rb +26 -14
- data/lib/mongoid/association/embedded/embeds_one.rb +0 -27
- data/lib/mongoid/association/embedded.rb +0 -1
- data/lib/mongoid/association/macros.rb +26 -5
- data/lib/mongoid/association/many.rb +0 -17
- data/lib/mongoid/association/marshalable.rb +0 -5
- data/lib/mongoid/association/nested/many.rb +0 -11
- data/lib/mongoid/association/nested/nested_buildable.rb +0 -9
- data/lib/mongoid/association/nested/one.rb +1 -16
- data/lib/mongoid/association/nested.rb +0 -3
- data/lib/mongoid/association/one.rb +1 -10
- data/lib/mongoid/association/options.rb +0 -33
- data/lib/mongoid/association/proxy.rb +0 -21
- data/lib/mongoid/association/referenced/auto_save.rb +0 -9
- data/lib/mongoid/association/referenced/belongs_to/binding.rb +0 -7
- data/lib/mongoid/association/referenced/belongs_to/buildable.rb +4 -5
- data/lib/mongoid/association/referenced/belongs_to/eager.rb +0 -1
- data/lib/mongoid/association/referenced/belongs_to/proxy.rb +0 -13
- data/lib/mongoid/association/referenced/belongs_to.rb +9 -34
- data/lib/mongoid/association/referenced/counter_cache.rb +2 -15
- data/lib/mongoid/association/referenced/eager.rb +3 -24
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/binding.rb +0 -5
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/buildable.rb +0 -3
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/eager.rb +0 -1
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/proxy.rb +12 -39
- data/lib/mongoid/association/referenced/has_and_belongs_to_many.rb +11 -38
- data/lib/mongoid/association/referenced/has_many/binding.rb +0 -5
- data/lib/mongoid/association/referenced/has_many/buildable.rb +0 -3
- data/lib/mongoid/association/referenced/has_many/eager.rb +0 -1
- data/lib/mongoid/association/referenced/has_many/enumerable.rb +20 -64
- data/lib/mongoid/association/referenced/has_many/proxy.rb +20 -63
- data/lib/mongoid/association/referenced/has_many.rb +12 -39
- data/lib/mongoid/association/referenced/has_one/binding.rb +0 -7
- data/lib/mongoid/association/referenced/has_one/buildable.rb +3 -4
- data/lib/mongoid/association/referenced/has_one/eager.rb +0 -1
- data/lib/mongoid/association/referenced/has_one/nested_builder.rb +0 -15
- data/lib/mongoid/association/referenced/has_one/proxy.rb +0 -9
- data/lib/mongoid/association/referenced/has_one.rb +9 -32
- data/lib/mongoid/association/referenced/syncable.rb +0 -17
- data/lib/mongoid/association/referenced.rb +0 -1
- data/lib/mongoid/association/reflections.rb +0 -1
- data/lib/mongoid/association/relatable.rb +0 -61
- data/lib/mongoid/association.rb +0 -17
- data/lib/mongoid/atomic/modifiers.rb +4 -51
- data/lib/mongoid/atomic/paths/embedded/many.rb +0 -24
- data/lib/mongoid/atomic/paths/embedded/one.rb +0 -5
- data/lib/mongoid/atomic/paths/embedded.rb +0 -3
- data/lib/mongoid/atomic/paths/root.rb +0 -5
- data/lib/mongoid/atomic/paths.rb +0 -1
- data/lib/mongoid/atomic.rb +1 -42
- data/lib/mongoid/attributes/dynamic.rb +0 -17
- data/lib/mongoid/attributes/nested.rb +0 -5
- data/lib/mongoid/attributes/processing.rb +1 -18
- data/lib/mongoid/attributes/projector.rb +0 -1
- data/lib/mongoid/attributes/readonly.rb +0 -5
- data/lib/mongoid/attributes.rb +0 -33
- data/lib/mongoid/cacheable.rb +1 -6
- data/lib/mongoid/changeable.rb +3 -59
- data/lib/mongoid/clients/factory.rb +0 -7
- data/lib/mongoid/clients/options.rb +0 -5
- data/lib/mongoid/clients/sessions.rb +0 -7
- data/lib/mongoid/clients/storage_options.rb +0 -7
- data/lib/mongoid/clients/validators/storage.rb +0 -9
- data/lib/mongoid/clients/validators.rb +0 -1
- data/lib/mongoid/clients.rb +0 -9
- data/lib/mongoid/composable.rb +0 -7
- data/lib/mongoid/config/environment.rb +21 -6
- data/lib/mongoid/config/options.rb +0 -11
- data/lib/mongoid/config/validators/client.rb +0 -17
- data/lib/mongoid/config/validators/option.rb +0 -3
- data/lib/mongoid/config/validators.rb +0 -1
- data/lib/mongoid/config.rb +43 -30
- data/lib/mongoid/contextual/aggregable/memory.rb +14 -11
- data/lib/mongoid/contextual/aggregable/mongo.rb +15 -20
- data/lib/mongoid/contextual/aggregable/none.rb +65 -0
- data/lib/mongoid/contextual/aggregable.rb +17 -0
- data/lib/mongoid/contextual/atomic.rb +0 -25
- data/lib/mongoid/contextual/command.rb +0 -5
- data/lib/mongoid/contextual/geo_near.rb +1 -34
- data/lib/mongoid/contextual/map_reduce.rb +0 -31
- data/lib/mongoid/contextual/memory.rb +147 -70
- data/lib/mongoid/contextual/mongo.rb +249 -103
- data/lib/mongoid/contextual/none.rb +83 -28
- data/lib/mongoid/contextual/queryable.rb +0 -3
- data/lib/mongoid/contextual.rb +0 -5
- data/lib/mongoid/copyable.rb +0 -5
- data/lib/mongoid/criteria/findable.rb +0 -13
- data/lib/mongoid/criteria/includable.rb +0 -9
- data/lib/mongoid/criteria/inspectable.rb +0 -3
- data/lib/mongoid/criteria/marshalable.rb +0 -5
- data/lib/mongoid/criteria/modifiable.rb +0 -19
- data/lib/mongoid/criteria/options.rb +0 -3
- data/lib/mongoid/criteria/permission.rb +0 -1
- data/lib/mongoid/criteria/queryable/aggregable.rb +0 -13
- data/lib/mongoid/criteria/queryable/expandable.rb +0 -1
- data/lib/mongoid/criteria/queryable/extensions/array.rb +2 -25
- data/lib/mongoid/criteria/queryable/extensions/big_decimal.rb +0 -3
- data/lib/mongoid/criteria/queryable/extensions/boolean.rb +0 -3
- data/lib/mongoid/criteria/queryable/extensions/date.rb +0 -7
- data/lib/mongoid/criteria/queryable/extensions/date_time.rb +0 -5
- data/lib/mongoid/criteria/queryable/extensions/hash.rb +1 -24
- data/lib/mongoid/criteria/queryable/extensions/nil_class.rb +0 -13
- data/lib/mongoid/criteria/queryable/extensions/numeric.rb +0 -11
- data/lib/mongoid/criteria/queryable/extensions/object.rb +1 -28
- data/lib/mongoid/criteria/queryable/extensions/range.rb +38 -16
- data/lib/mongoid/criteria/queryable/extensions/regexp.rb +0 -9
- data/lib/mongoid/criteria/queryable/extensions/set.rb +0 -3
- data/lib/mongoid/criteria/queryable/extensions/string.rb +0 -17
- data/lib/mongoid/criteria/queryable/extensions/symbol.rb +0 -9
- data/lib/mongoid/criteria/queryable/extensions/time.rb +0 -7
- data/lib/mongoid/criteria/queryable/extensions/time_with_zone.rb +0 -7
- data/lib/mongoid/criteria/queryable/extensions.rb +0 -1
- data/lib/mongoid/criteria/queryable/key.rb +1 -14
- data/lib/mongoid/criteria/queryable/macroable.rb +0 -3
- data/lib/mongoid/criteria/queryable/mergeable.rb +22 -30
- data/lib/mongoid/criteria/queryable/optional.rb +0 -45
- data/lib/mongoid/criteria/queryable/options.rb +0 -19
- data/lib/mongoid/criteria/queryable/pipeline.rb +0 -13
- data/lib/mongoid/criteria/queryable/selectable.rb +45 -76
- data/lib/mongoid/criteria/queryable/selector.rb +0 -17
- data/lib/mongoid/criteria/queryable/smash.rb +0 -11
- data/lib/mongoid/criteria/queryable/storable.rb +6 -2
- data/lib/mongoid/criteria/queryable.rb +0 -7
- data/lib/mongoid/criteria/scopable.rb +25 -19
- data/lib/mongoid/criteria.rb +2 -57
- data/lib/mongoid/document.rb +1 -50
- data/lib/mongoid/equality.rb +26 -10
- data/lib/mongoid/errors/ambiguous_relationship.rb +2 -5
- data/lib/mongoid/errors/callback.rb +0 -3
- data/lib/mongoid/errors/criteria_argument_required.rb +0 -1
- data/lib/mongoid/errors/delete_restriction.rb +0 -3
- data/lib/mongoid/errors/document_not_destroyed.rb +2 -7
- data/lib/mongoid/errors/document_not_found.rb +23 -15
- data/lib/mongoid/errors/eager_load.rb +0 -3
- data/lib/mongoid/errors/empty_config_file.rb +0 -1
- data/lib/mongoid/errors/in_memory_collation_not_supported.rb +0 -3
- data/lib/mongoid/errors/invalid_collection.rb +0 -1
- data/lib/mongoid/errors/invalid_config_file.rb +0 -1
- data/lib/mongoid/errors/invalid_config_option.rb +0 -3
- data/lib/mongoid/errors/invalid_dependent_strategy.rb +0 -3
- data/lib/mongoid/errors/invalid_discriminator_key_target.rb +0 -1
- data/lib/mongoid/errors/invalid_elem_match_operator.rb +0 -1
- data/lib/mongoid/errors/invalid_estimated_count_criteria.rb +0 -1
- data/lib/mongoid/errors/invalid_expression_operator.rb +0 -1
- data/lib/mongoid/errors/invalid_field.rb +0 -5
- data/lib/mongoid/errors/invalid_field_operator.rb +0 -1
- data/lib/mongoid/errors/invalid_field_option.rb +0 -3
- data/lib/mongoid/errors/invalid_find.rb +0 -3
- data/lib/mongoid/errors/invalid_includes.rb +0 -3
- data/lib/mongoid/errors/invalid_index.rb +0 -3
- data/lib/mongoid/errors/invalid_options.rb +0 -3
- data/lib/mongoid/errors/invalid_path.rb +0 -3
- data/lib/mongoid/errors/invalid_persistence_option.rb +0 -5
- data/lib/mongoid/errors/invalid_query.rb +0 -1
- data/lib/mongoid/errors/invalid_relation.rb +0 -7
- data/lib/mongoid/errors/invalid_relation_option.rb +0 -3
- data/lib/mongoid/errors/invalid_scope.rb +0 -3
- data/lib/mongoid/errors/invalid_session_use.rb +1 -6
- data/lib/mongoid/errors/invalid_set_polymorphic_relation.rb +0 -1
- data/lib/mongoid/errors/invalid_storage_options.rb +0 -3
- data/lib/mongoid/errors/invalid_storage_parent.rb +0 -3
- data/lib/mongoid/errors/invalid_time.rb +0 -3
- data/lib/mongoid/errors/invalid_value.rb +0 -1
- data/lib/mongoid/errors/inverse_not_found.rb +0 -3
- data/lib/mongoid/errors/mixed_client_configuration.rb +0 -3
- data/lib/mongoid/errors/mixed_relations.rb +0 -3
- data/lib/mongoid/errors/mongoid_error.rb +0 -9
- data/lib/mongoid/errors/nested_attributes_metadata_not_found.rb +0 -3
- data/lib/mongoid/errors/no_client_config.rb +0 -3
- data/lib/mongoid/errors/no_client_database.rb +0 -3
- data/lib/mongoid/errors/no_client_hosts.rb +0 -3
- data/lib/mongoid/errors/no_clients_config.rb +0 -3
- data/lib/mongoid/errors/no_default_client.rb +0 -3
- data/lib/mongoid/errors/no_environment.rb +0 -3
- data/lib/mongoid/errors/no_map_reduce_output.rb +0 -3
- data/lib/mongoid/errors/no_metadata.rb +0 -3
- data/lib/mongoid/errors/no_parent.rb +0 -3
- data/lib/mongoid/errors/readonly_attribute.rb +0 -3
- data/lib/mongoid/errors/readonly_document.rb +1 -6
- data/lib/mongoid/errors/scope_overwrite.rb +0 -1
- data/lib/mongoid/errors/too_many_nested_attribute_records.rb +0 -1
- data/lib/mongoid/errors/unknown_attribute.rb +0 -3
- data/lib/mongoid/errors/unknown_model.rb +0 -3
- data/lib/mongoid/errors/unsaved_document.rb +1 -2
- data/lib/mongoid/errors/unsupported_javascript.rb +0 -3
- data/lib/mongoid/errors/validations.rb +0 -1
- data/lib/mongoid/errors.rb +0 -1
- data/lib/mongoid/evolvable.rb +0 -3
- data/lib/mongoid/extensions/array.rb +3 -29
- data/lib/mongoid/extensions/big_decimal.rb +0 -11
- data/lib/mongoid/extensions/boolean.rb +0 -3
- data/lib/mongoid/extensions/date.rb +0 -9
- data/lib/mongoid/extensions/date_time.rb +0 -9
- data/lib/mongoid/extensions/decimal128.rb +0 -5
- data/lib/mongoid/extensions/false_class.rb +1 -6
- data/lib/mongoid/extensions/float.rb +0 -7
- data/lib/mongoid/extensions/hash.rb +0 -27
- data/lib/mongoid/extensions/integer.rb +0 -9
- data/lib/mongoid/extensions/module.rb +0 -3
- data/lib/mongoid/extensions/nil_class.rb +0 -5
- data/lib/mongoid/extensions/object.rb +1 -40
- data/lib/mongoid/extensions/object_id.rb +0 -7
- data/lib/mongoid/extensions/range.rb +0 -11
- data/lib/mongoid/extensions/regexp.rb +0 -3
- data/lib/mongoid/extensions/set.rb +0 -7
- data/lib/mongoid/extensions/string.rb +1 -30
- data/lib/mongoid/extensions/symbol.rb +0 -7
- data/lib/mongoid/extensions/time.rb +0 -11
- data/lib/mongoid/extensions/time_with_zone.rb +13 -9
- data/lib/mongoid/extensions/true_class.rb +1 -6
- data/lib/mongoid/extensions.rb +15 -3
- data/lib/mongoid/factory.rb +1 -2
- data/lib/mongoid/fields/foreign_key.rb +0 -21
- data/lib/mongoid/fields/localized.rb +0 -11
- data/lib/mongoid/fields/standard.rb +0 -33
- data/lib/mongoid/fields/validators/macro.rb +0 -9
- data/lib/mongoid/fields/validators.rb +0 -1
- data/lib/mongoid/fields.rb +191 -60
- data/lib/mongoid/findable.rb +20 -10
- data/lib/mongoid/indexable/specification.rb +0 -15
- data/lib/mongoid/indexable/validators/options.rb +0 -7
- data/lib/mongoid/indexable.rb +1 -18
- data/lib/mongoid/inspectable.rb +1 -10
- data/lib/mongoid/interceptable.rb +0 -25
- data/lib/mongoid/loggable.rb +0 -9
- data/lib/mongoid/matchable.rb +0 -5
- data/lib/mongoid/matcher/eq_impl.rb +37 -2
- data/lib/mongoid/matcher/eq_impl_with_regexp.rb +6 -1
- data/lib/mongoid/persistable/creatable.rb +1 -20
- data/lib/mongoid/persistable/deletable.rb +0 -17
- data/lib/mongoid/persistable/destroyable.rb +0 -7
- data/lib/mongoid/persistable/incrementable.rb +0 -5
- data/lib/mongoid/persistable/logical.rb +0 -5
- data/lib/mongoid/persistable/poppable.rb +0 -5
- data/lib/mongoid/persistable/pullable.rb +0 -7
- data/lib/mongoid/persistable/pushable.rb +0 -7
- data/lib/mongoid/persistable/renamable.rb +0 -5
- data/lib/mongoid/persistable/savable.rb +0 -7
- data/lib/mongoid/persistable/settable.rb +0 -5
- data/lib/mongoid/persistable/unsettable.rb +0 -5
- data/lib/mongoid/persistable/updatable.rb +2 -17
- data/lib/mongoid/persistable/upsertable.rb +0 -7
- data/lib/mongoid/persistable.rb +0 -23
- data/lib/mongoid/persistence_context.rb +0 -27
- data/lib/mongoid/positional.rb +0 -5
- data/lib/mongoid/query_cache.rb +0 -33
- data/lib/mongoid/railtie.rb +0 -15
- data/lib/mongoid/railties/controller_runtime.rb +0 -1
- data/lib/mongoid/reloadable.rb +4 -16
- data/lib/mongoid/scopable.rb +6 -34
- data/lib/mongoid/selectable.rb +0 -9
- data/lib/mongoid/serializable.rb +0 -15
- data/lib/mongoid/shardable.rb +0 -7
- data/lib/mongoid/stateful.rb +0 -9
- data/lib/mongoid/stringified_symbol.rb +2 -3
- data/lib/mongoid/tasks/database.rb +0 -5
- data/lib/mongoid/threaded/lifecycle.rb +0 -21
- data/lib/mongoid/threaded.rb +0 -55
- data/lib/mongoid/timestamps/created/short.rb +0 -1
- data/lib/mongoid/timestamps/created.rb +0 -1
- data/lib/mongoid/timestamps/short.rb +0 -1
- data/lib/mongoid/timestamps/timeless.rb +0 -7
- data/lib/mongoid/timestamps/updated/short.rb +0 -1
- data/lib/mongoid/timestamps/updated.rb +0 -3
- data/lib/mongoid/timestamps.rb +0 -1
- data/lib/mongoid/touchable.rb +0 -7
- data/lib/mongoid/traversable.rb +67 -53
- data/lib/mongoid/validatable/associated.rb +0 -3
- data/lib/mongoid/validatable/format.rb +0 -1
- data/lib/mongoid/validatable/length.rb +0 -1
- data/lib/mongoid/validatable/localizable.rb +0 -3
- data/lib/mongoid/validatable/macros.rb +0 -7
- data/lib/mongoid/validatable/presence.rb +1 -8
- data/lib/mongoid/validatable/queryable.rb +0 -3
- data/lib/mongoid/validatable/uniqueness.rb +15 -30
- data/lib/mongoid/validatable.rb +1 -22
- data/lib/mongoid/version.rb +1 -2
- data/lib/mongoid/warnings.rb +29 -0
- data/lib/mongoid.rb +1 -15
- data/lib/rails/generators/mongoid/config/config_generator.rb +0 -1
- data/lib/rails/generators/mongoid/config/templates/mongoid.yml +4 -3
- data/lib/rails/generators/mongoid/model/model_generator.rb +0 -1
- data/lib/rails/generators/mongoid_generator.rb +0 -1
- data/lib/rails/mongoid.rb +0 -3
- data/spec/config/mongoid_with_schema_map_uuid.yml +27 -0
- data/spec/integration/app_spec.rb +20 -15
- data/spec/integration/associations/belongs_to_spec.rb +0 -1
- data/spec/integration/associations/embedded_dirty_spec.rb +57 -0
- data/spec/integration/associations/embedded_spec.rb +0 -1
- data/spec/integration/associations/embeds_many_spec.rb +0 -1
- data/spec/integration/associations/embeds_one_spec.rb +0 -1
- data/spec/integration/associations/foreign_key_spec.rb +0 -1
- data/spec/integration/associations/foreign_key_spec_models.rb +0 -1
- data/spec/integration/associations/has_many_spec.rb +0 -1
- data/spec/integration/associations/has_one_spec.rb +0 -1
- data/spec/integration/associations/nested_attributes_assignment_spec.rb +0 -1
- data/spec/integration/associations/reverse_population_spec.rb +0 -1
- data/spec/integration/associations/reverse_population_spec_models.rb +0 -1
- data/spec/integration/associations/scope_option_spec.rb +101 -0
- data/spec/integration/atomic/modifiers_spec.rb +0 -1
- data/spec/integration/bson_regexp_raw_spec.rb +0 -1
- data/spec/integration/callbacks_models.rb +12 -0
- data/spec/integration/callbacks_spec.rb +18 -6
- data/spec/integration/contextual/empty_spec.rb +0 -1
- data/spec/integration/criteria/alias_query_spec.rb +161 -0
- data/spec/integration/criteria/date_field_spec.rb +0 -1
- data/spec/integration/criteria/default_scope_spec.rb +51 -0
- data/spec/integration/criteria/logical_spec.rb +30 -0
- data/spec/integration/criteria/range_spec.rb +265 -0
- data/spec/integration/criteria/time_with_zone_spec.rb +125 -15
- data/spec/integration/discriminator_key_spec.rb +0 -1
- data/spec/integration/discriminator_value_spec.rb +0 -1
- data/spec/integration/document_spec.rb +0 -1
- data/spec/integration/i18n_fallbacks_spec.rb +15 -2
- data/spec/integration/matcher_examples_spec.rb +0 -1
- data/spec/integration/matcher_operator_spec.rb +27 -3
- data/spec/integration/matcher_spec.rb +95 -1
- data/spec/integration/server_query_spec.rb +0 -1
- data/spec/integration/shardable_spec.rb +0 -1
- data/spec/integration/stringified_symbol_field_spec.rb +14 -1
- data/spec/lite_spec_helper.rb +1 -2
- data/spec/mongoid/association/accessors_spec.rb +44 -15
- data/spec/mongoid/association/auto_save_spec.rb +72 -34
- data/spec/mongoid/association/builders_spec.rb +1 -2
- data/spec/mongoid/association/constrainable_spec.rb +0 -1
- data/spec/mongoid/association/counter_cache_spec.rb +32 -33
- data/spec/mongoid/association/depending_spec.rb +12 -13
- data/spec/mongoid/association/eager_spec.rb +4 -5
- data/spec/mongoid/association/embedded/cyclic_spec.rb +2 -3
- data/spec/mongoid/association/embedded/dirty_spec.rb +2 -3
- data/spec/mongoid/association/embedded/embedded_in/binding_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embedded_in/buildable_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embedded_in/proxy_spec.rb +13 -14
- data/spec/mongoid/association/embedded/embedded_in_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_many/binding_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_many/buildable_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_many/proxy_spec.rb +384 -156
- data/spec/mongoid/association/embedded/embeds_many_models.rb +0 -122
- data/spec/mongoid/association/embedded/embeds_many_query_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_many_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one/binding_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one/buildable_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one/proxy_spec.rb +21 -22
- data/spec/mongoid/association/embedded/embeds_one_dnl_models.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one_models.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one_query_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one_spec.rb +0 -1
- data/spec/mongoid/association/macros_spec.rb +9 -10
- data/spec/mongoid/association/nested/many_spec.rb +0 -1
- data/spec/mongoid/association/nested/one_spec.rb +0 -1
- data/spec/mongoid/association/options_spec.rb +0 -1
- data/spec/mongoid/association/polymorphic_spec.rb +0 -1
- data/spec/mongoid/association/referenced/belongs_to/binding_spec.rb +0 -1
- data/spec/mongoid/association/referenced/belongs_to/buildable_spec.rb +55 -17
- data/spec/mongoid/association/referenced/belongs_to/eager_spec.rb +50 -15
- data/spec/mongoid/association/referenced/belongs_to/proxy_spec.rb +57 -53
- data/spec/mongoid/association/referenced/belongs_to_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/belongs_to_spec.rb +22 -2
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/binding_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/buildable_spec.rb +26 -2
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/eager_spec.rb +31 -3
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_persistence_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_spec.rb +179 -162
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_models.rb +18 -1
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_spec.rb +21 -1
- data/spec/mongoid/association/referenced/has_many/binding_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_many/buildable_spec.rb +21 -1
- data/spec/mongoid/association/referenced/has_many/eager_spec.rb +23 -7
- data/spec/mongoid/association/referenced/has_many/enumerable_spec.rb +113 -33
- data/spec/mongoid/association/referenced/has_many/proxy_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_many/proxy_spec.rb +225 -178
- data/spec/mongoid/association/referenced/has_many_models.rb +18 -1
- data/spec/mongoid/association/referenced/has_many_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_many_spec.rb +21 -1
- data/spec/mongoid/association/referenced/has_one/binding_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_one/buildable_spec.rb +51 -8
- data/spec/mongoid/association/referenced/has_one/eager_spec.rb +17 -2
- data/spec/mongoid/association/referenced/has_one/proxy_spec.rb +26 -27
- data/spec/mongoid/association/referenced/has_one_models.rb +18 -1
- data/spec/mongoid/association/referenced/has_one_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_one_spec.rb +21 -1
- data/spec/mongoid/association/reflections_spec.rb +0 -1
- data/spec/mongoid/association/syncable_spec.rb +31 -32
- data/spec/mongoid/association_spec.rb +0 -1
- data/spec/mongoid/atomic/modifiers_spec.rb +0 -1
- data/spec/mongoid/atomic/paths/embedded/many_spec.rb +0 -1
- data/spec/mongoid/atomic/paths/embedded/one_spec.rb +0 -1
- data/spec/mongoid/atomic/paths/root_spec.rb +0 -1
- data/spec/mongoid/atomic/paths_spec.rb +0 -1
- data/spec/mongoid/atomic_spec.rb +28 -7
- data/spec/mongoid/attributes/dynamic_spec.rb +0 -1
- data/spec/mongoid/attributes/nested_spec.rb +66 -67
- data/spec/mongoid/attributes/projector_spec.rb +5 -2
- data/spec/mongoid/attributes/readonly_spec.rb +22 -23
- data/spec/mongoid/attributes_spec.rb +32 -33
- data/spec/mongoid/cacheable_spec.rb +1 -2
- data/spec/mongoid/changeable_spec.rb +35 -36
- data/spec/mongoid/clients/factory_spec.rb +11 -13
- data/spec/mongoid/clients/options_spec.rb +5 -5
- data/spec/mongoid/clients/sessions_spec.rb +22 -23
- data/spec/mongoid/clients/transactions_spec.rb +49 -27
- data/spec/mongoid/clients_spec.rb +6 -7
- data/spec/mongoid/composable_spec.rb +0 -1
- data/spec/mongoid/config/environment_spec.rb +39 -2
- data/spec/mongoid/config/options_spec.rb +0 -1
- data/spec/mongoid/config_spec.rb +154 -4
- data/spec/mongoid/contextual/aggregable/memory_spec.rb +51 -12
- data/spec/mongoid/contextual/aggregable/mongo_spec.rb +120 -21
- data/spec/mongoid/contextual/aggregable/none_spec.rb +60 -0
- data/spec/mongoid/contextual/atomic_spec.rb +46 -47
- data/spec/mongoid/contextual/geo_near_spec.rb +17 -18
- data/spec/mongoid/contextual/map_reduce_spec.rb +2 -3
- data/spec/mongoid/contextual/memory_spec.rb +849 -89
- data/spec/mongoid/contextual/mongo_spec.rb +1185 -160
- data/spec/mongoid/contextual/none_spec.rb +43 -72
- data/spec/mongoid/copyable_spec.rb +12 -13
- data/spec/mongoid/copyable_spec_models.rb +0 -1
- data/spec/mongoid/criteria/findable_spec.rb +23 -24
- data/spec/mongoid/criteria/inspectable_spec.rb +0 -1
- data/spec/mongoid/criteria/marshalable_spec.rb +0 -1
- data/spec/mongoid/criteria/modifiable_spec.rb +36 -37
- data/spec/mongoid/criteria/options_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/aggregable_spec.rb +1 -2
- data/spec/mongoid/criteria/queryable/expandable_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/array_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/big_decimal_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/bignum_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/boolean_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/date_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/date_time_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/fixnum_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/float_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/hash_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/integer_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/nil_class_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/numeric_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/object_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/range_spec.rb +237 -179
- data/spec/mongoid/criteria/queryable/extensions/regexp_raw_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/regexp_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/set_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/string_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/symbol_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/time_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/time_with_zone_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/key_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/mergeable_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/optional_spec.rb +1 -2
- data/spec/mongoid/criteria/queryable/options_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/pipeline_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/queryable_spec.rb +1 -2
- data/spec/mongoid/criteria/queryable/selectable_logical_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/selectable_shared_examples.rb +0 -1
- data/spec/mongoid/criteria/queryable/selectable_spec.rb +227 -55
- data/spec/mongoid/criteria/queryable/selectable_where_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/selector_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/smash_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/storable_spec.rb +37 -1
- data/spec/mongoid/criteria/scopable_spec.rb +127 -1
- data/spec/mongoid/criteria_projection_spec.rb +3 -4
- data/spec/mongoid/criteria_spec.rb +523 -187
- data/spec/mongoid/document_fields_spec.rb +0 -1
- data/spec/mongoid/document_persistence_context_spec.rb +0 -1
- data/spec/mongoid/document_query_spec.rb +0 -1
- data/spec/mongoid/document_spec.rb +11 -33
- data/spec/mongoid/equality_spec.rb +142 -41
- data/spec/mongoid/errors/ambiguous_relationship_spec.rb +0 -1
- data/spec/mongoid/errors/callback_spec.rb +0 -1
- data/spec/mongoid/errors/delete_restriction_spec.rb +0 -1
- data/spec/mongoid/errors/document_not_destroyed_spec.rb +0 -1
- data/spec/mongoid/errors/document_not_found_spec.rb +49 -1
- data/spec/mongoid/errors/eager_load_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_collection_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_config_file_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_config_option_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_field_option_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_field_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_find_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_includes_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_index_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_options_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_path_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_relation_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_scope_spec.rb +1 -2
- data/spec/mongoid/errors/invalid_set_polymorphic_relation_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_storage_options_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_time_spec.rb +0 -1
- data/spec/mongoid/errors/inverse_not_found_spec.rb +0 -1
- data/spec/mongoid/errors/mixed_client_configuration_spec.rb +0 -1
- data/spec/mongoid/errors/mixed_relations_spec.rb +0 -1
- data/spec/mongoid/errors/mongoid_error_spec.rb +1 -2
- data/spec/mongoid/errors/nested_attributes_metadata_not_found_spec.rb +0 -1
- data/spec/mongoid/errors/no_client_config_spec.rb +0 -1
- data/spec/mongoid/errors/no_client_database_spec.rb +0 -1
- data/spec/mongoid/errors/no_client_hosts_spec.rb +0 -1
- data/spec/mongoid/errors/no_clients_config_spec.rb +0 -1
- data/spec/mongoid/errors/no_environment_spec.rb +0 -1
- data/spec/mongoid/errors/no_map_reduce_output_spec.rb +0 -1
- data/spec/mongoid/errors/no_metadata_spec.rb +0 -1
- data/spec/mongoid/errors/no_parent_spec.rb +0 -1
- data/spec/mongoid/errors/readonly_attribute_spec.rb +0 -1
- data/spec/mongoid/errors/readonly_document_spec.rb +0 -1
- data/spec/mongoid/errors/scope_overwrite_spec.rb +0 -1
- data/spec/mongoid/errors/too_many_nested_attribute_records_spec.rb +0 -1
- data/spec/mongoid/errors/unknown_attribute_spec.rb +2 -3
- data/spec/mongoid/errors/unsaved_document_spec.rb +0 -1
- data/spec/mongoid/errors/unsupported_javascript_spec.rb +0 -1
- data/spec/mongoid/errors/validations_spec.rb +0 -1
- data/spec/mongoid/extensions/array_spec.rb +0 -1
- data/spec/mongoid/extensions/big_decimal_spec.rb +0 -1
- data/spec/mongoid/extensions/binary_spec.rb +0 -1
- data/spec/mongoid/extensions/boolean_spec.rb +0 -1
- data/spec/mongoid/extensions/date_class_mongoize_spec.rb +0 -1
- data/spec/mongoid/extensions/date_spec.rb +0 -1
- data/spec/mongoid/extensions/date_time_spec.rb +0 -1
- data/spec/mongoid/extensions/decimal128_spec.rb +0 -1
- data/spec/mongoid/extensions/false_class_spec.rb +0 -1
- data/spec/mongoid/extensions/float_spec.rb +0 -1
- data/spec/mongoid/extensions/hash_spec.rb +0 -1
- data/spec/mongoid/extensions/integer_spec.rb +0 -1
- data/spec/mongoid/extensions/module_spec.rb +0 -1
- data/spec/mongoid/extensions/nil_class_spec.rb +0 -1
- data/spec/mongoid/extensions/object_id_spec.rb +0 -1
- data/spec/mongoid/extensions/object_spec.rb +0 -1
- data/spec/mongoid/extensions/range_spec.rb +0 -1
- data/spec/mongoid/extensions/regexp_spec.rb +0 -1
- data/spec/mongoid/extensions/set_spec.rb +0 -1
- data/spec/mongoid/extensions/string_spec.rb +2 -3
- data/spec/mongoid/extensions/stringified_symbol_spec.rb +0 -1
- data/spec/mongoid/extensions/symbol_spec.rb +0 -1
- data/spec/mongoid/extensions/time_spec.rb +0 -1
- data/spec/mongoid/extensions/time_with_zone_spec.rb +0 -1
- data/spec/mongoid/extensions/true_class_spec.rb +0 -1
- data/spec/mongoid/extensions_spec.rb +14 -3
- data/spec/mongoid/factory_spec.rb +1 -1
- data/spec/mongoid/fields/foreign_key_spec.rb +0 -1
- data/spec/mongoid/fields/localized_spec.rb +0 -1
- data/spec/mongoid/fields/standard_spec.rb +0 -1
- data/spec/mongoid/fields_spec.rb +326 -31
- data/spec/mongoid/findable_spec.rb +51 -22
- data/spec/mongoid/indexable/specification_spec.rb +0 -1
- data/spec/mongoid/indexable_spec.rb +0 -1
- data/spec/mongoid/inspectable_spec.rb +0 -1
- data/spec/mongoid/interceptable_spec.rb +102 -95
- data/spec/mongoid/loggable_spec.rb +0 -1
- data/spec/mongoid/matcher/extract_attribute_spec.rb +5 -2
- data/spec/mongoid/persistable/creatable_spec.rb +2 -3
- data/spec/mongoid/persistable/deletable_spec.rb +18 -19
- data/spec/mongoid/persistable/destroyable_spec.rb +8 -9
- data/spec/mongoid/persistable/incrementable_spec.rb +8 -9
- data/spec/mongoid/persistable/logical_spec.rb +4 -5
- data/spec/mongoid/persistable/poppable_spec.rb +4 -5
- data/spec/mongoid/persistable/pullable_spec.rb +8 -9
- data/spec/mongoid/persistable/pushable_spec.rb +8 -9
- data/spec/mongoid/persistable/renamable_spec.rb +3 -4
- data/spec/mongoid/persistable/savable_spec.rb +15 -11
- data/spec/mongoid/persistable/settable_spec.rb +9 -10
- data/spec/mongoid/persistable/unsettable_spec.rb +4 -5
- data/spec/mongoid/persistable/updatable_spec.rb +41 -24
- data/spec/mongoid/persistable/upsertable_spec.rb +1 -2
- data/spec/mongoid/persistable_spec.rb +1 -2
- data/spec/mongoid/persistence_context_spec.rb +0 -1
- data/spec/mongoid/positional_spec.rb +0 -1
- data/spec/mongoid/query_cache_middleware_spec.rb +1 -2
- data/spec/mongoid/query_cache_spec.rb +30 -8
- data/spec/mongoid/relations/proxy_spec.rb +6 -7
- data/spec/mongoid/reloadable_spec.rb +209 -23
- data/spec/mongoid/scopable_spec.rb +54 -22
- data/spec/mongoid/selectable_spec.rb +6 -7
- data/spec/mongoid/serializable_spec.rb +9 -10
- data/spec/mongoid/shardable_spec.rb +2 -3
- data/spec/mongoid/stateful_spec.rb +1 -2
- data/spec/mongoid/tasks/database_rake_spec.rb +0 -1
- data/spec/mongoid/tasks/database_spec.rb +0 -1
- data/spec/mongoid/threaded_spec.rb +2 -3
- data/spec/mongoid/timestamps/created/short_spec.rb +1 -2
- data/spec/mongoid/timestamps/created_spec.rb +1 -2
- data/spec/mongoid/timestamps/timeless_spec.rb +2 -3
- data/spec/mongoid/timestamps/updated/short_spec.rb +3 -4
- data/spec/mongoid/timestamps/updated_spec.rb +3 -4
- data/spec/mongoid/timestamps_spec.rb +6 -7
- data/spec/mongoid/touchable_spec.rb +15 -20
- data/spec/mongoid/touchable_spec_models.rb +0 -1
- data/spec/mongoid/traversable_spec.rb +65 -2
- data/spec/mongoid/validatable/associated_spec.rb +0 -1
- data/spec/mongoid/validatable/format_spec.rb +0 -1
- data/spec/mongoid/validatable/length_spec.rb +0 -1
- data/spec/mongoid/validatable/numericality_spec.rb +0 -1
- data/spec/mongoid/validatable/presence_spec.rb +26 -23
- data/spec/mongoid/validatable/uniqueness_spec.rb +67 -68
- data/spec/mongoid/validatable_spec.rb +2 -3
- data/spec/mongoid_spec.rb +0 -1
- data/spec/rails/controller_extension/controller_runtime_spec.rb +0 -1
- data/spec/rails/mongoid_spec.rb +0 -1
- data/spec/shared/lib/mrss/constraints.rb +10 -17
- data/spec/shared/lib/mrss/docker_runner.rb +23 -3
- data/spec/shared/lib/mrss/eg_config_utils.rb +51 -0
- data/spec/shared/lib/mrss/event_subscriber.rb +15 -5
- data/spec/shared/lib/mrss/lite_constraints.rb +40 -1
- data/spec/shared/share/Dockerfile.erb +56 -54
- data/spec/shared/shlib/config.sh +27 -0
- data/spec/shared/shlib/distro.sh +2 -1
- data/spec/shared/shlib/server.sh +46 -21
- data/spec/shared/shlib/set_env.sh +43 -5
- data/spec/spec_helper.rb +12 -22
- data/spec/support/authorization.rb +0 -1
- data/spec/support/constraints.rb +0 -1
- data/spec/support/expectations.rb +0 -1
- data/spec/support/macros.rb +31 -1
- data/spec/support/models/account.rb +1 -2
- data/spec/support/models/acolyte.rb +0 -1
- data/spec/support/models/actor.rb +0 -1
- data/spec/support/models/actress.rb +0 -1
- data/spec/support/models/address.rb +0 -1
- data/spec/support/models/address_component.rb +0 -1
- data/spec/support/models/address_number.rb +0 -1
- data/spec/support/models/agency.rb +0 -1
- data/spec/support/models/agent.rb +0 -1
- data/spec/support/models/album.rb +0 -1
- data/spec/support/models/alert.rb +0 -1
- data/spec/support/models/animal.rb +0 -1
- data/spec/support/models/answer.rb +0 -1
- data/spec/support/models/appointment.rb +0 -1
- data/spec/support/models/armrest.rb +0 -1
- data/spec/support/models/array_field.rb +0 -1
- data/spec/support/models/article.rb +0 -1
- data/spec/support/models/artist.rb +2 -1
- data/spec/support/models/artwork.rb +0 -1
- data/spec/support/models/audio.rb +0 -1
- data/spec/support/models/augmentation.rb +0 -1
- data/spec/support/models/author.rb +0 -1
- data/spec/support/models/baby.rb +0 -1
- data/spec/support/models/band.rb +4 -1
- data/spec/support/models/bar.rb +0 -1
- data/spec/support/models/basic.rb +0 -1
- data/spec/support/models/bed.rb +0 -1
- data/spec/support/models/big_palette.rb +0 -1
- data/spec/support/models/birthday.rb +0 -1
- data/spec/support/models/bolt.rb +0 -1
- data/spec/support/models/bomb.rb +0 -1
- data/spec/support/models/book.rb +0 -1
- data/spec/support/models/breed.rb +0 -1
- data/spec/support/models/browser.rb +0 -1
- data/spec/support/models/building.rb +0 -1
- data/spec/support/models/building_address.rb +0 -1
- data/spec/support/models/bus.rb +0 -1
- data/spec/support/models/business.rb +0 -1
- data/spec/support/models/callback_test.rb +0 -1
- data/spec/support/models/canvas.rb +0 -1
- data/spec/support/models/car.rb +0 -1
- data/spec/support/models/cat.rb +0 -1
- data/spec/support/models/category.rb +0 -1
- data/spec/support/models/child.rb +0 -1
- data/spec/support/models/child_doc.rb +3 -4
- data/spec/support/models/church.rb +0 -1
- data/spec/support/models/circle.rb +0 -1
- data/spec/support/models/circuit.rb +0 -1
- data/spec/support/models/circus.rb +0 -1
- data/spec/support/models/code.rb +2 -1
- data/spec/support/models/coding/pull_request.rb +0 -1
- data/spec/support/models/coding.rb +0 -1
- data/spec/support/models/comment.rb +0 -1
- data/spec/support/models/company.rb +0 -1
- data/spec/support/models/consumption_period.rb +0 -1
- data/spec/support/models/contextable_item.rb +0 -1
- data/spec/support/models/contractor.rb +0 -1
- data/spec/support/models/cookie.rb +0 -1
- data/spec/support/models/country_code.rb +2 -1
- data/spec/support/models/courier_job.rb +0 -1
- data/spec/support/models/crate.rb +0 -1
- data/spec/support/models/customer.rb +0 -1
- data/spec/support/models/customer_address.rb +0 -1
- data/spec/support/models/deed.rb +0 -1
- data/spec/support/models/definition.rb +0 -1
- data/spec/support/models/delegating_patient.rb +0 -1
- data/spec/support/models/description.rb +0 -1
- data/spec/support/models/dictionary.rb +0 -1
- data/spec/support/models/division.rb +0 -1
- data/spec/support/models/doctor.rb +0 -1
- data/spec/support/models/dog.rb +0 -1
- data/spec/support/models/dokument.rb +0 -1
- data/spec/support/models/draft.rb +0 -1
- data/spec/support/models/dragon.rb +0 -1
- data/spec/support/models/driver.rb +0 -1
- data/spec/support/models/drug.rb +0 -1
- data/spec/support/models/dungeon.rb +0 -1
- data/spec/support/models/edit.rb +0 -1
- data/spec/support/models/email.rb +0 -1
- data/spec/support/models/employer.rb +0 -1
- data/spec/support/models/entry.rb +0 -1
- data/spec/support/models/eraser.rb +0 -1
- data/spec/support/models/even.rb +0 -1
- data/spec/support/models/event.rb +0 -1
- data/spec/support/models/exhibition.rb +0 -1
- data/spec/support/models/exhibitor.rb +0 -1
- data/spec/support/models/explosion.rb +0 -1
- data/spec/support/models/eye.rb +0 -1
- data/spec/support/models/eye_bowl.rb +0 -1
- data/spec/support/models/face.rb +0 -1
- data/spec/support/models/favorite.rb +0 -1
- data/spec/support/models/filesystem.rb +0 -1
- data/spec/support/models/fire_hydrant.rb +0 -1
- data/spec/support/models/firefox.rb +0 -1
- data/spec/support/models/fish.rb +0 -1
- data/spec/support/models/folder.rb +0 -1
- data/spec/support/models/folder_item.rb +0 -1
- data/spec/support/models/fruits.rb +0 -1
- data/spec/support/models/game.rb +0 -1
- data/spec/support/models/ghost.rb +0 -1
- data/spec/support/models/guitar.rb +0 -1
- data/spec/support/models/hole.rb +0 -1
- data/spec/support/models/home.rb +0 -1
- data/spec/support/models/house.rb +0 -1
- data/spec/support/models/html_writer.rb +0 -1
- data/spec/support/models/id_key.rb +0 -1
- data/spec/support/models/idnodef.rb +0 -1
- data/spec/support/models/image.rb +0 -1
- data/spec/support/models/implant.rb +0 -1
- data/spec/support/models/instrument.rb +0 -1
- data/spec/support/models/item.rb +0 -1
- data/spec/support/models/jar.rb +0 -1
- data/spec/support/models/kaleidoscope.rb +0 -1
- data/spec/support/models/kangaroo.rb +0 -1
- data/spec/support/models/label.rb +2 -2
- data/spec/support/models/language.rb +0 -1
- data/spec/support/models/lat_lng.rb +0 -1
- data/spec/support/models/league.rb +0 -1
- data/spec/support/models/learner.rb +0 -1
- data/spec/support/models/line_item.rb +0 -1
- data/spec/support/models/location.rb +0 -1
- data/spec/support/models/login.rb +0 -1
- data/spec/support/models/manufacturer.rb +0 -1
- data/spec/support/models/meat.rb +0 -1
- data/spec/support/models/membership.rb +1 -1
- data/spec/support/models/message.rb +0 -1
- data/spec/support/models/minim.rb +0 -1
- data/spec/support/models/mixed_drink.rb +0 -1
- data/spec/support/models/mop.rb +0 -1
- data/spec/support/models/movie.rb +0 -1
- data/spec/support/models/my_hash.rb +0 -1
- data/spec/support/models/name.rb +0 -1
- data/spec/support/models/name_only.rb +0 -1
- data/spec/support/models/node.rb +0 -1
- data/spec/support/models/note.rb +0 -1
- data/spec/support/models/nut.rb +0 -1
- data/spec/support/models/odd.rb +0 -1
- data/spec/support/models/order.rb +2 -1
- data/spec/support/models/ordered_post.rb +1 -2
- data/spec/support/models/ordered_preference.rb +0 -1
- data/spec/support/models/oscar.rb +0 -1
- data/spec/support/models/other_owner_object.rb +0 -1
- data/spec/support/models/override.rb +0 -1
- data/spec/support/models/ownable.rb +0 -1
- data/spec/support/models/owner.rb +0 -1
- data/spec/support/models/pack.rb +0 -1
- data/spec/support/models/page.rb +0 -1
- data/spec/support/models/page_question.rb +0 -1
- data/spec/support/models/palette.rb +0 -1
- data/spec/support/models/parent.rb +0 -1
- data/spec/support/models/parent_doc.rb +0 -1
- data/spec/support/models/passport.rb +5 -1
- data/spec/support/models/patient.rb +0 -1
- data/spec/support/models/pdf_writer.rb +0 -1
- data/spec/support/models/pencil.rb +0 -1
- data/spec/support/models/person.rb +1 -1
- data/spec/support/models/pet.rb +0 -1
- data/spec/support/models/pet_owner.rb +0 -1
- data/spec/support/models/phone.rb +2 -2
- data/spec/support/models/piano.rb +0 -1
- data/spec/support/models/pizza.rb +0 -1
- data/spec/support/models/player.rb +0 -1
- data/spec/support/models/post.rb +0 -1
- data/spec/support/models/post_genre.rb +0 -1
- data/spec/support/models/powerup.rb +0 -1
- data/spec/support/models/preference.rb +0 -1
- data/spec/support/models/princess.rb +0 -1
- data/spec/support/models/product.rb +0 -1
- data/spec/support/models/profile.rb +0 -1
- data/spec/support/models/pronunciation.rb +0 -1
- data/spec/support/models/pub.rb +0 -1
- data/spec/support/models/publication/encyclopedia.rb +0 -1
- data/spec/support/models/publication/review.rb +0 -1
- data/spec/support/models/publication.rb +0 -1
- data/spec/support/models/purchase.rb +0 -1
- data/spec/support/models/purchased_item.rb +10 -0
- data/spec/support/models/question.rb +0 -1
- data/spec/support/models/quiz.rb +0 -1
- data/spec/support/models/rating.rb +0 -1
- data/spec/support/models/record.rb +0 -1
- data/spec/support/models/registry.rb +0 -1
- data/spec/support/models/role.rb +0 -1
- data/spec/support/models/root_category.rb +0 -1
- data/spec/support/models/sandwich.rb +0 -1
- data/spec/support/models/scheduler.rb +0 -1
- data/spec/support/models/scribe.rb +0 -1
- data/spec/support/models/sealer.rb +0 -1
- data/spec/support/models/seat.rb +0 -1
- data/spec/support/models/seo.rb +0 -1
- data/spec/support/models/series.rb +0 -1
- data/spec/support/models/server.rb +0 -1
- data/spec/support/models/service.rb +0 -1
- data/spec/support/models/shape.rb +0 -1
- data/spec/support/models/shelf.rb +0 -1
- data/spec/support/models/shipment_address.rb +0 -1
- data/spec/support/models/shipping_container.rb +0 -1
- data/spec/support/models/shipping_pack.rb +0 -1
- data/spec/support/models/shirt.rb +0 -1
- data/spec/support/models/shop.rb +0 -1
- data/spec/support/models/short_agent.rb +0 -1
- data/spec/support/models/short_quiz.rb +0 -1
- data/spec/support/models/simple.rb +0 -1
- data/spec/support/models/slave.rb +0 -1
- data/spec/support/models/song.rb +0 -1
- data/spec/support/models/sound.rb +0 -1
- data/spec/support/models/spacer.rb +0 -1
- data/spec/support/models/square.rb +0 -1
- data/spec/support/models/staff.rb +0 -1
- data/spec/support/models/store_as_dup_test1.rb +0 -1
- data/spec/support/models/store_as_dup_test2.rb +0 -1
- data/spec/support/models/store_as_dup_test3.rb +0 -1
- data/spec/support/models/store_as_dup_test4.rb +0 -1
- data/spec/support/models/strategy.rb +0 -1
- data/spec/support/models/sub_item.rb +0 -1
- data/spec/support/models/subscription.rb +0 -1
- data/spec/support/models/survey.rb +0 -1
- data/spec/support/models/symptom.rb +0 -1
- data/spec/support/models/tag.rb +0 -1
- data/spec/support/models/target.rb +0 -1
- data/spec/support/models/template.rb +0 -1
- data/spec/support/models/thing.rb +0 -1
- data/spec/support/models/threadlocker.rb +0 -1
- data/spec/support/models/title.rb +0 -1
- data/spec/support/models/tool.rb +0 -1
- data/spec/support/models/topping.rb +0 -1
- data/spec/support/models/toy.rb +0 -1
- data/spec/support/models/track.rb +0 -1
- data/spec/support/models/translation.rb +0 -1
- data/spec/support/models/tree.rb +0 -1
- data/spec/support/models/truck.rb +0 -1
- data/spec/support/models/updatable.rb +0 -1
- data/spec/support/models/user.rb +0 -1
- data/spec/support/models/user_account.rb +0 -1
- data/spec/support/models/validation_callback.rb +0 -1
- data/spec/support/models/vehicle.rb +0 -1
- data/spec/support/models/version.rb +0 -1
- data/spec/support/models/vertex.rb +0 -1
- data/spec/support/models/vet_visit.rb +0 -1
- data/spec/support/models/video.rb +0 -1
- data/spec/support/models/video_game.rb +0 -1
- data/spec/support/models/washer.rb +0 -1
- data/spec/support/models/weapon.rb +0 -1
- data/spec/support/models/wiki_page.rb +0 -1
- data/spec/support/models/word.rb +0 -1
- data/spec/support/models/word_origin.rb +0 -1
- data/spec/support/models/writer.rb +0 -1
- data/spec/support/schema_maps/schema_map_aws.json +17 -0
- data/spec/support/schema_maps/schema_map_aws_key_alt_names.json +12 -0
- data/spec/support/schema_maps/schema_map_azure.json +17 -0
- data/spec/support/schema_maps/schema_map_azure_key_alt_names.json +12 -0
- data/spec/support/schema_maps/schema_map_gcp.json +17 -0
- data/spec/support/schema_maps/schema_map_gcp_key_alt_names.json +12 -0
- data/spec/support/schema_maps/schema_map_kmip.json +17 -0
- data/spec/support/schema_maps/schema_map_kmip_key_alt_names.json +12 -0
- data/spec/support/schema_maps/schema_map_local.json +18 -0
- data/spec/support/schema_maps/schema_map_local_key_alt_names.json +12 -0
- data/spec/support/shared/time.rb +0 -1
- data/spec/support/spec_config.rb +7 -1
- data.tar.gz.sig +0 -0
- metadata +51 -11
- metadata.gz.sig +0 -0
- data/lib/support/ruby_version.rb +0 -29
data/lib/mongoid/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|
|
|
@@ -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 $pop operations.
|
|
8
|
-
#
|
|
9
|
-
# @since 4.0.0
|
|
10
7
|
module Poppable
|
|
11
8
|
extend ActiveSupport::Concern
|
|
12
9
|
|
|
@@ -24,8 +21,6 @@ module Mongoid
|
|
|
24
21
|
# @param [ Hash ] pops The field/value pop operations.
|
|
25
22
|
#
|
|
26
23
|
# @return [ Document ] The document.
|
|
27
|
-
#
|
|
28
|
-
# @since 4.0.0
|
|
29
24
|
def pop(pops)
|
|
30
25
|
prepare_atomic_operation do |ops|
|
|
31
26
|
process_atomic_operations(pops) 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 $pull and $pullAll operations.
|
|
8
|
-
#
|
|
9
|
-
# @since 4.0.0
|
|
10
7
|
module Pullable
|
|
11
8
|
extend ActiveSupport::Concern
|
|
12
9
|
|
|
@@ -20,8 +17,6 @@ module Mongoid
|
|
|
20
17
|
# @param [ Hash ] pulls The field/value pull pairs.
|
|
21
18
|
#
|
|
22
19
|
# @return [ Document ] The document.
|
|
23
|
-
#
|
|
24
|
-
# @since 4.0.0
|
|
25
20
|
def pull(pulls)
|
|
26
21
|
prepare_atomic_operation do |ops|
|
|
27
22
|
process_atomic_operations(pulls) do |field, value|
|
|
@@ -40,8 +35,6 @@ module Mongoid
|
|
|
40
35
|
# @param [ Hash ] pulls The pull all operations.
|
|
41
36
|
#
|
|
42
37
|
# @return [ Document ] The document.
|
|
43
|
-
#
|
|
44
|
-
# @since 4.0.0
|
|
45
38
|
def pull_all(pulls)
|
|
46
39
|
prepare_atomic_operation do |ops|
|
|
47
40
|
process_atomic_operations(pulls) 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 $push and $addToSet operations.
|
|
8
|
-
#
|
|
9
|
-
# @since 4.0.0
|
|
10
7
|
module Pushable
|
|
11
8
|
extend ActiveSupport::Concern
|
|
12
9
|
|
|
@@ -19,8 +16,6 @@ module Mongoid
|
|
|
19
16
|
# @param [ Hash ] adds The field/value pairs to add.
|
|
20
17
|
#
|
|
21
18
|
# @return [ Document ] The document.
|
|
22
|
-
#
|
|
23
|
-
# @since 4.0.0
|
|
24
19
|
def add_to_set(adds)
|
|
25
20
|
prepare_atomic_operation do |ops|
|
|
26
21
|
process_atomic_operations(adds) do |field, value|
|
|
@@ -52,8 +47,6 @@ module Mongoid
|
|
|
52
47
|
# @param [ Hash ] pushes The $push operations.
|
|
53
48
|
#
|
|
54
49
|
# @return [ Document ] The document.
|
|
55
|
-
#
|
|
56
|
-
# @since 4.0.0
|
|
57
50
|
def push(pushes)
|
|
58
51
|
prepare_atomic_operation do |ops|
|
|
59
52
|
process_atomic_operations(pushes) 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 $rename operations.
|
|
8
|
-
#
|
|
9
|
-
# @since 4.0.0
|
|
10
7
|
module Renamable
|
|
11
8
|
extend ActiveSupport::Concern
|
|
12
9
|
|
|
@@ -20,8 +17,6 @@ module Mongoid
|
|
|
20
17
|
# @param [ Hash ] renames The rename pairs of old name/new name.
|
|
21
18
|
#
|
|
22
19
|
# @return [ Document ] The document.
|
|
23
|
-
#
|
|
24
|
-
# @since 4.0.0
|
|
25
20
|
def rename(renames)
|
|
26
21
|
prepare_atomic_operation do |ops|
|
|
27
22
|
process_atomic_operations(renames) do |old_field, new_field|
|
|
@@ -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 save documents.
|
|
8
|
-
#
|
|
9
|
-
# @since 4.0.0
|
|
10
7
|
module Savable
|
|
11
8
|
|
|
12
9
|
# Save the document - will perform an insert if the document is new, and
|
|
@@ -18,8 +15,6 @@ module Mongoid
|
|
|
18
15
|
# @param [ Hash ] options Options to pass to the save.
|
|
19
16
|
#
|
|
20
17
|
# @return [ true, false ] True is success, false if not.
|
|
21
|
-
#
|
|
22
|
-
# @since 1.0.0
|
|
23
18
|
def save(options = {})
|
|
24
19
|
if new_record?
|
|
25
20
|
!insert(options).new_record?
|
|
@@ -40,8 +35,6 @@ module Mongoid
|
|
|
40
35
|
# @raise [ Errors::Callback ] If a callback returns false.
|
|
41
36
|
#
|
|
42
37
|
# @return [ true, false ] True if validation passed.
|
|
43
|
-
#
|
|
44
|
-
# @since 1.0.0
|
|
45
38
|
def save!(options = {})
|
|
46
39
|
unless save(options)
|
|
47
40
|
fail_due_to_validation! unless errors.empty?
|
|
@@ -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 $set operations.
|
|
8
|
-
#
|
|
9
|
-
# @since 4.0.0
|
|
10
7
|
module Settable
|
|
11
8
|
extend ActiveSupport::Concern
|
|
12
9
|
|
|
@@ -47,8 +44,6 @@ module Mongoid
|
|
|
47
44
|
# @param [ Hash ] setters The field/value pairs to set.
|
|
48
45
|
#
|
|
49
46
|
# @return [ Document ] The document.
|
|
50
|
-
#
|
|
51
|
-
# @since 4.0.0
|
|
52
47
|
def set(setters)
|
|
53
48
|
prepare_atomic_operation do |ops|
|
|
54
49
|
process_atomic_operations(setters) 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 $unset operations.
|
|
8
|
-
#
|
|
9
|
-
# @since 4.0.0
|
|
10
7
|
module Unsettable
|
|
11
8
|
extend ActiveSupport::Concern
|
|
12
9
|
|
|
@@ -20,8 +17,6 @@ module Mongoid
|
|
|
20
17
|
# unset.
|
|
21
18
|
#
|
|
22
19
|
# @return [ Document ] The document.
|
|
23
|
-
#
|
|
24
|
-
# @since 4.0.0
|
|
25
20
|
def unset(*fields)
|
|
26
21
|
prepare_atomic_operation do |ops|
|
|
27
22
|
fields.flatten.each do |field|
|