mongoid 7.3.5 → 7.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +17 -17
- data/README.md +3 -3
- data/lib/config/locales/en.yml +28 -20
- data/lib/mongoid/association/accessors.rb +0 -27
- data/lib/mongoid/association/bindable.rb +0 -21
- data/lib/mongoid/association/builders.rb +0 -9
- data/lib/mongoid/association/constrainable.rb +0 -3
- data/lib/mongoid/association/depending.rb +0 -7
- data/lib/mongoid/association/eager_loadable.rb +0 -3
- data/lib/mongoid/association/embedded/batchable.rb +12 -59
- data/lib/mongoid/association/embedded/cyclic.rb +2 -11
- data/lib/mongoid/association/embedded/embedded_in/binding.rb +0 -7
- data/lib/mongoid/association/embedded/embedded_in/buildable.rb +0 -3
- data/lib/mongoid/association/embedded/embedded_in/proxy.rb +0 -13
- data/lib/mongoid/association/embedded/embedded_in.rb +0 -23
- data/lib/mongoid/association/embedded/embeds_many/binding.rb +0 -7
- data/lib/mongoid/association/embedded/embeds_many/buildable.rb +0 -3
- data/lib/mongoid/association/embedded/embeds_many/proxy.rb +31 -44
- data/lib/mongoid/association/embedded/embeds_many.rb +0 -31
- data/lib/mongoid/association/embedded/embeds_one/binding.rb +0 -7
- data/lib/mongoid/association/embedded/embeds_one/buildable.rb +0 -3
- data/lib/mongoid/association/embedded/embeds_one/proxy.rb +26 -14
- data/lib/mongoid/association/embedded/embeds_one.rb +0 -27
- data/lib/mongoid/association/embedded.rb +0 -1
- data/lib/mongoid/association/macros.rb +26 -5
- data/lib/mongoid/association/many.rb +0 -17
- data/lib/mongoid/association/marshalable.rb +0 -5
- data/lib/mongoid/association/nested/many.rb +0 -11
- data/lib/mongoid/association/nested/nested_buildable.rb +0 -9
- data/lib/mongoid/association/nested/one.rb +1 -16
- data/lib/mongoid/association/nested.rb +0 -3
- data/lib/mongoid/association/one.rb +1 -10
- data/lib/mongoid/association/options.rb +0 -33
- data/lib/mongoid/association/proxy.rb +0 -21
- data/lib/mongoid/association/referenced/auto_save.rb +0 -9
- data/lib/mongoid/association/referenced/belongs_to/binding.rb +0 -7
- data/lib/mongoid/association/referenced/belongs_to/buildable.rb +4 -5
- data/lib/mongoid/association/referenced/belongs_to/eager.rb +0 -1
- data/lib/mongoid/association/referenced/belongs_to/proxy.rb +0 -13
- data/lib/mongoid/association/referenced/belongs_to.rb +9 -34
- data/lib/mongoid/association/referenced/counter_cache.rb +2 -15
- data/lib/mongoid/association/referenced/eager.rb +3 -24
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/binding.rb +0 -5
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/buildable.rb +0 -3
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/eager.rb +0 -1
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/proxy.rb +12 -39
- data/lib/mongoid/association/referenced/has_and_belongs_to_many.rb +11 -38
- data/lib/mongoid/association/referenced/has_many/binding.rb +0 -5
- data/lib/mongoid/association/referenced/has_many/buildable.rb +0 -3
- data/lib/mongoid/association/referenced/has_many/eager.rb +0 -1
- data/lib/mongoid/association/referenced/has_many/enumerable.rb +20 -64
- data/lib/mongoid/association/referenced/has_many/proxy.rb +20 -63
- data/lib/mongoid/association/referenced/has_many.rb +12 -39
- data/lib/mongoid/association/referenced/has_one/binding.rb +0 -7
- data/lib/mongoid/association/referenced/has_one/buildable.rb +3 -4
- data/lib/mongoid/association/referenced/has_one/eager.rb +0 -1
- data/lib/mongoid/association/referenced/has_one/nested_builder.rb +0 -15
- data/lib/mongoid/association/referenced/has_one/proxy.rb +0 -9
- data/lib/mongoid/association/referenced/has_one.rb +9 -32
- data/lib/mongoid/association/referenced/syncable.rb +0 -17
- data/lib/mongoid/association/referenced.rb +0 -1
- data/lib/mongoid/association/reflections.rb +0 -1
- data/lib/mongoid/association/relatable.rb +0 -61
- data/lib/mongoid/association.rb +0 -17
- data/lib/mongoid/atomic/modifiers.rb +4 -51
- data/lib/mongoid/atomic/paths/embedded/many.rb +0 -24
- data/lib/mongoid/atomic/paths/embedded/one.rb +0 -5
- data/lib/mongoid/atomic/paths/embedded.rb +0 -3
- data/lib/mongoid/atomic/paths/root.rb +0 -5
- data/lib/mongoid/atomic/paths.rb +0 -1
- data/lib/mongoid/atomic.rb +1 -42
- data/lib/mongoid/attributes/dynamic.rb +0 -17
- data/lib/mongoid/attributes/nested.rb +0 -5
- data/lib/mongoid/attributes/processing.rb +1 -18
- data/lib/mongoid/attributes/projector.rb +0 -1
- data/lib/mongoid/attributes/readonly.rb +0 -5
- data/lib/mongoid/attributes.rb +0 -33
- data/lib/mongoid/cacheable.rb +1 -6
- data/lib/mongoid/changeable.rb +3 -59
- data/lib/mongoid/clients/factory.rb +0 -7
- data/lib/mongoid/clients/options.rb +0 -5
- data/lib/mongoid/clients/sessions.rb +0 -7
- data/lib/mongoid/clients/storage_options.rb +0 -7
- data/lib/mongoid/clients/validators/storage.rb +0 -9
- data/lib/mongoid/clients/validators.rb +0 -1
- data/lib/mongoid/clients.rb +0 -9
- data/lib/mongoid/composable.rb +0 -7
- data/lib/mongoid/config/environment.rb +21 -6
- data/lib/mongoid/config/options.rb +0 -11
- data/lib/mongoid/config/validators/client.rb +0 -17
- data/lib/mongoid/config/validators/option.rb +0 -3
- data/lib/mongoid/config/validators.rb +0 -1
- data/lib/mongoid/config.rb +43 -30
- data/lib/mongoid/contextual/aggregable/memory.rb +14 -11
- data/lib/mongoid/contextual/aggregable/mongo.rb +15 -20
- data/lib/mongoid/contextual/aggregable/none.rb +65 -0
- data/lib/mongoid/contextual/aggregable.rb +17 -0
- data/lib/mongoid/contextual/atomic.rb +0 -25
- data/lib/mongoid/contextual/command.rb +0 -5
- data/lib/mongoid/contextual/geo_near.rb +1 -34
- data/lib/mongoid/contextual/map_reduce.rb +0 -31
- data/lib/mongoid/contextual/memory.rb +147 -70
- data/lib/mongoid/contextual/mongo.rb +249 -103
- data/lib/mongoid/contextual/none.rb +83 -28
- data/lib/mongoid/contextual/queryable.rb +0 -3
- data/lib/mongoid/contextual.rb +0 -5
- data/lib/mongoid/copyable.rb +0 -5
- data/lib/mongoid/criteria/findable.rb +0 -13
- data/lib/mongoid/criteria/includable.rb +0 -9
- data/lib/mongoid/criteria/inspectable.rb +0 -3
- data/lib/mongoid/criteria/marshalable.rb +0 -5
- data/lib/mongoid/criteria/modifiable.rb +0 -19
- data/lib/mongoid/criteria/options.rb +0 -3
- data/lib/mongoid/criteria/permission.rb +0 -1
- data/lib/mongoid/criteria/queryable/aggregable.rb +0 -13
- data/lib/mongoid/criteria/queryable/expandable.rb +0 -1
- data/lib/mongoid/criteria/queryable/extensions/array.rb +2 -25
- data/lib/mongoid/criteria/queryable/extensions/big_decimal.rb +0 -3
- data/lib/mongoid/criteria/queryable/extensions/boolean.rb +0 -3
- data/lib/mongoid/criteria/queryable/extensions/date.rb +0 -7
- data/lib/mongoid/criteria/queryable/extensions/date_time.rb +0 -5
- data/lib/mongoid/criteria/queryable/extensions/hash.rb +1 -24
- data/lib/mongoid/criteria/queryable/extensions/nil_class.rb +0 -13
- data/lib/mongoid/criteria/queryable/extensions/numeric.rb +0 -11
- data/lib/mongoid/criteria/queryable/extensions/object.rb +1 -28
- data/lib/mongoid/criteria/queryable/extensions/range.rb +38 -16
- data/lib/mongoid/criteria/queryable/extensions/regexp.rb +0 -9
- data/lib/mongoid/criteria/queryable/extensions/set.rb +0 -3
- data/lib/mongoid/criteria/queryable/extensions/string.rb +0 -17
- data/lib/mongoid/criteria/queryable/extensions/symbol.rb +0 -9
- data/lib/mongoid/criteria/queryable/extensions/time.rb +0 -7
- data/lib/mongoid/criteria/queryable/extensions/time_with_zone.rb +0 -7
- data/lib/mongoid/criteria/queryable/extensions.rb +0 -1
- data/lib/mongoid/criteria/queryable/key.rb +1 -14
- data/lib/mongoid/criteria/queryable/macroable.rb +0 -3
- data/lib/mongoid/criteria/queryable/mergeable.rb +22 -30
- data/lib/mongoid/criteria/queryable/optional.rb +0 -45
- data/lib/mongoid/criteria/queryable/options.rb +0 -19
- data/lib/mongoid/criteria/queryable/pipeline.rb +0 -13
- data/lib/mongoid/criteria/queryable/selectable.rb +45 -76
- data/lib/mongoid/criteria/queryable/selector.rb +0 -17
- data/lib/mongoid/criteria/queryable/smash.rb +0 -11
- data/lib/mongoid/criteria/queryable/storable.rb +6 -2
- data/lib/mongoid/criteria/queryable.rb +0 -7
- data/lib/mongoid/criteria/scopable.rb +25 -19
- data/lib/mongoid/criteria.rb +2 -57
- data/lib/mongoid/document.rb +1 -50
- data/lib/mongoid/equality.rb +26 -10
- data/lib/mongoid/errors/ambiguous_relationship.rb +2 -5
- data/lib/mongoid/errors/callback.rb +0 -3
- data/lib/mongoid/errors/criteria_argument_required.rb +0 -1
- data/lib/mongoid/errors/delete_restriction.rb +0 -3
- data/lib/mongoid/errors/document_not_destroyed.rb +2 -7
- data/lib/mongoid/errors/document_not_found.rb +23 -15
- data/lib/mongoid/errors/eager_load.rb +0 -3
- data/lib/mongoid/errors/empty_config_file.rb +0 -1
- data/lib/mongoid/errors/in_memory_collation_not_supported.rb +0 -3
- data/lib/mongoid/errors/invalid_collection.rb +0 -1
- data/lib/mongoid/errors/invalid_config_file.rb +0 -1
- data/lib/mongoid/errors/invalid_config_option.rb +0 -3
- data/lib/mongoid/errors/invalid_dependent_strategy.rb +0 -3
- data/lib/mongoid/errors/invalid_discriminator_key_target.rb +0 -1
- data/lib/mongoid/errors/invalid_elem_match_operator.rb +0 -1
- data/lib/mongoid/errors/invalid_estimated_count_criteria.rb +0 -1
- data/lib/mongoid/errors/invalid_expression_operator.rb +0 -1
- data/lib/mongoid/errors/invalid_field.rb +0 -5
- data/lib/mongoid/errors/invalid_field_operator.rb +0 -1
- data/lib/mongoid/errors/invalid_field_option.rb +0 -3
- data/lib/mongoid/errors/invalid_find.rb +0 -3
- data/lib/mongoid/errors/invalid_includes.rb +0 -3
- data/lib/mongoid/errors/invalid_index.rb +0 -3
- data/lib/mongoid/errors/invalid_options.rb +0 -3
- data/lib/mongoid/errors/invalid_path.rb +0 -3
- data/lib/mongoid/errors/invalid_persistence_option.rb +0 -5
- data/lib/mongoid/errors/invalid_query.rb +0 -1
- data/lib/mongoid/errors/invalid_relation.rb +0 -7
- data/lib/mongoid/errors/invalid_relation_option.rb +0 -3
- data/lib/mongoid/errors/invalid_scope.rb +0 -3
- data/lib/mongoid/errors/invalid_session_use.rb +1 -6
- data/lib/mongoid/errors/invalid_set_polymorphic_relation.rb +0 -1
- data/lib/mongoid/errors/invalid_storage_options.rb +0 -3
- data/lib/mongoid/errors/invalid_storage_parent.rb +0 -3
- data/lib/mongoid/errors/invalid_time.rb +0 -3
- data/lib/mongoid/errors/invalid_value.rb +0 -1
- data/lib/mongoid/errors/inverse_not_found.rb +0 -3
- data/lib/mongoid/errors/mixed_client_configuration.rb +0 -3
- data/lib/mongoid/errors/mixed_relations.rb +0 -3
- data/lib/mongoid/errors/mongoid_error.rb +0 -9
- data/lib/mongoid/errors/nested_attributes_metadata_not_found.rb +0 -3
- data/lib/mongoid/errors/no_client_config.rb +0 -3
- data/lib/mongoid/errors/no_client_database.rb +0 -3
- data/lib/mongoid/errors/no_client_hosts.rb +0 -3
- data/lib/mongoid/errors/no_clients_config.rb +0 -3
- data/lib/mongoid/errors/no_default_client.rb +0 -3
- data/lib/mongoid/errors/no_environment.rb +0 -3
- data/lib/mongoid/errors/no_map_reduce_output.rb +0 -3
- data/lib/mongoid/errors/no_metadata.rb +0 -3
- data/lib/mongoid/errors/no_parent.rb +0 -3
- data/lib/mongoid/errors/readonly_attribute.rb +0 -3
- data/lib/mongoid/errors/readonly_document.rb +1 -6
- data/lib/mongoid/errors/scope_overwrite.rb +0 -1
- data/lib/mongoid/errors/too_many_nested_attribute_records.rb +0 -1
- data/lib/mongoid/errors/unknown_attribute.rb +0 -3
- data/lib/mongoid/errors/unknown_model.rb +0 -3
- data/lib/mongoid/errors/unsaved_document.rb +1 -2
- data/lib/mongoid/errors/unsupported_javascript.rb +0 -3
- data/lib/mongoid/errors/validations.rb +0 -1
- data/lib/mongoid/errors.rb +0 -1
- data/lib/mongoid/evolvable.rb +0 -3
- data/lib/mongoid/extensions/array.rb +3 -29
- data/lib/mongoid/extensions/big_decimal.rb +0 -11
- data/lib/mongoid/extensions/boolean.rb +0 -3
- data/lib/mongoid/extensions/date.rb +0 -9
- data/lib/mongoid/extensions/date_time.rb +0 -9
- data/lib/mongoid/extensions/decimal128.rb +0 -5
- data/lib/mongoid/extensions/false_class.rb +1 -6
- data/lib/mongoid/extensions/float.rb +0 -7
- data/lib/mongoid/extensions/hash.rb +0 -27
- data/lib/mongoid/extensions/integer.rb +0 -9
- data/lib/mongoid/extensions/module.rb +0 -3
- data/lib/mongoid/extensions/nil_class.rb +0 -5
- data/lib/mongoid/extensions/object.rb +1 -40
- data/lib/mongoid/extensions/object_id.rb +0 -7
- data/lib/mongoid/extensions/range.rb +0 -11
- data/lib/mongoid/extensions/regexp.rb +0 -3
- data/lib/mongoid/extensions/set.rb +0 -7
- data/lib/mongoid/extensions/string.rb +1 -30
- data/lib/mongoid/extensions/symbol.rb +0 -7
- data/lib/mongoid/extensions/time.rb +0 -11
- data/lib/mongoid/extensions/time_with_zone.rb +13 -9
- data/lib/mongoid/extensions/true_class.rb +1 -6
- data/lib/mongoid/extensions.rb +15 -3
- data/lib/mongoid/factory.rb +1 -2
- data/lib/mongoid/fields/foreign_key.rb +0 -21
- data/lib/mongoid/fields/localized.rb +0 -11
- data/lib/mongoid/fields/standard.rb +0 -33
- data/lib/mongoid/fields/validators/macro.rb +0 -9
- data/lib/mongoid/fields/validators.rb +0 -1
- data/lib/mongoid/fields.rb +191 -60
- data/lib/mongoid/findable.rb +20 -10
- data/lib/mongoid/indexable/specification.rb +0 -15
- data/lib/mongoid/indexable/validators/options.rb +0 -7
- data/lib/mongoid/indexable.rb +1 -18
- data/lib/mongoid/inspectable.rb +1 -10
- data/lib/mongoid/interceptable.rb +0 -25
- data/lib/mongoid/loggable.rb +0 -9
- data/lib/mongoid/matchable.rb +0 -5
- data/lib/mongoid/matcher/eq_impl.rb +37 -2
- data/lib/mongoid/matcher/eq_impl_with_regexp.rb +6 -1
- data/lib/mongoid/persistable/creatable.rb +1 -20
- data/lib/mongoid/persistable/deletable.rb +0 -17
- data/lib/mongoid/persistable/destroyable.rb +0 -7
- data/lib/mongoid/persistable/incrementable.rb +0 -5
- data/lib/mongoid/persistable/logical.rb +0 -5
- data/lib/mongoid/persistable/poppable.rb +0 -5
- data/lib/mongoid/persistable/pullable.rb +0 -7
- data/lib/mongoid/persistable/pushable.rb +0 -7
- data/lib/mongoid/persistable/renamable.rb +0 -5
- data/lib/mongoid/persistable/savable.rb +0 -7
- data/lib/mongoid/persistable/settable.rb +0 -5
- data/lib/mongoid/persistable/unsettable.rb +0 -5
- data/lib/mongoid/persistable/updatable.rb +2 -17
- data/lib/mongoid/persistable/upsertable.rb +0 -7
- data/lib/mongoid/persistable.rb +0 -23
- data/lib/mongoid/persistence_context.rb +0 -27
- data/lib/mongoid/positional.rb +0 -5
- data/lib/mongoid/query_cache.rb +0 -33
- data/lib/mongoid/railtie.rb +0 -15
- data/lib/mongoid/railties/controller_runtime.rb +0 -1
- data/lib/mongoid/reloadable.rb +4 -16
- data/lib/mongoid/scopable.rb +6 -34
- data/lib/mongoid/selectable.rb +0 -9
- data/lib/mongoid/serializable.rb +0 -15
- data/lib/mongoid/shardable.rb +0 -7
- data/lib/mongoid/stateful.rb +0 -9
- data/lib/mongoid/stringified_symbol.rb +2 -3
- data/lib/mongoid/tasks/database.rb +0 -5
- data/lib/mongoid/threaded/lifecycle.rb +0 -21
- data/lib/mongoid/threaded.rb +0 -55
- data/lib/mongoid/timestamps/created/short.rb +0 -1
- data/lib/mongoid/timestamps/created.rb +0 -1
- data/lib/mongoid/timestamps/short.rb +0 -1
- data/lib/mongoid/timestamps/timeless.rb +0 -7
- data/lib/mongoid/timestamps/updated/short.rb +0 -1
- data/lib/mongoid/timestamps/updated.rb +0 -3
- data/lib/mongoid/timestamps.rb +0 -1
- data/lib/mongoid/touchable.rb +0 -7
- data/lib/mongoid/traversable.rb +67 -53
- data/lib/mongoid/validatable/associated.rb +0 -3
- data/lib/mongoid/validatable/format.rb +0 -1
- data/lib/mongoid/validatable/length.rb +0 -1
- data/lib/mongoid/validatable/localizable.rb +0 -3
- data/lib/mongoid/validatable/macros.rb +0 -7
- data/lib/mongoid/validatable/presence.rb +1 -8
- data/lib/mongoid/validatable/queryable.rb +0 -3
- data/lib/mongoid/validatable/uniqueness.rb +15 -30
- data/lib/mongoid/validatable.rb +1 -22
- data/lib/mongoid/version.rb +1 -2
- data/lib/mongoid/warnings.rb +29 -0
- data/lib/mongoid.rb +1 -15
- data/lib/rails/generators/mongoid/config/config_generator.rb +0 -1
- data/lib/rails/generators/mongoid/config/templates/mongoid.yml +4 -3
- data/lib/rails/generators/mongoid/model/model_generator.rb +0 -1
- data/lib/rails/generators/mongoid_generator.rb +0 -1
- data/lib/rails/mongoid.rb +0 -3
- data/spec/config/mongoid_with_schema_map_uuid.yml +27 -0
- data/spec/integration/app_spec.rb +20 -15
- data/spec/integration/associations/belongs_to_spec.rb +0 -1
- data/spec/integration/associations/embedded_dirty_spec.rb +57 -0
- data/spec/integration/associations/embedded_spec.rb +0 -1
- data/spec/integration/associations/embeds_many_spec.rb +0 -1
- data/spec/integration/associations/embeds_one_spec.rb +0 -1
- data/spec/integration/associations/foreign_key_spec.rb +0 -1
- data/spec/integration/associations/foreign_key_spec_models.rb +0 -1
- data/spec/integration/associations/has_many_spec.rb +0 -1
- data/spec/integration/associations/has_one_spec.rb +0 -1
- data/spec/integration/associations/nested_attributes_assignment_spec.rb +0 -1
- data/spec/integration/associations/reverse_population_spec.rb +0 -1
- data/spec/integration/associations/reverse_population_spec_models.rb +0 -1
- data/spec/integration/associations/scope_option_spec.rb +101 -0
- data/spec/integration/atomic/modifiers_spec.rb +0 -1
- data/spec/integration/bson_regexp_raw_spec.rb +0 -1
- data/spec/integration/callbacks_models.rb +12 -0
- data/spec/integration/callbacks_spec.rb +18 -6
- data/spec/integration/contextual/empty_spec.rb +0 -1
- data/spec/integration/criteria/alias_query_spec.rb +161 -0
- data/spec/integration/criteria/date_field_spec.rb +0 -1
- data/spec/integration/criteria/default_scope_spec.rb +51 -0
- data/spec/integration/criteria/logical_spec.rb +30 -0
- data/spec/integration/criteria/range_spec.rb +265 -0
- data/spec/integration/criteria/time_with_zone_spec.rb +125 -15
- data/spec/integration/discriminator_key_spec.rb +0 -1
- data/spec/integration/discriminator_value_spec.rb +0 -1
- data/spec/integration/document_spec.rb +0 -1
- data/spec/integration/i18n_fallbacks_spec.rb +15 -2
- data/spec/integration/matcher_examples_spec.rb +0 -1
- data/spec/integration/matcher_operator_spec.rb +27 -3
- data/spec/integration/matcher_spec.rb +95 -1
- data/spec/integration/server_query_spec.rb +0 -1
- data/spec/integration/shardable_spec.rb +0 -1
- data/spec/integration/stringified_symbol_field_spec.rb +14 -1
- data/spec/lite_spec_helper.rb +1 -2
- data/spec/mongoid/association/accessors_spec.rb +44 -15
- data/spec/mongoid/association/auto_save_spec.rb +72 -34
- data/spec/mongoid/association/builders_spec.rb +1 -2
- data/spec/mongoid/association/constrainable_spec.rb +0 -1
- data/spec/mongoid/association/counter_cache_spec.rb +32 -33
- data/spec/mongoid/association/depending_spec.rb +12 -13
- data/spec/mongoid/association/eager_spec.rb +4 -5
- data/spec/mongoid/association/embedded/cyclic_spec.rb +2 -3
- data/spec/mongoid/association/embedded/dirty_spec.rb +2 -3
- data/spec/mongoid/association/embedded/embedded_in/binding_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embedded_in/buildable_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embedded_in/proxy_spec.rb +13 -14
- data/spec/mongoid/association/embedded/embedded_in_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_many/binding_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_many/buildable_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_many/proxy_spec.rb +384 -156
- data/spec/mongoid/association/embedded/embeds_many_models.rb +0 -122
- data/spec/mongoid/association/embedded/embeds_many_query_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_many_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one/binding_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one/buildable_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one/proxy_spec.rb +21 -22
- data/spec/mongoid/association/embedded/embeds_one_dnl_models.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one_models.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one_query_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one_spec.rb +0 -1
- data/spec/mongoid/association/macros_spec.rb +9 -10
- data/spec/mongoid/association/nested/many_spec.rb +0 -1
- data/spec/mongoid/association/nested/one_spec.rb +0 -1
- data/spec/mongoid/association/options_spec.rb +0 -1
- data/spec/mongoid/association/polymorphic_spec.rb +0 -1
- data/spec/mongoid/association/referenced/belongs_to/binding_spec.rb +0 -1
- data/spec/mongoid/association/referenced/belongs_to/buildable_spec.rb +55 -17
- data/spec/mongoid/association/referenced/belongs_to/eager_spec.rb +50 -15
- data/spec/mongoid/association/referenced/belongs_to/proxy_spec.rb +57 -53
- data/spec/mongoid/association/referenced/belongs_to_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/belongs_to_spec.rb +22 -2
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/binding_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/buildable_spec.rb +26 -2
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/eager_spec.rb +31 -3
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_persistence_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_spec.rb +179 -162
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_models.rb +18 -1
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_spec.rb +21 -1
- data/spec/mongoid/association/referenced/has_many/binding_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_many/buildable_spec.rb +21 -1
- data/spec/mongoid/association/referenced/has_many/eager_spec.rb +23 -7
- data/spec/mongoid/association/referenced/has_many/enumerable_spec.rb +113 -33
- data/spec/mongoid/association/referenced/has_many/proxy_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_many/proxy_spec.rb +225 -178
- data/spec/mongoid/association/referenced/has_many_models.rb +18 -1
- data/spec/mongoid/association/referenced/has_many_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_many_spec.rb +21 -1
- data/spec/mongoid/association/referenced/has_one/binding_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_one/buildable_spec.rb +51 -8
- data/spec/mongoid/association/referenced/has_one/eager_spec.rb +17 -2
- data/spec/mongoid/association/referenced/has_one/proxy_spec.rb +26 -27
- data/spec/mongoid/association/referenced/has_one_models.rb +18 -1
- data/spec/mongoid/association/referenced/has_one_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_one_spec.rb +21 -1
- data/spec/mongoid/association/reflections_spec.rb +0 -1
- data/spec/mongoid/association/syncable_spec.rb +31 -32
- data/spec/mongoid/association_spec.rb +0 -1
- data/spec/mongoid/atomic/modifiers_spec.rb +0 -1
- data/spec/mongoid/atomic/paths/embedded/many_spec.rb +0 -1
- data/spec/mongoid/atomic/paths/embedded/one_spec.rb +0 -1
- data/spec/mongoid/atomic/paths/root_spec.rb +0 -1
- data/spec/mongoid/atomic/paths_spec.rb +0 -1
- data/spec/mongoid/atomic_spec.rb +28 -7
- data/spec/mongoid/attributes/dynamic_spec.rb +0 -1
- data/spec/mongoid/attributes/nested_spec.rb +66 -67
- data/spec/mongoid/attributes/projector_spec.rb +5 -2
- data/spec/mongoid/attributes/readonly_spec.rb +22 -23
- data/spec/mongoid/attributes_spec.rb +32 -33
- data/spec/mongoid/cacheable_spec.rb +1 -2
- data/spec/mongoid/changeable_spec.rb +35 -36
- data/spec/mongoid/clients/factory_spec.rb +11 -13
- data/spec/mongoid/clients/options_spec.rb +5 -5
- data/spec/mongoid/clients/sessions_spec.rb +22 -23
- data/spec/mongoid/clients/transactions_spec.rb +49 -27
- data/spec/mongoid/clients_spec.rb +6 -7
- data/spec/mongoid/composable_spec.rb +0 -1
- data/spec/mongoid/config/environment_spec.rb +39 -2
- data/spec/mongoid/config/options_spec.rb +0 -1
- data/spec/mongoid/config_spec.rb +154 -4
- data/spec/mongoid/contextual/aggregable/memory_spec.rb +51 -12
- data/spec/mongoid/contextual/aggregable/mongo_spec.rb +120 -21
- data/spec/mongoid/contextual/aggregable/none_spec.rb +60 -0
- data/spec/mongoid/contextual/atomic_spec.rb +46 -47
- data/spec/mongoid/contextual/geo_near_spec.rb +17 -18
- data/spec/mongoid/contextual/map_reduce_spec.rb +2 -3
- data/spec/mongoid/contextual/memory_spec.rb +849 -89
- data/spec/mongoid/contextual/mongo_spec.rb +1185 -160
- data/spec/mongoid/contextual/none_spec.rb +43 -72
- data/spec/mongoid/copyable_spec.rb +12 -13
- data/spec/mongoid/copyable_spec_models.rb +0 -1
- data/spec/mongoid/criteria/findable_spec.rb +23 -24
- data/spec/mongoid/criteria/inspectable_spec.rb +0 -1
- data/spec/mongoid/criteria/marshalable_spec.rb +0 -1
- data/spec/mongoid/criteria/modifiable_spec.rb +36 -37
- data/spec/mongoid/criteria/options_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/aggregable_spec.rb +1 -2
- data/spec/mongoid/criteria/queryable/expandable_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/array_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/big_decimal_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/bignum_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/boolean_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/date_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/date_time_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/fixnum_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/float_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/hash_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/integer_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/nil_class_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/numeric_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/object_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/range_spec.rb +237 -179
- data/spec/mongoid/criteria/queryable/extensions/regexp_raw_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/regexp_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/set_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/string_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/symbol_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/time_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/time_with_zone_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/key_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/mergeable_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/optional_spec.rb +1 -2
- data/spec/mongoid/criteria/queryable/options_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/pipeline_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/queryable_spec.rb +1 -2
- data/spec/mongoid/criteria/queryable/selectable_logical_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/selectable_shared_examples.rb +0 -1
- data/spec/mongoid/criteria/queryable/selectable_spec.rb +227 -55
- data/spec/mongoid/criteria/queryable/selectable_where_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/selector_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/smash_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/storable_spec.rb +37 -1
- data/spec/mongoid/criteria/scopable_spec.rb +127 -1
- data/spec/mongoid/criteria_projection_spec.rb +3 -4
- data/spec/mongoid/criteria_spec.rb +523 -187
- data/spec/mongoid/document_fields_spec.rb +0 -1
- data/spec/mongoid/document_persistence_context_spec.rb +0 -1
- data/spec/mongoid/document_query_spec.rb +0 -1
- data/spec/mongoid/document_spec.rb +11 -33
- data/spec/mongoid/equality_spec.rb +142 -41
- data/spec/mongoid/errors/ambiguous_relationship_spec.rb +0 -1
- data/spec/mongoid/errors/callback_spec.rb +0 -1
- data/spec/mongoid/errors/delete_restriction_spec.rb +0 -1
- data/spec/mongoid/errors/document_not_destroyed_spec.rb +0 -1
- data/spec/mongoid/errors/document_not_found_spec.rb +49 -1
- data/spec/mongoid/errors/eager_load_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_collection_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_config_file_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_config_option_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_field_option_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_field_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_find_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_includes_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_index_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_options_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_path_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_relation_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_scope_spec.rb +1 -2
- data/spec/mongoid/errors/invalid_set_polymorphic_relation_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_storage_options_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_time_spec.rb +0 -1
- data/spec/mongoid/errors/inverse_not_found_spec.rb +0 -1
- data/spec/mongoid/errors/mixed_client_configuration_spec.rb +0 -1
- data/spec/mongoid/errors/mixed_relations_spec.rb +0 -1
- data/spec/mongoid/errors/mongoid_error_spec.rb +1 -2
- data/spec/mongoid/errors/nested_attributes_metadata_not_found_spec.rb +0 -1
- data/spec/mongoid/errors/no_client_config_spec.rb +0 -1
- data/spec/mongoid/errors/no_client_database_spec.rb +0 -1
- data/spec/mongoid/errors/no_client_hosts_spec.rb +0 -1
- data/spec/mongoid/errors/no_clients_config_spec.rb +0 -1
- data/spec/mongoid/errors/no_environment_spec.rb +0 -1
- data/spec/mongoid/errors/no_map_reduce_output_spec.rb +0 -1
- data/spec/mongoid/errors/no_metadata_spec.rb +0 -1
- data/spec/mongoid/errors/no_parent_spec.rb +0 -1
- data/spec/mongoid/errors/readonly_attribute_spec.rb +0 -1
- data/spec/mongoid/errors/readonly_document_spec.rb +0 -1
- data/spec/mongoid/errors/scope_overwrite_spec.rb +0 -1
- data/spec/mongoid/errors/too_many_nested_attribute_records_spec.rb +0 -1
- data/spec/mongoid/errors/unknown_attribute_spec.rb +2 -3
- data/spec/mongoid/errors/unsaved_document_spec.rb +0 -1
- data/spec/mongoid/errors/unsupported_javascript_spec.rb +0 -1
- data/spec/mongoid/errors/validations_spec.rb +0 -1
- data/spec/mongoid/extensions/array_spec.rb +0 -1
- data/spec/mongoid/extensions/big_decimal_spec.rb +0 -1
- data/spec/mongoid/extensions/binary_spec.rb +0 -1
- data/spec/mongoid/extensions/boolean_spec.rb +0 -1
- data/spec/mongoid/extensions/date_class_mongoize_spec.rb +0 -1
- data/spec/mongoid/extensions/date_spec.rb +0 -1
- data/spec/mongoid/extensions/date_time_spec.rb +0 -1
- data/spec/mongoid/extensions/decimal128_spec.rb +0 -1
- data/spec/mongoid/extensions/false_class_spec.rb +0 -1
- data/spec/mongoid/extensions/float_spec.rb +0 -1
- data/spec/mongoid/extensions/hash_spec.rb +0 -1
- data/spec/mongoid/extensions/integer_spec.rb +0 -1
- data/spec/mongoid/extensions/module_spec.rb +0 -1
- data/spec/mongoid/extensions/nil_class_spec.rb +0 -1
- data/spec/mongoid/extensions/object_id_spec.rb +0 -1
- data/spec/mongoid/extensions/object_spec.rb +0 -1
- data/spec/mongoid/extensions/range_spec.rb +0 -1
- data/spec/mongoid/extensions/regexp_spec.rb +0 -1
- data/spec/mongoid/extensions/set_spec.rb +0 -1
- data/spec/mongoid/extensions/string_spec.rb +2 -3
- data/spec/mongoid/extensions/stringified_symbol_spec.rb +0 -1
- data/spec/mongoid/extensions/symbol_spec.rb +0 -1
- data/spec/mongoid/extensions/time_spec.rb +0 -1
- data/spec/mongoid/extensions/time_with_zone_spec.rb +0 -1
- data/spec/mongoid/extensions/true_class_spec.rb +0 -1
- data/spec/mongoid/extensions_spec.rb +14 -3
- data/spec/mongoid/factory_spec.rb +1 -1
- data/spec/mongoid/fields/foreign_key_spec.rb +0 -1
- data/spec/mongoid/fields/localized_spec.rb +0 -1
- data/spec/mongoid/fields/standard_spec.rb +0 -1
- data/spec/mongoid/fields_spec.rb +326 -31
- data/spec/mongoid/findable_spec.rb +51 -22
- data/spec/mongoid/indexable/specification_spec.rb +0 -1
- data/spec/mongoid/indexable_spec.rb +0 -1
- data/spec/mongoid/inspectable_spec.rb +0 -1
- data/spec/mongoid/interceptable_spec.rb +102 -95
- data/spec/mongoid/loggable_spec.rb +0 -1
- data/spec/mongoid/matcher/extract_attribute_spec.rb +5 -2
- data/spec/mongoid/persistable/creatable_spec.rb +2 -3
- data/spec/mongoid/persistable/deletable_spec.rb +18 -19
- data/spec/mongoid/persistable/destroyable_spec.rb +8 -9
- data/spec/mongoid/persistable/incrementable_spec.rb +8 -9
- data/spec/mongoid/persistable/logical_spec.rb +4 -5
- data/spec/mongoid/persistable/poppable_spec.rb +4 -5
- data/spec/mongoid/persistable/pullable_spec.rb +8 -9
- data/spec/mongoid/persistable/pushable_spec.rb +8 -9
- data/spec/mongoid/persistable/renamable_spec.rb +3 -4
- data/spec/mongoid/persistable/savable_spec.rb +15 -11
- data/spec/mongoid/persistable/settable_spec.rb +9 -10
- data/spec/mongoid/persistable/unsettable_spec.rb +4 -5
- data/spec/mongoid/persistable/updatable_spec.rb +41 -24
- data/spec/mongoid/persistable/upsertable_spec.rb +1 -2
- data/spec/mongoid/persistable_spec.rb +1 -2
- data/spec/mongoid/persistence_context_spec.rb +0 -1
- data/spec/mongoid/positional_spec.rb +0 -1
- data/spec/mongoid/query_cache_middleware_spec.rb +1 -2
- data/spec/mongoid/query_cache_spec.rb +30 -8
- data/spec/mongoid/relations/proxy_spec.rb +6 -7
- data/spec/mongoid/reloadable_spec.rb +209 -23
- data/spec/mongoid/scopable_spec.rb +54 -22
- data/spec/mongoid/selectable_spec.rb +6 -7
- data/spec/mongoid/serializable_spec.rb +9 -10
- data/spec/mongoid/shardable_spec.rb +2 -3
- data/spec/mongoid/stateful_spec.rb +1 -2
- data/spec/mongoid/tasks/database_rake_spec.rb +0 -1
- data/spec/mongoid/tasks/database_spec.rb +0 -1
- data/spec/mongoid/threaded_spec.rb +2 -3
- data/spec/mongoid/timestamps/created/short_spec.rb +1 -2
- data/spec/mongoid/timestamps/created_spec.rb +1 -2
- data/spec/mongoid/timestamps/timeless_spec.rb +2 -3
- data/spec/mongoid/timestamps/updated/short_spec.rb +3 -4
- data/spec/mongoid/timestamps/updated_spec.rb +3 -4
- data/spec/mongoid/timestamps_spec.rb +6 -7
- data/spec/mongoid/touchable_spec.rb +15 -20
- data/spec/mongoid/touchable_spec_models.rb +0 -1
- data/spec/mongoid/traversable_spec.rb +65 -2
- data/spec/mongoid/validatable/associated_spec.rb +0 -1
- data/spec/mongoid/validatable/format_spec.rb +0 -1
- data/spec/mongoid/validatable/length_spec.rb +0 -1
- data/spec/mongoid/validatable/numericality_spec.rb +0 -1
- data/spec/mongoid/validatable/presence_spec.rb +26 -23
- data/spec/mongoid/validatable/uniqueness_spec.rb +67 -68
- data/spec/mongoid/validatable_spec.rb +2 -3
- data/spec/mongoid_spec.rb +0 -1
- data/spec/rails/controller_extension/controller_runtime_spec.rb +0 -1
- data/spec/rails/mongoid_spec.rb +0 -1
- data/spec/shared/lib/mrss/constraints.rb +10 -17
- data/spec/shared/lib/mrss/docker_runner.rb +23 -3
- data/spec/shared/lib/mrss/eg_config_utils.rb +51 -0
- data/spec/shared/lib/mrss/event_subscriber.rb +15 -5
- data/spec/shared/lib/mrss/lite_constraints.rb +40 -1
- data/spec/shared/share/Dockerfile.erb +56 -54
- data/spec/shared/shlib/config.sh +27 -0
- data/spec/shared/shlib/distro.sh +2 -1
- data/spec/shared/shlib/server.sh +46 -21
- data/spec/shared/shlib/set_env.sh +43 -5
- data/spec/spec_helper.rb +12 -22
- data/spec/support/authorization.rb +0 -1
- data/spec/support/constraints.rb +0 -1
- data/spec/support/expectations.rb +0 -1
- data/spec/support/macros.rb +31 -1
- data/spec/support/models/account.rb +1 -2
- data/spec/support/models/acolyte.rb +0 -1
- data/spec/support/models/actor.rb +0 -1
- data/spec/support/models/actress.rb +0 -1
- data/spec/support/models/address.rb +0 -1
- data/spec/support/models/address_component.rb +0 -1
- data/spec/support/models/address_number.rb +0 -1
- data/spec/support/models/agency.rb +0 -1
- data/spec/support/models/agent.rb +0 -1
- data/spec/support/models/album.rb +0 -1
- data/spec/support/models/alert.rb +0 -1
- data/spec/support/models/animal.rb +0 -1
- data/spec/support/models/answer.rb +0 -1
- data/spec/support/models/appointment.rb +0 -1
- data/spec/support/models/armrest.rb +0 -1
- data/spec/support/models/array_field.rb +0 -1
- data/spec/support/models/article.rb +0 -1
- data/spec/support/models/artist.rb +2 -1
- data/spec/support/models/artwork.rb +0 -1
- data/spec/support/models/audio.rb +0 -1
- data/spec/support/models/augmentation.rb +0 -1
- data/spec/support/models/author.rb +0 -1
- data/spec/support/models/baby.rb +0 -1
- data/spec/support/models/band.rb +4 -1
- data/spec/support/models/bar.rb +0 -1
- data/spec/support/models/basic.rb +0 -1
- data/spec/support/models/bed.rb +0 -1
- data/spec/support/models/big_palette.rb +0 -1
- data/spec/support/models/birthday.rb +0 -1
- data/spec/support/models/bolt.rb +0 -1
- data/spec/support/models/bomb.rb +0 -1
- data/spec/support/models/book.rb +0 -1
- data/spec/support/models/breed.rb +0 -1
- data/spec/support/models/browser.rb +0 -1
- data/spec/support/models/building.rb +0 -1
- data/spec/support/models/building_address.rb +0 -1
- data/spec/support/models/bus.rb +0 -1
- data/spec/support/models/business.rb +0 -1
- data/spec/support/models/callback_test.rb +0 -1
- data/spec/support/models/canvas.rb +0 -1
- data/spec/support/models/car.rb +0 -1
- data/spec/support/models/cat.rb +0 -1
- data/spec/support/models/category.rb +0 -1
- data/spec/support/models/child.rb +0 -1
- data/spec/support/models/child_doc.rb +3 -4
- data/spec/support/models/church.rb +0 -1
- data/spec/support/models/circle.rb +0 -1
- data/spec/support/models/circuit.rb +0 -1
- data/spec/support/models/circus.rb +0 -1
- data/spec/support/models/code.rb +2 -1
- data/spec/support/models/coding/pull_request.rb +0 -1
- data/spec/support/models/coding.rb +0 -1
- data/spec/support/models/comment.rb +0 -1
- data/spec/support/models/company.rb +0 -1
- data/spec/support/models/consumption_period.rb +0 -1
- data/spec/support/models/contextable_item.rb +0 -1
- data/spec/support/models/contractor.rb +0 -1
- data/spec/support/models/cookie.rb +0 -1
- data/spec/support/models/country_code.rb +2 -1
- data/spec/support/models/courier_job.rb +0 -1
- data/spec/support/models/crate.rb +0 -1
- data/spec/support/models/customer.rb +0 -1
- data/spec/support/models/customer_address.rb +0 -1
- data/spec/support/models/deed.rb +0 -1
- data/spec/support/models/definition.rb +0 -1
- data/spec/support/models/delegating_patient.rb +0 -1
- data/spec/support/models/description.rb +0 -1
- data/spec/support/models/dictionary.rb +0 -1
- data/spec/support/models/division.rb +0 -1
- data/spec/support/models/doctor.rb +0 -1
- data/spec/support/models/dog.rb +0 -1
- data/spec/support/models/dokument.rb +0 -1
- data/spec/support/models/draft.rb +0 -1
- data/spec/support/models/dragon.rb +0 -1
- data/spec/support/models/driver.rb +0 -1
- data/spec/support/models/drug.rb +0 -1
- data/spec/support/models/dungeon.rb +0 -1
- data/spec/support/models/edit.rb +0 -1
- data/spec/support/models/email.rb +0 -1
- data/spec/support/models/employer.rb +0 -1
- data/spec/support/models/entry.rb +0 -1
- data/spec/support/models/eraser.rb +0 -1
- data/spec/support/models/even.rb +0 -1
- data/spec/support/models/event.rb +0 -1
- data/spec/support/models/exhibition.rb +0 -1
- data/spec/support/models/exhibitor.rb +0 -1
- data/spec/support/models/explosion.rb +0 -1
- data/spec/support/models/eye.rb +0 -1
- data/spec/support/models/eye_bowl.rb +0 -1
- data/spec/support/models/face.rb +0 -1
- data/spec/support/models/favorite.rb +0 -1
- data/spec/support/models/filesystem.rb +0 -1
- data/spec/support/models/fire_hydrant.rb +0 -1
- data/spec/support/models/firefox.rb +0 -1
- data/spec/support/models/fish.rb +0 -1
- data/spec/support/models/folder.rb +0 -1
- data/spec/support/models/folder_item.rb +0 -1
- data/spec/support/models/fruits.rb +0 -1
- data/spec/support/models/game.rb +0 -1
- data/spec/support/models/ghost.rb +0 -1
- data/spec/support/models/guitar.rb +0 -1
- data/spec/support/models/hole.rb +0 -1
- data/spec/support/models/home.rb +0 -1
- data/spec/support/models/house.rb +0 -1
- data/spec/support/models/html_writer.rb +0 -1
- data/spec/support/models/id_key.rb +0 -1
- data/spec/support/models/idnodef.rb +0 -1
- data/spec/support/models/image.rb +0 -1
- data/spec/support/models/implant.rb +0 -1
- data/spec/support/models/instrument.rb +0 -1
- data/spec/support/models/item.rb +0 -1
- data/spec/support/models/jar.rb +0 -1
- data/spec/support/models/kaleidoscope.rb +0 -1
- data/spec/support/models/kangaroo.rb +0 -1
- data/spec/support/models/label.rb +2 -2
- data/spec/support/models/language.rb +0 -1
- data/spec/support/models/lat_lng.rb +0 -1
- data/spec/support/models/league.rb +0 -1
- data/spec/support/models/learner.rb +0 -1
- data/spec/support/models/line_item.rb +0 -1
- data/spec/support/models/location.rb +0 -1
- data/spec/support/models/login.rb +0 -1
- data/spec/support/models/manufacturer.rb +0 -1
- data/spec/support/models/meat.rb +0 -1
- data/spec/support/models/membership.rb +1 -1
- data/spec/support/models/message.rb +0 -1
- data/spec/support/models/minim.rb +0 -1
- data/spec/support/models/mixed_drink.rb +0 -1
- data/spec/support/models/mop.rb +0 -1
- data/spec/support/models/movie.rb +0 -1
- data/spec/support/models/my_hash.rb +0 -1
- data/spec/support/models/name.rb +0 -1
- data/spec/support/models/name_only.rb +0 -1
- data/spec/support/models/node.rb +0 -1
- data/spec/support/models/note.rb +0 -1
- data/spec/support/models/nut.rb +0 -1
- data/spec/support/models/odd.rb +0 -1
- data/spec/support/models/order.rb +2 -1
- data/spec/support/models/ordered_post.rb +1 -2
- data/spec/support/models/ordered_preference.rb +0 -1
- data/spec/support/models/oscar.rb +0 -1
- data/spec/support/models/other_owner_object.rb +0 -1
- data/spec/support/models/override.rb +0 -1
- data/spec/support/models/ownable.rb +0 -1
- data/spec/support/models/owner.rb +0 -1
- data/spec/support/models/pack.rb +0 -1
- data/spec/support/models/page.rb +0 -1
- data/spec/support/models/page_question.rb +0 -1
- data/spec/support/models/palette.rb +0 -1
- data/spec/support/models/parent.rb +0 -1
- data/spec/support/models/parent_doc.rb +0 -1
- data/spec/support/models/passport.rb +5 -1
- data/spec/support/models/patient.rb +0 -1
- data/spec/support/models/pdf_writer.rb +0 -1
- data/spec/support/models/pencil.rb +0 -1
- data/spec/support/models/person.rb +1 -1
- data/spec/support/models/pet.rb +0 -1
- data/spec/support/models/pet_owner.rb +0 -1
- data/spec/support/models/phone.rb +2 -2
- data/spec/support/models/piano.rb +0 -1
- data/spec/support/models/pizza.rb +0 -1
- data/spec/support/models/player.rb +0 -1
- data/spec/support/models/post.rb +0 -1
- data/spec/support/models/post_genre.rb +0 -1
- data/spec/support/models/powerup.rb +0 -1
- data/spec/support/models/preference.rb +0 -1
- data/spec/support/models/princess.rb +0 -1
- data/spec/support/models/product.rb +0 -1
- data/spec/support/models/profile.rb +0 -1
- data/spec/support/models/pronunciation.rb +0 -1
- data/spec/support/models/pub.rb +0 -1
- data/spec/support/models/publication/encyclopedia.rb +0 -1
- data/spec/support/models/publication/review.rb +0 -1
- data/spec/support/models/publication.rb +0 -1
- data/spec/support/models/purchase.rb +0 -1
- data/spec/support/models/purchased_item.rb +10 -0
- data/spec/support/models/question.rb +0 -1
- data/spec/support/models/quiz.rb +0 -1
- data/spec/support/models/rating.rb +0 -1
- data/spec/support/models/record.rb +0 -1
- data/spec/support/models/registry.rb +0 -1
- data/spec/support/models/role.rb +0 -1
- data/spec/support/models/root_category.rb +0 -1
- data/spec/support/models/sandwich.rb +0 -1
- data/spec/support/models/scheduler.rb +0 -1
- data/spec/support/models/scribe.rb +0 -1
- data/spec/support/models/sealer.rb +0 -1
- data/spec/support/models/seat.rb +0 -1
- data/spec/support/models/seo.rb +0 -1
- data/spec/support/models/series.rb +0 -1
- data/spec/support/models/server.rb +0 -1
- data/spec/support/models/service.rb +0 -1
- data/spec/support/models/shape.rb +0 -1
- data/spec/support/models/shelf.rb +0 -1
- data/spec/support/models/shipment_address.rb +0 -1
- data/spec/support/models/shipping_container.rb +0 -1
- data/spec/support/models/shipping_pack.rb +0 -1
- data/spec/support/models/shirt.rb +0 -1
- data/spec/support/models/shop.rb +0 -1
- data/spec/support/models/short_agent.rb +0 -1
- data/spec/support/models/short_quiz.rb +0 -1
- data/spec/support/models/simple.rb +0 -1
- data/spec/support/models/slave.rb +0 -1
- data/spec/support/models/song.rb +0 -1
- data/spec/support/models/sound.rb +0 -1
- data/spec/support/models/spacer.rb +0 -1
- data/spec/support/models/square.rb +0 -1
- data/spec/support/models/staff.rb +0 -1
- data/spec/support/models/store_as_dup_test1.rb +0 -1
- data/spec/support/models/store_as_dup_test2.rb +0 -1
- data/spec/support/models/store_as_dup_test3.rb +0 -1
- data/spec/support/models/store_as_dup_test4.rb +0 -1
- data/spec/support/models/strategy.rb +0 -1
- data/spec/support/models/sub_item.rb +0 -1
- data/spec/support/models/subscription.rb +0 -1
- data/spec/support/models/survey.rb +0 -1
- data/spec/support/models/symptom.rb +0 -1
- data/spec/support/models/tag.rb +0 -1
- data/spec/support/models/target.rb +0 -1
- data/spec/support/models/template.rb +0 -1
- data/spec/support/models/thing.rb +0 -1
- data/spec/support/models/threadlocker.rb +0 -1
- data/spec/support/models/title.rb +0 -1
- data/spec/support/models/tool.rb +0 -1
- data/spec/support/models/topping.rb +0 -1
- data/spec/support/models/toy.rb +0 -1
- data/spec/support/models/track.rb +0 -1
- data/spec/support/models/translation.rb +0 -1
- data/spec/support/models/tree.rb +0 -1
- data/spec/support/models/truck.rb +0 -1
- data/spec/support/models/updatable.rb +0 -1
- data/spec/support/models/user.rb +0 -1
- data/spec/support/models/user_account.rb +0 -1
- data/spec/support/models/validation_callback.rb +0 -1
- data/spec/support/models/vehicle.rb +0 -1
- data/spec/support/models/version.rb +0 -1
- data/spec/support/models/vertex.rb +0 -1
- data/spec/support/models/vet_visit.rb +0 -1
- data/spec/support/models/video.rb +0 -1
- data/spec/support/models/video_game.rb +0 -1
- data/spec/support/models/washer.rb +0 -1
- data/spec/support/models/weapon.rb +0 -1
- data/spec/support/models/wiki_page.rb +0 -1
- data/spec/support/models/word.rb +0 -1
- data/spec/support/models/word_origin.rb +0 -1
- data/spec/support/models/writer.rb +0 -1
- data/spec/support/schema_maps/schema_map_aws.json +17 -0
- data/spec/support/schema_maps/schema_map_aws_key_alt_names.json +12 -0
- data/spec/support/schema_maps/schema_map_azure.json +17 -0
- data/spec/support/schema_maps/schema_map_azure_key_alt_names.json +12 -0
- data/spec/support/schema_maps/schema_map_gcp.json +17 -0
- data/spec/support/schema_maps/schema_map_gcp_key_alt_names.json +12 -0
- data/spec/support/schema_maps/schema_map_kmip.json +17 -0
- data/spec/support/schema_maps/schema_map_kmip_key_alt_names.json +12 -0
- data/spec/support/schema_maps/schema_map_local.json +18 -0
- data/spec/support/schema_maps/schema_map_local_key_alt_names.json +12 -0
- data/spec/support/shared/time.rb +0 -1
- data/spec/support/spec_config.rb +7 -1
- data.tar.gz.sig +0 -0
- metadata +51 -11
- metadata.gz.sig +0 -0
- data/lib/support/ruby_version.rb +0 -29
data/lib/mongoid/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|
|
|
@@ -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
|
data/lib/mongoid/threaded.rb
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
require "mongoid/threaded/lifecycle"
|
|
5
4
|
|
|
@@ -12,18 +11,12 @@ module Mongoid
|
|
|
12
11
|
DATABASE_OVERRIDE_KEY = "[mongoid]:db-override"
|
|
13
12
|
|
|
14
13
|
# Constant for the key to store clients.
|
|
15
|
-
#
|
|
16
|
-
# @since 5.0.0
|
|
17
14
|
CLIENTS_KEY = "[mongoid]:clients"
|
|
18
15
|
|
|
19
16
|
# The key to override the client.
|
|
20
|
-
#
|
|
21
|
-
# @since 5.0.0
|
|
22
17
|
CLIENT_OVERRIDE_KEY = "[mongoid]:client-override"
|
|
23
18
|
|
|
24
19
|
# The key for the current thread's scope stack.
|
|
25
|
-
#
|
|
26
|
-
# @since 2.0.0
|
|
27
20
|
CURRENT_SCOPE_KEY = "[mongoid]:current-scope"
|
|
28
21
|
|
|
29
22
|
AUTOSAVES_KEY = "[mongoid]:autosaves"
|
|
@@ -43,8 +36,6 @@ module Mongoid
|
|
|
43
36
|
# @param [ String ] name The name of the stack
|
|
44
37
|
#
|
|
45
38
|
# @return [ true ] True.
|
|
46
|
-
#
|
|
47
|
-
# @since 2.4.0
|
|
48
39
|
def begin_execution(name)
|
|
49
40
|
stack(name).push(true)
|
|
50
41
|
end
|
|
@@ -55,8 +46,6 @@ module Mongoid
|
|
|
55
46
|
# Threaded.database_override
|
|
56
47
|
#
|
|
57
48
|
# @return [ String, Symbol ] The override.
|
|
58
|
-
#
|
|
59
|
-
# @since 3.0.0
|
|
60
49
|
def database_override
|
|
61
50
|
Thread.current[DATABASE_OVERRIDE_KEY]
|
|
62
51
|
end
|
|
@@ -69,8 +58,6 @@ module Mongoid
|
|
|
69
58
|
# @param [ String, Symbol ] name The global override name.
|
|
70
59
|
#
|
|
71
60
|
# @return [ String, Symbol ] The override.
|
|
72
|
-
#
|
|
73
|
-
# @since 3.0.0
|
|
74
61
|
def database_override=(name)
|
|
75
62
|
Thread.current[DATABASE_OVERRIDE_KEY] = name
|
|
76
63
|
end
|
|
@@ -83,8 +70,6 @@ module Mongoid
|
|
|
83
70
|
# @param [ Symbol ] name The name of the stack
|
|
84
71
|
#
|
|
85
72
|
# @return [ true ] If the stack is being executed.
|
|
86
|
-
#
|
|
87
|
-
# @since 2.4.0
|
|
88
73
|
def executing?(name)
|
|
89
74
|
!stack(name).empty?
|
|
90
75
|
end
|
|
@@ -97,8 +82,6 @@ module Mongoid
|
|
|
97
82
|
# @param [ Symbol ] name The name of the stack
|
|
98
83
|
#
|
|
99
84
|
# @return [ true ] True.
|
|
100
|
-
#
|
|
101
|
-
# @since 2.4.0
|
|
102
85
|
def exit_execution(name)
|
|
103
86
|
stack(name).pop
|
|
104
87
|
end
|
|
@@ -111,8 +94,6 @@ module Mongoid
|
|
|
111
94
|
# @param [ Symbol ] name The name of the stack
|
|
112
95
|
#
|
|
113
96
|
# @return [ Array ] The stack.
|
|
114
|
-
#
|
|
115
|
-
# @since 2.4.0
|
|
116
97
|
def stack(name)
|
|
117
98
|
Thread.current[STACK_KEYS[name]] ||= []
|
|
118
99
|
end
|
|
@@ -123,8 +104,6 @@ module Mongoid
|
|
|
123
104
|
# Threaded.begin_autosave(doc)
|
|
124
105
|
#
|
|
125
106
|
# @param [ Document ] document The document to autosave.
|
|
126
|
-
#
|
|
127
|
-
# @since 3.0.0
|
|
128
107
|
def begin_autosave(document)
|
|
129
108
|
autosaves_for(document.class).push(document._id)
|
|
130
109
|
end
|
|
@@ -135,8 +114,6 @@ module Mongoid
|
|
|
135
114
|
# Threaded.begin_validate(doc)
|
|
136
115
|
#
|
|
137
116
|
# @param [ Document ] document The document to validate.
|
|
138
|
-
#
|
|
139
|
-
# @since 2.1.9
|
|
140
117
|
def begin_validate(document)
|
|
141
118
|
validations_for(document.class).push(document._id)
|
|
142
119
|
end
|
|
@@ -147,8 +124,6 @@ module Mongoid
|
|
|
147
124
|
# Threaded.exit_autosave(doc)
|
|
148
125
|
#
|
|
149
126
|
# @param [ Document ] document The document to autosave.
|
|
150
|
-
#
|
|
151
|
-
# @since 3.0.0
|
|
152
127
|
def exit_autosave(document)
|
|
153
128
|
autosaves_for(document.class).delete_one(document._id)
|
|
154
129
|
end
|
|
@@ -159,8 +134,6 @@ module Mongoid
|
|
|
159
134
|
# Threaded.exit_validate(doc)
|
|
160
135
|
#
|
|
161
136
|
# @param [ Document ] document The document to validate.
|
|
162
|
-
#
|
|
163
|
-
# @since 2.1.9
|
|
164
137
|
def exit_validate(document)
|
|
165
138
|
validations_for(document.class).delete_one(document._id)
|
|
166
139
|
end
|
|
@@ -195,8 +168,6 @@ module Mongoid
|
|
|
195
168
|
# Threaded.client_override
|
|
196
169
|
#
|
|
197
170
|
# @return [ String, Symbol ] The override.
|
|
198
|
-
#
|
|
199
|
-
# @since 5.0.0
|
|
200
171
|
def client_override
|
|
201
172
|
Thread.current[CLIENT_OVERRIDE_KEY]
|
|
202
173
|
end
|
|
@@ -209,8 +180,6 @@ module Mongoid
|
|
|
209
180
|
# @param [ String, Symbol ] name The global override name.
|
|
210
181
|
#
|
|
211
182
|
# @return [ String, Symbol ] The override.
|
|
212
|
-
#
|
|
213
|
-
# @since 3.0.0
|
|
214
183
|
def client_override=(name)
|
|
215
184
|
Thread.current[CLIENT_OVERRIDE_KEY] = name
|
|
216
185
|
end
|
|
@@ -224,8 +193,6 @@ module Mongoid
|
|
|
224
193
|
# @param [ Klass ] klass The class type of the scope.
|
|
225
194
|
#
|
|
226
195
|
# @return [ Criteria ] The scope.
|
|
227
|
-
#
|
|
228
|
-
# @since 5.0.0
|
|
229
196
|
def current_scope(klass = nil)
|
|
230
197
|
if klass && Thread.current[CURRENT_SCOPE_KEY].respond_to?(:keys)
|
|
231
198
|
Thread.current[CURRENT_SCOPE_KEY][
|
|
@@ -244,8 +211,6 @@ module Mongoid
|
|
|
244
211
|
# @param [ Criteria ] scope The current scope.
|
|
245
212
|
#
|
|
246
213
|
# @return [ Criteria ] The scope.
|
|
247
|
-
#
|
|
248
|
-
# @since 5.0.0
|
|
249
214
|
def current_scope=(scope)
|
|
250
215
|
Thread.current[CURRENT_SCOPE_KEY] = scope
|
|
251
216
|
end
|
|
@@ -259,8 +224,6 @@ module Mongoid
|
|
|
259
224
|
# @param [ Class ] klass The current model class.
|
|
260
225
|
#
|
|
261
226
|
# @return [ Criteria ] The scope.
|
|
262
|
-
#
|
|
263
|
-
# @since 5.0.1
|
|
264
227
|
def set_current_scope(scope, klass)
|
|
265
228
|
if scope.nil?
|
|
266
229
|
if Thread.current[CURRENT_SCOPE_KEY]
|
|
@@ -293,8 +256,6 @@ module Mongoid
|
|
|
293
256
|
# @param [ Document ] document The document to check.
|
|
294
257
|
#
|
|
295
258
|
# @return [ true, false ] If the document is autosaved.
|
|
296
|
-
#
|
|
297
|
-
# @since 2.1.9
|
|
298
259
|
def autosaved?(document)
|
|
299
260
|
autosaves_for(document.class).include?(document._id)
|
|
300
261
|
end
|
|
@@ -307,8 +268,6 @@ module Mongoid
|
|
|
307
268
|
# @param [ Document ] document The document to check.
|
|
308
269
|
#
|
|
309
270
|
# @return [ true, false ] If the document is validated.
|
|
310
|
-
#
|
|
311
|
-
# @since 2.1.9
|
|
312
271
|
def validated?(document)
|
|
313
272
|
validations_for(document.class).include?(document._id)
|
|
314
273
|
end
|
|
@@ -319,8 +278,6 @@ module Mongoid
|
|
|
319
278
|
# Threaded.autosaves
|
|
320
279
|
#
|
|
321
280
|
# @return [ Hash ] The current autosaves.
|
|
322
|
-
#
|
|
323
|
-
# @since 3.0.0
|
|
324
281
|
def autosaves
|
|
325
282
|
Thread.current[AUTOSAVES_KEY] ||= {}
|
|
326
283
|
end
|
|
@@ -331,8 +288,6 @@ module Mongoid
|
|
|
331
288
|
# Threaded.validations
|
|
332
289
|
#
|
|
333
290
|
# @return [ Hash ] The current validations.
|
|
334
|
-
#
|
|
335
|
-
# @since 2.1.9
|
|
336
291
|
def validations
|
|
337
292
|
Thread.current[VALIDATIONS_KEY] ||= {}
|
|
338
293
|
end
|
|
@@ -345,8 +300,6 @@ module Mongoid
|
|
|
345
300
|
# @param [ Class ] klass The class to check.
|
|
346
301
|
#
|
|
347
302
|
# @return [ Array ] The current autosaves.
|
|
348
|
-
#
|
|
349
|
-
# @since 3.0.0
|
|
350
303
|
def autosaves_for(klass)
|
|
351
304
|
autosaves[klass] ||= []
|
|
352
305
|
end
|
|
@@ -358,8 +311,6 @@ module Mongoid
|
|
|
358
311
|
# @param [ Class ] klass The class to check.
|
|
359
312
|
#
|
|
360
313
|
# @return [ Array ] The current validations.
|
|
361
|
-
#
|
|
362
|
-
# @since 2.1.9
|
|
363
314
|
def validations_for(klass)
|
|
364
315
|
validations[klass] ||= []
|
|
365
316
|
end
|
|
@@ -370,8 +321,6 @@ module Mongoid
|
|
|
370
321
|
# Threaded.set_session(session)
|
|
371
322
|
#
|
|
372
323
|
# @param [ Mongo::Session ] session The session to save.
|
|
373
|
-
#
|
|
374
|
-
# @since 6.4.0
|
|
375
324
|
def set_session(session)
|
|
376
325
|
Thread.current[:session] = session
|
|
377
326
|
end
|
|
@@ -382,8 +331,6 @@ module Mongoid
|
|
|
382
331
|
# Threaded.get_session
|
|
383
332
|
#
|
|
384
333
|
# @return [ Mongo::Session, nil ] The session cached on this thread or nil.
|
|
385
|
-
#
|
|
386
|
-
# @since 6.4.0
|
|
387
334
|
def get_session
|
|
388
335
|
Thread.current[:session]
|
|
389
336
|
end
|
|
@@ -394,8 +341,6 @@ module Mongoid
|
|
|
394
341
|
# Threaded.clear_session
|
|
395
342
|
#
|
|
396
343
|
# @return [ nil ]
|
|
397
|
-
#
|
|
398
|
-
# @since 6.4.0
|
|
399
344
|
def clear_session
|
|
400
345
|
session = get_session
|
|
401
346
|
session.end_session if session
|