mongoid 7.3.2 → 7.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +17 -17
- data/README.md +2 -2
- data/lib/config/locales/en.yml +30 -16
- data/lib/mongoid/association/accessors.rb +0 -27
- data/lib/mongoid/association/bindable.rb +0 -21
- data/lib/mongoid/association/builders.rb +0 -9
- data/lib/mongoid/association/constrainable.rb +0 -3
- data/lib/mongoid/association/depending.rb +0 -7
- data/lib/mongoid/association/eager_loadable.rb +0 -3
- data/lib/mongoid/association/embedded/batchable.rb +11 -39
- data/lib/mongoid/association/embedded/cyclic.rb +2 -11
- data/lib/mongoid/association/embedded/embedded_in/binding.rb +0 -7
- data/lib/mongoid/association/embedded/embedded_in/buildable.rb +0 -3
- data/lib/mongoid/association/embedded/embedded_in/proxy.rb +0 -13
- data/lib/mongoid/association/embedded/embedded_in.rb +0 -23
- data/lib/mongoid/association/embedded/embeds_many/binding.rb +0 -7
- data/lib/mongoid/association/embedded/embeds_many/buildable.rb +0 -3
- data/lib/mongoid/association/embedded/embeds_many/proxy.rb +31 -44
- data/lib/mongoid/association/embedded/embeds_many.rb +0 -31
- data/lib/mongoid/association/embedded/embeds_one/binding.rb +0 -7
- data/lib/mongoid/association/embedded/embeds_one/buildable.rb +0 -3
- data/lib/mongoid/association/embedded/embeds_one/proxy.rb +26 -14
- data/lib/mongoid/association/embedded/embeds_one.rb +0 -27
- data/lib/mongoid/association/embedded.rb +0 -1
- data/lib/mongoid/association/macros.rb +6 -5
- data/lib/mongoid/association/many.rb +0 -17
- data/lib/mongoid/association/marshalable.rb +0 -5
- data/lib/mongoid/association/nested/many.rb +0 -11
- data/lib/mongoid/association/nested/nested_buildable.rb +0 -9
- data/lib/mongoid/association/nested/one.rb +1 -16
- data/lib/mongoid/association/nested.rb +0 -3
- data/lib/mongoid/association/one.rb +1 -10
- data/lib/mongoid/association/options.rb +0 -33
- data/lib/mongoid/association/proxy.rb +0 -21
- data/lib/mongoid/association/referenced/auto_save.rb +0 -9
- data/lib/mongoid/association/referenced/belongs_to/binding.rb +0 -7
- data/lib/mongoid/association/referenced/belongs_to/buildable.rb +4 -5
- data/lib/mongoid/association/referenced/belongs_to/eager.rb +0 -1
- data/lib/mongoid/association/referenced/belongs_to/proxy.rb +0 -13
- data/lib/mongoid/association/referenced/belongs_to.rb +9 -34
- data/lib/mongoid/association/referenced/counter_cache.rb +2 -15
- data/lib/mongoid/association/referenced/eager.rb +3 -24
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/binding.rb +0 -5
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/buildable.rb +0 -3
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/eager.rb +0 -1
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/proxy.rb +12 -39
- data/lib/mongoid/association/referenced/has_and_belongs_to_many.rb +11 -38
- data/lib/mongoid/association/referenced/has_many/binding.rb +0 -5
- data/lib/mongoid/association/referenced/has_many/buildable.rb +0 -3
- data/lib/mongoid/association/referenced/has_many/eager.rb +0 -1
- data/lib/mongoid/association/referenced/has_many/enumerable.rb +11 -63
- data/lib/mongoid/association/referenced/has_many/proxy.rb +18 -61
- data/lib/mongoid/association/referenced/has_many.rb +12 -39
- data/lib/mongoid/association/referenced/has_one/binding.rb +0 -7
- data/lib/mongoid/association/referenced/has_one/buildable.rb +3 -4
- data/lib/mongoid/association/referenced/has_one/eager.rb +0 -1
- data/lib/mongoid/association/referenced/has_one/nested_builder.rb +0 -15
- data/lib/mongoid/association/referenced/has_one/proxy.rb +0 -9
- data/lib/mongoid/association/referenced/has_one.rb +9 -32
- data/lib/mongoid/association/referenced/syncable.rb +0 -17
- data/lib/mongoid/association/referenced.rb +0 -1
- data/lib/mongoid/association/reflections.rb +0 -1
- data/lib/mongoid/association/relatable.rb +2 -61
- data/lib/mongoid/association.rb +0 -17
- data/lib/mongoid/atomic/modifiers.rb +4 -51
- data/lib/mongoid/atomic/paths/embedded/many.rb +0 -5
- data/lib/mongoid/atomic/paths/embedded/one.rb +0 -5
- data/lib/mongoid/atomic/paths/embedded.rb +0 -3
- data/lib/mongoid/atomic/paths/root.rb +0 -5
- data/lib/mongoid/atomic/paths.rb +0 -1
- data/lib/mongoid/atomic.rb +27 -44
- data/lib/mongoid/attributes/dynamic.rb +0 -17
- data/lib/mongoid/attributes/nested.rb +0 -5
- data/lib/mongoid/attributes/processing.rb +1 -18
- data/lib/mongoid/attributes/projector.rb +0 -1
- data/lib/mongoid/attributes/readonly.rb +0 -5
- data/lib/mongoid/attributes.rb +0 -33
- data/lib/mongoid/cacheable.rb +1 -6
- data/lib/mongoid/changeable.rb +3 -59
- data/lib/mongoid/clients/factory.rb +0 -7
- data/lib/mongoid/clients/options.rb +0 -5
- data/lib/mongoid/clients/sessions.rb +0 -7
- data/lib/mongoid/clients/storage_options.rb +0 -7
- data/lib/mongoid/clients/validators/storage.rb +0 -9
- data/lib/mongoid/clients/validators.rb +0 -1
- data/lib/mongoid/clients.rb +0 -9
- data/lib/mongoid/composable.rb +0 -7
- data/lib/mongoid/config/environment.rb +13 -6
- data/lib/mongoid/config/options.rb +0 -11
- data/lib/mongoid/config/validators/client.rb +0 -17
- data/lib/mongoid/config/validators/option.rb +0 -3
- data/lib/mongoid/config/validators.rb +0 -1
- data/lib/mongoid/config.rb +37 -29
- data/lib/mongoid/contextual/aggregable/memory.rb +14 -11
- data/lib/mongoid/contextual/aggregable/mongo.rb +15 -20
- data/lib/mongoid/contextual/aggregable/none.rb +65 -0
- data/lib/mongoid/contextual/aggregable.rb +17 -0
- data/lib/mongoid/contextual/atomic.rb +7 -27
- data/lib/mongoid/contextual/command.rb +0 -5
- data/lib/mongoid/contextual/geo_near.rb +1 -34
- data/lib/mongoid/contextual/map_reduce.rb +0 -31
- data/lib/mongoid/contextual/memory.rb +4 -59
- data/lib/mongoid/contextual/mongo.rb +132 -78
- data/lib/mongoid/contextual/none.rb +42 -28
- data/lib/mongoid/contextual/queryable.rb +0 -3
- data/lib/mongoid/contextual.rb +0 -5
- data/lib/mongoid/copyable.rb +0 -5
- data/lib/mongoid/criteria/findable.rb +0 -13
- data/lib/mongoid/criteria/includable.rb +0 -9
- data/lib/mongoid/criteria/inspectable.rb +0 -3
- data/lib/mongoid/criteria/marshalable.rb +0 -5
- data/lib/mongoid/criteria/modifiable.rb +0 -19
- data/lib/mongoid/criteria/options.rb +0 -3
- data/lib/mongoid/criteria/permission.rb +0 -1
- data/lib/mongoid/criteria/queryable/aggregable.rb +0 -13
- data/lib/mongoid/criteria/queryable/expandable.rb +0 -1
- data/lib/mongoid/criteria/queryable/extensions/array.rb +1 -26
- data/lib/mongoid/criteria/queryable/extensions/big_decimal.rb +0 -3
- data/lib/mongoid/criteria/queryable/extensions/boolean.rb +0 -3
- data/lib/mongoid/criteria/queryable/extensions/date.rb +0 -7
- data/lib/mongoid/criteria/queryable/extensions/date_time.rb +0 -5
- data/lib/mongoid/criteria/queryable/extensions/hash.rb +0 -25
- data/lib/mongoid/criteria/queryable/extensions/nil_class.rb +0 -13
- data/lib/mongoid/criteria/queryable/extensions/numeric.rb +0 -11
- data/lib/mongoid/criteria/queryable/extensions/object.rb +1 -28
- data/lib/mongoid/criteria/queryable/extensions/range.rb +38 -16
- data/lib/mongoid/criteria/queryable/extensions/regexp.rb +0 -9
- data/lib/mongoid/criteria/queryable/extensions/set.rb +0 -3
- data/lib/mongoid/criteria/queryable/extensions/string.rb +0 -17
- data/lib/mongoid/criteria/queryable/extensions/symbol.rb +0 -9
- data/lib/mongoid/criteria/queryable/extensions/time.rb +0 -7
- data/lib/mongoid/criteria/queryable/extensions/time_with_zone.rb +0 -7
- data/lib/mongoid/criteria/queryable/extensions.rb +0 -1
- data/lib/mongoid/criteria/queryable/key.rb +1 -14
- data/lib/mongoid/criteria/queryable/macroable.rb +0 -3
- data/lib/mongoid/criteria/queryable/mergeable.rb +1 -30
- data/lib/mongoid/criteria/queryable/optional.rb +0 -45
- data/lib/mongoid/criteria/queryable/options.rb +0 -19
- data/lib/mongoid/criteria/queryable/pipeline.rb +0 -13
- data/lib/mongoid/criteria/queryable/selectable.rb +22 -69
- data/lib/mongoid/criteria/queryable/selector.rb +0 -17
- data/lib/mongoid/criteria/queryable/smash.rb +0 -11
- data/lib/mongoid/criteria/queryable/storable.rb +11 -7
- data/lib/mongoid/criteria/queryable.rb +0 -7
- data/lib/mongoid/criteria/scopable.rb +25 -19
- data/lib/mongoid/criteria.rb +0 -57
- data/lib/mongoid/document.rb +3 -53
- data/lib/mongoid/equality.rb +26 -10
- data/lib/mongoid/errors/ambiguous_relationship.rb +2 -5
- data/lib/mongoid/errors/callback.rb +0 -3
- data/lib/mongoid/errors/criteria_argument_required.rb +0 -1
- data/lib/mongoid/errors/delete_restriction.rb +0 -3
- data/lib/mongoid/errors/document_not_destroyed.rb +2 -7
- data/lib/mongoid/errors/document_not_found.rb +0 -9
- data/lib/mongoid/errors/eager_load.rb +0 -3
- data/lib/mongoid/errors/empty_config_file.rb +25 -0
- data/lib/mongoid/errors/in_memory_collation_not_supported.rb +0 -3
- data/lib/mongoid/errors/invalid_collection.rb +0 -1
- data/lib/mongoid/errors/invalid_config_file.rb +25 -0
- data/lib/mongoid/errors/invalid_config_option.rb +0 -3
- data/lib/mongoid/errors/invalid_dependent_strategy.rb +0 -3
- data/lib/mongoid/errors/invalid_discriminator_key_target.rb +0 -1
- data/lib/mongoid/errors/invalid_elem_match_operator.rb +0 -1
- data/lib/mongoid/errors/invalid_estimated_count_criteria.rb +0 -1
- data/lib/mongoid/errors/invalid_expression_operator.rb +0 -1
- data/lib/mongoid/errors/invalid_field.rb +0 -5
- data/lib/mongoid/errors/invalid_field_operator.rb +0 -1
- data/lib/mongoid/errors/invalid_field_option.rb +0 -3
- data/lib/mongoid/errors/invalid_find.rb +0 -3
- data/lib/mongoid/errors/invalid_includes.rb +0 -3
- data/lib/mongoid/errors/invalid_index.rb +0 -3
- data/lib/mongoid/errors/invalid_options.rb +0 -3
- data/lib/mongoid/errors/invalid_path.rb +0 -3
- data/lib/mongoid/errors/invalid_persistence_option.rb +0 -5
- data/lib/mongoid/errors/invalid_query.rb +0 -1
- data/lib/mongoid/errors/invalid_relation.rb +0 -7
- data/lib/mongoid/errors/invalid_relation_option.rb +0 -3
- data/lib/mongoid/errors/invalid_scope.rb +0 -3
- data/lib/mongoid/errors/invalid_session_use.rb +1 -6
- data/lib/mongoid/errors/invalid_set_polymorphic_relation.rb +0 -1
- data/lib/mongoid/errors/invalid_storage_options.rb +0 -3
- data/lib/mongoid/errors/invalid_storage_parent.rb +0 -3
- data/lib/mongoid/errors/invalid_time.rb +0 -3
- data/lib/mongoid/errors/invalid_value.rb +0 -1
- data/lib/mongoid/errors/inverse_not_found.rb +0 -3
- data/lib/mongoid/errors/mixed_client_configuration.rb +0 -3
- data/lib/mongoid/errors/mixed_relations.rb +0 -3
- data/lib/mongoid/errors/mongoid_error.rb +0 -9
- data/lib/mongoid/errors/nested_attributes_metadata_not_found.rb +0 -3
- data/lib/mongoid/errors/no_client_config.rb +0 -3
- data/lib/mongoid/errors/no_client_database.rb +0 -3
- data/lib/mongoid/errors/no_client_hosts.rb +0 -3
- data/lib/mongoid/errors/no_clients_config.rb +0 -3
- data/lib/mongoid/errors/no_default_client.rb +0 -3
- data/lib/mongoid/errors/no_environment.rb +0 -3
- data/lib/mongoid/errors/no_map_reduce_output.rb +0 -3
- data/lib/mongoid/errors/no_metadata.rb +0 -3
- data/lib/mongoid/errors/no_parent.rb +0 -3
- data/lib/mongoid/errors/readonly_attribute.rb +0 -3
- data/lib/mongoid/errors/readonly_document.rb +1 -6
- data/lib/mongoid/errors/scope_overwrite.rb +0 -1
- data/lib/mongoid/errors/too_many_nested_attribute_records.rb +0 -1
- data/lib/mongoid/errors/unknown_attribute.rb +0 -3
- data/lib/mongoid/errors/unknown_model.rb +0 -3
- data/lib/mongoid/errors/unsaved_document.rb +1 -2
- data/lib/mongoid/errors/unsupported_javascript.rb +0 -3
- data/lib/mongoid/errors/validations.rb +0 -1
- data/lib/mongoid/errors.rb +2 -1
- data/lib/mongoid/evolvable.rb +0 -3
- data/lib/mongoid/extensions/array.rb +3 -29
- data/lib/mongoid/extensions/big_decimal.rb +0 -11
- data/lib/mongoid/extensions/boolean.rb +0 -3
- data/lib/mongoid/extensions/date.rb +0 -9
- data/lib/mongoid/extensions/date_time.rb +0 -9
- data/lib/mongoid/extensions/decimal128.rb +0 -5
- data/lib/mongoid/extensions/false_class.rb +1 -6
- data/lib/mongoid/extensions/float.rb +0 -7
- data/lib/mongoid/extensions/hash.rb +0 -27
- data/lib/mongoid/extensions/integer.rb +0 -9
- data/lib/mongoid/extensions/module.rb +0 -3
- data/lib/mongoid/extensions/nil_class.rb +0 -5
- data/lib/mongoid/extensions/object.rb +1 -40
- data/lib/mongoid/extensions/object_id.rb +0 -7
- data/lib/mongoid/extensions/range.rb +0 -11
- data/lib/mongoid/extensions/regexp.rb +0 -3
- data/lib/mongoid/extensions/set.rb +0 -7
- data/lib/mongoid/extensions/string.rb +1 -30
- data/lib/mongoid/extensions/symbol.rb +0 -7
- data/lib/mongoid/extensions/time.rb +0 -11
- data/lib/mongoid/extensions/time_with_zone.rb +13 -9
- data/lib/mongoid/extensions/true_class.rb +1 -6
- data/lib/mongoid/extensions.rb +15 -3
- data/lib/mongoid/factory.rb +1 -2
- data/lib/mongoid/fields/foreign_key.rb +0 -21
- data/lib/mongoid/fields/localized.rb +0 -11
- data/lib/mongoid/fields/standard.rb +0 -33
- data/lib/mongoid/fields/validators/macro.rb +0 -9
- data/lib/mongoid/fields/validators.rb +0 -1
- data/lib/mongoid/fields.rb +64 -57
- data/lib/mongoid/findable.rb +0 -5
- data/lib/mongoid/indexable/specification.rb +0 -15
- data/lib/mongoid/indexable/validators/options.rb +0 -7
- data/lib/mongoid/indexable.rb +1 -18
- data/lib/mongoid/inspectable.rb +1 -10
- data/lib/mongoid/interceptable.rb +0 -25
- data/lib/mongoid/loggable.rb +0 -9
- data/lib/mongoid/matchable.rb +0 -5
- data/lib/mongoid/matcher/eq_impl.rb +37 -2
- data/lib/mongoid/matcher/eq_impl_with_regexp.rb +6 -1
- data/lib/mongoid/persistable/creatable.rb +1 -20
- data/lib/mongoid/persistable/deletable.rb +0 -17
- data/lib/mongoid/persistable/destroyable.rb +0 -7
- data/lib/mongoid/persistable/incrementable.rb +0 -5
- data/lib/mongoid/persistable/logical.rb +0 -5
- data/lib/mongoid/persistable/poppable.rb +0 -5
- data/lib/mongoid/persistable/pullable.rb +0 -7
- data/lib/mongoid/persistable/pushable.rb +0 -7
- data/lib/mongoid/persistable/renamable.rb +0 -5
- data/lib/mongoid/persistable/savable.rb +0 -7
- data/lib/mongoid/persistable/settable.rb +0 -5
- data/lib/mongoid/persistable/unsettable.rb +0 -5
- data/lib/mongoid/persistable/updatable.rb +2 -17
- data/lib/mongoid/persistable/upsertable.rb +0 -7
- data/lib/mongoid/persistable.rb +0 -23
- data/lib/mongoid/persistence_context.rb +3 -28
- data/lib/mongoid/positional.rb +0 -5
- data/lib/mongoid/query_cache.rb +11 -34
- data/lib/mongoid/railtie.rb +0 -15
- data/lib/mongoid/railties/controller_runtime.rb +0 -1
- data/lib/mongoid/reloadable.rb +4 -16
- data/lib/mongoid/scopable.rb +6 -34
- data/lib/mongoid/selectable.rb +0 -9
- data/lib/mongoid/serializable.rb +0 -15
- data/lib/mongoid/shardable.rb +0 -7
- data/lib/mongoid/stateful.rb +0 -9
- data/lib/mongoid/stringified_symbol.rb +2 -3
- data/lib/mongoid/tasks/database.rb +1 -6
- data/lib/mongoid/threaded/lifecycle.rb +0 -21
- data/lib/mongoid/threaded.rb +0 -55
- data/lib/mongoid/timestamps/created/short.rb +0 -1
- data/lib/mongoid/timestamps/created.rb +0 -1
- data/lib/mongoid/timestamps/short.rb +0 -1
- data/lib/mongoid/timestamps/timeless.rb +0 -7
- data/lib/mongoid/timestamps/updated/short.rb +0 -1
- data/lib/mongoid/timestamps/updated.rb +0 -3
- data/lib/mongoid/timestamps.rb +0 -1
- data/lib/mongoid/touchable.rb +10 -7
- data/lib/mongoid/traversable.rb +64 -53
- data/lib/mongoid/validatable/associated.rb +0 -3
- data/lib/mongoid/validatable/format.rb +0 -1
- data/lib/mongoid/validatable/length.rb +0 -1
- data/lib/mongoid/validatable/localizable.rb +0 -3
- data/lib/mongoid/validatable/macros.rb +0 -7
- data/lib/mongoid/validatable/presence.rb +1 -8
- data/lib/mongoid/validatable/queryable.rb +0 -3
- data/lib/mongoid/validatable/uniqueness.rb +15 -30
- data/lib/mongoid/validatable.rb +1 -22
- data/lib/mongoid/version.rb +1 -2
- data/lib/mongoid.rb +0 -15
- data/lib/rails/generators/mongoid/config/config_generator.rb +0 -1
- data/lib/rails/generators/mongoid/model/model_generator.rb +0 -1
- data/lib/rails/generators/mongoid_generator.rb +0 -1
- data/lib/rails/mongoid.rb +0 -3
- data/spec/integration/app_spec.rb +0 -1
- data/spec/integration/associations/belongs_to_spec.rb +0 -1
- data/spec/integration/associations/embedded_dirty_spec.rb +29 -0
- data/spec/integration/associations/embedded_spec.rb +0 -1
- data/spec/integration/associations/embeds_many_spec.rb +139 -1
- data/spec/integration/associations/embeds_one_spec.rb +0 -1
- data/spec/integration/associations/foreign_key_spec.rb +0 -1
- data/spec/integration/associations/foreign_key_spec_models.rb +0 -1
- data/spec/integration/associations/has_many_spec.rb +0 -1
- data/spec/integration/associations/has_one_spec.rb +0 -1
- data/spec/integration/associations/nested_attributes_assignment_spec.rb +0 -1
- data/spec/integration/associations/reverse_population_spec.rb +0 -1
- data/spec/integration/associations/reverse_population_spec_models.rb +0 -1
- data/spec/integration/associations/scope_option_spec.rb +101 -0
- data/spec/integration/atomic/modifiers_spec.rb +0 -1
- data/spec/integration/bson_regexp_raw_spec.rb +0 -1
- data/spec/integration/callbacks_models.rb +12 -0
- data/spec/integration/callbacks_spec.rb +18 -6
- data/spec/integration/contextual/empty_spec.rb +141 -0
- data/spec/integration/criteria/alias_query_spec.rb +161 -0
- data/spec/integration/criteria/date_field_spec.rb +0 -1
- data/spec/integration/criteria/default_scope_spec.rb +51 -0
- data/spec/integration/criteria/logical_spec.rb +30 -0
- data/spec/integration/criteria/range_spec.rb +265 -0
- data/spec/integration/criteria/time_with_zone_spec.rb +125 -15
- data/spec/integration/discriminator_key_spec.rb +0 -1
- data/spec/integration/discriminator_value_spec.rb +0 -1
- data/spec/integration/document_spec.rb +0 -1
- data/spec/integration/i18n_fallbacks_spec.rb +0 -1
- data/spec/integration/matcher_examples_spec.rb +0 -1
- data/spec/integration/matcher_operator_spec.rb +27 -3
- data/spec/integration/matcher_spec.rb +95 -1
- data/spec/integration/server_query_spec.rb +0 -1
- data/spec/integration/shardable_spec.rb +0 -1
- data/spec/integration/stringified_symbol_field_spec.rb +16 -3
- data/spec/lite_spec_helper.rb +8 -2
- data/spec/mongoid/association/accessors_spec.rb +44 -15
- data/spec/mongoid/association/auto_save_spec.rb +72 -34
- data/spec/mongoid/association/builders_spec.rb +1 -2
- data/spec/mongoid/association/constrainable_spec.rb +0 -1
- data/spec/mongoid/association/counter_cache_spec.rb +32 -33
- data/spec/mongoid/association/depending_spec.rb +12 -13
- data/spec/mongoid/association/eager_spec.rb +4 -5
- data/spec/mongoid/association/embedded/cyclic_spec.rb +2 -3
- data/spec/mongoid/association/embedded/dirty_spec.rb +2 -3
- data/spec/mongoid/association/embedded/embedded_in/binding_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embedded_in/buildable_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embedded_in/proxy_spec.rb +13 -14
- data/spec/mongoid/association/embedded/embedded_in_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_many/binding_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_many/buildable_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_many/proxy_spec.rb +384 -135
- data/spec/mongoid/association/embedded/embeds_many_models.rb +16 -1
- data/spec/mongoid/association/embedded/embeds_many_query_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_many_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one/binding_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one/buildable_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one/proxy_spec.rb +21 -22
- data/spec/mongoid/association/embedded/embeds_one_dnl_models.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one_models.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one_query_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one_spec.rb +0 -1
- data/spec/mongoid/association/macros_spec.rb +9 -10
- data/spec/mongoid/association/nested/many_spec.rb +0 -1
- data/spec/mongoid/association/nested/one_spec.rb +0 -1
- data/spec/mongoid/association/options_spec.rb +0 -1
- data/spec/mongoid/association/polymorphic_spec.rb +0 -1
- data/spec/mongoid/association/referenced/belongs_to/binding_spec.rb +0 -1
- data/spec/mongoid/association/referenced/belongs_to/buildable_spec.rb +55 -17
- data/spec/mongoid/association/referenced/belongs_to/eager_spec.rb +50 -15
- data/spec/mongoid/association/referenced/belongs_to/proxy_spec.rb +57 -53
- data/spec/mongoid/association/referenced/belongs_to_query_spec.rb +20 -1
- data/spec/mongoid/association/referenced/belongs_to_spec.rb +22 -2
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/binding_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/buildable_spec.rb +26 -2
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/eager_spec.rb +31 -3
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_persistence_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_spec.rb +179 -154
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_models.rb +18 -1
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_spec.rb +21 -1
- data/spec/mongoid/association/referenced/has_many/binding_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_many/buildable_spec.rb +21 -1
- data/spec/mongoid/association/referenced/has_many/eager_spec.rb +23 -7
- data/spec/mongoid/association/referenced/has_many/enumerable_spec.rb +303 -125
- data/spec/mongoid/association/referenced/has_many/proxy_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_many/proxy_spec.rb +227 -164
- data/spec/mongoid/association/referenced/has_many_models.rb +35 -1
- data/spec/mongoid/association/referenced/has_many_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_many_spec.rb +21 -1
- data/spec/mongoid/association/referenced/has_one/binding_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_one/buildable_spec.rb +51 -8
- data/spec/mongoid/association/referenced/has_one/eager_spec.rb +17 -2
- data/spec/mongoid/association/referenced/has_one/proxy_spec.rb +26 -27
- data/spec/mongoid/association/referenced/has_one_models.rb +18 -1
- data/spec/mongoid/association/referenced/has_one_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_one_spec.rb +21 -1
- data/spec/mongoid/association/reflections_spec.rb +0 -1
- data/spec/mongoid/association/syncable_spec.rb +31 -32
- data/spec/mongoid/association_spec.rb +0 -1
- data/spec/mongoid/atomic/modifiers_spec.rb +0 -1
- data/spec/mongoid/atomic/paths/embedded/many_spec.rb +0 -1
- data/spec/mongoid/atomic/paths/embedded/one_spec.rb +0 -1
- data/spec/mongoid/atomic/paths/root_spec.rb +0 -1
- data/spec/mongoid/atomic/paths_spec.rb +0 -1
- data/spec/mongoid/atomic_spec.rb +6 -7
- data/spec/mongoid/attributes/dynamic_spec.rb +0 -1
- data/spec/mongoid/attributes/nested_spec.rb +66 -67
- data/spec/mongoid/attributes/projector_spec.rb +5 -2
- data/spec/mongoid/attributes/readonly_spec.rb +22 -23
- data/spec/mongoid/attributes_spec.rb +32 -33
- data/spec/mongoid/cacheable_spec.rb +1 -2
- data/spec/mongoid/changeable_spec.rb +35 -36
- data/spec/mongoid/clients/factory_spec.rb +9 -4
- data/spec/mongoid/clients/options_spec.rb +15 -10
- data/spec/mongoid/clients/sessions_spec.rb +22 -23
- data/spec/mongoid/clients/transactions_spec.rb +49 -27
- data/spec/mongoid/clients_spec.rb +6 -7
- data/spec/mongoid/composable_spec.rb +0 -1
- data/spec/mongoid/config/environment_spec.rb +86 -9
- data/spec/mongoid/config/options_spec.rb +0 -1
- data/spec/mongoid/config_spec.rb +194 -17
- data/spec/mongoid/contextual/aggregable/memory_spec.rb +51 -12
- data/spec/mongoid/contextual/aggregable/mongo_spec.rb +120 -21
- data/spec/mongoid/contextual/aggregable/none_spec.rb +60 -0
- data/spec/mongoid/contextual/atomic_spec.rb +109 -71
- data/spec/mongoid/contextual/geo_near_spec.rb +18 -19
- data/spec/mongoid/contextual/map_reduce_spec.rb +2 -3
- data/spec/mongoid/contextual/memory_spec.rb +23 -24
- data/spec/mongoid/contextual/mongo_spec.rb +339 -77
- data/spec/mongoid/contextual/none_spec.rb +7 -82
- data/spec/mongoid/copyable_spec.rb +11 -12
- data/spec/mongoid/copyable_spec_models.rb +0 -1
- data/spec/mongoid/criteria/findable_spec.rb +23 -24
- data/spec/mongoid/criteria/inspectable_spec.rb +0 -1
- data/spec/mongoid/criteria/marshalable_spec.rb +0 -1
- data/spec/mongoid/criteria/modifiable_spec.rb +36 -37
- data/spec/mongoid/criteria/options_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/aggregable_spec.rb +1 -2
- data/spec/mongoid/criteria/queryable/expandable_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/array_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/big_decimal_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/bignum_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/boolean_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/date_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/date_time_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/fixnum_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/float_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/hash_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/integer_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/nil_class_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/numeric_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/object_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/range_spec.rb +237 -179
- data/spec/mongoid/criteria/queryable/extensions/regexp_raw_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/regexp_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/set_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/string_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/symbol_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/time_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/time_with_zone_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/key_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/mergeable_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/optional_spec.rb +1 -2
- data/spec/mongoid/criteria/queryable/options_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/pipeline_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/queryable_spec.rb +1 -2
- data/spec/mongoid/criteria/queryable/selectable_logical_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/selectable_shared_examples.rb +0 -1
- data/spec/mongoid/criteria/queryable/selectable_spec.rb +15 -16
- data/spec/mongoid/criteria/queryable/selectable_where_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/selector_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/smash_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/storable_spec.rb +37 -1
- data/spec/mongoid/criteria/scopable_spec.rb +127 -1
- data/spec/mongoid/criteria_projection_spec.rb +3 -4
- data/spec/mongoid/criteria_spec.rb +546 -186
- data/spec/mongoid/document_fields_spec.rb +0 -1
- data/spec/mongoid/document_persistence_context_spec.rb +0 -1
- data/spec/mongoid/document_query_spec.rb +0 -1
- data/spec/mongoid/document_spec.rb +32 -34
- data/spec/mongoid/equality_spec.rb +142 -41
- data/spec/mongoid/errors/ambiguous_relationship_spec.rb +0 -1
- data/spec/mongoid/errors/callback_spec.rb +0 -1
- data/spec/mongoid/errors/delete_restriction_spec.rb +0 -1
- data/spec/mongoid/errors/document_not_destroyed_spec.rb +0 -1
- data/spec/mongoid/errors/document_not_found_spec.rb +0 -1
- data/spec/mongoid/errors/eager_load_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_collection_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_config_file_spec.rb +31 -0
- data/spec/mongoid/errors/invalid_config_option_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_field_option_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_field_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_find_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_includes_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_index_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_options_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_path_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_relation_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_scope_spec.rb +1 -2
- data/spec/mongoid/errors/invalid_set_polymorphic_relation_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_storage_options_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_time_spec.rb +0 -1
- data/spec/mongoid/errors/inverse_not_found_spec.rb +0 -1
- data/spec/mongoid/errors/mixed_client_configuration_spec.rb +0 -1
- data/spec/mongoid/errors/mixed_relations_spec.rb +0 -1
- data/spec/mongoid/errors/mongoid_error_spec.rb +0 -1
- data/spec/mongoid/errors/nested_attributes_metadata_not_found_spec.rb +0 -1
- data/spec/mongoid/errors/no_client_config_spec.rb +0 -1
- data/spec/mongoid/errors/no_client_database_spec.rb +0 -1
- data/spec/mongoid/errors/no_client_hosts_spec.rb +0 -1
- data/spec/mongoid/errors/no_clients_config_spec.rb +0 -1
- data/spec/mongoid/errors/no_environment_spec.rb +0 -1
- data/spec/mongoid/errors/no_map_reduce_output_spec.rb +0 -1
- data/spec/mongoid/errors/no_metadata_spec.rb +0 -1
- data/spec/mongoid/errors/no_parent_spec.rb +0 -1
- data/spec/mongoid/errors/readonly_attribute_spec.rb +0 -1
- data/spec/mongoid/errors/readonly_document_spec.rb +0 -1
- data/spec/mongoid/errors/scope_overwrite_spec.rb +0 -1
- data/spec/mongoid/errors/too_many_nested_attribute_records_spec.rb +0 -1
- data/spec/mongoid/errors/unknown_attribute_spec.rb +2 -3
- data/spec/mongoid/errors/unsaved_document_spec.rb +0 -1
- data/spec/mongoid/errors/unsupported_javascript_spec.rb +0 -1
- data/spec/mongoid/errors/validations_spec.rb +0 -1
- data/spec/mongoid/extensions/array_spec.rb +0 -1
- data/spec/mongoid/extensions/big_decimal_spec.rb +0 -1
- data/spec/mongoid/extensions/binary_spec.rb +0 -1
- data/spec/mongoid/extensions/boolean_spec.rb +0 -1
- data/spec/mongoid/extensions/date_class_mongoize_spec.rb +0 -1
- data/spec/mongoid/extensions/date_spec.rb +0 -1
- data/spec/mongoid/extensions/date_time_spec.rb +0 -1
- data/spec/mongoid/extensions/decimal128_spec.rb +0 -1
- data/spec/mongoid/extensions/false_class_spec.rb +0 -1
- data/spec/mongoid/extensions/float_spec.rb +0 -1
- data/spec/mongoid/extensions/hash_spec.rb +0 -1
- data/spec/mongoid/extensions/integer_spec.rb +0 -1
- data/spec/mongoid/extensions/module_spec.rb +0 -1
- data/spec/mongoid/extensions/nil_class_spec.rb +0 -1
- data/spec/mongoid/extensions/object_id_spec.rb +0 -1
- data/spec/mongoid/extensions/object_spec.rb +0 -1
- data/spec/mongoid/extensions/range_spec.rb +0 -1
- data/spec/mongoid/extensions/regexp_spec.rb +0 -1
- data/spec/mongoid/extensions/set_spec.rb +0 -1
- data/spec/mongoid/extensions/string_spec.rb +2 -3
- data/spec/mongoid/extensions/stringified_symbol_spec.rb +0 -1
- data/spec/mongoid/extensions/symbol_spec.rb +0 -1
- data/spec/mongoid/extensions/time_spec.rb +0 -1
- data/spec/mongoid/extensions/time_with_zone_spec.rb +0 -1
- data/spec/mongoid/extensions/true_class_spec.rb +0 -1
- data/spec/mongoid/extensions_spec.rb +14 -3
- data/spec/mongoid/factory_spec.rb +1 -1
- data/spec/mongoid/fields/foreign_key_spec.rb +0 -1
- data/spec/mongoid/fields/localized_spec.rb +0 -1
- data/spec/mongoid/fields/standard_spec.rb +0 -1
- data/spec/mongoid/fields_spec.rb +326 -31
- data/spec/mongoid/findable_spec.rb +21 -22
- data/spec/mongoid/indexable/specification_spec.rb +0 -1
- data/spec/mongoid/indexable_spec.rb +0 -1
- data/spec/mongoid/inspectable_spec.rb +0 -1
- data/spec/mongoid/interceptable_spec.rb +102 -95
- data/spec/mongoid/loggable_spec.rb +0 -1
- data/spec/mongoid/matcher/extract_attribute_spec.rb +5 -2
- data/spec/mongoid/persistable/creatable_spec.rb +2 -3
- data/spec/mongoid/persistable/deletable_spec.rb +18 -19
- data/spec/mongoid/persistable/destroyable_spec.rb +8 -9
- data/spec/mongoid/persistable/incrementable_spec.rb +8 -9
- data/spec/mongoid/persistable/logical_spec.rb +4 -5
- data/spec/mongoid/persistable/poppable_spec.rb +4 -5
- data/spec/mongoid/persistable/pullable_spec.rb +8 -9
- data/spec/mongoid/persistable/pushable_spec.rb +8 -9
- data/spec/mongoid/persistable/renamable_spec.rb +3 -4
- data/spec/mongoid/persistable/savable_spec.rb +15 -11
- data/spec/mongoid/persistable/settable_spec.rb +9 -10
- data/spec/mongoid/persistable/unsettable_spec.rb +4 -5
- data/spec/mongoid/persistable/updatable_spec.rb +43 -24
- data/spec/mongoid/persistable/upsertable_spec.rb +1 -2
- data/spec/mongoid/persistable_spec.rb +1 -2
- data/spec/mongoid/persistence_context_spec.rb +0 -1
- data/spec/mongoid/positional_spec.rb +0 -1
- data/spec/mongoid/query_cache_middleware_spec.rb +1 -2
- data/spec/mongoid/query_cache_spec.rb +56 -10
- data/spec/mongoid/relations/proxy_spec.rb +6 -7
- data/spec/mongoid/reloadable_spec.rb +209 -23
- data/spec/mongoid/scopable_spec.rb +65 -22
- data/spec/mongoid/selectable_spec.rb +6 -7
- data/spec/mongoid/serializable_spec.rb +9 -10
- data/spec/mongoid/shardable_spec.rb +2 -3
- data/spec/mongoid/stateful_spec.rb +1 -2
- data/spec/mongoid/tasks/database_rake_spec.rb +0 -1
- data/spec/mongoid/tasks/database_spec.rb +0 -1
- data/spec/mongoid/threaded_spec.rb +2 -3
- data/spec/mongoid/timestamps/created/short_spec.rb +1 -2
- data/spec/mongoid/timestamps/created_spec.rb +1 -2
- data/spec/mongoid/timestamps/timeless_spec.rb +2 -3
- data/spec/mongoid/timestamps/updated/short_spec.rb +3 -4
- data/spec/mongoid/timestamps/updated_spec.rb +3 -4
- data/spec/mongoid/timestamps_spec.rb +6 -7
- data/spec/mongoid/touchable_spec.rb +33 -20
- data/spec/mongoid/touchable_spec_models.rb +2 -1
- data/spec/mongoid/traversable_spec.rb +65 -2
- data/spec/mongoid/validatable/associated_spec.rb +0 -1
- data/spec/mongoid/validatable/format_spec.rb +0 -1
- data/spec/mongoid/validatable/length_spec.rb +0 -1
- data/spec/mongoid/validatable/numericality_spec.rb +0 -1
- data/spec/mongoid/validatable/presence_spec.rb +26 -23
- data/spec/mongoid/validatable/uniqueness_spec.rb +67 -68
- data/spec/mongoid/validatable_spec.rb +2 -3
- data/spec/mongoid_spec.rb +0 -1
- data/spec/rails/controller_extension/controller_runtime_spec.rb +0 -1
- data/spec/rails/mongoid_spec.rb +0 -1
- data/spec/shared/lib/mrss/cluster_config.rb +6 -1
- data/spec/shared/lib/mrss/constraints.rb +23 -5
- data/spec/shared/lib/mrss/docker_runner.rb +1 -1
- data/spec/shared/lib/mrss/event_subscriber.rb +200 -0
- data/spec/shared/lib/mrss/lite_constraints.rb +8 -0
- data/spec/shared/lib/mrss/server_version_registry.rb +17 -12
- data/spec/shared/lib/mrss/session_registry.rb +69 -0
- data/spec/shared/lib/mrss/session_registry_legacy.rb +60 -0
- data/spec/shared/share/Dockerfile.erb +27 -10
- data/spec/shared/shlib/distro.sh +2 -1
- data/spec/shared/shlib/server.sh +85 -23
- data/spec/shared/shlib/set_env.sh +6 -5
- data/spec/spec_helper.rb +12 -22
- data/spec/support/authorization.rb +0 -1
- data/spec/support/constraints.rb +0 -1
- data/spec/support/expectations.rb +0 -1
- data/spec/support/macros.rb +22 -1
- data/spec/support/models/account.rb +1 -2
- data/spec/support/models/acolyte.rb +0 -1
- data/spec/support/models/actor.rb +0 -1
- data/spec/support/models/actress.rb +0 -1
- data/spec/support/models/address.rb +0 -1
- data/spec/support/models/address_component.rb +0 -1
- data/spec/support/models/address_number.rb +0 -1
- data/spec/support/models/agency.rb +0 -1
- data/spec/support/models/agent.rb +0 -1
- data/spec/support/models/album.rb +0 -1
- data/spec/support/models/alert.rb +0 -1
- data/spec/support/models/animal.rb +0 -1
- data/spec/support/models/answer.rb +0 -1
- data/spec/support/models/appointment.rb +0 -1
- data/spec/support/models/armrest.rb +0 -1
- data/spec/support/models/array_field.rb +0 -1
- data/spec/support/models/article.rb +0 -1
- data/spec/support/models/artist.rb +2 -1
- data/spec/support/models/artwork.rb +0 -1
- data/spec/support/models/audible_sound.rb +3 -0
- data/spec/support/models/audio.rb +0 -1
- data/spec/support/models/augmentation.rb +0 -1
- data/spec/support/models/author.rb +0 -1
- data/spec/support/models/baby.rb +0 -1
- data/spec/support/models/band.rb +4 -1
- data/spec/support/models/bar.rb +0 -1
- data/spec/support/models/basic.rb +0 -1
- data/spec/support/models/bed.rb +0 -1
- data/spec/support/models/big_palette.rb +0 -1
- data/spec/support/models/birthday.rb +0 -1
- data/spec/support/models/bolt.rb +0 -1
- data/spec/support/models/bomb.rb +0 -1
- data/spec/support/models/book.rb +0 -1
- data/spec/support/models/breed.rb +0 -1
- data/spec/support/models/browser.rb +0 -1
- data/spec/support/models/building.rb +0 -1
- data/spec/support/models/building_address.rb +0 -1
- data/spec/support/models/bus.rb +0 -1
- data/spec/support/models/business.rb +0 -1
- data/spec/support/models/callback_test.rb +0 -1
- data/spec/support/models/canvas.rb +0 -1
- data/spec/support/models/car.rb +0 -1
- data/spec/support/models/cat.rb +0 -1
- data/spec/support/models/category.rb +0 -1
- data/spec/support/models/child.rb +0 -1
- data/spec/support/models/child_doc.rb +3 -4
- data/spec/support/models/church.rb +0 -1
- data/spec/support/models/circle.rb +0 -1
- data/spec/support/models/circuit.rb +0 -1
- data/spec/support/models/circus.rb +0 -1
- data/spec/support/models/code.rb +0 -1
- data/spec/support/models/coding/pull_request.rb +0 -1
- data/spec/support/models/coding.rb +0 -1
- data/spec/support/models/comment.rb +0 -1
- data/spec/support/models/company.rb +0 -1
- data/spec/support/models/consumption_period.rb +0 -1
- data/spec/support/models/contextable_item.rb +0 -1
- data/spec/support/models/contractor.rb +0 -1
- data/spec/support/models/cookie.rb +0 -1
- data/spec/support/models/country_code.rb +2 -1
- data/spec/support/models/courier_job.rb +0 -1
- data/spec/support/models/crate.rb +0 -1
- data/spec/support/models/customer.rb +0 -1
- data/spec/support/models/customer_address.rb +0 -1
- data/spec/support/models/deed.rb +0 -1
- data/spec/support/models/definition.rb +0 -1
- data/spec/support/models/delegating_patient.rb +0 -1
- data/spec/support/models/description.rb +0 -1
- data/spec/support/models/dictionary.rb +0 -1
- data/spec/support/models/division.rb +0 -1
- data/spec/support/models/doctor.rb +0 -1
- data/spec/support/models/dog.rb +0 -1
- data/spec/support/models/dokument.rb +0 -1
- data/spec/support/models/draft.rb +0 -1
- data/spec/support/models/dragon.rb +0 -1
- data/spec/support/models/driver.rb +0 -1
- data/spec/support/models/drug.rb +0 -1
- data/spec/support/models/dungeon.rb +0 -1
- data/spec/support/models/edit.rb +0 -1
- data/spec/support/models/email.rb +0 -1
- data/spec/support/models/employer.rb +0 -1
- data/spec/support/models/entry.rb +0 -1
- data/spec/support/models/eraser.rb +0 -1
- data/spec/support/models/even.rb +0 -1
- data/spec/support/models/event.rb +0 -1
- data/spec/support/models/exhibition.rb +0 -1
- data/spec/support/models/exhibitor.rb +0 -1
- data/spec/support/models/explosion.rb +0 -1
- data/spec/support/models/eye.rb +0 -1
- data/spec/support/models/eye_bowl.rb +0 -1
- data/spec/support/models/face.rb +0 -1
- data/spec/support/models/favorite.rb +0 -1
- data/spec/support/models/filesystem.rb +0 -1
- data/spec/support/models/fire_hydrant.rb +0 -1
- data/spec/support/models/firefox.rb +0 -1
- data/spec/support/models/fish.rb +0 -1
- data/spec/support/models/folder.rb +0 -1
- data/spec/support/models/folder_item.rb +0 -1
- data/spec/support/models/fruits.rb +0 -1
- data/spec/support/models/game.rb +0 -1
- data/spec/support/models/ghost.rb +0 -1
- data/spec/support/models/guitar.rb +0 -1
- data/spec/support/models/hole.rb +0 -1
- data/spec/support/models/home.rb +0 -1
- data/spec/support/models/house.rb +0 -1
- data/spec/support/models/html_writer.rb +0 -1
- data/spec/support/models/id_key.rb +0 -1
- data/spec/support/models/idnodef.rb +0 -1
- data/spec/support/models/image.rb +0 -1
- data/spec/support/models/implant.rb +0 -1
- data/spec/support/models/instrument.rb +0 -1
- data/spec/support/models/item.rb +0 -1
- data/spec/support/models/jar.rb +0 -1
- data/spec/support/models/kaleidoscope.rb +0 -1
- data/spec/support/models/kangaroo.rb +0 -1
- data/spec/support/models/label.rb +2 -2
- data/spec/support/models/language.rb +0 -1
- data/spec/support/models/lat_lng.rb +0 -1
- data/spec/support/models/league.rb +0 -1
- data/spec/support/models/learner.rb +0 -1
- data/spec/support/models/line_item.rb +0 -1
- data/spec/support/models/location.rb +0 -1
- data/spec/support/models/login.rb +0 -1
- data/spec/support/models/manufacturer.rb +0 -1
- data/spec/support/models/meat.rb +0 -1
- data/spec/support/models/membership.rb +0 -1
- data/spec/support/models/message.rb +0 -1
- data/spec/support/models/minim.rb +0 -1
- data/spec/support/models/mixed_drink.rb +0 -1
- data/spec/support/models/mop.rb +0 -1
- data/spec/support/models/movie.rb +0 -1
- data/spec/support/models/my_hash.rb +0 -1
- data/spec/support/models/name.rb +0 -1
- data/spec/support/models/name_only.rb +0 -1
- data/spec/support/models/node.rb +0 -1
- data/spec/support/models/note.rb +0 -1
- data/spec/support/models/nut.rb +0 -1
- data/spec/support/models/odd.rb +0 -1
- data/spec/support/models/order.rb +2 -1
- data/spec/support/models/ordered_post.rb +1 -2
- data/spec/support/models/ordered_preference.rb +0 -1
- data/spec/support/models/oscar.rb +0 -1
- data/spec/support/models/other_owner_object.rb +0 -1
- data/spec/support/models/override.rb +0 -1
- data/spec/support/models/ownable.rb +0 -1
- data/spec/support/models/owner.rb +0 -1
- data/spec/support/models/pack.rb +0 -1
- data/spec/support/models/page.rb +0 -1
- data/spec/support/models/page_question.rb +0 -1
- data/spec/support/models/palette.rb +0 -1
- data/spec/support/models/parent.rb +0 -1
- data/spec/support/models/parent_doc.rb +0 -1
- data/spec/support/models/passport.rb +5 -1
- data/spec/support/models/patient.rb +0 -1
- data/spec/support/models/pdf_writer.rb +0 -1
- data/spec/support/models/pencil.rb +0 -1
- data/spec/support/models/person.rb +1 -1
- data/spec/support/models/pet.rb +0 -1
- data/spec/support/models/pet_owner.rb +0 -1
- data/spec/support/models/phone.rb +2 -2
- data/spec/support/models/piano.rb +0 -1
- data/spec/support/models/pizza.rb +0 -1
- data/spec/support/models/player.rb +0 -1
- data/spec/support/models/post.rb +0 -1
- data/spec/support/models/post_genre.rb +0 -1
- data/spec/support/models/powerup.rb +0 -1
- data/spec/support/models/preference.rb +0 -1
- data/spec/support/models/princess.rb +0 -1
- data/spec/support/models/product.rb +0 -1
- data/spec/support/models/profile.rb +0 -1
- data/spec/support/models/pronunciation.rb +0 -1
- data/spec/support/models/pub.rb +0 -1
- data/spec/support/models/publication/encyclopedia.rb +0 -1
- data/spec/support/models/publication/review.rb +0 -1
- data/spec/support/models/publication.rb +0 -1
- data/spec/support/models/purchase.rb +0 -1
- data/spec/support/models/purchased_item.rb +10 -0
- data/spec/support/models/question.rb +0 -1
- data/spec/support/models/quiz.rb +0 -1
- data/spec/support/models/rating.rb +0 -1
- data/spec/support/models/record.rb +0 -1
- data/spec/support/models/registry.rb +0 -1
- data/spec/support/models/role.rb +0 -1
- data/spec/support/models/root_category.rb +0 -1
- data/spec/support/models/sandwich.rb +0 -1
- data/spec/support/models/scheduler.rb +0 -1
- data/spec/support/models/scribe.rb +0 -1
- data/spec/support/models/sealer.rb +0 -1
- data/spec/support/models/seat.rb +0 -1
- data/spec/support/models/seo.rb +0 -1
- data/spec/support/models/series.rb +0 -1
- data/spec/support/models/server.rb +0 -1
- data/spec/support/models/service.rb +0 -1
- data/spec/support/models/shape.rb +0 -1
- data/spec/support/models/shelf.rb +0 -1
- data/spec/support/models/shipment_address.rb +0 -1
- data/spec/support/models/shipping_container.rb +0 -1
- data/spec/support/models/shipping_pack.rb +0 -1
- data/spec/support/models/shirt.rb +0 -1
- data/spec/support/models/shop.rb +0 -1
- data/spec/support/models/short_agent.rb +0 -1
- data/spec/support/models/short_quiz.rb +0 -1
- data/spec/support/models/simple.rb +0 -1
- data/spec/support/models/slave.rb +0 -1
- data/spec/support/models/song.rb +0 -1
- data/spec/support/models/sound.rb +0 -1
- data/spec/support/models/spacer.rb +0 -1
- data/spec/support/models/square.rb +0 -1
- data/spec/support/models/staff.rb +0 -1
- data/spec/support/models/store_as_dup_test1.rb +0 -1
- data/spec/support/models/store_as_dup_test2.rb +0 -1
- data/spec/support/models/store_as_dup_test3.rb +0 -1
- data/spec/support/models/store_as_dup_test4.rb +0 -1
- data/spec/support/models/strategy.rb +0 -1
- data/spec/support/models/sub_item.rb +0 -1
- data/spec/support/models/subscription.rb +0 -1
- data/spec/support/models/survey.rb +0 -1
- data/spec/support/models/symptom.rb +0 -1
- data/spec/support/models/tag.rb +0 -1
- data/spec/support/models/target.rb +0 -1
- data/spec/support/models/template.rb +0 -1
- data/spec/support/models/thing.rb +0 -1
- data/spec/support/models/threadlocker.rb +0 -1
- data/spec/support/models/title.rb +0 -1
- data/spec/support/models/tool.rb +0 -1
- data/spec/support/models/topping.rb +0 -1
- data/spec/support/models/toy.rb +0 -1
- data/spec/support/models/track.rb +0 -1
- data/spec/support/models/translation.rb +0 -1
- data/spec/support/models/tree.rb +0 -1
- data/spec/support/models/truck.rb +0 -1
- data/spec/support/models/updatable.rb +0 -1
- data/spec/support/models/user.rb +0 -1
- data/spec/support/models/user_account.rb +0 -1
- data/spec/support/models/validation_callback.rb +0 -1
- data/spec/support/models/vehicle.rb +0 -1
- data/spec/support/models/version.rb +0 -1
- data/spec/support/models/vertex.rb +0 -1
- data/spec/support/models/vet_visit.rb +0 -1
- data/spec/support/models/video.rb +0 -1
- data/spec/support/models/video_game.rb +0 -1
- data/spec/support/models/washer.rb +0 -1
- data/spec/support/models/weapon.rb +0 -1
- data/spec/support/models/wiki_page.rb +0 -1
- data/spec/support/models/word.rb +0 -1
- data/spec/support/models/word_origin.rb +0 -1
- data/spec/support/models/writer.rb +0 -1
- data/spec/support/shared/time.rb +0 -1
- data/spec/support/spec_config.rb +3 -1
- data.tar.gz.sig +0 -0
- metadata +642 -610
- metadata.gz.sig +0 -0
- data/lib/support/ruby_version.rb +0 -29
- data/spec/support/session_registry.rb +0 -50
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
module Atomic
|
|
@@ -14,8 +13,6 @@ module Mongoid
|
|
|
14
13
|
# modifiers.add_to_set({ "preference_ids" => [ "one" ] })
|
|
15
14
|
#
|
|
16
15
|
# @param [ Hash ] modifications The add to set modifiers.
|
|
17
|
-
#
|
|
18
|
-
# @since 2.4.0
|
|
19
16
|
def add_to_set(modifications)
|
|
20
17
|
modifications.each_pair do |field, value|
|
|
21
18
|
if add_to_sets.has_key?(field)
|
|
@@ -34,8 +31,6 @@ module Mongoid
|
|
|
34
31
|
# modifiers.pull_all({ "addresses" => { "street" => "Bond" }})
|
|
35
32
|
#
|
|
36
33
|
# @param [ Hash ] modifications The pull all modifiers.
|
|
37
|
-
#
|
|
38
|
-
# @since 3.0.0
|
|
39
34
|
def pull_all(modifications)
|
|
40
35
|
modifications.each_pair do |field, value|
|
|
41
36
|
add_operation(pull_alls, field, value)
|
|
@@ -49,8 +44,6 @@ module Mongoid
|
|
|
49
44
|
# modifiers.pull({ "addresses" => { "_id" => { "$in" => [ 1, 2, 3 ]}}})
|
|
50
45
|
#
|
|
51
46
|
# @param [ Hash ] modifications The pull all modifiers.
|
|
52
|
-
#
|
|
53
|
-
# @since 3.0.0
|
|
54
47
|
def pull(modifications)
|
|
55
48
|
modifications.each_pair do |field, value|
|
|
56
49
|
pulls[field] = value
|
|
@@ -64,8 +57,6 @@ module Mongoid
|
|
|
64
57
|
# modifiers.push({ "addresses" => { "street" => "Bond" }})
|
|
65
58
|
#
|
|
66
59
|
# @param [ Hash ] modifications The push modifiers.
|
|
67
|
-
#
|
|
68
|
-
# @since 2.1.0
|
|
69
60
|
def push(modifications)
|
|
70
61
|
modifications.each_pair do |field, value|
|
|
71
62
|
push_fields[field] = field
|
|
@@ -80,8 +71,6 @@ module Mongoid
|
|
|
80
71
|
# modifiers.set({ "title" => "sir" })
|
|
81
72
|
#
|
|
82
73
|
# @param [ Hash ] modifications The set modifiers.
|
|
83
|
-
#
|
|
84
|
-
# @since 2.1.0
|
|
85
74
|
def set(modifications)
|
|
86
75
|
modifications.each_pair do |field, value|
|
|
87
76
|
next if field == "_id"
|
|
@@ -97,8 +86,6 @@ module Mongoid
|
|
|
97
86
|
# modifiers.unset([ "addresses" ])
|
|
98
87
|
#
|
|
99
88
|
# @param [ Array<String> ] modifications The unset association names.
|
|
100
|
-
#
|
|
101
|
-
# @since 2.2.0
|
|
102
89
|
def unset(modifications)
|
|
103
90
|
modifications.each do |field|
|
|
104
91
|
unsets.update(field => true)
|
|
@@ -116,8 +103,6 @@ module Mongoid
|
|
|
116
103
|
# @param [ Hash ] mods The modifications.
|
|
117
104
|
# @param [ String ] field The field.
|
|
118
105
|
# @param [ Hash ] value The atomic op.
|
|
119
|
-
#
|
|
120
|
-
# @since 2.2.0
|
|
121
106
|
def add_operation(mods, field, value)
|
|
122
107
|
if mods.has_key?(field)
|
|
123
108
|
if mods[field].is_a?(Array)
|
|
@@ -141,8 +126,6 @@ module Mongoid
|
|
|
141
126
|
# @param [ Hash ] mods The modifications.
|
|
142
127
|
# @param [ String ] field The field.
|
|
143
128
|
# @param [ Hash ] value The atomic op.
|
|
144
|
-
#
|
|
145
|
-
# @since 7.0.0
|
|
146
129
|
def add_each_operation(mods, field, value)
|
|
147
130
|
if mods.has_key?(field)
|
|
148
131
|
value.each do |val|
|
|
@@ -153,14 +136,12 @@ module Mongoid
|
|
|
153
136
|
end
|
|
154
137
|
end
|
|
155
138
|
|
|
156
|
-
# Get the $addToSet operations or
|
|
139
|
+
# Get the $addToSet operations or initialize a new one.
|
|
157
140
|
#
|
|
158
141
|
# @example Get the $addToSet operations.
|
|
159
142
|
# modifiers.add_to_sets
|
|
160
143
|
#
|
|
161
144
|
# @return [ Hash ] The $addToSet operations.
|
|
162
|
-
#
|
|
163
|
-
# @since 2.4.0
|
|
164
145
|
def add_to_sets
|
|
165
146
|
self["$addToSet"] ||= {}
|
|
166
147
|
end
|
|
@@ -173,8 +154,6 @@ module Mongoid
|
|
|
173
154
|
# @param [ String ] field The field.
|
|
174
155
|
#
|
|
175
156
|
# @return [ true, false ] If this field is a conflict.
|
|
176
|
-
#
|
|
177
|
-
# @since 2.2.0
|
|
178
157
|
def set_conflict?(field)
|
|
179
158
|
name = field.split(".", 2)[0]
|
|
180
159
|
pull_fields.has_key?(name) || push_fields.has_key?(name)
|
|
@@ -188,8 +167,6 @@ module Mongoid
|
|
|
188
167
|
# @param [ String ] field The field.
|
|
189
168
|
#
|
|
190
169
|
# @return [ true, false ] If this field is a conflict.
|
|
191
|
-
#
|
|
192
|
-
# @since 2.2.0
|
|
193
170
|
def push_conflict?(field)
|
|
194
171
|
name = field.split(".", 2)[0]
|
|
195
172
|
set_fields.has_key?(name) || pull_fields.has_key?(name) ||
|
|
@@ -202,8 +179,6 @@ module Mongoid
|
|
|
202
179
|
# modifiers.conflicting_pulls
|
|
203
180
|
#
|
|
204
181
|
# @return [ Hash ] The conflicting pull operations.
|
|
205
|
-
#
|
|
206
|
-
# @since 2.2.0
|
|
207
182
|
def conflicting_pulls
|
|
208
183
|
conflicts["$pullAll"] ||= {}
|
|
209
184
|
end
|
|
@@ -214,8 +189,6 @@ module Mongoid
|
|
|
214
189
|
# modifiers.conflicting_pushs
|
|
215
190
|
#
|
|
216
191
|
# @return [ Hash ] The conflicting push operations.
|
|
217
|
-
#
|
|
218
|
-
# @since 2.2.0
|
|
219
192
|
def conflicting_pushes
|
|
220
193
|
conflicts["$push"] ||= {}
|
|
221
194
|
end
|
|
@@ -226,8 +199,6 @@ module Mongoid
|
|
|
226
199
|
# modifiers.conflicting_sets
|
|
227
200
|
#
|
|
228
201
|
# @return [ Hash ] The conflicting set operations.
|
|
229
|
-
#
|
|
230
|
-
# @since 2.2.0
|
|
231
202
|
def conflicting_sets
|
|
232
203
|
conflicts["$set"] ||= {}
|
|
233
204
|
end
|
|
@@ -238,8 +209,6 @@ module Mongoid
|
|
|
238
209
|
# modifiers.conflicts
|
|
239
210
|
#
|
|
240
211
|
# @return [ Hash ] The conflicting modifications.
|
|
241
|
-
#
|
|
242
|
-
# @since 2.1.0
|
|
243
212
|
def conflicts
|
|
244
213
|
self[:conflicts] ||= {}
|
|
245
214
|
end
|
|
@@ -250,8 +219,6 @@ module Mongoid
|
|
|
250
219
|
# modifiers.pull_fields
|
|
251
220
|
#
|
|
252
221
|
# @return [ Array<String> ] The pull fields.
|
|
253
|
-
#
|
|
254
|
-
# @since 2.2.0
|
|
255
222
|
def pull_fields
|
|
256
223
|
@pull_fields ||= {}
|
|
257
224
|
end
|
|
@@ -262,8 +229,6 @@ module Mongoid
|
|
|
262
229
|
# modifiers.push_fields
|
|
263
230
|
#
|
|
264
231
|
# @return [ Array<String> ] The push fields.
|
|
265
|
-
#
|
|
266
|
-
# @since 2.2.0
|
|
267
232
|
def push_fields
|
|
268
233
|
@push_fields ||= {}
|
|
269
234
|
end
|
|
@@ -274,32 +239,26 @@ module Mongoid
|
|
|
274
239
|
# modifiers.set_fields
|
|
275
240
|
#
|
|
276
241
|
# @return [ Array<String> ] The set fields.
|
|
277
|
-
#
|
|
278
|
-
# @since 2.2.0
|
|
279
242
|
def set_fields
|
|
280
243
|
@set_fields ||= {}
|
|
281
244
|
end
|
|
282
245
|
|
|
283
|
-
# Get the $pullAll operations or
|
|
246
|
+
# Get the $pullAll operations or initialize a new one.
|
|
284
247
|
#
|
|
285
248
|
# @example Get the $pullAll operations.
|
|
286
249
|
# modifiers.pull_alls
|
|
287
250
|
#
|
|
288
251
|
# @return [ Hash ] The $pullAll operations.
|
|
289
|
-
#
|
|
290
|
-
# @since 3.0.0
|
|
291
252
|
def pull_alls
|
|
292
253
|
self["$pullAll"] ||= {}
|
|
293
254
|
end
|
|
294
255
|
|
|
295
|
-
# Get the $pull operations or
|
|
256
|
+
# Get the $pull operations or initialize a new one.
|
|
296
257
|
#
|
|
297
258
|
# @example Get the $pull operations.
|
|
298
259
|
# modifiers.pulls
|
|
299
260
|
#
|
|
300
261
|
# @return [ Hash ] The $pull operations.
|
|
301
|
-
#
|
|
302
|
-
# @since 3.0.0
|
|
303
262
|
def pulls
|
|
304
263
|
self["$pull"] ||= {}
|
|
305
264
|
end
|
|
@@ -310,20 +269,16 @@ module Mongoid
|
|
|
310
269
|
# modifiers.pushes
|
|
311
270
|
#
|
|
312
271
|
# @return [ Hash ] The $push/$each operations.
|
|
313
|
-
#
|
|
314
|
-
# @since 2.1.0
|
|
315
272
|
def pushes
|
|
316
273
|
self["$push"] ||= {}
|
|
317
274
|
end
|
|
318
275
|
|
|
319
|
-
# Get the $set operations or
|
|
276
|
+
# Get the $set operations or initialize a new one.
|
|
320
277
|
#
|
|
321
278
|
# @example Get the $set operations.
|
|
322
279
|
# modifiers.sets
|
|
323
280
|
#
|
|
324
281
|
# @return [ Hash ] The $set operations.
|
|
325
|
-
#
|
|
326
|
-
# @since 2.1.0
|
|
327
282
|
def sets
|
|
328
283
|
self["$set"] ||= {}
|
|
329
284
|
end
|
|
@@ -334,8 +289,6 @@ module Mongoid
|
|
|
334
289
|
# modifiers.unsets
|
|
335
290
|
#
|
|
336
291
|
# @return [ Hash ] The $unset operations.
|
|
337
|
-
#
|
|
338
|
-
# @since 2.2.0
|
|
339
292
|
def unsets
|
|
340
293
|
self["$unset"] ||= {}
|
|
341
294
|
end
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
module Atomic
|
|
@@ -17,8 +16,6 @@ module Mongoid
|
|
|
17
16
|
# Many.new(document)
|
|
18
17
|
#
|
|
19
18
|
# @param [ Document ] document The document to generate the paths for.
|
|
20
|
-
#
|
|
21
|
-
# @since 2.1.0
|
|
22
19
|
def initialize(document)
|
|
23
20
|
@document, @parent = document, document._parent
|
|
24
21
|
@insert_modifier, @delete_modifier ="$push", "$pull"
|
|
@@ -32,8 +29,6 @@ module Mongoid
|
|
|
32
29
|
# many.position
|
|
33
30
|
#
|
|
34
31
|
# @return [ String ] The position of the document.
|
|
35
|
-
#
|
|
36
|
-
# @since 2.1.0
|
|
37
32
|
def position
|
|
38
33
|
pos = parent.atomic_position
|
|
39
34
|
locator = document.new_record? ? "" : ".#{document._index}"
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
module Atomic
|
|
@@ -17,8 +16,6 @@ module Mongoid
|
|
|
17
16
|
# One.new(document)
|
|
18
17
|
#
|
|
19
18
|
# @param [ Document ] document The document to generate the paths for.
|
|
20
|
-
#
|
|
21
|
-
# @since 2.1.0
|
|
22
19
|
def initialize(document)
|
|
23
20
|
@document, @parent = document, document._parent
|
|
24
21
|
@insert_modifier, @delete_modifier ="$set", "$unset"
|
|
@@ -32,8 +29,6 @@ module Mongoid
|
|
|
32
29
|
# one.position
|
|
33
30
|
#
|
|
34
31
|
# @return [ String ] The position of the document.
|
|
35
|
-
#
|
|
36
|
-
# @since 2.1.0
|
|
37
32
|
def position
|
|
38
33
|
pos = parent.atomic_position
|
|
39
34
|
"#{pos}#{"." unless pos.blank?}#{document._association.store_as}"
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
require "mongoid/atomic/paths/embedded/one"
|
|
5
4
|
require "mongoid/atomic/paths/embedded/many"
|
|
@@ -19,8 +18,6 @@ module Mongoid
|
|
|
19
18
|
# many.path
|
|
20
19
|
#
|
|
21
20
|
# @return [ String ] The path to the document.
|
|
22
|
-
#
|
|
23
|
-
# @since 2.1.0
|
|
24
21
|
def path
|
|
25
22
|
@path ||= position.sub(/\.\d+\z/, "")
|
|
26
23
|
end
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
module Atomic
|
|
@@ -17,8 +16,6 @@ module Mongoid
|
|
|
17
16
|
# Root.new(document)
|
|
18
17
|
#
|
|
19
18
|
# @param [ Document ] document The document to generate the paths for.
|
|
20
|
-
#
|
|
21
|
-
# @since 2.1.0
|
|
22
19
|
def initialize(document)
|
|
23
20
|
@document, @path, @position = document, "", ""
|
|
24
21
|
end
|
|
@@ -30,8 +27,6 @@ module Mongoid
|
|
|
30
27
|
# root.insert_modifier
|
|
31
28
|
#
|
|
32
29
|
# @raise [ Errors::InvalidPath ] The error for the attempt.
|
|
33
|
-
#
|
|
34
|
-
# @since 3.0.14
|
|
35
30
|
def insert_modifier
|
|
36
31
|
raise Errors::InvalidPath.new(document.class)
|
|
37
32
|
end
|
data/lib/mongoid/atomic/paths.rb
CHANGED
data/lib/mongoid/atomic.rb
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
require "mongoid/atomic/modifiers"
|
|
5
4
|
require "mongoid/atomic/paths"
|
|
@@ -34,8 +33,6 @@ module Mongoid
|
|
|
34
33
|
# person.add_atomic_pull(address)
|
|
35
34
|
#
|
|
36
35
|
# @param [ Document ] document The embedded document to pull.
|
|
37
|
-
#
|
|
38
|
-
# @since 2.2.0
|
|
39
36
|
def add_atomic_pull(document)
|
|
40
37
|
document.flagged_for_destroy = true
|
|
41
38
|
key = document.association_name.to_s
|
|
@@ -51,8 +48,6 @@ module Mongoid
|
|
|
51
48
|
# @param [ Document ] document The child document.
|
|
52
49
|
#
|
|
53
50
|
# @return [ Array<Document> ] The children.
|
|
54
|
-
#
|
|
55
|
-
# @since 3.0.0
|
|
56
51
|
def add_atomic_unset(document)
|
|
57
52
|
document.flagged_for_destroy = true
|
|
58
53
|
key = document.association_name.to_s
|
|
@@ -66,8 +61,6 @@ module Mongoid
|
|
|
66
61
|
# address.atomic_attribute_name(:city)
|
|
67
62
|
#
|
|
68
63
|
# @return [ String ] The path to the document attribute in the database
|
|
69
|
-
#
|
|
70
|
-
# @since 3.0.0
|
|
71
64
|
def atomic_attribute_name(name)
|
|
72
65
|
embedded? ? "#{atomic_position}.#{name}" : name
|
|
73
66
|
end
|
|
@@ -78,8 +71,6 @@ module Mongoid
|
|
|
78
71
|
# person.atomic_array_pushes
|
|
79
72
|
#
|
|
80
73
|
# @return [ Hash ] The array pushes.
|
|
81
|
-
#
|
|
82
|
-
# @since 2.4.0
|
|
83
74
|
def atomic_array_pushes
|
|
84
75
|
@atomic_array_pushes ||= {}
|
|
85
76
|
end
|
|
@@ -90,8 +81,6 @@ module Mongoid
|
|
|
90
81
|
# person.atomic_array_pulls
|
|
91
82
|
#
|
|
92
83
|
# @return [ Hash ] The array pulls.
|
|
93
|
-
#
|
|
94
|
-
# @since 2.4.0
|
|
95
84
|
def atomic_array_pulls
|
|
96
85
|
@atomic_array_pulls ||= {}
|
|
97
86
|
end
|
|
@@ -102,8 +91,6 @@ module Mongoid
|
|
|
102
91
|
# person.atomic_array_add_to_sets
|
|
103
92
|
#
|
|
104
93
|
# @return [ Hash ] The array add_to_sets.
|
|
105
|
-
#
|
|
106
|
-
# @since 2.4.0
|
|
107
94
|
def atomic_array_add_to_sets
|
|
108
95
|
@atomic_array_add_to_sets ||= {}
|
|
109
96
|
end
|
|
@@ -129,13 +116,11 @@ module Mongoid
|
|
|
129
116
|
# person.atomic_updates(children)
|
|
130
117
|
#
|
|
131
118
|
# @return [ Hash ] The updates and their modifiers.
|
|
132
|
-
#
|
|
133
|
-
# @since 2.1.0
|
|
134
119
|
def atomic_updates(_use_indexes = false)
|
|
135
120
|
process_flagged_destroys
|
|
136
121
|
mods = Modifiers.new
|
|
137
122
|
generate_atomic_updates(mods, self)
|
|
138
|
-
|
|
123
|
+
_descendants.each do |child|
|
|
139
124
|
child.process_flagged_destroys
|
|
140
125
|
generate_atomic_updates(mods, child)
|
|
141
126
|
end
|
|
@@ -192,8 +177,6 @@ module Mongoid
|
|
|
192
177
|
# document.atomic_paths
|
|
193
178
|
#
|
|
194
179
|
# @return [ Object ] The associated path.
|
|
195
|
-
#
|
|
196
|
-
# @since 2.1.0
|
|
197
180
|
def atomic_paths
|
|
198
181
|
@atomic_paths ||= begin
|
|
199
182
|
if _association
|
|
@@ -210,8 +193,6 @@ module Mongoid
|
|
|
210
193
|
# person.atomic_pulls
|
|
211
194
|
#
|
|
212
195
|
# @return [ Array<Hash> ] The $pullAll operations.
|
|
213
|
-
#
|
|
214
|
-
# @since 2.2.0
|
|
215
196
|
def atomic_pulls
|
|
216
197
|
pulls = {}
|
|
217
198
|
delayed_atomic_pulls.each_pair do |_, docs|
|
|
@@ -231,8 +212,6 @@ module Mongoid
|
|
|
231
212
|
# person.atomic_pushes
|
|
232
213
|
#
|
|
233
214
|
# @return [ Hash ] The $push and $each operations.
|
|
234
|
-
#
|
|
235
|
-
# @since 2.1.0
|
|
236
215
|
def atomic_pushes
|
|
237
216
|
pushable? ? { atomic_position => as_attributes } : {}
|
|
238
217
|
end
|
|
@@ -243,8 +222,6 @@ module Mongoid
|
|
|
243
222
|
# person.atomic_sets
|
|
244
223
|
#
|
|
245
224
|
# @return [ Hash ] The $set operations.
|
|
246
|
-
#
|
|
247
|
-
# @since 2.1.0
|
|
248
225
|
def atomic_sets
|
|
249
226
|
updateable? ? setters : settable? ? { atomic_path => as_attributes } : {}
|
|
250
227
|
end
|
|
@@ -255,8 +232,6 @@ module Mongoid
|
|
|
255
232
|
# person.atomic_unsets
|
|
256
233
|
#
|
|
257
234
|
# @return [ Array<Hash> ] The $unset operations.
|
|
258
|
-
#
|
|
259
|
-
# @since 2.2.0
|
|
260
235
|
def atomic_unsets
|
|
261
236
|
unsets = []
|
|
262
237
|
delayed_atomic_unsets.each_pair do |name, docs|
|
|
@@ -275,8 +250,6 @@ module Mongoid
|
|
|
275
250
|
# person.delayed_atomic_sets
|
|
276
251
|
#
|
|
277
252
|
# @return [ Hash ] The delayed $sets.
|
|
278
|
-
#
|
|
279
|
-
# @since 2.3.0
|
|
280
253
|
def delayed_atomic_sets
|
|
281
254
|
@delayed_atomic_sets ||= {}
|
|
282
255
|
end
|
|
@@ -287,8 +260,6 @@ module Mongoid
|
|
|
287
260
|
# document.delayed_atomic_pulls
|
|
288
261
|
#
|
|
289
262
|
# @return [ Hash ] name/document pairs.
|
|
290
|
-
#
|
|
291
|
-
# @since 2.3.2
|
|
292
263
|
def delayed_atomic_pulls
|
|
293
264
|
@delayed_atomic_pulls ||= {}
|
|
294
265
|
end
|
|
@@ -299,8 +270,6 @@ module Mongoid
|
|
|
299
270
|
# document.delayed_atomic_unsets
|
|
300
271
|
#
|
|
301
272
|
# @return [ Hash ] The atomic unsets
|
|
302
|
-
#
|
|
303
|
-
# @since 3.0.0
|
|
304
273
|
def delayed_atomic_unsets
|
|
305
274
|
@delayed_atomic_unsets ||= {}
|
|
306
275
|
end
|
|
@@ -311,8 +280,6 @@ module Mongoid
|
|
|
311
280
|
# document.flag_as_destroyed
|
|
312
281
|
#
|
|
313
282
|
# @return [ String ] The atomic path.
|
|
314
|
-
#
|
|
315
|
-
# @since 3.0.0
|
|
316
283
|
def flag_as_destroyed
|
|
317
284
|
self.destroyed = true
|
|
318
285
|
self.flagged_for_destroy = false
|
|
@@ -325,8 +292,6 @@ module Mongoid
|
|
|
325
292
|
# document.flagged_destroys
|
|
326
293
|
#
|
|
327
294
|
# @return [ Array<Proc> ] The flagged destroys.
|
|
328
|
-
#
|
|
329
|
-
# @since 3.0.10
|
|
330
295
|
def flagged_destroys
|
|
331
296
|
@flagged_destroys ||= []
|
|
332
297
|
end
|
|
@@ -337,8 +302,6 @@ module Mongoid
|
|
|
337
302
|
# document.process_flagged_destroys
|
|
338
303
|
#
|
|
339
304
|
# @return [ Array ] The cleared array.
|
|
340
|
-
#
|
|
341
|
-
# @since 3.0.10
|
|
342
305
|
def process_flagged_destroys
|
|
343
306
|
_assigning do
|
|
344
307
|
flagged_destroys.each(&:call)
|
|
@@ -355,8 +318,6 @@ module Mongoid
|
|
|
355
318
|
#
|
|
356
319
|
# @param [ Modifiers ] mods The atomic modifications.
|
|
357
320
|
# @param [ Document ] doc The document to update for.
|
|
358
|
-
#
|
|
359
|
-
# @since 2.2.0
|
|
360
321
|
def generate_atomic_updates(mods, doc)
|
|
361
322
|
mods.unset(doc.atomic_unsets)
|
|
362
323
|
mods.pull(doc.atomic_pulls)
|
|
@@ -379,17 +340,39 @@ module Mongoid
|
|
|
379
340
|
# @param [ Symbol ] field The optional field.
|
|
380
341
|
#
|
|
381
342
|
# @return [ Hash ] The atomic updates.
|
|
382
|
-
#
|
|
383
|
-
# @since 3.0.6
|
|
384
343
|
def touch_atomic_updates(field = nil)
|
|
385
344
|
updates = atomic_updates
|
|
386
345
|
return {} unless atomic_updates.key?("$set")
|
|
387
346
|
touches = {}
|
|
347
|
+
wanted_keys = %w(updated_at u_at)
|
|
348
|
+
# TODO this permits field to be passed as an empty string in which case
|
|
349
|
+
# it is ignored, get rid of this behavior.
|
|
350
|
+
if field.present?
|
|
351
|
+
wanted_keys << field.to_s
|
|
352
|
+
end
|
|
388
353
|
updates["$set"].each_pair do |key, value|
|
|
389
|
-
|
|
390
|
-
|
|
354
|
+
if wanted_keys.include?(key.split('.').last)
|
|
355
|
+
touches.update(key => value)
|
|
356
|
+
end
|
|
391
357
|
end
|
|
392
358
|
{ "$set" => touches }
|
|
393
359
|
end
|
|
360
|
+
|
|
361
|
+
# Returns the $set atomic updates affecting the specified field.
|
|
362
|
+
#
|
|
363
|
+
# @param [ String ] field The field name.
|
|
364
|
+
#
|
|
365
|
+
# @api private
|
|
366
|
+
def set_field_atomic_updates(field)
|
|
367
|
+
updates = atomic_updates
|
|
368
|
+
return {} unless atomic_updates.key?("$set")
|
|
369
|
+
sets = {}
|
|
370
|
+
updates["$set"].each_pair do |key, value|
|
|
371
|
+
if key.split('.').last == field
|
|
372
|
+
sets.update(key => value)
|
|
373
|
+
end
|
|
374
|
+
end
|
|
375
|
+
{ "$set" => sets }
|
|
376
|
+
end
|
|
394
377
|
end
|
|
395
378
|
end
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
module Attributes
|
|
6
5
|
|
|
7
6
|
# This module contains the behavior for dynamic attributes.
|
|
8
|
-
#
|
|
9
|
-
# @since 4.0.0
|
|
10
7
|
module Dynamic
|
|
11
8
|
extend ActiveSupport::Concern
|
|
12
9
|
|
|
@@ -19,8 +16,6 @@ module Mongoid
|
|
|
19
16
|
# @param [ true, false ] include_private
|
|
20
17
|
#
|
|
21
18
|
# @return [ true, false ] True if it does, false if not.
|
|
22
|
-
#
|
|
23
|
-
# @since 4.0.0
|
|
24
19
|
def respond_to?(name, include_private = false)
|
|
25
20
|
super || (
|
|
26
21
|
attributes &&
|
|
@@ -36,8 +31,6 @@ module Mongoid
|
|
|
36
31
|
# model.define_dynamic_reader(:field)
|
|
37
32
|
#
|
|
38
33
|
# @param [ String ] name The name of the field.
|
|
39
|
-
#
|
|
40
|
-
# @since 4.0.0
|
|
41
34
|
def define_dynamic_reader(name)
|
|
42
35
|
return unless name.valid_method_name?
|
|
43
36
|
|
|
@@ -57,8 +50,6 @@ module Mongoid
|
|
|
57
50
|
# model.define_dynamic_before_type_cast_reader(:field)
|
|
58
51
|
#
|
|
59
52
|
# @param [ String ] name The name of the field.
|
|
60
|
-
#
|
|
61
|
-
# @since 4.0.0
|
|
62
53
|
def define_dynamic_before_type_cast_reader(name)
|
|
63
54
|
class_eval do
|
|
64
55
|
define_method("#{name}_before_type_cast") do
|
|
@@ -76,8 +67,6 @@ module Mongoid
|
|
|
76
67
|
# model.define_dynamic_writer(:field)
|
|
77
68
|
#
|
|
78
69
|
# @param [ String ] name The name of the field.
|
|
79
|
-
#
|
|
80
|
-
# @since 4.0.0
|
|
81
70
|
def define_dynamic_writer(name)
|
|
82
71
|
return unless name.valid_method_name?
|
|
83
72
|
|
|
@@ -96,8 +85,6 @@ module Mongoid
|
|
|
96
85
|
#
|
|
97
86
|
# @param [ Symbol ] name The name of the field.
|
|
98
87
|
# @param [ Object ] value The value of the field.
|
|
99
|
-
#
|
|
100
|
-
# @since 4.0.0
|
|
101
88
|
def process_attribute(name, value)
|
|
102
89
|
responds = respond_to?("#{name}=")
|
|
103
90
|
if !responds
|
|
@@ -113,8 +100,6 @@ module Mongoid
|
|
|
113
100
|
# document.inspect_dynamic_fields
|
|
114
101
|
#
|
|
115
102
|
# @return [ String ] An array of pretty printed dynamic field values.
|
|
116
|
-
#
|
|
117
|
-
# @since 4.0.0
|
|
118
103
|
def inspect_dynamic_fields
|
|
119
104
|
keys = attributes.keys - fields.keys - relations.keys - ["_id", self.class.discriminator_key]
|
|
120
105
|
return keys.map do |name|
|
|
@@ -133,8 +118,6 @@ module Mongoid
|
|
|
133
118
|
# @param [ Array ] args The arguments to the method.
|
|
134
119
|
#
|
|
135
120
|
# @return [ Object ] The result of the method call.
|
|
136
|
-
#
|
|
137
|
-
# @since 4.0.0
|
|
138
121
|
def method_missing(name, *args)
|
|
139
122
|
attr = name.to_s
|
|
140
123
|
return super unless attributes.has_key?(attr.reader)
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
module Attributes
|
|
6
5
|
|
|
7
6
|
# Defines behavior around that lovel Rails feature nested attributes.
|
|
8
|
-
#
|
|
9
|
-
# @since 1.0.0
|
|
10
7
|
module Nested
|
|
11
8
|
extend ActiveSupport::Concern
|
|
12
9
|
|
|
@@ -80,8 +77,6 @@ module Mongoid
|
|
|
80
77
|
# Person.autosave_nested_attributes(metadata)
|
|
81
78
|
#
|
|
82
79
|
# @param [ Association ] association The existing association metadata.
|
|
83
|
-
#
|
|
84
|
-
# @since 3.1.4
|
|
85
80
|
def autosave_nested_attributes(association)
|
|
86
81
|
# In order for the autosave functionality to work properly, the association needs to be
|
|
87
82
|
# marked as autosave despite the fact that the option isn't present. Because the method
|