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
data/lib/mongoid/railtie.rb
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
require "rails"
|
|
5
4
|
require "rails/mongoid"
|
|
@@ -8,8 +7,6 @@ module Rails
|
|
|
8
7
|
module Mongoid
|
|
9
8
|
|
|
10
9
|
# Hooks Mongoid into Rails 3 and higher.
|
|
11
|
-
#
|
|
12
|
-
# @since 2.0.0
|
|
13
10
|
class Railtie < Rails::Railtie
|
|
14
11
|
|
|
15
12
|
# Mapping of rescued exceptions to HTTP responses
|
|
@@ -18,8 +15,6 @@ module Rails
|
|
|
18
15
|
# railtie.rescue_responses
|
|
19
16
|
#
|
|
20
17
|
# @ return [Hash] rescued responses
|
|
21
|
-
#
|
|
22
|
-
# @since 2.4.3
|
|
23
18
|
def self.rescue_responses
|
|
24
19
|
{
|
|
25
20
|
"Mongoid::Errors::DocumentNotFound" => :not_found,
|
|
@@ -45,14 +40,10 @@ module Rails
|
|
|
45
40
|
# config.mongoid.logger = Logger.new(STDERR, :warn)
|
|
46
41
|
# end
|
|
47
42
|
# end
|
|
48
|
-
#
|
|
49
|
-
# @since 2.0.0
|
|
50
43
|
config.mongoid = ::Mongoid::Config
|
|
51
44
|
|
|
52
45
|
# Initialize Mongoid. This will look for a mongoid.yml in the config
|
|
53
46
|
# directory and configure mongoid appropriately.
|
|
54
|
-
#
|
|
55
|
-
# @since 2.0.0
|
|
56
47
|
initializer "mongoid.load-config" do
|
|
57
48
|
config_file = Rails.root.join("config", "mongoid.yml")
|
|
58
49
|
if config_file.file?
|
|
@@ -72,8 +63,6 @@ module Rails
|
|
|
72
63
|
|
|
73
64
|
# Set the proper error types for Rails. DocumentNotFound errors should be
|
|
74
65
|
# 404s and not 500s, validation errors are 422s.
|
|
75
|
-
#
|
|
76
|
-
# @since 2.0.0
|
|
77
66
|
config.after_initialize do
|
|
78
67
|
unless config.action_dispatch.rescue_responses
|
|
79
68
|
ActionDispatch::ShowExceptions.rescue_responses.update(Railtie.rescue_responses)
|
|
@@ -86,8 +75,6 @@ module Rails
|
|
|
86
75
|
#
|
|
87
76
|
# This will happen for every request in development, once in other
|
|
88
77
|
# environments.
|
|
89
|
-
#
|
|
90
|
-
# @since 2.0.0
|
|
91
78
|
initializer "mongoid.preload-models" do |app|
|
|
92
79
|
config.to_prepare do
|
|
93
80
|
::Rails::Mongoid.preload_models(app)
|
|
@@ -98,8 +85,6 @@ module Rails
|
|
|
98
85
|
# code, so we have no way in the intitializer to know if we are
|
|
99
86
|
# generating a mongoid.yml. So instead of failing, we catch all the
|
|
100
87
|
# errors and print them out.
|
|
101
|
-
#
|
|
102
|
-
# @since 3.0.0
|
|
103
88
|
def handle_configuration_error(e)
|
|
104
89
|
puts "There is a configuration error with the current mongoid.yml."
|
|
105
90
|
puts e.message
|
data/lib/mongoid/reloadable.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
|
# This module handles reloading behavior of documents.
|
|
7
|
-
#
|
|
8
|
-
# @since 4.0.0
|
|
9
6
|
module Reloadable
|
|
10
7
|
|
|
11
8
|
# Reloads the +Document+ attributes from the database. If the document has
|
|
@@ -18,8 +15,6 @@ module Mongoid
|
|
|
18
15
|
# @raise [ Errors::DocumentNotFound ] If the document was deleted.
|
|
19
16
|
#
|
|
20
17
|
# @return [ Document ] The document, reloaded.
|
|
21
|
-
#
|
|
22
|
-
# @since 1.0.0
|
|
23
18
|
def reload
|
|
24
19
|
if @atomic_selector
|
|
25
20
|
# Clear atomic_selector cache for sharded clusters. MONGOID-5076
|
|
@@ -27,7 +22,7 @@ module Mongoid
|
|
|
27
22
|
end
|
|
28
23
|
|
|
29
24
|
reloaded = _reload
|
|
30
|
-
if Mongoid.raise_not_found_error && reloaded.empty?
|
|
25
|
+
if Mongoid.raise_not_found_error && (reloaded.nil? || reloaded.empty?)
|
|
31
26
|
raise Errors::DocumentNotFound.new(self.class, _id, _id)
|
|
32
27
|
end
|
|
33
28
|
@attributes = reloaded
|
|
@@ -50,8 +45,6 @@ module Mongoid
|
|
|
50
45
|
# document._reload
|
|
51
46
|
#
|
|
52
47
|
# @return [ Hash ] The reloaded attributes.
|
|
53
|
-
#
|
|
54
|
-
# @since 2.3.2
|
|
55
48
|
def _reload
|
|
56
49
|
embedded? ? reload_embedded_document : reload_root_document
|
|
57
50
|
end
|
|
@@ -62,8 +55,6 @@ module Mongoid
|
|
|
62
55
|
# document.reload_root_document
|
|
63
56
|
#
|
|
64
57
|
# @return [ Hash ] The reloaded attributes.
|
|
65
|
-
#
|
|
66
|
-
# @since 2.3.2
|
|
67
58
|
def reload_root_document
|
|
68
59
|
{}.merge(collection.find(atomic_selector, session: _session).read(mode: :primary).first || {})
|
|
69
60
|
end
|
|
@@ -74,11 +65,9 @@ module Mongoid
|
|
|
74
65
|
# document.reload_embedded_document
|
|
75
66
|
#
|
|
76
67
|
# @return [ Hash ] The reloaded attributes.
|
|
77
|
-
#
|
|
78
|
-
# @since 2.3.2
|
|
79
68
|
def reload_embedded_document
|
|
80
69
|
extract_embedded_attributes({}.merge(
|
|
81
|
-
collection(_root).find(_root.atomic_selector).read(mode: :primary).first
|
|
70
|
+
collection(_root).find(_root.atomic_selector, session: _session).read(mode: :primary).first
|
|
82
71
|
))
|
|
83
72
|
end
|
|
84
73
|
|
|
@@ -89,9 +78,8 @@ module Mongoid
|
|
|
89
78
|
#
|
|
90
79
|
# @param [ Hash ] attributes The document in the db.
|
|
91
80
|
#
|
|
92
|
-
# @return [ Hash ] The document's extracted attributes
|
|
93
|
-
#
|
|
94
|
-
# @since 2.3.2
|
|
81
|
+
# @return [ Hash | nil ] The document's extracted attributes or nil if the
|
|
82
|
+
# document doesn't exist.
|
|
95
83
|
def extract_embedded_attributes(attributes)
|
|
96
84
|
atomic_position.split(".").inject(attributes) do |attrs, part|
|
|
97
85
|
attrs = attrs[part =~ /\d/ ? part.to_i : part]
|
data/lib/mongoid/scopable.rb
CHANGED
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
|
|
6
5
|
# This module contains behavior for all Mongoid scoping - named scopes,
|
|
7
6
|
# default scopes, and criteria accessors via scoped and unscoped.
|
|
8
|
-
#
|
|
9
|
-
# @since 4.0.0
|
|
10
7
|
module Scopable
|
|
11
8
|
extend ActiveSupport::Concern
|
|
12
9
|
|
|
@@ -27,8 +24,6 @@ module Mongoid
|
|
|
27
24
|
# document.apply_default_scoping
|
|
28
25
|
#
|
|
29
26
|
# @return [ true, false ] If default scoping was applied.
|
|
30
|
-
#
|
|
31
|
-
# @since 4.0.0
|
|
32
27
|
def apply_default_scoping
|
|
33
28
|
if default_scoping
|
|
34
29
|
default_scoping.call.selector.each do |field, value|
|
|
@@ -52,8 +47,6 @@ module Mongoid
|
|
|
52
47
|
# Band.scopes
|
|
53
48
|
#
|
|
54
49
|
# @return [ Hash ] The scopes defined for this class
|
|
55
|
-
#
|
|
56
|
-
# @since 3.1.4
|
|
57
50
|
def scopes
|
|
58
51
|
defined_scopes = {}
|
|
59
52
|
ancestors.reverse.each do |klass|
|
|
@@ -86,8 +79,6 @@ module Mongoid
|
|
|
86
79
|
# @raise [ Errors::InvalidScope ] If the scope is not a proc or criteria.
|
|
87
80
|
#
|
|
88
81
|
# @return [ Proc ] The default scope.
|
|
89
|
-
#
|
|
90
|
-
# @since 1.0.0
|
|
91
82
|
def default_scope(value = nil)
|
|
92
83
|
value = Proc.new { yield } if block_given?
|
|
93
84
|
check_scope_validity(value)
|
|
@@ -100,8 +91,6 @@ module Mongoid
|
|
|
100
91
|
# Band.default_scopable?
|
|
101
92
|
#
|
|
102
93
|
# @return [ true, false ] If the default scope can be applied.
|
|
103
|
-
#
|
|
104
|
-
# @since 3.0.0
|
|
105
94
|
def default_scopable?
|
|
106
95
|
default_scoping? && !Threaded.without_default_scope?(self)
|
|
107
96
|
end
|
|
@@ -114,8 +103,6 @@ module Mongoid
|
|
|
114
103
|
# Model.queryable
|
|
115
104
|
#
|
|
116
105
|
# @return [ Criteria ] The queryable.
|
|
117
|
-
#
|
|
118
|
-
# @since 3.0.0
|
|
119
106
|
def queryable
|
|
120
107
|
crit = Threaded.current_scope(self) || Criteria.new(self)
|
|
121
108
|
crit.embedded = true if (crit.klass.embedded? && !crit.klass.cyclic?)
|
|
@@ -141,8 +128,6 @@ module Mongoid
|
|
|
141
128
|
#
|
|
142
129
|
# @raise [ Errors::InvalidScope ] If the scope is not a proc.
|
|
143
130
|
# @raise [ Errors::ScopeOverwrite ] If the scope name already exists.
|
|
144
|
-
#
|
|
145
|
-
# @since 1.0.0
|
|
146
131
|
def scope(name, value, &block)
|
|
147
132
|
normalized = name.to_sym
|
|
148
133
|
check_scope_validity(value)
|
|
@@ -169,8 +154,6 @@ module Mongoid
|
|
|
169
154
|
# @option options [ Array ] :sort Optional sorting options.
|
|
170
155
|
#
|
|
171
156
|
# @return [ Criteria ] A scoped criteria.
|
|
172
|
-
#
|
|
173
|
-
# @since 3.0.0
|
|
174
157
|
def scoped(options = nil)
|
|
175
158
|
queryable.scoped(options)
|
|
176
159
|
end
|
|
@@ -189,8 +172,6 @@ module Mongoid
|
|
|
189
172
|
#
|
|
190
173
|
# @return [ Criteria, Object ] The unscoped criteria or result of the
|
|
191
174
|
# block.
|
|
192
|
-
#
|
|
193
|
-
# @since 3.0.0
|
|
194
175
|
def unscoped
|
|
195
176
|
if block_given?
|
|
196
177
|
without_default_scope do
|
|
@@ -207,8 +188,6 @@ module Mongoid
|
|
|
207
188
|
# Model.with_default_scope
|
|
208
189
|
#
|
|
209
190
|
# @return [ Criteria ] The criteria.
|
|
210
|
-
#
|
|
211
|
-
# @since 3.0.0
|
|
212
191
|
def with_default_scope
|
|
213
192
|
queryable.with_default_scope
|
|
214
193
|
end
|
|
@@ -223,14 +202,17 @@ module Mongoid
|
|
|
223
202
|
# @param [ Criteria ] criteria The criteria to apply.
|
|
224
203
|
#
|
|
225
204
|
# @return [ Criteria ] The yielded criteria.
|
|
226
|
-
#
|
|
227
|
-
# @since 1.0.0
|
|
228
205
|
def with_scope(criteria)
|
|
206
|
+
previous = Threaded.current_scope(self)
|
|
229
207
|
Threaded.set_current_scope(criteria, self)
|
|
230
208
|
begin
|
|
231
209
|
yield criteria
|
|
232
210
|
ensure
|
|
233
|
-
|
|
211
|
+
if Mongoid.broken_scoping
|
|
212
|
+
Threaded.set_current_scope(nil, self)
|
|
213
|
+
else
|
|
214
|
+
Threaded.set_current_scope(previous, self)
|
|
215
|
+
end
|
|
234
216
|
end
|
|
235
217
|
end
|
|
236
218
|
|
|
@@ -242,8 +224,6 @@ module Mongoid
|
|
|
242
224
|
# end
|
|
243
225
|
#
|
|
244
226
|
# @return [ Object ] The result of the block.
|
|
245
|
-
#
|
|
246
|
-
# @since 3.0.0
|
|
247
227
|
def without_default_scope
|
|
248
228
|
Threaded.begin_without_default_scope(self)
|
|
249
229
|
yield
|
|
@@ -264,8 +244,6 @@ module Mongoid
|
|
|
264
244
|
#
|
|
265
245
|
# @raise [ Errors::ScopeOverwrite ] If the name exists and configured to
|
|
266
246
|
# raise the error.
|
|
267
|
-
#
|
|
268
|
-
# @since 2.1.0
|
|
269
247
|
def check_scope_name(name)
|
|
270
248
|
if _declared_scopes[name] || respond_to?(name, true)
|
|
271
249
|
if Mongoid.scope_overwrite_exception
|
|
@@ -292,8 +270,6 @@ module Mongoid
|
|
|
292
270
|
# @param [ Object ] value The intended scope.
|
|
293
271
|
#
|
|
294
272
|
# @raise [ Errors::InvalidScope ] If the scope is not a valid object.
|
|
295
|
-
#
|
|
296
|
-
# @since 3.0.0
|
|
297
273
|
def check_scope_validity(value)
|
|
298
274
|
unless value.respond_to?(:call)
|
|
299
275
|
raise Errors::InvalidScope.new(self, value)
|
|
@@ -311,8 +287,6 @@ module Mongoid
|
|
|
311
287
|
# @param [ Symbol ] name The method/scope name.
|
|
312
288
|
#
|
|
313
289
|
# @return [ Method ] The defined method.
|
|
314
|
-
#
|
|
315
|
-
# @since 3.0.0
|
|
316
290
|
def define_scope_method(name)
|
|
317
291
|
singleton_class.class_eval do
|
|
318
292
|
define_method(name) do |*args|
|
|
@@ -336,8 +310,6 @@ module Mongoid
|
|
|
336
310
|
# Model.process_default_scope(value)
|
|
337
311
|
#
|
|
338
312
|
# @param [ Criteria, Proc ] value The default scope value.
|
|
339
|
-
#
|
|
340
|
-
# @since 3.0.5
|
|
341
313
|
def process_default_scope(value)
|
|
342
314
|
if existing = default_scoping
|
|
343
315
|
->{ existing.call.merge(value.to_proc.call) }
|
data/lib/mongoid/selectable.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
|
# Provides behavior for generating the selector for a specific document.
|
|
7
|
-
#
|
|
8
|
-
# @since 4.0.0
|
|
9
6
|
module Selectable
|
|
10
7
|
extend ActiveSupport::Concern
|
|
11
8
|
|
|
@@ -17,8 +14,6 @@ module Mongoid
|
|
|
17
14
|
# document.atomic_selector
|
|
18
15
|
#
|
|
19
16
|
# @return [ Hash ] The document's selector.
|
|
20
|
-
#
|
|
21
|
-
# @since 1.0.0
|
|
22
17
|
def atomic_selector
|
|
23
18
|
@atomic_selector ||=
|
|
24
19
|
(embedded? ? embedded_atomic_selector : root_atomic_selector_in_db)
|
|
@@ -34,8 +29,6 @@ module Mongoid
|
|
|
34
29
|
# document.embedded_atomic_selector
|
|
35
30
|
#
|
|
36
31
|
# @return [ Hash ] The embedded document selector.
|
|
37
|
-
#
|
|
38
|
-
# @since 4.0.0
|
|
39
32
|
def embedded_atomic_selector
|
|
40
33
|
if persisted? && _id_changed?
|
|
41
34
|
_parent.atomic_selector
|
|
@@ -50,8 +43,6 @@ module Mongoid
|
|
|
50
43
|
# @api private
|
|
51
44
|
#
|
|
52
45
|
# @return [ Hash ] The root document selector.
|
|
53
|
-
#
|
|
54
|
-
# @since 4.0.0
|
|
55
46
|
def root_atomic_selector_in_db
|
|
56
47
|
{ "_id" => _id }.merge!(shard_key_selector_in_db)
|
|
57
48
|
end
|
data/lib/mongoid/serializable.rb
CHANGED
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
|
|
6
5
|
# This module provides the extra behavior for including associations in JSON
|
|
7
6
|
# and XML serialization.
|
|
8
|
-
#
|
|
9
|
-
# @since 4.0.0
|
|
10
7
|
module Serializable
|
|
11
8
|
extend ActiveSupport::Concern
|
|
12
9
|
|
|
@@ -42,8 +39,6 @@ module Mongoid
|
|
|
42
39
|
# @option options [ Symbol ] :methods What methods to include.
|
|
43
40
|
#
|
|
44
41
|
# @return [ Hash ] The document, ready to be serialized.
|
|
45
|
-
#
|
|
46
|
-
# @since 2.0.0.rc.6
|
|
47
42
|
def serializable_hash(options = nil)
|
|
48
43
|
options ||= {}
|
|
49
44
|
attrs = {}
|
|
@@ -73,8 +68,6 @@ module Mongoid
|
|
|
73
68
|
# document.send(:field_names)
|
|
74
69
|
#
|
|
75
70
|
# @return [ Array<String> ] The names of the fields.
|
|
76
|
-
#
|
|
77
|
-
# @since 3.0.0
|
|
78
71
|
def field_names(options)
|
|
79
72
|
names = (as_attributes.keys + attribute_names).uniq.sort
|
|
80
73
|
|
|
@@ -104,8 +97,6 @@ module Mongoid
|
|
|
104
97
|
# @param [ Hash ] options The options.
|
|
105
98
|
#
|
|
106
99
|
# @return [ Object ] The attribute.
|
|
107
|
-
#
|
|
108
|
-
# @since 3.0.0
|
|
109
100
|
def serialize_attribute(attrs, name, names, options)
|
|
110
101
|
if relations.key?(name)
|
|
111
102
|
value = send(name)
|
|
@@ -129,8 +120,6 @@ module Mongoid
|
|
|
129
120
|
# @option options [ Symbol ] :include What associations to include
|
|
130
121
|
# @option options [ Symbol ] :only Limit the fields to only these.
|
|
131
122
|
# @option options [ Symbol ] :except Dont include these fields.
|
|
132
|
-
#
|
|
133
|
-
# @since 2.0.0.rc.6
|
|
134
123
|
def serialize_relations(attributes = {}, options = {})
|
|
135
124
|
inclusions = options[:include]
|
|
136
125
|
relation_names(inclusions).each do |name|
|
|
@@ -151,8 +140,6 @@ module Mongoid
|
|
|
151
140
|
# @param [ Hash, Symbol, Array<Symbol> ] inclusions The inclusions.
|
|
152
141
|
#
|
|
153
142
|
# @return [ Array<Symbol> ] The names of the included associations.
|
|
154
|
-
#
|
|
155
|
-
# @since 2.0.0.rc.6
|
|
156
143
|
def relation_names(inclusions)
|
|
157
144
|
inclusions.is_a?(Hash) ? inclusions.keys : Array.wrap(inclusions)
|
|
158
145
|
end
|
|
@@ -168,8 +155,6 @@ module Mongoid
|
|
|
168
155
|
# @param [ Symbol ] name The name of the association.
|
|
169
156
|
#
|
|
170
157
|
# @return [ Hash ] The options for the association.
|
|
171
|
-
#
|
|
172
|
-
# @since 2.0.0.rc.6
|
|
173
158
|
def relation_options(inclusions, options, name)
|
|
174
159
|
if inclusions.is_a?(Hash)
|
|
175
160
|
inclusions[name]
|
data/lib/mongoid/shardable.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
|
# This module contains behavior for adding shard key fields to updates.
|
|
7
|
-
#
|
|
8
|
-
# @since 4.0.0
|
|
9
6
|
module Shardable
|
|
10
7
|
extend ActiveSupport::Concern
|
|
11
8
|
|
|
@@ -46,8 +43,6 @@ module Mongoid
|
|
|
46
43
|
# model.shard_key_fields
|
|
47
44
|
#
|
|
48
45
|
# @return [ Array<String> ] The shard key field names.
|
|
49
|
-
#
|
|
50
|
-
# @since 1.0.0
|
|
51
46
|
def shard_key_fields
|
|
52
47
|
self.class.shard_key_fields
|
|
53
48
|
end
|
|
@@ -97,8 +92,6 @@ module Mongoid
|
|
|
97
92
|
#
|
|
98
93
|
# shard_key first_name: 1, last_name: 1
|
|
99
94
|
# end
|
|
100
|
-
#
|
|
101
|
-
# @since 2.0.0
|
|
102
95
|
def shard_key(*args)
|
|
103
96
|
unless args.first.is_a?(Hash)
|
|
104
97
|
# Shorthand syntax
|
data/lib/mongoid/stateful.rb
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
|
|
@@ -39,8 +38,6 @@ module Mongoid
|
|
|
39
38
|
# document.flagged_for_destroy?
|
|
40
39
|
#
|
|
41
40
|
# @return [ true, false ] If the document is flagged.
|
|
42
|
-
#
|
|
43
|
-
# @since 2.3.2
|
|
44
41
|
def flagged_for_destroy?
|
|
45
42
|
@flagged_for_destroy ||= false
|
|
46
43
|
end
|
|
@@ -78,8 +75,6 @@ module Mongoid
|
|
|
78
75
|
# document.readonly?
|
|
79
76
|
#
|
|
80
77
|
# @return [ true, false ] If the document is readonly.
|
|
81
|
-
#
|
|
82
|
-
# @since 4.0.0
|
|
83
78
|
def readonly?
|
|
84
79
|
__selected_fields != nil
|
|
85
80
|
end
|
|
@@ -90,8 +85,6 @@ module Mongoid
|
|
|
90
85
|
# person.settable?
|
|
91
86
|
#
|
|
92
87
|
# @return [ true, false ] Is this document a new embeds one?
|
|
93
|
-
#
|
|
94
|
-
# @since 2.1.0
|
|
95
88
|
def settable?
|
|
96
89
|
new_record? && embedded_one? && _parent.persisted?
|
|
97
90
|
end
|
|
@@ -102,8 +95,6 @@ module Mongoid
|
|
|
102
95
|
# person.updateable?
|
|
103
96
|
#
|
|
104
97
|
# @return [ true, false ] If the document is changed and persisted.
|
|
105
|
-
#
|
|
106
|
-
# @since 2.1.0
|
|
107
98
|
def updateable?
|
|
108
99
|
persisted? && changed?
|
|
109
100
|
end
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
# A class which sends values to the database as Strings but returns them to the user as Symbols.
|
|
5
4
|
module Mongoid
|
|
@@ -10,7 +9,7 @@ module Mongoid
|
|
|
10
9
|
# Convert the object from its mongo friendly ruby type to this type.
|
|
11
10
|
#
|
|
12
11
|
# @example Demongoize the object.
|
|
13
|
-
#
|
|
12
|
+
# Mongoid::StringifiedSymbol.demongoize(object)
|
|
14
13
|
#
|
|
15
14
|
# @param [ Object ] object The object to demongoize.
|
|
16
15
|
#
|
|
@@ -29,7 +28,7 @@ module Mongoid
|
|
|
29
28
|
# type.
|
|
30
29
|
#
|
|
31
30
|
# @example Mongoize the object.
|
|
32
|
-
#
|
|
31
|
+
# Mongoid::StringifiedSymbol.mongoize("123.11")
|
|
33
32
|
#
|
|
34
33
|
# @param [ Object ] object The object to mongoize.
|
|
35
34
|
#
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
module Tasks
|
|
@@ -13,8 +12,6 @@ module Mongoid
|
|
|
13
12
|
# Mongoid::Tasks::Database.create_indexes
|
|
14
13
|
#
|
|
15
14
|
# @return [ Array<Class> ] The indexed models.
|
|
16
|
-
#
|
|
17
|
-
# @since 2.1.0
|
|
18
15
|
def create_indexes(models = ::Mongoid.models)
|
|
19
16
|
models.each do |model|
|
|
20
17
|
next if model.index_specifications.empty?
|
|
@@ -72,8 +69,6 @@ module Mongoid
|
|
|
72
69
|
# Mongoid::Tasks::Database.remove_undefined_indexes
|
|
73
70
|
#
|
|
74
71
|
# @return [ Hash{Class => Array(Hash)}] The list of indexes that were removed by model.
|
|
75
|
-
#
|
|
76
|
-
# @since 4.0.0
|
|
77
72
|
def remove_undefined_indexes(models = ::Mongoid.models)
|
|
78
73
|
undefined_indexes(models).each do |model, indexes|
|
|
79
74
|
indexes.each do |index|
|
|
@@ -123,7 +118,7 @@ module Mongoid
|
|
|
123
118
|
next if model.shard_config.nil?
|
|
124
119
|
|
|
125
120
|
if model.embedded? && !model.cyclic?
|
|
126
|
-
logger.warn("MONGOID: #{model} has shard config but is
|
|
121
|
+
logger.warn("MONGOID: #{model} has shard config but is embedded")
|
|
127
122
|
next
|
|
128
123
|
end
|
|
129
124
|
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
module Threaded
|
|
@@ -26,8 +25,6 @@ module Mongoid
|
|
|
26
25
|
# end
|
|
27
26
|
#
|
|
28
27
|
# @return [ Object ] The yielded value.
|
|
29
|
-
#
|
|
30
|
-
# @since 2.2.0
|
|
31
28
|
def _assigning
|
|
32
29
|
Threaded.begin_execution(ASSIGN)
|
|
33
30
|
yield
|
|
@@ -41,8 +38,6 @@ module Mongoid
|
|
|
41
38
|
# proxy._assigning?
|
|
42
39
|
#
|
|
43
40
|
# @return [ true, false ] If the thread is assigning.
|
|
44
|
-
#
|
|
45
|
-
# @since 2.1.0
|
|
46
41
|
def _assigning?
|
|
47
42
|
Threaded.executing?(ASSIGN)
|
|
48
43
|
end
|
|
@@ -55,8 +50,6 @@ module Mongoid
|
|
|
55
50
|
# end
|
|
56
51
|
#
|
|
57
52
|
# @return [ Object ] The return value of the block.
|
|
58
|
-
#
|
|
59
|
-
# @since 2.1.0
|
|
60
53
|
def _binding
|
|
61
54
|
Threaded.begin_execution(BIND)
|
|
62
55
|
yield
|
|
@@ -70,8 +63,6 @@ module Mongoid
|
|
|
70
63
|
# proxy.binding?
|
|
71
64
|
#
|
|
72
65
|
# @return [ true, false ] If the thread is binding.
|
|
73
|
-
#
|
|
74
|
-
# @since 2.1.0
|
|
75
66
|
def _binding?
|
|
76
67
|
Threaded.executing?(BIND)
|
|
77
68
|
end
|
|
@@ -84,8 +75,6 @@ module Mongoid
|
|
|
84
75
|
# end
|
|
85
76
|
#
|
|
86
77
|
# @return [ Object ] The return value of the block.
|
|
87
|
-
#
|
|
88
|
-
# @since 2.1.0
|
|
89
78
|
def _building
|
|
90
79
|
Threaded.begin_execution(BUILD)
|
|
91
80
|
yield
|
|
@@ -99,8 +88,6 @@ module Mongoid
|
|
|
99
88
|
# proxy._building?
|
|
100
89
|
#
|
|
101
90
|
# @return [ true, false ] If the thread is building.
|
|
102
|
-
#
|
|
103
|
-
# @since 2.1.0
|
|
104
91
|
def _building?
|
|
105
92
|
Threaded.executing?(BUILD)
|
|
106
93
|
end
|
|
@@ -111,8 +98,6 @@ module Mongoid
|
|
|
111
98
|
# proxy.creating?
|
|
112
99
|
#
|
|
113
100
|
# @return [ true, false ] If the thread is creating.
|
|
114
|
-
#
|
|
115
|
-
# @since 2.1.0
|
|
116
101
|
def _creating?
|
|
117
102
|
Threaded.executing?(CREATE)
|
|
118
103
|
end
|
|
@@ -125,8 +110,6 @@ module Mongoid
|
|
|
125
110
|
# end
|
|
126
111
|
#
|
|
127
112
|
# @return [ Object ] The return value of the block.
|
|
128
|
-
#
|
|
129
|
-
# @since 2.3.2
|
|
130
113
|
def _loading
|
|
131
114
|
Threaded.begin_execution(LOAD)
|
|
132
115
|
yield
|
|
@@ -140,8 +123,6 @@ module Mongoid
|
|
|
140
123
|
# proxy._loading?
|
|
141
124
|
#
|
|
142
125
|
# @return [ true, false ] If the thread is loading.
|
|
143
|
-
#
|
|
144
|
-
# @since 2.3.2
|
|
145
126
|
def _loading?
|
|
146
127
|
Threaded.executing?(LOAD)
|
|
147
128
|
end
|
|
@@ -156,8 +137,6 @@ module Mongoid
|
|
|
156
137
|
# end
|
|
157
138
|
#
|
|
158
139
|
# @return [ Object ] The return value of the block.
|
|
159
|
-
#
|
|
160
|
-
# @since 2.1.0
|
|
161
140
|
def _creating
|
|
162
141
|
Threaded.begin_execution(CREATE)
|
|
163
142
|
yield
|