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 Attributes
|
|
@@ -9,15 +8,13 @@ module Mongoid
|
|
|
9
8
|
|
|
10
9
|
# Process the provided attributes casting them to their proper values if a
|
|
11
10
|
# field exists for them on the document. This will be limited to only the
|
|
12
|
-
# attributes provided in the
|
|
11
|
+
# attributes provided in the supplied +Hash+ so that no extra nil values get
|
|
13
12
|
# put into the document's attributes.
|
|
14
13
|
#
|
|
15
14
|
# @example Process the attributes.
|
|
16
15
|
# person.process_attributes(:title => "sir", :age => 40)
|
|
17
16
|
#
|
|
18
17
|
# @param [ Hash ] attrs The attributes to set.
|
|
19
|
-
#
|
|
20
|
-
# @since 2.0.0.rc.7
|
|
21
18
|
def process_attributes(attrs = nil)
|
|
22
19
|
attrs ||= {}
|
|
23
20
|
if !attrs.empty?
|
|
@@ -44,8 +41,6 @@ module Mongoid
|
|
|
44
41
|
# @param [ Object ] value The value of the attribute.
|
|
45
42
|
#
|
|
46
43
|
# @return [ true, false ] True if pending, false if not.
|
|
47
|
-
#
|
|
48
|
-
# @since 2.0.0.rc.7
|
|
49
44
|
def pending_attribute?(key, value)
|
|
50
45
|
name = key.to_s
|
|
51
46
|
if relations.has_key?(name)
|
|
@@ -65,8 +60,6 @@ module Mongoid
|
|
|
65
60
|
# document.pending_relations
|
|
66
61
|
#
|
|
67
62
|
# @return [ Hash ] The pending associations in key/value pairs.
|
|
68
|
-
#
|
|
69
|
-
# @since 2.0.0.rc.7
|
|
70
63
|
def pending_relations
|
|
71
64
|
@pending_relations ||= {}
|
|
72
65
|
end
|
|
@@ -77,8 +70,6 @@ module Mongoid
|
|
|
77
70
|
# document.pending_nested
|
|
78
71
|
#
|
|
79
72
|
# @return [ Hash ] The pending nested attributes in key/value pairs.
|
|
80
|
-
#
|
|
81
|
-
# @since 2.0.0.rc.7
|
|
82
73
|
def pending_nested
|
|
83
74
|
@pending_nested ||= {}
|
|
84
75
|
end
|
|
@@ -91,8 +82,6 @@ module Mongoid
|
|
|
91
82
|
#
|
|
92
83
|
# @param [ Symbol ] name The name of the field.
|
|
93
84
|
# @param [ Object ] value The value of the field.
|
|
94
|
-
#
|
|
95
|
-
# @since 2.0.0.rc.7
|
|
96
85
|
def process_attribute(name, value)
|
|
97
86
|
if !respond_to?("#{name}=", true) && store_as = aliased_fields.invert[name.to_s]
|
|
98
87
|
name = store_as
|
|
@@ -107,8 +96,6 @@ module Mongoid
|
|
|
107
96
|
#
|
|
108
97
|
# @example Process the nested attributes.
|
|
109
98
|
# document.process_nested
|
|
110
|
-
#
|
|
111
|
-
# @since 2.0.0.rc.7
|
|
112
99
|
def process_nested
|
|
113
100
|
pending_nested.each_pair do |name, value|
|
|
114
101
|
send("#{name}=", value)
|
|
@@ -119,8 +106,6 @@ module Mongoid
|
|
|
119
106
|
#
|
|
120
107
|
# @example Process the pending items.
|
|
121
108
|
# document.process_pending
|
|
122
|
-
#
|
|
123
|
-
# @since 2.0.0.rc.7
|
|
124
109
|
def process_pending
|
|
125
110
|
process_nested and process_relations
|
|
126
111
|
pending_nested.clear and pending_relations.clear
|
|
@@ -131,8 +116,6 @@ module Mongoid
|
|
|
131
116
|
#
|
|
132
117
|
# @example Process the associations.
|
|
133
118
|
# document.process_relations
|
|
134
|
-
#
|
|
135
|
-
# @since 2.0.0.rc.7
|
|
136
119
|
def process_relations
|
|
137
120
|
pending_relations.each_pair do |name, value|
|
|
138
121
|
association = relations[name]
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
module Attributes
|
|
@@ -22,8 +21,6 @@ module Mongoid
|
|
|
22
21
|
#
|
|
23
22
|
# @return [ true, false ] If the document is new, or if the field is not
|
|
24
23
|
# readonly.
|
|
25
|
-
#
|
|
26
|
-
# @since 3.0.0
|
|
27
24
|
def attribute_writable?(name)
|
|
28
25
|
new_record? || (!readonly_attributes.include?(name) && _loaded?(name))
|
|
29
26
|
end
|
|
@@ -65,8 +62,6 @@ module Mongoid
|
|
|
65
62
|
# end
|
|
66
63
|
#
|
|
67
64
|
# @param [ Array<Symbol> ] names The names of the fields.
|
|
68
|
-
#
|
|
69
|
-
# @since 3.0.0
|
|
70
65
|
def attr_readonly(*names)
|
|
71
66
|
names.each do |name|
|
|
72
67
|
readonly_attributes << database_field_name(name)
|
data/lib/mongoid/attributes.rb
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
require "active_model/attribute_methods"
|
|
5
4
|
require "mongoid/attributes/dynamic"
|
|
@@ -29,8 +28,6 @@ module Mongoid
|
|
|
29
28
|
# @param [ String, Symbol ] name The name of the attribute.
|
|
30
29
|
#
|
|
31
30
|
# @return [ true, false ] True if present, false if not.
|
|
32
|
-
#
|
|
33
|
-
# @since 1.0.0
|
|
34
31
|
def attribute_present?(name)
|
|
35
32
|
attribute = read_raw_attribute(name)
|
|
36
33
|
!attribute.blank? || attribute == false
|
|
@@ -44,8 +41,6 @@ module Mongoid
|
|
|
44
41
|
# document.attributes_before_type_cast
|
|
45
42
|
#
|
|
46
43
|
# @return [ Hash ] The uncast attributes.
|
|
47
|
-
#
|
|
48
|
-
# @since 3.1.0
|
|
49
44
|
def attributes_before_type_cast
|
|
50
45
|
@attributes_before_type_cast ||= {}
|
|
51
46
|
end
|
|
@@ -58,8 +53,6 @@ module Mongoid
|
|
|
58
53
|
# @param [ String, Symbol ] name The name of the attribute.
|
|
59
54
|
#
|
|
60
55
|
# @return [ true, false ] If the key is present in the attributes.
|
|
61
|
-
#
|
|
62
|
-
# @since 3.0.0
|
|
63
56
|
def has_attribute?(name)
|
|
64
57
|
attributes.key?(name.to_s)
|
|
65
58
|
end
|
|
@@ -74,8 +67,6 @@ module Mongoid
|
|
|
74
67
|
#
|
|
75
68
|
# @return [ true, false ] If the key is present in the
|
|
76
69
|
# attributes_before_type_cast.
|
|
77
|
-
#
|
|
78
|
-
# @since 3.1.0
|
|
79
70
|
def has_attribute_before_type_cast?(name)
|
|
80
71
|
attributes_before_type_cast.key?(name.to_s)
|
|
81
72
|
end
|
|
@@ -92,8 +83,6 @@ module Mongoid
|
|
|
92
83
|
# @param [ String, Symbol ] name The name of the attribute to get.
|
|
93
84
|
#
|
|
94
85
|
# @return [ Object ] The value of the attribute.
|
|
95
|
-
#
|
|
96
|
-
# @since 1.0.0
|
|
97
86
|
def read_attribute(name)
|
|
98
87
|
field = fields[name.to_s]
|
|
99
88
|
raw = read_raw_attribute(name)
|
|
@@ -112,8 +101,6 @@ module Mongoid
|
|
|
112
101
|
#
|
|
113
102
|
# @return [ Object ] The value of the attribute before type cast, if
|
|
114
103
|
# available. Otherwise, the value of the attribute.
|
|
115
|
-
#
|
|
116
|
-
# @since 3.1.0
|
|
117
104
|
def read_attribute_before_type_cast(name)
|
|
118
105
|
attr = name.to_s
|
|
119
106
|
if attributes_before_type_cast.key?(attr)
|
|
@@ -133,8 +120,6 @@ module Mongoid
|
|
|
133
120
|
#
|
|
134
121
|
# @raise [ Errors::ReadonlyAttribute ] If the field cannot be removed due
|
|
135
122
|
# to being flagged as reaodnly.
|
|
136
|
-
#
|
|
137
|
-
# @since 1.0.0
|
|
138
123
|
def remove_attribute(name)
|
|
139
124
|
as_writable_attribute!(name) do |access|
|
|
140
125
|
_assigning do
|
|
@@ -157,8 +142,6 @@ module Mongoid
|
|
|
157
142
|
#
|
|
158
143
|
# @param [ String, Symbol ] name The name of the attribute to update.
|
|
159
144
|
# @param [ Object ] value The value to set for the attribute.
|
|
160
|
-
#
|
|
161
|
-
# @since 1.0.0
|
|
162
145
|
def write_attribute(name, value)
|
|
163
146
|
field_name = database_field_name(name)
|
|
164
147
|
|
|
@@ -201,8 +184,6 @@ module Mongoid
|
|
|
201
184
|
# person.assign_attributes({ :title => "Mr." }, :as => :admin)
|
|
202
185
|
#
|
|
203
186
|
# @param [ Hash ] attrs The new attributes to set.
|
|
204
|
-
#
|
|
205
|
-
# @since 2.2.1
|
|
206
187
|
def assign_attributes(attrs = nil)
|
|
207
188
|
_assigning do
|
|
208
189
|
process_attributes(attrs)
|
|
@@ -220,8 +201,6 @@ module Mongoid
|
|
|
220
201
|
# person.attributes = { :title => "Mr." }
|
|
221
202
|
#
|
|
222
203
|
# @param [ Hash ] attrs The new attributes to set.
|
|
223
|
-
#
|
|
224
|
-
# @since 1.0.0
|
|
225
204
|
def write_attributes(attrs = nil)
|
|
226
205
|
assign_attributes(attrs)
|
|
227
206
|
end
|
|
@@ -236,8 +215,6 @@ module Mongoid
|
|
|
236
215
|
# @param [ String ] name The name of the attribute.
|
|
237
216
|
#
|
|
238
217
|
# @return [ true, false ] If the attribute is missing.
|
|
239
|
-
#
|
|
240
|
-
# @since 4.0.0
|
|
241
218
|
def attribute_missing?(name)
|
|
242
219
|
!Projector.new(__selected_fields).attribute_or_path_allowed?(name)
|
|
243
220
|
end
|
|
@@ -248,8 +225,6 @@ module Mongoid
|
|
|
248
225
|
# document.typed_attributes
|
|
249
226
|
#
|
|
250
227
|
# @return [ Object ] The hash with keys and values of the type-casted attributes.
|
|
251
|
-
#
|
|
252
|
-
# @since 6.1.0
|
|
253
228
|
def typed_attributes
|
|
254
229
|
attribute_names.map { |name| [name, send(name)] }.to_h
|
|
255
230
|
end
|
|
@@ -264,8 +239,6 @@ module Mongoid
|
|
|
264
239
|
# model.hash_dot_syntax?
|
|
265
240
|
#
|
|
266
241
|
# @return [ true, false ] If the string contains a "."
|
|
267
|
-
#
|
|
268
|
-
# @since 3.0.15
|
|
269
242
|
def hash_dot_syntax?(string)
|
|
270
243
|
string.include?(".")
|
|
271
244
|
end
|
|
@@ -279,8 +252,6 @@ module Mongoid
|
|
|
279
252
|
# @param [ Object ] value The uncast value.
|
|
280
253
|
#
|
|
281
254
|
# @return [ Object ] The cast value.
|
|
282
|
-
#
|
|
283
|
-
# @since 1.0.0
|
|
284
255
|
def typed_value_for(key, value)
|
|
285
256
|
fields.key?(key) ? fields[key].mongoize(value) : value.mongoize
|
|
286
257
|
end
|
|
@@ -316,8 +287,6 @@ module Mongoid
|
|
|
316
287
|
#
|
|
317
288
|
# @param [ Symbol ] name The new name.
|
|
318
289
|
# @param [ Symbol ] original The original name.
|
|
319
|
-
#
|
|
320
|
-
# @since 2.3.0
|
|
321
290
|
def alias_attribute(name, original)
|
|
322
291
|
aliased_fields[name.to_s] = original.to_s
|
|
323
292
|
|
|
@@ -368,8 +337,6 @@ module Mongoid
|
|
|
368
337
|
#
|
|
369
338
|
# @param [ String, Symbol ] field_name The name of the field.
|
|
370
339
|
# @param [ Object ] value The value to be validated.
|
|
371
|
-
#
|
|
372
|
-
# @since 3.0.10
|
|
373
340
|
def validate_attribute_value(field_name, value)
|
|
374
341
|
return if value.nil?
|
|
375
342
|
field = fields[field_name]
|
data/lib/mongoid/cacheable.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
5
|
# Encapsulates behavior around caching.
|
|
7
|
-
#
|
|
8
|
-
# @since 6.0.0
|
|
9
6
|
module Cacheable
|
|
10
7
|
extend ActiveSupport::Concern
|
|
11
8
|
|
|
@@ -21,14 +18,12 @@ module Mongoid
|
|
|
21
18
|
# If not - will append /id-updated_at.to_s(cache_timestamp_format)
|
|
22
19
|
# Without updated_at - will append /id
|
|
23
20
|
#
|
|
24
|
-
# This is usually called
|
|
21
|
+
# This is usually called inside a cache() block
|
|
25
22
|
#
|
|
26
23
|
# @example Returns the cache key
|
|
27
24
|
# document.cache_key
|
|
28
25
|
#
|
|
29
26
|
# @return [ String ] the string with or without updated_at
|
|
30
|
-
#
|
|
31
|
-
# @since 2.4.0
|
|
32
27
|
def cache_key
|
|
33
28
|
return "#{model_key}/new" if new_record?
|
|
34
29
|
return "#{model_key}/#{_id}-#{updated_at.utc.to_s(cache_timestamp_format)}" if do_or_do_not(:updated_at)
|
data/lib/mongoid/changeable.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
5
|
# Defines behavior for dirty tracking.
|
|
7
|
-
#
|
|
8
|
-
# @since 4.0.0
|
|
9
6
|
module Changeable
|
|
10
7
|
extend ActiveSupport::Concern
|
|
11
8
|
|
|
@@ -15,8 +12,6 @@ module Mongoid
|
|
|
15
12
|
# model.changed
|
|
16
13
|
#
|
|
17
14
|
# @return [ Array<String> ] The changed attributes.
|
|
18
|
-
#
|
|
19
|
-
# @since 2.4.0
|
|
20
15
|
def changed
|
|
21
16
|
changed_attributes.keys.select { |attr| attribute_change(attr) }
|
|
22
17
|
end
|
|
@@ -27,20 +22,15 @@ module Mongoid
|
|
|
27
22
|
# model.changed?
|
|
28
23
|
#
|
|
29
24
|
# @return [ true, false ] If the document is changed.
|
|
30
|
-
#
|
|
31
|
-
# @since 2.4.0
|
|
32
25
|
def changed?
|
|
33
26
|
changes.values.any? { |val| val } || children_changed?
|
|
34
27
|
end
|
|
35
28
|
|
|
36
29
|
# Have any children (embedded documents) of this document changed?
|
|
37
30
|
#
|
|
38
|
-
# @
|
|
39
|
-
# model.children_changed?
|
|
31
|
+
# @note This intentionally only considers children and not descendants.
|
|
40
32
|
#
|
|
41
33
|
# @return [ true, false ] If any children have changed.
|
|
42
|
-
#
|
|
43
|
-
# @since 2.4.1
|
|
44
34
|
def children_changed?
|
|
45
35
|
_children.any?(&:changed?)
|
|
46
36
|
end
|
|
@@ -51,8 +41,6 @@ module Mongoid
|
|
|
51
41
|
# model.changed_attributes
|
|
52
42
|
#
|
|
53
43
|
# @return [ Hash<String, Object> ] The attribute changes.
|
|
54
|
-
#
|
|
55
|
-
# @since 2.4.0
|
|
56
44
|
def changed_attributes
|
|
57
45
|
@changed_attributes ||= {}
|
|
58
46
|
end
|
|
@@ -63,8 +51,6 @@ module Mongoid
|
|
|
63
51
|
# model.changes
|
|
64
52
|
#
|
|
65
53
|
# @return [ Hash<String, Array<Object, Object> ] The changes.
|
|
66
|
-
#
|
|
67
|
-
# @since 2.4.0
|
|
68
54
|
def changes
|
|
69
55
|
_changes = {}
|
|
70
56
|
changed.each do |attr|
|
|
@@ -81,8 +67,6 @@ module Mongoid
|
|
|
81
67
|
#
|
|
82
68
|
# @example Move the changes to previous.
|
|
83
69
|
# person.move_changes
|
|
84
|
-
#
|
|
85
|
-
# @since 2.1.0
|
|
86
70
|
def move_changes
|
|
87
71
|
@previous_changes = changes
|
|
88
72
|
Atomic::UPDATES.each do |update|
|
|
@@ -95,10 +79,8 @@ module Mongoid
|
|
|
95
79
|
#
|
|
96
80
|
# @example Handle post persistence.
|
|
97
81
|
# document.post_persist
|
|
98
|
-
#
|
|
99
|
-
# @since 3.0.0
|
|
100
82
|
def post_persist
|
|
101
|
-
|
|
83
|
+
reset_persisted_descendants
|
|
102
84
|
move_changes
|
|
103
85
|
end
|
|
104
86
|
|
|
@@ -108,21 +90,17 @@ module Mongoid
|
|
|
108
90
|
# model.previous_changes
|
|
109
91
|
#
|
|
110
92
|
# @return [ Hash<String, Array<Object, Object> ] The previous changes.
|
|
111
|
-
#
|
|
112
|
-
# @since 2.4.0
|
|
113
93
|
def previous_changes
|
|
114
94
|
@previous_changes ||= {}
|
|
115
95
|
end
|
|
116
96
|
|
|
117
97
|
# Remove a change from the dirty attributes hash. Used by the single field
|
|
118
|
-
# atomic
|
|
98
|
+
# atomic updaters.
|
|
119
99
|
#
|
|
120
100
|
# @example Remove a flagged change.
|
|
121
101
|
# model.remove_change(:field)
|
|
122
102
|
#
|
|
123
103
|
# @param [ Symbol, String ] name The name of the field.
|
|
124
|
-
#
|
|
125
|
-
# @since 2.1.0
|
|
126
104
|
def remove_change(name)
|
|
127
105
|
changed_attributes.delete(name.to_s)
|
|
128
106
|
end
|
|
@@ -136,8 +114,6 @@ module Mongoid
|
|
|
136
114
|
# person.setters # returns { "title" => "Madam" }
|
|
137
115
|
#
|
|
138
116
|
# @return [ Hash ] A +Hash+ of atomic setters.
|
|
139
|
-
#
|
|
140
|
-
# @since 2.0.0
|
|
141
117
|
def setters
|
|
142
118
|
mods = {}
|
|
143
119
|
changes.each_pair do |name, changes|
|
|
@@ -165,8 +141,6 @@ module Mongoid
|
|
|
165
141
|
# @param [ String ] attr The name of the attribute.
|
|
166
142
|
#
|
|
167
143
|
# @return [ Array<Object> ] The old and new values.
|
|
168
|
-
#
|
|
169
|
-
# @since 2.1.0
|
|
170
144
|
def attribute_change(attr)
|
|
171
145
|
attr = database_field_name(attr)
|
|
172
146
|
[changed_attributes[attr], attributes[attr]] if attribute_changed?(attr)
|
|
@@ -180,8 +154,6 @@ module Mongoid
|
|
|
180
154
|
# @param [ String ] attr The name of the attribute.
|
|
181
155
|
#
|
|
182
156
|
# @return [ true, false ] Whether the attribute has changed.
|
|
183
|
-
#
|
|
184
|
-
# @since 2.1.6
|
|
185
157
|
def attribute_changed?(attr)
|
|
186
158
|
attr = database_field_name(attr)
|
|
187
159
|
return false unless changed_attributes.key?(attr)
|
|
@@ -196,8 +168,6 @@ module Mongoid
|
|
|
196
168
|
# @param [ String ] attr The name of the attribute.
|
|
197
169
|
#
|
|
198
170
|
# @return [ true, false ] If the attribute differs.
|
|
199
|
-
#
|
|
200
|
-
# @since 3.0.0
|
|
201
171
|
def attribute_changed_from_default?(attr)
|
|
202
172
|
field = fields[attr]
|
|
203
173
|
return false unless field
|
|
@@ -210,8 +180,6 @@ module Mongoid
|
|
|
210
180
|
# model.attribute_was("name")
|
|
211
181
|
#
|
|
212
182
|
# @param [ String ] attr The attribute name.
|
|
213
|
-
#
|
|
214
|
-
# @since 2.4.0
|
|
215
183
|
def attribute_was(attr)
|
|
216
184
|
attr = database_field_name(attr)
|
|
217
185
|
attribute_changed?(attr) ? changed_attributes[attr] : attributes[attr]
|
|
@@ -225,8 +193,6 @@ module Mongoid
|
|
|
225
193
|
# @param [ String ] attr The name of the attribute.
|
|
226
194
|
#
|
|
227
195
|
# @return [ Object ] The old value.
|
|
228
|
-
#
|
|
229
|
-
# @since 2.3.0
|
|
230
196
|
def attribute_will_change!(attr)
|
|
231
197
|
unless changed_attributes.key?(attr)
|
|
232
198
|
changed_attributes[attr] = read_raw_attribute(attr).__deep_copy__
|
|
@@ -241,8 +207,6 @@ module Mongoid
|
|
|
241
207
|
# @param [ String ] attr The name of the attribute.
|
|
242
208
|
#
|
|
243
209
|
# @return [ Object ] The old value.
|
|
244
|
-
#
|
|
245
|
-
# @since 2.4.0
|
|
246
210
|
def reset_attribute!(attr)
|
|
247
211
|
attr = database_field_name(attr)
|
|
248
212
|
attributes[attr] = changed_attributes.delete(attr) if attribute_changed?(attr)
|
|
@@ -270,8 +234,6 @@ module Mongoid
|
|
|
270
234
|
# @param [ String ] meth The name of the accessor.
|
|
271
235
|
#
|
|
272
236
|
# @return [ Module ] The fields module.
|
|
273
|
-
#
|
|
274
|
-
# @since 2.4.0
|
|
275
237
|
def create_dirty_methods(name, meth)
|
|
276
238
|
create_dirty_change_accessor(name, meth)
|
|
277
239
|
create_dirty_change_check(name, meth)
|
|
@@ -291,8 +253,6 @@ module Mongoid
|
|
|
291
253
|
#
|
|
292
254
|
# @param [ String ] name The attribute name.
|
|
293
255
|
# @param [ String ] meth The name of the accessor.
|
|
294
|
-
#
|
|
295
|
-
# @since 3.0.0
|
|
296
256
|
def create_dirty_change_accessor(name, meth)
|
|
297
257
|
generated_methods.module_eval do
|
|
298
258
|
re_define_method("#{meth}_change") do
|
|
@@ -308,8 +268,6 @@ module Mongoid
|
|
|
308
268
|
#
|
|
309
269
|
# @param [ String ] name The attribute name.
|
|
310
270
|
# @param [ String ] meth The name of the accessor.
|
|
311
|
-
#
|
|
312
|
-
# @since 3.0.0
|
|
313
271
|
def create_dirty_change_check(name, meth)
|
|
314
272
|
generated_methods.module_eval do
|
|
315
273
|
re_define_method("#{meth}_changed?") do
|
|
@@ -325,8 +283,6 @@ module Mongoid
|
|
|
325
283
|
#
|
|
326
284
|
# @param [ String ] name The attribute name.
|
|
327
285
|
# @param [ String ] meth The name of the accessor.
|
|
328
|
-
#
|
|
329
|
-
# @since 3.0.0
|
|
330
286
|
def create_dirty_default_change_check(name, meth)
|
|
331
287
|
generated_methods.module_eval do
|
|
332
288
|
re_define_method("#{meth}_changed_from_default?") do
|
|
@@ -342,8 +298,6 @@ module Mongoid
|
|
|
342
298
|
#
|
|
343
299
|
# @param [ String ] name The attribute name.
|
|
344
300
|
# @param [ String ] meth The name of the accessor.
|
|
345
|
-
#
|
|
346
|
-
# @since 3.0.0
|
|
347
301
|
def create_dirty_previous_value_accessor(name, meth)
|
|
348
302
|
generated_methods.module_eval do
|
|
349
303
|
re_define_method("#{meth}_was") do
|
|
@@ -359,8 +313,6 @@ module Mongoid
|
|
|
359
313
|
#
|
|
360
314
|
# @param [ String ] name The attribute name.
|
|
361
315
|
# @param [ String ] meth The name of the accessor.
|
|
362
|
-
#
|
|
363
|
-
# @since 3.0.0
|
|
364
316
|
def create_dirty_change_flag(name, meth)
|
|
365
317
|
generated_methods.module_eval do
|
|
366
318
|
re_define_method("#{meth}_will_change!") do
|
|
@@ -376,8 +328,6 @@ module Mongoid
|
|
|
376
328
|
#
|
|
377
329
|
# @param [ String ] name The attribute name.
|
|
378
330
|
# @param [ String ] meth The name of the accessor.
|
|
379
|
-
#
|
|
380
|
-
# @since 3.0.0
|
|
381
331
|
def create_dirty_reset(name, meth)
|
|
382
332
|
generated_methods.module_eval do
|
|
383
333
|
re_define_method("reset_#{meth}!") do
|
|
@@ -393,8 +343,6 @@ module Mongoid
|
|
|
393
343
|
#
|
|
394
344
|
# @param [ String ] name The attribute name.
|
|
395
345
|
# @param [ String ] meth The name of the accessor.
|
|
396
|
-
#
|
|
397
|
-
# @since 3.0.0
|
|
398
346
|
def create_dirty_reset_to_default(name, meth)
|
|
399
347
|
generated_methods.module_eval do
|
|
400
348
|
re_define_method("reset_#{meth}_to_default!") do
|
|
@@ -410,8 +358,6 @@ module Mongoid
|
|
|
410
358
|
#
|
|
411
359
|
# @param [ String ] name The attribute name.
|
|
412
360
|
# @param [ String ] meth The name of the accessor.
|
|
413
|
-
#
|
|
414
|
-
# @since 6.0.0
|
|
415
361
|
def create_dirty_previously_changed?(name, meth)
|
|
416
362
|
generated_methods.module_eval do
|
|
417
363
|
re_define_method("#{meth}_previously_changed?") do
|
|
@@ -427,8 +373,6 @@ module Mongoid
|
|
|
427
373
|
#
|
|
428
374
|
# @param [ String ] name The attribute name.
|
|
429
375
|
# @param [ String ] meth The name of the accessor.
|
|
430
|
-
#
|
|
431
|
-
# @since 6.0.0
|
|
432
376
|
def create_dirty_previous_change(name, meth)
|
|
433
377
|
generated_methods.module_eval do
|
|
434
378
|
re_define_method("#{meth}_previous_change") do
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
module Clients
|
|
@@ -20,8 +19,6 @@ module Mongoid
|
|
|
20
19
|
# @raise [ Errors::NoClientConfig ] If no config could be found.
|
|
21
20
|
#
|
|
22
21
|
# @return [ Mongo::Client ] The new client.
|
|
23
|
-
#
|
|
24
|
-
# @since 3.0.0
|
|
25
22
|
def create(name = nil)
|
|
26
23
|
return default unless name
|
|
27
24
|
config = Mongoid.clients[name]
|
|
@@ -38,8 +35,6 @@ module Mongoid
|
|
|
38
35
|
# found.
|
|
39
36
|
#
|
|
40
37
|
# @return [ Mongo::Client ] The default client.
|
|
41
|
-
#
|
|
42
|
-
# @since 3.0.0
|
|
43
38
|
def default
|
|
44
39
|
create_client(Mongoid.clients[:default])
|
|
45
40
|
end
|
|
@@ -56,8 +51,6 @@ module Mongoid
|
|
|
56
51
|
# @param [ Hash ] configuration The client config.
|
|
57
52
|
#
|
|
58
53
|
# @return [ Mongo::Client ] The client.
|
|
59
|
-
#
|
|
60
|
-
# @since 3.0.0
|
|
61
54
|
def create_client(configuration)
|
|
62
55
|
raise Errors::NoClientsConfig.new unless configuration
|
|
63
56
|
config = configuration.dup
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
module Clients
|
|
@@ -19,8 +18,6 @@ module Mongoid
|
|
|
19
18
|
# @option options [ String | Symbol ] :collection The collection name.
|
|
20
19
|
# @option options [ String | Symbol ] :database The database name.
|
|
21
20
|
# @option options [ String | Symbol ] :client The client name.
|
|
22
|
-
#
|
|
23
|
-
# @since 6.0.0
|
|
24
21
|
def with(options_or_context, &block)
|
|
25
22
|
original_context = PersistenceContext.get(self)
|
|
26
23
|
original_cluster = persistence_context.cluster
|
|
@@ -92,8 +89,6 @@ module Mongoid
|
|
|
92
89
|
# @option options [ String | Symbol ] :collection The collection name.
|
|
93
90
|
# @option options [ String | Symbol ] :database The database name.
|
|
94
91
|
# @option options [ String | Symbol ] :client The client name.
|
|
95
|
-
#
|
|
96
|
-
# @since 6.0.0
|
|
97
92
|
def with(options, &block)
|
|
98
93
|
original_context = PersistenceContext.get(self)
|
|
99
94
|
original_cluster = persistence_context.cluster
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
module Clients
|
|
@@ -7,8 +6,6 @@ module Mongoid
|
|
|
7
6
|
# Encapsulates behavior for getting a session from the client of a model class or instance,
|
|
8
7
|
# setting the session on the current thread, and yielding to a block.
|
|
9
8
|
# The session will be closed after the block completes or raises an error.
|
|
10
|
-
#
|
|
11
|
-
# @since 6.4.0
|
|
12
9
|
module Sessions
|
|
13
10
|
|
|
14
11
|
# Execute a block within the context of a session.
|
|
@@ -38,8 +35,6 @@ module Mongoid
|
|
|
38
35
|
# @return [ Object ] The result of calling the block.
|
|
39
36
|
#
|
|
40
37
|
# @yieldparam [ Mongo::Session ] The session being used for the block.
|
|
41
|
-
#
|
|
42
|
-
# @since 6.4.0
|
|
43
38
|
def with_session(options = {})
|
|
44
39
|
if Threaded.get_session
|
|
45
40
|
raise Mongoid::Errors::InvalidSessionUse.new(:invalid_session_nesting)
|
|
@@ -97,8 +92,6 @@ module Mongoid
|
|
|
97
92
|
# @return [ Object ] The result of calling the block.
|
|
98
93
|
#
|
|
99
94
|
# @yieldparam [ Mongo::Session ] The session being used for the block.
|
|
100
|
-
#
|
|
101
|
-
# @since 6.4.0
|
|
102
95
|
def with_session(options = {})
|
|
103
96
|
if Threaded.get_session
|
|
104
97
|
raise Mongoid::Errors::InvalidSessionUse.new(:invalid_session_nesting)
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
module Clients
|
|
@@ -48,8 +47,6 @@ module Mongoid
|
|
|
48
47
|
# @option options [ String | Symbol ] :client The client name.
|
|
49
48
|
#
|
|
50
49
|
# @return [ Class ] The model class.
|
|
51
|
-
#
|
|
52
|
-
# @since 3.0.0
|
|
53
50
|
def store_in(options)
|
|
54
51
|
Validators::Storage.validate(self, options)
|
|
55
52
|
storage_options.merge!(options)
|
|
@@ -59,8 +56,6 @@ module Mongoid
|
|
|
59
56
|
#
|
|
60
57
|
# @example Reset the store_in options
|
|
61
58
|
# Model.reset_storage_options!
|
|
62
|
-
#
|
|
63
|
-
# @since 4.0.0
|
|
64
59
|
def reset_storage_options!
|
|
65
60
|
self.storage_options = storage_options_defaults.dup
|
|
66
61
|
PersistenceContext.clear(self)
|
|
@@ -72,8 +67,6 @@ module Mongoid
|
|
|
72
67
|
# Model.storage_options_defaults
|
|
73
68
|
#
|
|
74
69
|
# @return [ Hash ] Default storage options.
|
|
75
|
-
#
|
|
76
|
-
# @since 4.0.0
|
|
77
70
|
def storage_options_defaults
|
|
78
71
|
{
|
|
79
72
|
collection: name.collectionize.to_sym,
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
module Clients
|
|
@@ -10,8 +9,6 @@ module Mongoid
|
|
|
10
9
|
extend self
|
|
11
10
|
|
|
12
11
|
# The valid options for storage.
|
|
13
|
-
#
|
|
14
|
-
# @since 3.0.0
|
|
15
12
|
VALID_OPTIONS = [ :collection, :database, :client ].freeze
|
|
16
13
|
|
|
17
14
|
# Validate the options provided to :store_in.
|
|
@@ -21,8 +18,6 @@ module Mongoid
|
|
|
21
18
|
#
|
|
22
19
|
# @param [ Class ] klass The model class.
|
|
23
20
|
# @param [ Hash, String, Symbol ] options The provided options.
|
|
24
|
-
#
|
|
25
|
-
# @since 3.0.0
|
|
26
21
|
def validate(klass, options)
|
|
27
22
|
valid_keys?(options) or raise Errors::InvalidStorageOptions.new(klass, options)
|
|
28
23
|
valid_parent?(klass) or raise Errors::InvalidStorageParent.new(klass)
|
|
@@ -37,8 +32,6 @@ module Mongoid
|
|
|
37
32
|
# @param [ Class ] klass
|
|
38
33
|
#
|
|
39
34
|
# @return [ true, false ] If the class is valid
|
|
40
|
-
#
|
|
41
|
-
# @since 4.0.0
|
|
42
35
|
def valid_parent?(klass)
|
|
43
36
|
!klass.superclass.include?(Mongoid::Document)
|
|
44
37
|
end
|
|
@@ -53,8 +46,6 @@ module Mongoid
|
|
|
53
46
|
# @param [ Hash ] options The options hash.
|
|
54
47
|
#
|
|
55
48
|
# @return [ true, false ] If all keys are valid.
|
|
56
|
-
#
|
|
57
|
-
# @since 3.0.0
|
|
58
49
|
def valid_keys?(options)
|
|
59
50
|
return false unless options.is_a?(::Hash)
|
|
60
51
|
options.keys.all? do |key|
|