mongoid 7.3.2 → 7.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +17 -17
- data/README.md +2 -2
- data/lib/config/locales/en.yml +30 -16
- data/lib/mongoid/association/accessors.rb +0 -27
- data/lib/mongoid/association/bindable.rb +0 -21
- data/lib/mongoid/association/builders.rb +0 -9
- data/lib/mongoid/association/constrainable.rb +0 -3
- data/lib/mongoid/association/depending.rb +0 -7
- data/lib/mongoid/association/eager_loadable.rb +0 -3
- data/lib/mongoid/association/embedded/batchable.rb +11 -39
- data/lib/mongoid/association/embedded/cyclic.rb +2 -11
- data/lib/mongoid/association/embedded/embedded_in/binding.rb +0 -7
- data/lib/mongoid/association/embedded/embedded_in/buildable.rb +0 -3
- data/lib/mongoid/association/embedded/embedded_in/proxy.rb +0 -13
- data/lib/mongoid/association/embedded/embedded_in.rb +0 -23
- data/lib/mongoid/association/embedded/embeds_many/binding.rb +0 -7
- data/lib/mongoid/association/embedded/embeds_many/buildable.rb +0 -3
- data/lib/mongoid/association/embedded/embeds_many/proxy.rb +31 -44
- data/lib/mongoid/association/embedded/embeds_many.rb +0 -31
- data/lib/mongoid/association/embedded/embeds_one/binding.rb +0 -7
- data/lib/mongoid/association/embedded/embeds_one/buildable.rb +0 -3
- data/lib/mongoid/association/embedded/embeds_one/proxy.rb +26 -14
- data/lib/mongoid/association/embedded/embeds_one.rb +0 -27
- data/lib/mongoid/association/embedded.rb +0 -1
- data/lib/mongoid/association/macros.rb +6 -5
- data/lib/mongoid/association/many.rb +0 -17
- data/lib/mongoid/association/marshalable.rb +0 -5
- data/lib/mongoid/association/nested/many.rb +0 -11
- data/lib/mongoid/association/nested/nested_buildable.rb +0 -9
- data/lib/mongoid/association/nested/one.rb +1 -16
- data/lib/mongoid/association/nested.rb +0 -3
- data/lib/mongoid/association/one.rb +1 -10
- data/lib/mongoid/association/options.rb +0 -33
- data/lib/mongoid/association/proxy.rb +0 -21
- data/lib/mongoid/association/referenced/auto_save.rb +0 -9
- data/lib/mongoid/association/referenced/belongs_to/binding.rb +0 -7
- data/lib/mongoid/association/referenced/belongs_to/buildable.rb +4 -5
- data/lib/mongoid/association/referenced/belongs_to/eager.rb +0 -1
- data/lib/mongoid/association/referenced/belongs_to/proxy.rb +0 -13
- data/lib/mongoid/association/referenced/belongs_to.rb +9 -34
- data/lib/mongoid/association/referenced/counter_cache.rb +2 -15
- data/lib/mongoid/association/referenced/eager.rb +3 -24
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/binding.rb +0 -5
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/buildable.rb +0 -3
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/eager.rb +0 -1
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/proxy.rb +12 -39
- data/lib/mongoid/association/referenced/has_and_belongs_to_many.rb +11 -38
- data/lib/mongoid/association/referenced/has_many/binding.rb +0 -5
- data/lib/mongoid/association/referenced/has_many/buildable.rb +0 -3
- data/lib/mongoid/association/referenced/has_many/eager.rb +0 -1
- data/lib/mongoid/association/referenced/has_many/enumerable.rb +11 -63
- data/lib/mongoid/association/referenced/has_many/proxy.rb +18 -61
- data/lib/mongoid/association/referenced/has_many.rb +12 -39
- data/lib/mongoid/association/referenced/has_one/binding.rb +0 -7
- data/lib/mongoid/association/referenced/has_one/buildable.rb +3 -4
- data/lib/mongoid/association/referenced/has_one/eager.rb +0 -1
- data/lib/mongoid/association/referenced/has_one/nested_builder.rb +0 -15
- data/lib/mongoid/association/referenced/has_one/proxy.rb +0 -9
- data/lib/mongoid/association/referenced/has_one.rb +9 -32
- data/lib/mongoid/association/referenced/syncable.rb +0 -17
- data/lib/mongoid/association/referenced.rb +0 -1
- data/lib/mongoid/association/reflections.rb +0 -1
- data/lib/mongoid/association/relatable.rb +2 -61
- data/lib/mongoid/association.rb +0 -17
- data/lib/mongoid/atomic/modifiers.rb +4 -51
- data/lib/mongoid/atomic/paths/embedded/many.rb +0 -5
- data/lib/mongoid/atomic/paths/embedded/one.rb +0 -5
- data/lib/mongoid/atomic/paths/embedded.rb +0 -3
- data/lib/mongoid/atomic/paths/root.rb +0 -5
- data/lib/mongoid/atomic/paths.rb +0 -1
- data/lib/mongoid/atomic.rb +27 -44
- data/lib/mongoid/attributes/dynamic.rb +0 -17
- data/lib/mongoid/attributes/nested.rb +0 -5
- data/lib/mongoid/attributes/processing.rb +1 -18
- data/lib/mongoid/attributes/projector.rb +0 -1
- data/lib/mongoid/attributes/readonly.rb +0 -5
- data/lib/mongoid/attributes.rb +0 -33
- data/lib/mongoid/cacheable.rb +1 -6
- data/lib/mongoid/changeable.rb +3 -59
- data/lib/mongoid/clients/factory.rb +0 -7
- data/lib/mongoid/clients/options.rb +0 -5
- data/lib/mongoid/clients/sessions.rb +0 -7
- data/lib/mongoid/clients/storage_options.rb +0 -7
- data/lib/mongoid/clients/validators/storage.rb +0 -9
- data/lib/mongoid/clients/validators.rb +0 -1
- data/lib/mongoid/clients.rb +0 -9
- data/lib/mongoid/composable.rb +0 -7
- data/lib/mongoid/config/environment.rb +13 -6
- data/lib/mongoid/config/options.rb +0 -11
- data/lib/mongoid/config/validators/client.rb +0 -17
- data/lib/mongoid/config/validators/option.rb +0 -3
- data/lib/mongoid/config/validators.rb +0 -1
- data/lib/mongoid/config.rb +37 -29
- data/lib/mongoid/contextual/aggregable/memory.rb +14 -11
- data/lib/mongoid/contextual/aggregable/mongo.rb +15 -20
- data/lib/mongoid/contextual/aggregable/none.rb +65 -0
- data/lib/mongoid/contextual/aggregable.rb +17 -0
- data/lib/mongoid/contextual/atomic.rb +7 -27
- data/lib/mongoid/contextual/command.rb +0 -5
- data/lib/mongoid/contextual/geo_near.rb +1 -34
- data/lib/mongoid/contextual/map_reduce.rb +0 -31
- data/lib/mongoid/contextual/memory.rb +4 -59
- data/lib/mongoid/contextual/mongo.rb +132 -78
- data/lib/mongoid/contextual/none.rb +42 -28
- data/lib/mongoid/contextual/queryable.rb +0 -3
- data/lib/mongoid/contextual.rb +0 -5
- data/lib/mongoid/copyable.rb +0 -5
- data/lib/mongoid/criteria/findable.rb +0 -13
- data/lib/mongoid/criteria/includable.rb +0 -9
- data/lib/mongoid/criteria/inspectable.rb +0 -3
- data/lib/mongoid/criteria/marshalable.rb +0 -5
- data/lib/mongoid/criteria/modifiable.rb +0 -19
- data/lib/mongoid/criteria/options.rb +0 -3
- data/lib/mongoid/criteria/permission.rb +0 -1
- data/lib/mongoid/criteria/queryable/aggregable.rb +0 -13
- data/lib/mongoid/criteria/queryable/expandable.rb +0 -1
- data/lib/mongoid/criteria/queryable/extensions/array.rb +1 -26
- data/lib/mongoid/criteria/queryable/extensions/big_decimal.rb +0 -3
- data/lib/mongoid/criteria/queryable/extensions/boolean.rb +0 -3
- data/lib/mongoid/criteria/queryable/extensions/date.rb +0 -7
- data/lib/mongoid/criteria/queryable/extensions/date_time.rb +0 -5
- data/lib/mongoid/criteria/queryable/extensions/hash.rb +0 -25
- data/lib/mongoid/criteria/queryable/extensions/nil_class.rb +0 -13
- data/lib/mongoid/criteria/queryable/extensions/numeric.rb +0 -11
- data/lib/mongoid/criteria/queryable/extensions/object.rb +1 -28
- data/lib/mongoid/criteria/queryable/extensions/range.rb +38 -16
- data/lib/mongoid/criteria/queryable/extensions/regexp.rb +0 -9
- data/lib/mongoid/criteria/queryable/extensions/set.rb +0 -3
- data/lib/mongoid/criteria/queryable/extensions/string.rb +0 -17
- data/lib/mongoid/criteria/queryable/extensions/symbol.rb +0 -9
- data/lib/mongoid/criteria/queryable/extensions/time.rb +0 -7
- data/lib/mongoid/criteria/queryable/extensions/time_with_zone.rb +0 -7
- data/lib/mongoid/criteria/queryable/extensions.rb +0 -1
- data/lib/mongoid/criteria/queryable/key.rb +1 -14
- data/lib/mongoid/criteria/queryable/macroable.rb +0 -3
- data/lib/mongoid/criteria/queryable/mergeable.rb +1 -30
- data/lib/mongoid/criteria/queryable/optional.rb +0 -45
- data/lib/mongoid/criteria/queryable/options.rb +0 -19
- data/lib/mongoid/criteria/queryable/pipeline.rb +0 -13
- data/lib/mongoid/criteria/queryable/selectable.rb +22 -69
- data/lib/mongoid/criteria/queryable/selector.rb +0 -17
- data/lib/mongoid/criteria/queryable/smash.rb +0 -11
- data/lib/mongoid/criteria/queryable/storable.rb +11 -7
- data/lib/mongoid/criteria/queryable.rb +0 -7
- data/lib/mongoid/criteria/scopable.rb +25 -19
- data/lib/mongoid/criteria.rb +0 -57
- data/lib/mongoid/document.rb +3 -53
- data/lib/mongoid/equality.rb +26 -10
- data/lib/mongoid/errors/ambiguous_relationship.rb +2 -5
- data/lib/mongoid/errors/callback.rb +0 -3
- data/lib/mongoid/errors/criteria_argument_required.rb +0 -1
- data/lib/mongoid/errors/delete_restriction.rb +0 -3
- data/lib/mongoid/errors/document_not_destroyed.rb +2 -7
- data/lib/mongoid/errors/document_not_found.rb +0 -9
- data/lib/mongoid/errors/eager_load.rb +0 -3
- data/lib/mongoid/errors/empty_config_file.rb +25 -0
- data/lib/mongoid/errors/in_memory_collation_not_supported.rb +0 -3
- data/lib/mongoid/errors/invalid_collection.rb +0 -1
- data/lib/mongoid/errors/invalid_config_file.rb +25 -0
- data/lib/mongoid/errors/invalid_config_option.rb +0 -3
- data/lib/mongoid/errors/invalid_dependent_strategy.rb +0 -3
- data/lib/mongoid/errors/invalid_discriminator_key_target.rb +0 -1
- data/lib/mongoid/errors/invalid_elem_match_operator.rb +0 -1
- data/lib/mongoid/errors/invalid_estimated_count_criteria.rb +0 -1
- data/lib/mongoid/errors/invalid_expression_operator.rb +0 -1
- data/lib/mongoid/errors/invalid_field.rb +0 -5
- data/lib/mongoid/errors/invalid_field_operator.rb +0 -1
- data/lib/mongoid/errors/invalid_field_option.rb +0 -3
- data/lib/mongoid/errors/invalid_find.rb +0 -3
- data/lib/mongoid/errors/invalid_includes.rb +0 -3
- data/lib/mongoid/errors/invalid_index.rb +0 -3
- data/lib/mongoid/errors/invalid_options.rb +0 -3
- data/lib/mongoid/errors/invalid_path.rb +0 -3
- data/lib/mongoid/errors/invalid_persistence_option.rb +0 -5
- data/lib/mongoid/errors/invalid_query.rb +0 -1
- data/lib/mongoid/errors/invalid_relation.rb +0 -7
- data/lib/mongoid/errors/invalid_relation_option.rb +0 -3
- data/lib/mongoid/errors/invalid_scope.rb +0 -3
- data/lib/mongoid/errors/invalid_session_use.rb +1 -6
- data/lib/mongoid/errors/invalid_set_polymorphic_relation.rb +0 -1
- data/lib/mongoid/errors/invalid_storage_options.rb +0 -3
- data/lib/mongoid/errors/invalid_storage_parent.rb +0 -3
- data/lib/mongoid/errors/invalid_time.rb +0 -3
- data/lib/mongoid/errors/invalid_value.rb +0 -1
- data/lib/mongoid/errors/inverse_not_found.rb +0 -3
- data/lib/mongoid/errors/mixed_client_configuration.rb +0 -3
- data/lib/mongoid/errors/mixed_relations.rb +0 -3
- data/lib/mongoid/errors/mongoid_error.rb +0 -9
- data/lib/mongoid/errors/nested_attributes_metadata_not_found.rb +0 -3
- data/lib/mongoid/errors/no_client_config.rb +0 -3
- data/lib/mongoid/errors/no_client_database.rb +0 -3
- data/lib/mongoid/errors/no_client_hosts.rb +0 -3
- data/lib/mongoid/errors/no_clients_config.rb +0 -3
- data/lib/mongoid/errors/no_default_client.rb +0 -3
- data/lib/mongoid/errors/no_environment.rb +0 -3
- data/lib/mongoid/errors/no_map_reduce_output.rb +0 -3
- data/lib/mongoid/errors/no_metadata.rb +0 -3
- data/lib/mongoid/errors/no_parent.rb +0 -3
- data/lib/mongoid/errors/readonly_attribute.rb +0 -3
- data/lib/mongoid/errors/readonly_document.rb +1 -6
- data/lib/mongoid/errors/scope_overwrite.rb +0 -1
- data/lib/mongoid/errors/too_many_nested_attribute_records.rb +0 -1
- data/lib/mongoid/errors/unknown_attribute.rb +0 -3
- data/lib/mongoid/errors/unknown_model.rb +0 -3
- data/lib/mongoid/errors/unsaved_document.rb +1 -2
- data/lib/mongoid/errors/unsupported_javascript.rb +0 -3
- data/lib/mongoid/errors/validations.rb +0 -1
- data/lib/mongoid/errors.rb +2 -1
- data/lib/mongoid/evolvable.rb +0 -3
- data/lib/mongoid/extensions/array.rb +3 -29
- data/lib/mongoid/extensions/big_decimal.rb +0 -11
- data/lib/mongoid/extensions/boolean.rb +0 -3
- data/lib/mongoid/extensions/date.rb +0 -9
- data/lib/mongoid/extensions/date_time.rb +0 -9
- data/lib/mongoid/extensions/decimal128.rb +0 -5
- data/lib/mongoid/extensions/false_class.rb +1 -6
- data/lib/mongoid/extensions/float.rb +0 -7
- data/lib/mongoid/extensions/hash.rb +0 -27
- data/lib/mongoid/extensions/integer.rb +0 -9
- data/lib/mongoid/extensions/module.rb +0 -3
- data/lib/mongoid/extensions/nil_class.rb +0 -5
- data/lib/mongoid/extensions/object.rb +1 -40
- data/lib/mongoid/extensions/object_id.rb +0 -7
- data/lib/mongoid/extensions/range.rb +0 -11
- data/lib/mongoid/extensions/regexp.rb +0 -3
- data/lib/mongoid/extensions/set.rb +0 -7
- data/lib/mongoid/extensions/string.rb +1 -30
- data/lib/mongoid/extensions/symbol.rb +0 -7
- data/lib/mongoid/extensions/time.rb +0 -11
- data/lib/mongoid/extensions/time_with_zone.rb +13 -9
- data/lib/mongoid/extensions/true_class.rb +1 -6
- data/lib/mongoid/extensions.rb +15 -3
- data/lib/mongoid/factory.rb +1 -2
- data/lib/mongoid/fields/foreign_key.rb +0 -21
- data/lib/mongoid/fields/localized.rb +0 -11
- data/lib/mongoid/fields/standard.rb +0 -33
- data/lib/mongoid/fields/validators/macro.rb +0 -9
- data/lib/mongoid/fields/validators.rb +0 -1
- data/lib/mongoid/fields.rb +64 -57
- data/lib/mongoid/findable.rb +0 -5
- data/lib/mongoid/indexable/specification.rb +0 -15
- data/lib/mongoid/indexable/validators/options.rb +0 -7
- data/lib/mongoid/indexable.rb +1 -18
- data/lib/mongoid/inspectable.rb +1 -10
- data/lib/mongoid/interceptable.rb +0 -25
- data/lib/mongoid/loggable.rb +0 -9
- data/lib/mongoid/matchable.rb +0 -5
- data/lib/mongoid/matcher/eq_impl.rb +37 -2
- data/lib/mongoid/matcher/eq_impl_with_regexp.rb +6 -1
- data/lib/mongoid/persistable/creatable.rb +1 -20
- data/lib/mongoid/persistable/deletable.rb +0 -17
- data/lib/mongoid/persistable/destroyable.rb +0 -7
- data/lib/mongoid/persistable/incrementable.rb +0 -5
- data/lib/mongoid/persistable/logical.rb +0 -5
- data/lib/mongoid/persistable/poppable.rb +0 -5
- data/lib/mongoid/persistable/pullable.rb +0 -7
- data/lib/mongoid/persistable/pushable.rb +0 -7
- data/lib/mongoid/persistable/renamable.rb +0 -5
- data/lib/mongoid/persistable/savable.rb +0 -7
- data/lib/mongoid/persistable/settable.rb +0 -5
- data/lib/mongoid/persistable/unsettable.rb +0 -5
- data/lib/mongoid/persistable/updatable.rb +2 -17
- data/lib/mongoid/persistable/upsertable.rb +0 -7
- data/lib/mongoid/persistable.rb +0 -23
- data/lib/mongoid/persistence_context.rb +3 -28
- data/lib/mongoid/positional.rb +0 -5
- data/lib/mongoid/query_cache.rb +11 -34
- data/lib/mongoid/railtie.rb +0 -15
- data/lib/mongoid/railties/controller_runtime.rb +0 -1
- data/lib/mongoid/reloadable.rb +4 -16
- data/lib/mongoid/scopable.rb +6 -34
- data/lib/mongoid/selectable.rb +0 -9
- data/lib/mongoid/serializable.rb +0 -15
- data/lib/mongoid/shardable.rb +0 -7
- data/lib/mongoid/stateful.rb +0 -9
- data/lib/mongoid/stringified_symbol.rb +2 -3
- data/lib/mongoid/tasks/database.rb +1 -6
- data/lib/mongoid/threaded/lifecycle.rb +0 -21
- data/lib/mongoid/threaded.rb +0 -55
- data/lib/mongoid/timestamps/created/short.rb +0 -1
- data/lib/mongoid/timestamps/created.rb +0 -1
- data/lib/mongoid/timestamps/short.rb +0 -1
- data/lib/mongoid/timestamps/timeless.rb +0 -7
- data/lib/mongoid/timestamps/updated/short.rb +0 -1
- data/lib/mongoid/timestamps/updated.rb +0 -3
- data/lib/mongoid/timestamps.rb +0 -1
- data/lib/mongoid/touchable.rb +10 -7
- data/lib/mongoid/traversable.rb +64 -53
- data/lib/mongoid/validatable/associated.rb +0 -3
- data/lib/mongoid/validatable/format.rb +0 -1
- data/lib/mongoid/validatable/length.rb +0 -1
- data/lib/mongoid/validatable/localizable.rb +0 -3
- data/lib/mongoid/validatable/macros.rb +0 -7
- data/lib/mongoid/validatable/presence.rb +1 -8
- data/lib/mongoid/validatable/queryable.rb +0 -3
- data/lib/mongoid/validatable/uniqueness.rb +15 -30
- data/lib/mongoid/validatable.rb +1 -22
- data/lib/mongoid/version.rb +1 -2
- data/lib/mongoid.rb +0 -15
- data/lib/rails/generators/mongoid/config/config_generator.rb +0 -1
- data/lib/rails/generators/mongoid/model/model_generator.rb +0 -1
- data/lib/rails/generators/mongoid_generator.rb +0 -1
- data/lib/rails/mongoid.rb +0 -3
- data/spec/integration/app_spec.rb +0 -1
- data/spec/integration/associations/belongs_to_spec.rb +0 -1
- data/spec/integration/associations/embedded_dirty_spec.rb +29 -0
- data/spec/integration/associations/embedded_spec.rb +0 -1
- data/spec/integration/associations/embeds_many_spec.rb +139 -1
- data/spec/integration/associations/embeds_one_spec.rb +0 -1
- data/spec/integration/associations/foreign_key_spec.rb +0 -1
- data/spec/integration/associations/foreign_key_spec_models.rb +0 -1
- data/spec/integration/associations/has_many_spec.rb +0 -1
- data/spec/integration/associations/has_one_spec.rb +0 -1
- data/spec/integration/associations/nested_attributes_assignment_spec.rb +0 -1
- data/spec/integration/associations/reverse_population_spec.rb +0 -1
- data/spec/integration/associations/reverse_population_spec_models.rb +0 -1
- data/spec/integration/associations/scope_option_spec.rb +101 -0
- data/spec/integration/atomic/modifiers_spec.rb +0 -1
- data/spec/integration/bson_regexp_raw_spec.rb +0 -1
- data/spec/integration/callbacks_models.rb +12 -0
- data/spec/integration/callbacks_spec.rb +18 -6
- data/spec/integration/contextual/empty_spec.rb +141 -0
- data/spec/integration/criteria/alias_query_spec.rb +161 -0
- data/spec/integration/criteria/date_field_spec.rb +0 -1
- data/spec/integration/criteria/default_scope_spec.rb +51 -0
- data/spec/integration/criteria/logical_spec.rb +30 -0
- data/spec/integration/criteria/range_spec.rb +265 -0
- data/spec/integration/criteria/time_with_zone_spec.rb +125 -15
- data/spec/integration/discriminator_key_spec.rb +0 -1
- data/spec/integration/discriminator_value_spec.rb +0 -1
- data/spec/integration/document_spec.rb +0 -1
- data/spec/integration/i18n_fallbacks_spec.rb +0 -1
- data/spec/integration/matcher_examples_spec.rb +0 -1
- data/spec/integration/matcher_operator_spec.rb +27 -3
- data/spec/integration/matcher_spec.rb +95 -1
- data/spec/integration/server_query_spec.rb +0 -1
- data/spec/integration/shardable_spec.rb +0 -1
- data/spec/integration/stringified_symbol_field_spec.rb +16 -3
- data/spec/lite_spec_helper.rb +8 -2
- data/spec/mongoid/association/accessors_spec.rb +44 -15
- data/spec/mongoid/association/auto_save_spec.rb +72 -34
- data/spec/mongoid/association/builders_spec.rb +1 -2
- data/spec/mongoid/association/constrainable_spec.rb +0 -1
- data/spec/mongoid/association/counter_cache_spec.rb +32 -33
- data/spec/mongoid/association/depending_spec.rb +12 -13
- data/spec/mongoid/association/eager_spec.rb +4 -5
- data/spec/mongoid/association/embedded/cyclic_spec.rb +2 -3
- data/spec/mongoid/association/embedded/dirty_spec.rb +2 -3
- data/spec/mongoid/association/embedded/embedded_in/binding_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embedded_in/buildable_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embedded_in/proxy_spec.rb +13 -14
- data/spec/mongoid/association/embedded/embedded_in_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_many/binding_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_many/buildable_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_many/proxy_spec.rb +384 -135
- data/spec/mongoid/association/embedded/embeds_many_models.rb +16 -1
- data/spec/mongoid/association/embedded/embeds_many_query_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_many_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one/binding_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one/buildable_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one/proxy_spec.rb +21 -22
- data/spec/mongoid/association/embedded/embeds_one_dnl_models.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one_models.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one_query_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one_spec.rb +0 -1
- data/spec/mongoid/association/macros_spec.rb +9 -10
- data/spec/mongoid/association/nested/many_spec.rb +0 -1
- data/spec/mongoid/association/nested/one_spec.rb +0 -1
- data/spec/mongoid/association/options_spec.rb +0 -1
- data/spec/mongoid/association/polymorphic_spec.rb +0 -1
- data/spec/mongoid/association/referenced/belongs_to/binding_spec.rb +0 -1
- data/spec/mongoid/association/referenced/belongs_to/buildable_spec.rb +55 -17
- data/spec/mongoid/association/referenced/belongs_to/eager_spec.rb +50 -15
- data/spec/mongoid/association/referenced/belongs_to/proxy_spec.rb +57 -53
- data/spec/mongoid/association/referenced/belongs_to_query_spec.rb +20 -1
- data/spec/mongoid/association/referenced/belongs_to_spec.rb +22 -2
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/binding_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/buildable_spec.rb +26 -2
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/eager_spec.rb +31 -3
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_persistence_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_spec.rb +179 -154
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_models.rb +18 -1
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_spec.rb +21 -1
- data/spec/mongoid/association/referenced/has_many/binding_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_many/buildable_spec.rb +21 -1
- data/spec/mongoid/association/referenced/has_many/eager_spec.rb +23 -7
- data/spec/mongoid/association/referenced/has_many/enumerable_spec.rb +303 -125
- data/spec/mongoid/association/referenced/has_many/proxy_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_many/proxy_spec.rb +227 -164
- data/spec/mongoid/association/referenced/has_many_models.rb +35 -1
- data/spec/mongoid/association/referenced/has_many_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_many_spec.rb +21 -1
- data/spec/mongoid/association/referenced/has_one/binding_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_one/buildable_spec.rb +51 -8
- data/spec/mongoid/association/referenced/has_one/eager_spec.rb +17 -2
- data/spec/mongoid/association/referenced/has_one/proxy_spec.rb +26 -27
- data/spec/mongoid/association/referenced/has_one_models.rb +18 -1
- data/spec/mongoid/association/referenced/has_one_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_one_spec.rb +21 -1
- data/spec/mongoid/association/reflections_spec.rb +0 -1
- data/spec/mongoid/association/syncable_spec.rb +31 -32
- data/spec/mongoid/association_spec.rb +0 -1
- data/spec/mongoid/atomic/modifiers_spec.rb +0 -1
- data/spec/mongoid/atomic/paths/embedded/many_spec.rb +0 -1
- data/spec/mongoid/atomic/paths/embedded/one_spec.rb +0 -1
- data/spec/mongoid/atomic/paths/root_spec.rb +0 -1
- data/spec/mongoid/atomic/paths_spec.rb +0 -1
- data/spec/mongoid/atomic_spec.rb +6 -7
- data/spec/mongoid/attributes/dynamic_spec.rb +0 -1
- data/spec/mongoid/attributes/nested_spec.rb +66 -67
- data/spec/mongoid/attributes/projector_spec.rb +5 -2
- data/spec/mongoid/attributes/readonly_spec.rb +22 -23
- data/spec/mongoid/attributes_spec.rb +32 -33
- data/spec/mongoid/cacheable_spec.rb +1 -2
- data/spec/mongoid/changeable_spec.rb +35 -36
- data/spec/mongoid/clients/factory_spec.rb +9 -4
- data/spec/mongoid/clients/options_spec.rb +15 -10
- data/spec/mongoid/clients/sessions_spec.rb +22 -23
- data/spec/mongoid/clients/transactions_spec.rb +49 -27
- data/spec/mongoid/clients_spec.rb +6 -7
- data/spec/mongoid/composable_spec.rb +0 -1
- data/spec/mongoid/config/environment_spec.rb +86 -9
- data/spec/mongoid/config/options_spec.rb +0 -1
- data/spec/mongoid/config_spec.rb +194 -17
- data/spec/mongoid/contextual/aggregable/memory_spec.rb +51 -12
- data/spec/mongoid/contextual/aggregable/mongo_spec.rb +120 -21
- data/spec/mongoid/contextual/aggregable/none_spec.rb +60 -0
- data/spec/mongoid/contextual/atomic_spec.rb +109 -71
- data/spec/mongoid/contextual/geo_near_spec.rb +18 -19
- data/spec/mongoid/contextual/map_reduce_spec.rb +2 -3
- data/spec/mongoid/contextual/memory_spec.rb +23 -24
- data/spec/mongoid/contextual/mongo_spec.rb +339 -77
- data/spec/mongoid/contextual/none_spec.rb +7 -82
- data/spec/mongoid/copyable_spec.rb +11 -12
- data/spec/mongoid/copyable_spec_models.rb +0 -1
- data/spec/mongoid/criteria/findable_spec.rb +23 -24
- data/spec/mongoid/criteria/inspectable_spec.rb +0 -1
- data/spec/mongoid/criteria/marshalable_spec.rb +0 -1
- data/spec/mongoid/criteria/modifiable_spec.rb +36 -37
- data/spec/mongoid/criteria/options_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/aggregable_spec.rb +1 -2
- data/spec/mongoid/criteria/queryable/expandable_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/array_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/big_decimal_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/bignum_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/boolean_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/date_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/date_time_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/fixnum_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/float_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/hash_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/integer_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/nil_class_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/numeric_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/object_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/range_spec.rb +237 -179
- data/spec/mongoid/criteria/queryable/extensions/regexp_raw_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/regexp_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/set_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/string_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/symbol_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/time_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/time_with_zone_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/key_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/mergeable_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/optional_spec.rb +1 -2
- data/spec/mongoid/criteria/queryable/options_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/pipeline_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/queryable_spec.rb +1 -2
- data/spec/mongoid/criteria/queryable/selectable_logical_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/selectable_shared_examples.rb +0 -1
- data/spec/mongoid/criteria/queryable/selectable_spec.rb +15 -16
- data/spec/mongoid/criteria/queryable/selectable_where_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/selector_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/smash_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/storable_spec.rb +37 -1
- data/spec/mongoid/criteria/scopable_spec.rb +127 -1
- data/spec/mongoid/criteria_projection_spec.rb +3 -4
- data/spec/mongoid/criteria_spec.rb +546 -186
- data/spec/mongoid/document_fields_spec.rb +0 -1
- data/spec/mongoid/document_persistence_context_spec.rb +0 -1
- data/spec/mongoid/document_query_spec.rb +0 -1
- data/spec/mongoid/document_spec.rb +32 -34
- data/spec/mongoid/equality_spec.rb +142 -41
- data/spec/mongoid/errors/ambiguous_relationship_spec.rb +0 -1
- data/spec/mongoid/errors/callback_spec.rb +0 -1
- data/spec/mongoid/errors/delete_restriction_spec.rb +0 -1
- data/spec/mongoid/errors/document_not_destroyed_spec.rb +0 -1
- data/spec/mongoid/errors/document_not_found_spec.rb +0 -1
- data/spec/mongoid/errors/eager_load_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_collection_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_config_file_spec.rb +31 -0
- data/spec/mongoid/errors/invalid_config_option_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_field_option_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_field_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_find_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_includes_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_index_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_options_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_path_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_relation_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_scope_spec.rb +1 -2
- data/spec/mongoid/errors/invalid_set_polymorphic_relation_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_storage_options_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_time_spec.rb +0 -1
- data/spec/mongoid/errors/inverse_not_found_spec.rb +0 -1
- data/spec/mongoid/errors/mixed_client_configuration_spec.rb +0 -1
- data/spec/mongoid/errors/mixed_relations_spec.rb +0 -1
- data/spec/mongoid/errors/mongoid_error_spec.rb +0 -1
- data/spec/mongoid/errors/nested_attributes_metadata_not_found_spec.rb +0 -1
- data/spec/mongoid/errors/no_client_config_spec.rb +0 -1
- data/spec/mongoid/errors/no_client_database_spec.rb +0 -1
- data/spec/mongoid/errors/no_client_hosts_spec.rb +0 -1
- data/spec/mongoid/errors/no_clients_config_spec.rb +0 -1
- data/spec/mongoid/errors/no_environment_spec.rb +0 -1
- data/spec/mongoid/errors/no_map_reduce_output_spec.rb +0 -1
- data/spec/mongoid/errors/no_metadata_spec.rb +0 -1
- data/spec/mongoid/errors/no_parent_spec.rb +0 -1
- data/spec/mongoid/errors/readonly_attribute_spec.rb +0 -1
- data/spec/mongoid/errors/readonly_document_spec.rb +0 -1
- data/spec/mongoid/errors/scope_overwrite_spec.rb +0 -1
- data/spec/mongoid/errors/too_many_nested_attribute_records_spec.rb +0 -1
- data/spec/mongoid/errors/unknown_attribute_spec.rb +2 -3
- data/spec/mongoid/errors/unsaved_document_spec.rb +0 -1
- data/spec/mongoid/errors/unsupported_javascript_spec.rb +0 -1
- data/spec/mongoid/errors/validations_spec.rb +0 -1
- data/spec/mongoid/extensions/array_spec.rb +0 -1
- data/spec/mongoid/extensions/big_decimal_spec.rb +0 -1
- data/spec/mongoid/extensions/binary_spec.rb +0 -1
- data/spec/mongoid/extensions/boolean_spec.rb +0 -1
- data/spec/mongoid/extensions/date_class_mongoize_spec.rb +0 -1
- data/spec/mongoid/extensions/date_spec.rb +0 -1
- data/spec/mongoid/extensions/date_time_spec.rb +0 -1
- data/spec/mongoid/extensions/decimal128_spec.rb +0 -1
- data/spec/mongoid/extensions/false_class_spec.rb +0 -1
- data/spec/mongoid/extensions/float_spec.rb +0 -1
- data/spec/mongoid/extensions/hash_spec.rb +0 -1
- data/spec/mongoid/extensions/integer_spec.rb +0 -1
- data/spec/mongoid/extensions/module_spec.rb +0 -1
- data/spec/mongoid/extensions/nil_class_spec.rb +0 -1
- data/spec/mongoid/extensions/object_id_spec.rb +0 -1
- data/spec/mongoid/extensions/object_spec.rb +0 -1
- data/spec/mongoid/extensions/range_spec.rb +0 -1
- data/spec/mongoid/extensions/regexp_spec.rb +0 -1
- data/spec/mongoid/extensions/set_spec.rb +0 -1
- data/spec/mongoid/extensions/string_spec.rb +2 -3
- data/spec/mongoid/extensions/stringified_symbol_spec.rb +0 -1
- data/spec/mongoid/extensions/symbol_spec.rb +0 -1
- data/spec/mongoid/extensions/time_spec.rb +0 -1
- data/spec/mongoid/extensions/time_with_zone_spec.rb +0 -1
- data/spec/mongoid/extensions/true_class_spec.rb +0 -1
- data/spec/mongoid/extensions_spec.rb +14 -3
- data/spec/mongoid/factory_spec.rb +1 -1
- data/spec/mongoid/fields/foreign_key_spec.rb +0 -1
- data/spec/mongoid/fields/localized_spec.rb +0 -1
- data/spec/mongoid/fields/standard_spec.rb +0 -1
- data/spec/mongoid/fields_spec.rb +326 -31
- data/spec/mongoid/findable_spec.rb +21 -22
- data/spec/mongoid/indexable/specification_spec.rb +0 -1
- data/spec/mongoid/indexable_spec.rb +0 -1
- data/spec/mongoid/inspectable_spec.rb +0 -1
- data/spec/mongoid/interceptable_spec.rb +102 -95
- data/spec/mongoid/loggable_spec.rb +0 -1
- data/spec/mongoid/matcher/extract_attribute_spec.rb +5 -2
- data/spec/mongoid/persistable/creatable_spec.rb +2 -3
- data/spec/mongoid/persistable/deletable_spec.rb +18 -19
- data/spec/mongoid/persistable/destroyable_spec.rb +8 -9
- data/spec/mongoid/persistable/incrementable_spec.rb +8 -9
- data/spec/mongoid/persistable/logical_spec.rb +4 -5
- data/spec/mongoid/persistable/poppable_spec.rb +4 -5
- data/spec/mongoid/persistable/pullable_spec.rb +8 -9
- data/spec/mongoid/persistable/pushable_spec.rb +8 -9
- data/spec/mongoid/persistable/renamable_spec.rb +3 -4
- data/spec/mongoid/persistable/savable_spec.rb +15 -11
- data/spec/mongoid/persistable/settable_spec.rb +9 -10
- data/spec/mongoid/persistable/unsettable_spec.rb +4 -5
- data/spec/mongoid/persistable/updatable_spec.rb +43 -24
- data/spec/mongoid/persistable/upsertable_spec.rb +1 -2
- data/spec/mongoid/persistable_spec.rb +1 -2
- data/spec/mongoid/persistence_context_spec.rb +0 -1
- data/spec/mongoid/positional_spec.rb +0 -1
- data/spec/mongoid/query_cache_middleware_spec.rb +1 -2
- data/spec/mongoid/query_cache_spec.rb +56 -10
- data/spec/mongoid/relations/proxy_spec.rb +6 -7
- data/spec/mongoid/reloadable_spec.rb +209 -23
- data/spec/mongoid/scopable_spec.rb +65 -22
- data/spec/mongoid/selectable_spec.rb +6 -7
- data/spec/mongoid/serializable_spec.rb +9 -10
- data/spec/mongoid/shardable_spec.rb +2 -3
- data/spec/mongoid/stateful_spec.rb +1 -2
- data/spec/mongoid/tasks/database_rake_spec.rb +0 -1
- data/spec/mongoid/tasks/database_spec.rb +0 -1
- data/spec/mongoid/threaded_spec.rb +2 -3
- data/spec/mongoid/timestamps/created/short_spec.rb +1 -2
- data/spec/mongoid/timestamps/created_spec.rb +1 -2
- data/spec/mongoid/timestamps/timeless_spec.rb +2 -3
- data/spec/mongoid/timestamps/updated/short_spec.rb +3 -4
- data/spec/mongoid/timestamps/updated_spec.rb +3 -4
- data/spec/mongoid/timestamps_spec.rb +6 -7
- data/spec/mongoid/touchable_spec.rb +33 -20
- data/spec/mongoid/touchable_spec_models.rb +2 -1
- data/spec/mongoid/traversable_spec.rb +65 -2
- data/spec/mongoid/validatable/associated_spec.rb +0 -1
- data/spec/mongoid/validatable/format_spec.rb +0 -1
- data/spec/mongoid/validatable/length_spec.rb +0 -1
- data/spec/mongoid/validatable/numericality_spec.rb +0 -1
- data/spec/mongoid/validatable/presence_spec.rb +26 -23
- data/spec/mongoid/validatable/uniqueness_spec.rb +67 -68
- data/spec/mongoid/validatable_spec.rb +2 -3
- data/spec/mongoid_spec.rb +0 -1
- data/spec/rails/controller_extension/controller_runtime_spec.rb +0 -1
- data/spec/rails/mongoid_spec.rb +0 -1
- data/spec/shared/lib/mrss/cluster_config.rb +6 -1
- data/spec/shared/lib/mrss/constraints.rb +23 -5
- data/spec/shared/lib/mrss/docker_runner.rb +1 -1
- data/spec/shared/lib/mrss/event_subscriber.rb +200 -0
- data/spec/shared/lib/mrss/lite_constraints.rb +8 -0
- data/spec/shared/lib/mrss/server_version_registry.rb +17 -12
- data/spec/shared/lib/mrss/session_registry.rb +69 -0
- data/spec/shared/lib/mrss/session_registry_legacy.rb +60 -0
- data/spec/shared/share/Dockerfile.erb +27 -10
- data/spec/shared/shlib/distro.sh +2 -1
- data/spec/shared/shlib/server.sh +85 -23
- data/spec/shared/shlib/set_env.sh +6 -5
- data/spec/spec_helper.rb +12 -22
- data/spec/support/authorization.rb +0 -1
- data/spec/support/constraints.rb +0 -1
- data/spec/support/expectations.rb +0 -1
- data/spec/support/macros.rb +22 -1
- data/spec/support/models/account.rb +1 -2
- data/spec/support/models/acolyte.rb +0 -1
- data/spec/support/models/actor.rb +0 -1
- data/spec/support/models/actress.rb +0 -1
- data/spec/support/models/address.rb +0 -1
- data/spec/support/models/address_component.rb +0 -1
- data/spec/support/models/address_number.rb +0 -1
- data/spec/support/models/agency.rb +0 -1
- data/spec/support/models/agent.rb +0 -1
- data/spec/support/models/album.rb +0 -1
- data/spec/support/models/alert.rb +0 -1
- data/spec/support/models/animal.rb +0 -1
- data/spec/support/models/answer.rb +0 -1
- data/spec/support/models/appointment.rb +0 -1
- data/spec/support/models/armrest.rb +0 -1
- data/spec/support/models/array_field.rb +0 -1
- data/spec/support/models/article.rb +0 -1
- data/spec/support/models/artist.rb +2 -1
- data/spec/support/models/artwork.rb +0 -1
- data/spec/support/models/audible_sound.rb +3 -0
- data/spec/support/models/audio.rb +0 -1
- data/spec/support/models/augmentation.rb +0 -1
- data/spec/support/models/author.rb +0 -1
- data/spec/support/models/baby.rb +0 -1
- data/spec/support/models/band.rb +4 -1
- data/spec/support/models/bar.rb +0 -1
- data/spec/support/models/basic.rb +0 -1
- data/spec/support/models/bed.rb +0 -1
- data/spec/support/models/big_palette.rb +0 -1
- data/spec/support/models/birthday.rb +0 -1
- data/spec/support/models/bolt.rb +0 -1
- data/spec/support/models/bomb.rb +0 -1
- data/spec/support/models/book.rb +0 -1
- data/spec/support/models/breed.rb +0 -1
- data/spec/support/models/browser.rb +0 -1
- data/spec/support/models/building.rb +0 -1
- data/spec/support/models/building_address.rb +0 -1
- data/spec/support/models/bus.rb +0 -1
- data/spec/support/models/business.rb +0 -1
- data/spec/support/models/callback_test.rb +0 -1
- data/spec/support/models/canvas.rb +0 -1
- data/spec/support/models/car.rb +0 -1
- data/spec/support/models/cat.rb +0 -1
- data/spec/support/models/category.rb +0 -1
- data/spec/support/models/child.rb +0 -1
- data/spec/support/models/child_doc.rb +3 -4
- data/spec/support/models/church.rb +0 -1
- data/spec/support/models/circle.rb +0 -1
- data/spec/support/models/circuit.rb +0 -1
- data/spec/support/models/circus.rb +0 -1
- data/spec/support/models/code.rb +0 -1
- data/spec/support/models/coding/pull_request.rb +0 -1
- data/spec/support/models/coding.rb +0 -1
- data/spec/support/models/comment.rb +0 -1
- data/spec/support/models/company.rb +0 -1
- data/spec/support/models/consumption_period.rb +0 -1
- data/spec/support/models/contextable_item.rb +0 -1
- data/spec/support/models/contractor.rb +0 -1
- data/spec/support/models/cookie.rb +0 -1
- data/spec/support/models/country_code.rb +2 -1
- data/spec/support/models/courier_job.rb +0 -1
- data/spec/support/models/crate.rb +0 -1
- data/spec/support/models/customer.rb +0 -1
- data/spec/support/models/customer_address.rb +0 -1
- data/spec/support/models/deed.rb +0 -1
- data/spec/support/models/definition.rb +0 -1
- data/spec/support/models/delegating_patient.rb +0 -1
- data/spec/support/models/description.rb +0 -1
- data/spec/support/models/dictionary.rb +0 -1
- data/spec/support/models/division.rb +0 -1
- data/spec/support/models/doctor.rb +0 -1
- data/spec/support/models/dog.rb +0 -1
- data/spec/support/models/dokument.rb +0 -1
- data/spec/support/models/draft.rb +0 -1
- data/spec/support/models/dragon.rb +0 -1
- data/spec/support/models/driver.rb +0 -1
- data/spec/support/models/drug.rb +0 -1
- data/spec/support/models/dungeon.rb +0 -1
- data/spec/support/models/edit.rb +0 -1
- data/spec/support/models/email.rb +0 -1
- data/spec/support/models/employer.rb +0 -1
- data/spec/support/models/entry.rb +0 -1
- data/spec/support/models/eraser.rb +0 -1
- data/spec/support/models/even.rb +0 -1
- data/spec/support/models/event.rb +0 -1
- data/spec/support/models/exhibition.rb +0 -1
- data/spec/support/models/exhibitor.rb +0 -1
- data/spec/support/models/explosion.rb +0 -1
- data/spec/support/models/eye.rb +0 -1
- data/spec/support/models/eye_bowl.rb +0 -1
- data/spec/support/models/face.rb +0 -1
- data/spec/support/models/favorite.rb +0 -1
- data/spec/support/models/filesystem.rb +0 -1
- data/spec/support/models/fire_hydrant.rb +0 -1
- data/spec/support/models/firefox.rb +0 -1
- data/spec/support/models/fish.rb +0 -1
- data/spec/support/models/folder.rb +0 -1
- data/spec/support/models/folder_item.rb +0 -1
- data/spec/support/models/fruits.rb +0 -1
- data/spec/support/models/game.rb +0 -1
- data/spec/support/models/ghost.rb +0 -1
- data/spec/support/models/guitar.rb +0 -1
- data/spec/support/models/hole.rb +0 -1
- data/spec/support/models/home.rb +0 -1
- data/spec/support/models/house.rb +0 -1
- data/spec/support/models/html_writer.rb +0 -1
- data/spec/support/models/id_key.rb +0 -1
- data/spec/support/models/idnodef.rb +0 -1
- data/spec/support/models/image.rb +0 -1
- data/spec/support/models/implant.rb +0 -1
- data/spec/support/models/instrument.rb +0 -1
- data/spec/support/models/item.rb +0 -1
- data/spec/support/models/jar.rb +0 -1
- data/spec/support/models/kaleidoscope.rb +0 -1
- data/spec/support/models/kangaroo.rb +0 -1
- data/spec/support/models/label.rb +2 -2
- data/spec/support/models/language.rb +0 -1
- data/spec/support/models/lat_lng.rb +0 -1
- data/spec/support/models/league.rb +0 -1
- data/spec/support/models/learner.rb +0 -1
- data/spec/support/models/line_item.rb +0 -1
- data/spec/support/models/location.rb +0 -1
- data/spec/support/models/login.rb +0 -1
- data/spec/support/models/manufacturer.rb +0 -1
- data/spec/support/models/meat.rb +0 -1
- data/spec/support/models/membership.rb +0 -1
- data/spec/support/models/message.rb +0 -1
- data/spec/support/models/minim.rb +0 -1
- data/spec/support/models/mixed_drink.rb +0 -1
- data/spec/support/models/mop.rb +0 -1
- data/spec/support/models/movie.rb +0 -1
- data/spec/support/models/my_hash.rb +0 -1
- data/spec/support/models/name.rb +0 -1
- data/spec/support/models/name_only.rb +0 -1
- data/spec/support/models/node.rb +0 -1
- data/spec/support/models/note.rb +0 -1
- data/spec/support/models/nut.rb +0 -1
- data/spec/support/models/odd.rb +0 -1
- data/spec/support/models/order.rb +2 -1
- data/spec/support/models/ordered_post.rb +1 -2
- data/spec/support/models/ordered_preference.rb +0 -1
- data/spec/support/models/oscar.rb +0 -1
- data/spec/support/models/other_owner_object.rb +0 -1
- data/spec/support/models/override.rb +0 -1
- data/spec/support/models/ownable.rb +0 -1
- data/spec/support/models/owner.rb +0 -1
- data/spec/support/models/pack.rb +0 -1
- data/spec/support/models/page.rb +0 -1
- data/spec/support/models/page_question.rb +0 -1
- data/spec/support/models/palette.rb +0 -1
- data/spec/support/models/parent.rb +0 -1
- data/spec/support/models/parent_doc.rb +0 -1
- data/spec/support/models/passport.rb +5 -1
- data/spec/support/models/patient.rb +0 -1
- data/spec/support/models/pdf_writer.rb +0 -1
- data/spec/support/models/pencil.rb +0 -1
- data/spec/support/models/person.rb +1 -1
- data/spec/support/models/pet.rb +0 -1
- data/spec/support/models/pet_owner.rb +0 -1
- data/spec/support/models/phone.rb +2 -2
- data/spec/support/models/piano.rb +0 -1
- data/spec/support/models/pizza.rb +0 -1
- data/spec/support/models/player.rb +0 -1
- data/spec/support/models/post.rb +0 -1
- data/spec/support/models/post_genre.rb +0 -1
- data/spec/support/models/powerup.rb +0 -1
- data/spec/support/models/preference.rb +0 -1
- data/spec/support/models/princess.rb +0 -1
- data/spec/support/models/product.rb +0 -1
- data/spec/support/models/profile.rb +0 -1
- data/spec/support/models/pronunciation.rb +0 -1
- data/spec/support/models/pub.rb +0 -1
- data/spec/support/models/publication/encyclopedia.rb +0 -1
- data/spec/support/models/publication/review.rb +0 -1
- data/spec/support/models/publication.rb +0 -1
- data/spec/support/models/purchase.rb +0 -1
- data/spec/support/models/purchased_item.rb +10 -0
- data/spec/support/models/question.rb +0 -1
- data/spec/support/models/quiz.rb +0 -1
- data/spec/support/models/rating.rb +0 -1
- data/spec/support/models/record.rb +0 -1
- data/spec/support/models/registry.rb +0 -1
- data/spec/support/models/role.rb +0 -1
- data/spec/support/models/root_category.rb +0 -1
- data/spec/support/models/sandwich.rb +0 -1
- data/spec/support/models/scheduler.rb +0 -1
- data/spec/support/models/scribe.rb +0 -1
- data/spec/support/models/sealer.rb +0 -1
- data/spec/support/models/seat.rb +0 -1
- data/spec/support/models/seo.rb +0 -1
- data/spec/support/models/series.rb +0 -1
- data/spec/support/models/server.rb +0 -1
- data/spec/support/models/service.rb +0 -1
- data/spec/support/models/shape.rb +0 -1
- data/spec/support/models/shelf.rb +0 -1
- data/spec/support/models/shipment_address.rb +0 -1
- data/spec/support/models/shipping_container.rb +0 -1
- data/spec/support/models/shipping_pack.rb +0 -1
- data/spec/support/models/shirt.rb +0 -1
- data/spec/support/models/shop.rb +0 -1
- data/spec/support/models/short_agent.rb +0 -1
- data/spec/support/models/short_quiz.rb +0 -1
- data/spec/support/models/simple.rb +0 -1
- data/spec/support/models/slave.rb +0 -1
- data/spec/support/models/song.rb +0 -1
- data/spec/support/models/sound.rb +0 -1
- data/spec/support/models/spacer.rb +0 -1
- data/spec/support/models/square.rb +0 -1
- data/spec/support/models/staff.rb +0 -1
- data/spec/support/models/store_as_dup_test1.rb +0 -1
- data/spec/support/models/store_as_dup_test2.rb +0 -1
- data/spec/support/models/store_as_dup_test3.rb +0 -1
- data/spec/support/models/store_as_dup_test4.rb +0 -1
- data/spec/support/models/strategy.rb +0 -1
- data/spec/support/models/sub_item.rb +0 -1
- data/spec/support/models/subscription.rb +0 -1
- data/spec/support/models/survey.rb +0 -1
- data/spec/support/models/symptom.rb +0 -1
- data/spec/support/models/tag.rb +0 -1
- data/spec/support/models/target.rb +0 -1
- data/spec/support/models/template.rb +0 -1
- data/spec/support/models/thing.rb +0 -1
- data/spec/support/models/threadlocker.rb +0 -1
- data/spec/support/models/title.rb +0 -1
- data/spec/support/models/tool.rb +0 -1
- data/spec/support/models/topping.rb +0 -1
- data/spec/support/models/toy.rb +0 -1
- data/spec/support/models/track.rb +0 -1
- data/spec/support/models/translation.rb +0 -1
- data/spec/support/models/tree.rb +0 -1
- data/spec/support/models/truck.rb +0 -1
- data/spec/support/models/updatable.rb +0 -1
- data/spec/support/models/user.rb +0 -1
- data/spec/support/models/user_account.rb +0 -1
- data/spec/support/models/validation_callback.rb +0 -1
- data/spec/support/models/vehicle.rb +0 -1
- data/spec/support/models/version.rb +0 -1
- data/spec/support/models/vertex.rb +0 -1
- data/spec/support/models/vet_visit.rb +0 -1
- data/spec/support/models/video.rb +0 -1
- data/spec/support/models/video_game.rb +0 -1
- data/spec/support/models/washer.rb +0 -1
- data/spec/support/models/weapon.rb +0 -1
- data/spec/support/models/wiki_page.rb +0 -1
- data/spec/support/models/word.rb +0 -1
- data/spec/support/models/word_origin.rb +0 -1
- data/spec/support/models/writer.rb +0 -1
- data/spec/support/shared/time.rb +0 -1
- data/spec/support/spec_config.rb +3 -1
- data.tar.gz.sig +0 -0
- metadata +642 -610
- metadata.gz.sig +0 -0
- data/lib/support/ruby_version.rb +0 -29
- data/spec/support/session_registry.rb +0 -50
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
module Fields
|
|
@@ -18,8 +17,6 @@ module Mongoid
|
|
|
18
17
|
# @param [ Hash ] mods The current modifications.
|
|
19
18
|
# @param [ Array ] new_elements The new elements to add.
|
|
20
19
|
# @param [ Array ] old_elements The old elements getting removed.
|
|
21
|
-
#
|
|
22
|
-
# @since 2.4.0
|
|
23
20
|
def add_atomic_changes(document, name, key, mods, new_elements, old_elements)
|
|
24
21
|
old = (old_elements || [])
|
|
25
22
|
new = (new_elements || [])
|
|
@@ -47,8 +44,6 @@ module Mongoid
|
|
|
47
44
|
# field.foreign_key?
|
|
48
45
|
#
|
|
49
46
|
# @return [ true, false ] If the field is a foreign key.
|
|
50
|
-
#
|
|
51
|
-
# @since 2.4.0
|
|
52
47
|
def foreign_key?
|
|
53
48
|
true
|
|
54
49
|
end
|
|
@@ -61,8 +56,6 @@ module Mongoid
|
|
|
61
56
|
# @param [ Object ] object The object to evolve.
|
|
62
57
|
#
|
|
63
58
|
# @return [ Object ] The evolved object.
|
|
64
|
-
#
|
|
65
|
-
# @since 3.0.0
|
|
66
59
|
def evolve(object)
|
|
67
60
|
if object_id_field? || object.is_a?(Document)
|
|
68
61
|
if association.polymorphic?
|
|
@@ -81,8 +74,6 @@ module Mongoid
|
|
|
81
74
|
# field.lazy?
|
|
82
75
|
#
|
|
83
76
|
# @return [ true, false ] If the field is lazy.
|
|
84
|
-
#
|
|
85
|
-
# @since 3.1.0
|
|
86
77
|
def lazy?
|
|
87
78
|
type.resizable?
|
|
88
79
|
end
|
|
@@ -95,8 +86,6 @@ module Mongoid
|
|
|
95
86
|
# @param [ Object ] object The object to Mongoize.
|
|
96
87
|
#
|
|
97
88
|
# @return [ Object ] The mongoized object.
|
|
98
|
-
#
|
|
99
|
-
# @since 3.0.0
|
|
100
89
|
def mongoize(object)
|
|
101
90
|
if type.resizable? || object_id_field?
|
|
102
91
|
type.__mongoize_fk__(association, object)
|
|
@@ -111,8 +100,6 @@ module Mongoid
|
|
|
111
100
|
# field.object_id_field?
|
|
112
101
|
#
|
|
113
102
|
# @return [ true, false ] If the field is a BSON::ObjectId.
|
|
114
|
-
#
|
|
115
|
-
# @since 2.2.0
|
|
116
103
|
def object_id_field?
|
|
117
104
|
@object_id_field ||=
|
|
118
105
|
association.polymorphic? ? true : association.klass.using_object_ids?
|
|
@@ -124,8 +111,6 @@ module Mongoid
|
|
|
124
111
|
# field.resizable?
|
|
125
112
|
#
|
|
126
113
|
# @return [ true, false ] If the field is resizable.
|
|
127
|
-
#
|
|
128
|
-
# @since 3.0.2
|
|
129
114
|
def resizable?
|
|
130
115
|
type.resizable?
|
|
131
116
|
end
|
|
@@ -141,8 +126,6 @@ module Mongoid
|
|
|
141
126
|
# @param [ Document ] doc The document.
|
|
142
127
|
#
|
|
143
128
|
# @return [ Object ] The called proc.
|
|
144
|
-
#
|
|
145
|
-
# @since 3.0.0
|
|
146
129
|
def evaluate_default_proc(doc)
|
|
147
130
|
serialize_default(default_val[])
|
|
148
131
|
end
|
|
@@ -155,8 +138,6 @@ module Mongoid
|
|
|
155
138
|
# field.related_id_field
|
|
156
139
|
#
|
|
157
140
|
# @return [ Fields::Standard ] The field.
|
|
158
|
-
#
|
|
159
|
-
# @since 3.0.0
|
|
160
141
|
def related_id_field
|
|
161
142
|
@related_id_field ||= association.klass.fields["_id"]
|
|
162
143
|
end
|
|
@@ -172,8 +153,6 @@ module Mongoid
|
|
|
172
153
|
# @param [ Object ] object The default.
|
|
173
154
|
#
|
|
174
155
|
# @return [ Object ] The serialized default.
|
|
175
|
-
#
|
|
176
|
-
# @since 3.0.0
|
|
177
156
|
def serialize_default(object); object; end
|
|
178
157
|
end
|
|
179
158
|
end
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
module Fields
|
|
@@ -14,8 +13,6 @@ module Mongoid
|
|
|
14
13
|
# @param [ Hash ] object The hash of translations.
|
|
15
14
|
#
|
|
16
15
|
# @return [ Object ] The value for the current locale.
|
|
17
|
-
#
|
|
18
|
-
# @since 2.3.0
|
|
19
16
|
def demongoize(object)
|
|
20
17
|
if object
|
|
21
18
|
type.demongoize(lookup(object))
|
|
@@ -28,8 +25,6 @@ module Mongoid
|
|
|
28
25
|
# field.localized?
|
|
29
26
|
#
|
|
30
27
|
# @return [ true, false ] If the field is localized.
|
|
31
|
-
#
|
|
32
|
-
# @since 2.3.0
|
|
33
28
|
def localized?
|
|
34
29
|
true
|
|
35
30
|
end
|
|
@@ -42,8 +37,6 @@ module Mongoid
|
|
|
42
37
|
# @param [ String ] object The string to convert.
|
|
43
38
|
#
|
|
44
39
|
# @return [ Hash ] The locale with string translation.
|
|
45
|
-
#
|
|
46
|
-
# @since 2.3.0
|
|
47
40
|
def mongoize(object)
|
|
48
41
|
{ ::I18n.locale.to_s => type.mongoize(object) }
|
|
49
42
|
end
|
|
@@ -58,8 +51,6 @@ module Mongoid
|
|
|
58
51
|
# field.fallbacks?
|
|
59
52
|
#
|
|
60
53
|
# @return [ true, false ] If fallbacks should be used.
|
|
61
|
-
#
|
|
62
|
-
# @since 5.1.0
|
|
63
54
|
def fallbacks?
|
|
64
55
|
return true if options[:fallbacks].nil?
|
|
65
56
|
!!options[:fallbacks]
|
|
@@ -75,8 +66,6 @@ module Mongoid
|
|
|
75
66
|
# @param [ Hash ] object The localized object.
|
|
76
67
|
#
|
|
77
68
|
# @return [ Object ] The object for the locale.
|
|
78
|
-
#
|
|
79
|
-
# @since 3.0.0
|
|
80
69
|
def lookup(object)
|
|
81
70
|
locale = ::I18n.locale
|
|
82
71
|
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
module Fields
|
|
@@ -23,8 +22,6 @@ module Mongoid
|
|
|
23
22
|
# @param [ Hash ] mods The current modifications.
|
|
24
23
|
# @param [ Array ] new The new elements to add.
|
|
25
24
|
# @param [ Array ] old The old elements getting removed.
|
|
26
|
-
#
|
|
27
|
-
# @since 2.4.0
|
|
28
25
|
def add_atomic_changes(document, name, key, mods, new, old)
|
|
29
26
|
mods[key] = new
|
|
30
27
|
end
|
|
@@ -38,8 +35,6 @@ module Mongoid
|
|
|
38
35
|
# @param [ Document ] doc The document the field belongs to.
|
|
39
36
|
#
|
|
40
37
|
# @return [ Object ] The serialized default value.
|
|
41
|
-
#
|
|
42
|
-
# @since 2.1.8
|
|
43
38
|
def eval_default(doc)
|
|
44
39
|
if fields = doc.__selected_fields
|
|
45
40
|
evaluated_default(doc) if included?(fields)
|
|
@@ -54,8 +49,6 @@ module Mongoid
|
|
|
54
49
|
# field.foreign_key?
|
|
55
50
|
#
|
|
56
51
|
# @return [ true, false ] If the field is a foreign key.
|
|
57
|
-
#
|
|
58
|
-
# @since 2.4.0
|
|
59
52
|
def foreign_key?
|
|
60
53
|
false
|
|
61
54
|
end
|
|
@@ -70,8 +63,6 @@ module Mongoid
|
|
|
70
63
|
# @option options [ Class ] :type The class of the field.
|
|
71
64
|
# @option options [ Object ] :default The default value for the field.
|
|
72
65
|
# @option options [ String ] :label The field's label.
|
|
73
|
-
#
|
|
74
|
-
# @since 3.0.0
|
|
75
66
|
def initialize(name, options = {})
|
|
76
67
|
@name = name
|
|
77
68
|
@options = options
|
|
@@ -92,8 +83,6 @@ module Mongoid
|
|
|
92
83
|
# field.lazy?
|
|
93
84
|
#
|
|
94
85
|
# @return [ true, false ] If the field is lazy.
|
|
95
|
-
#
|
|
96
|
-
# @since 3.1.0
|
|
97
86
|
def lazy?
|
|
98
87
|
false
|
|
99
88
|
end
|
|
@@ -104,8 +93,6 @@ module Mongoid
|
|
|
104
93
|
# field.localized?
|
|
105
94
|
#
|
|
106
95
|
# @return [ true, false ] If the field is localized.
|
|
107
|
-
#
|
|
108
|
-
# @since 2.3.0
|
|
109
96
|
def localized?
|
|
110
97
|
false
|
|
111
98
|
end
|
|
@@ -116,8 +103,6 @@ module Mongoid
|
|
|
116
103
|
# field.metadata
|
|
117
104
|
#
|
|
118
105
|
# @return [ Metadata ] The association metadata.
|
|
119
|
-
#
|
|
120
|
-
# @since 2.2.0
|
|
121
106
|
def association
|
|
122
107
|
@association ||= options[:association]
|
|
123
108
|
end
|
|
@@ -128,8 +113,6 @@ module Mongoid
|
|
|
128
113
|
# field.object_id_field?
|
|
129
114
|
#
|
|
130
115
|
# @return [ true, false ] If the field is a BSON::ObjectId.
|
|
131
|
-
#
|
|
132
|
-
# @since 2.2.0
|
|
133
116
|
def object_id_field?
|
|
134
117
|
@object_id_field ||= (type == BSON::ObjectId)
|
|
135
118
|
end
|
|
@@ -140,8 +123,6 @@ module Mongoid
|
|
|
140
123
|
# field.pre_processed?
|
|
141
124
|
#
|
|
142
125
|
# @return [ true, false ] If the field's default is pre-processed.
|
|
143
|
-
#
|
|
144
|
-
# @since 3.0.0
|
|
145
126
|
def pre_processed?
|
|
146
127
|
@pre_processed ||=
|
|
147
128
|
(options[:pre_processed] || (default_val && !default_val.is_a?(::Proc)))
|
|
@@ -153,8 +134,6 @@ module Mongoid
|
|
|
153
134
|
# field.type
|
|
154
135
|
#
|
|
155
136
|
# @return [ Class ] The name of the class.
|
|
156
|
-
#
|
|
157
|
-
# @since 2.1.0
|
|
158
137
|
def type
|
|
159
138
|
@type ||= options[:type] || Object
|
|
160
139
|
end
|
|
@@ -169,8 +148,6 @@ module Mongoid
|
|
|
169
148
|
# field.default_name
|
|
170
149
|
#
|
|
171
150
|
# @return [ String ] The method name.
|
|
172
|
-
#
|
|
173
|
-
# @since 3.0.0
|
|
174
151
|
def default_name
|
|
175
152
|
@default_name ||= "__#{name}_default__"
|
|
176
153
|
end
|
|
@@ -186,8 +163,6 @@ module Mongoid
|
|
|
186
163
|
#
|
|
187
164
|
# @param [ Class, Module ] object The class or module the field is
|
|
188
165
|
# defined on.
|
|
189
|
-
#
|
|
190
|
-
# @since 3.0.0
|
|
191
166
|
def define_default_method(object)
|
|
192
167
|
object.__send__(:define_method, default_name, default_val)
|
|
193
168
|
end
|
|
@@ -203,8 +178,6 @@ module Mongoid
|
|
|
203
178
|
# @param [ Hash ] fields The field limitations.
|
|
204
179
|
#
|
|
205
180
|
# @return [ true, false ] If the field was included.
|
|
206
|
-
#
|
|
207
|
-
# @since 2.4.4
|
|
208
181
|
def included?(fields)
|
|
209
182
|
(fields.values.first == 1 && fields[name.to_s] == 1) ||
|
|
210
183
|
(fields.values.first == 0 && !fields.has_key?(name.to_s))
|
|
@@ -218,8 +191,6 @@ module Mongoid
|
|
|
218
191
|
# @param [ Document ] doc The doc being applied to.
|
|
219
192
|
#
|
|
220
193
|
# @return [ Object ] The default value.
|
|
221
|
-
#
|
|
222
|
-
# @since 2.4.4
|
|
223
194
|
def evaluated_default(doc)
|
|
224
195
|
if default_val.respond_to?(:call)
|
|
225
196
|
evaluate_default_proc(doc)
|
|
@@ -237,8 +208,6 @@ module Mongoid
|
|
|
237
208
|
# @param [ Document ] doc The document.
|
|
238
209
|
#
|
|
239
210
|
# @return [ Object ] The called proc.
|
|
240
|
-
#
|
|
241
|
-
# @since 3.0.0
|
|
242
211
|
def evaluate_default_proc(doc)
|
|
243
212
|
serialize_default(doc.__send__(default_name))
|
|
244
213
|
end
|
|
@@ -254,8 +223,6 @@ module Mongoid
|
|
|
254
223
|
# @param [ Object ] object The default.
|
|
255
224
|
#
|
|
256
225
|
# @return [ Object ] The serialized default.
|
|
257
|
-
#
|
|
258
|
-
# @since 3.0.0
|
|
259
226
|
def serialize_default(object)
|
|
260
227
|
mongoize(object)
|
|
261
228
|
end
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
module Mongoid
|
|
5
4
|
module Fields
|
|
@@ -10,8 +9,6 @@ module Mongoid
|
|
|
10
9
|
extend self
|
|
11
10
|
|
|
12
11
|
# The warning message to give when a field is of type Symbol.
|
|
13
|
-
#
|
|
14
|
-
# @since 7.0.0
|
|
15
12
|
FIELD_TYPE_IS_SYMBOL = 'The BSON symbol type is deprecated; use String instead'.freeze
|
|
16
13
|
|
|
17
14
|
OPTIONS = [
|
|
@@ -36,8 +33,6 @@ module Mongoid
|
|
|
36
33
|
# @param [ Class ] klass The model class.
|
|
37
34
|
# @param [ Symbol ] name The field name.
|
|
38
35
|
# @param [ Hash ] options The provided options.
|
|
39
|
-
#
|
|
40
|
-
# @since 3.0.0
|
|
41
36
|
def validate(klass, name, options)
|
|
42
37
|
validate_field_name(klass, name)
|
|
43
38
|
validate_name_uniqueness(klass, name, options)
|
|
@@ -52,8 +47,6 @@ module Mongoid
|
|
|
52
47
|
# @param [ Class ] klass The model class.
|
|
53
48
|
# @param [ Symbol ] name The field name.
|
|
54
49
|
# @param [ Hash ] options The provided options.
|
|
55
|
-
#
|
|
56
|
-
# @since 6.0.0
|
|
57
50
|
def validate_relation(klass, name, options = {})
|
|
58
51
|
[name, "#{name}?".to_sym, "#{name}=".to_sym].each do |n|
|
|
59
52
|
if Mongoid.destructive_fields.include?(n)
|
|
@@ -117,8 +110,6 @@ module Mongoid
|
|
|
117
110
|
# @param [ Hash ] options The provided options.
|
|
118
111
|
#
|
|
119
112
|
# @raise [ Errors::InvalidFieldOption ] If an option is invalid.
|
|
120
|
-
#
|
|
121
|
-
# @since 3.0.0
|
|
122
113
|
def validate_options(klass, name, options)
|
|
123
114
|
options.keys.each do |option|
|
|
124
115
|
if !OPTIONS.include?(option) && !Fields.options.include?(option)
|
data/lib/mongoid/fields.rb
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
require "mongoid/fields/standard"
|
|
5
4
|
require "mongoid/fields/foreign_key"
|
|
@@ -16,8 +15,6 @@ module Mongoid
|
|
|
16
15
|
Boolean = Mongoid::Boolean
|
|
17
16
|
|
|
18
17
|
# For fields defined with symbols use the correct class.
|
|
19
|
-
#
|
|
20
|
-
# @since 4.0.0
|
|
21
18
|
TYPE_MAPPINGS = {
|
|
22
19
|
array: Array,
|
|
23
20
|
big_decimal: BigDecimal,
|
|
@@ -79,6 +76,42 @@ module Mongoid
|
|
|
79
76
|
end
|
|
80
77
|
nil
|
|
81
78
|
end
|
|
79
|
+
|
|
80
|
+
# Removes the _translations from the given field name. This is done only
|
|
81
|
+
# when there doesn't already exist a field name or relation with the
|
|
82
|
+
# same name (i.e. with the _translations suffix). This check for an
|
|
83
|
+
# existing field is done recursively
|
|
84
|
+
#
|
|
85
|
+
# @param [ String | Symbol ] name The name of the field to cleanse.
|
|
86
|
+
#
|
|
87
|
+
# @return [ Field ] The field name without _translations
|
|
88
|
+
def cleanse_localized_field_names(name)
|
|
89
|
+
name = database_field_name(name.to_s)
|
|
90
|
+
|
|
91
|
+
klass = self
|
|
92
|
+
[].tap do |res|
|
|
93
|
+
ar = name.split('.')
|
|
94
|
+
ar.each_with_index do |fn, i|
|
|
95
|
+
key = fn
|
|
96
|
+
unless klass.fields.key?(fn) || klass.relations.key?(fn)
|
|
97
|
+
if tr = fn.match(/(.*)_translations\z/)&.captures&.first
|
|
98
|
+
key = tr
|
|
99
|
+
else
|
|
100
|
+
key = fn
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
end
|
|
104
|
+
res.push(key)
|
|
105
|
+
|
|
106
|
+
if klass.fields.key?(fn)
|
|
107
|
+
res.push(ar.drop(i+1).join('.')) unless i == ar.length - 1
|
|
108
|
+
break
|
|
109
|
+
elsif klass.relations.key?(fn)
|
|
110
|
+
klass = klass.relations[key].klass
|
|
111
|
+
end
|
|
112
|
+
end
|
|
113
|
+
end.join('.')
|
|
114
|
+
end
|
|
82
115
|
end
|
|
83
116
|
|
|
84
117
|
included do
|
|
@@ -110,8 +143,6 @@ module Mongoid
|
|
|
110
143
|
# model.apply_pre_processed_defaults
|
|
111
144
|
#
|
|
112
145
|
# @return [ Array<String ] The names of the non-proc defaults.
|
|
113
|
-
#
|
|
114
|
-
# @since 2.4.0
|
|
115
146
|
def apply_pre_processed_defaults
|
|
116
147
|
pre_processed_defaults.each do |name|
|
|
117
148
|
apply_default(name)
|
|
@@ -124,8 +155,6 @@ module Mongoid
|
|
|
124
155
|
# model.apply_post_processed_defaults
|
|
125
156
|
#
|
|
126
157
|
# @return [ Array<String ] The names of the proc defaults.
|
|
127
|
-
#
|
|
128
|
-
# @since 2.4.0
|
|
129
158
|
def apply_post_processed_defaults
|
|
130
159
|
post_processed_defaults.each do |name|
|
|
131
160
|
apply_default(name)
|
|
@@ -138,8 +167,6 @@ module Mongoid
|
|
|
138
167
|
# model.apply_default("name")
|
|
139
168
|
#
|
|
140
169
|
# @param [ String ] name The name of the field.
|
|
141
|
-
#
|
|
142
|
-
# @since 2.4.0
|
|
143
170
|
def apply_default(name)
|
|
144
171
|
unless attributes.key?(name)
|
|
145
172
|
if field = fields[name]
|
|
@@ -156,8 +183,6 @@ module Mongoid
|
|
|
156
183
|
#
|
|
157
184
|
# @example Apply all the defaults.
|
|
158
185
|
# model.apply_defaults
|
|
159
|
-
#
|
|
160
|
-
# @since 2.4.0
|
|
161
186
|
def apply_defaults
|
|
162
187
|
apply_pre_processed_defaults
|
|
163
188
|
apply_post_processed_defaults
|
|
@@ -169,11 +194,9 @@ module Mongoid
|
|
|
169
194
|
# method to automatically wrap params in JSON requests.
|
|
170
195
|
#
|
|
171
196
|
# @example Get the field names
|
|
172
|
-
#
|
|
197
|
+
# document.attribute_names
|
|
173
198
|
#
|
|
174
199
|
# @return [ Array<String> ] The field names
|
|
175
|
-
#
|
|
176
|
-
# @since 3.0.0
|
|
177
200
|
def attribute_names
|
|
178
201
|
self.class.attribute_names
|
|
179
202
|
end
|
|
@@ -187,8 +210,6 @@ module Mongoid
|
|
|
187
210
|
# @param [ String, Symbol ] name The name to get.
|
|
188
211
|
#
|
|
189
212
|
# @return [ String ] The name of the field as it's stored in the db.
|
|
190
|
-
#
|
|
191
|
-
# @since 3.0.7
|
|
192
213
|
def database_field_name(name)
|
|
193
214
|
self.class.database_field_name(name)
|
|
194
215
|
end
|
|
@@ -202,8 +223,6 @@ module Mongoid
|
|
|
202
223
|
# @param [ Object ] value The current value.
|
|
203
224
|
#
|
|
204
225
|
# @return [ true, false ] If we set the field lazily.
|
|
205
|
-
#
|
|
206
|
-
# @since 3.1.0
|
|
207
226
|
def lazy_settable?(field, value)
|
|
208
227
|
!frozen? && value.nil? && field.lazy?
|
|
209
228
|
end
|
|
@@ -225,7 +244,7 @@ module Mongoid
|
|
|
225
244
|
# Stores the provided block to be run when the option name specified is
|
|
226
245
|
# defined on a field.
|
|
227
246
|
#
|
|
228
|
-
# No assumptions are made about what
|
|
247
|
+
# No assumptions are made about what functionality the handler might
|
|
229
248
|
# perform, so it will always be called if the `option_name` key is
|
|
230
249
|
# provided in the field definition -- even if it is false or nil.
|
|
231
250
|
#
|
|
@@ -237,8 +256,6 @@ module Mongoid
|
|
|
237
256
|
# @param [ Symbol ] option_name the option name to match against
|
|
238
257
|
# @param [ Proc ] block the handler to execute when the option is
|
|
239
258
|
# provided.
|
|
240
|
-
#
|
|
241
|
-
# @since 2.1.0
|
|
242
259
|
def option(option_name, &block)
|
|
243
260
|
options[option_name] = block
|
|
244
261
|
end
|
|
@@ -250,8 +267,6 @@ module Mongoid
|
|
|
250
267
|
# # => { :required => #<Proc:0x00000100976b38> }
|
|
251
268
|
#
|
|
252
269
|
# @return [ Hash ] the option map
|
|
253
|
-
#
|
|
254
|
-
# @since 2.1.0
|
|
255
270
|
def options
|
|
256
271
|
@options ||= {}
|
|
257
272
|
end
|
|
@@ -268,27 +283,43 @@ module Mongoid
|
|
|
268
283
|
# Model.attribute_names
|
|
269
284
|
#
|
|
270
285
|
# @return [ Array<String> ] The field names
|
|
271
|
-
#
|
|
272
|
-
# @since 3.0.0
|
|
273
286
|
def attribute_names
|
|
274
287
|
fields.keys
|
|
275
288
|
end
|
|
276
289
|
|
|
277
290
|
# Get the name of the provided field as it is stored in the database.
|
|
278
|
-
# Used in determining if the field is aliased or not.
|
|
291
|
+
# Used in determining if the field is aliased or not. Recursively
|
|
292
|
+
# finds aliases for embedded documents and fields, delimited with
|
|
293
|
+
# period "." character.
|
|
279
294
|
#
|
|
280
|
-
# @example Get the database field name.
|
|
295
|
+
# @example Get the database field name of a field.
|
|
281
296
|
# Model.database_field_name(:authorization)
|
|
282
297
|
#
|
|
283
|
-
# @
|
|
298
|
+
# @example Get the database field name of an embedded field.
|
|
299
|
+
# Model.database_field_name('customers.addresses.city')
|
|
284
300
|
#
|
|
285
|
-
# @
|
|
301
|
+
# @param [ String, Symbol ] name The name to get.
|
|
286
302
|
#
|
|
287
|
-
# @
|
|
303
|
+
# @return [ String ] The name of the field as stored in the database.
|
|
288
304
|
def database_field_name(name)
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
305
|
+
if Mongoid.broken_alias_handling
|
|
306
|
+
return nil unless name
|
|
307
|
+
normalized = name.to_s
|
|
308
|
+
aliased_fields[normalized] || normalized
|
|
309
|
+
else
|
|
310
|
+
return nil unless name.present?
|
|
311
|
+
key = name.to_s
|
|
312
|
+
segment, remaining = key.split('.', 2)
|
|
313
|
+
segment = aliased_fields[segment]&.dup || segment
|
|
314
|
+
return segment unless remaining
|
|
315
|
+
|
|
316
|
+
relation = relations[aliased_associations[segment] || segment]
|
|
317
|
+
if relation
|
|
318
|
+
"#{segment}.#{relation.klass.database_field_name(remaining)}"
|
|
319
|
+
else
|
|
320
|
+
"#{segment}.#{remaining}"
|
|
321
|
+
end
|
|
322
|
+
end
|
|
292
323
|
end
|
|
293
324
|
|
|
294
325
|
# Defines all the fields that are accessible on the Document
|
|
@@ -325,8 +356,6 @@ module Mongoid
|
|
|
325
356
|
# @param [ Class ] type The new type of field.
|
|
326
357
|
#
|
|
327
358
|
# @return [ Serializable ] The new field.
|
|
328
|
-
#
|
|
329
|
-
# @since 2.1.0
|
|
330
359
|
def replace_field(name, type)
|
|
331
360
|
remove_defaults(name)
|
|
332
361
|
add_field(name, fields[name].options.merge(type: type))
|
|
@@ -339,8 +368,6 @@ module Mongoid
|
|
|
339
368
|
# person.using_object_ids?
|
|
340
369
|
#
|
|
341
370
|
# @return [ true, false ] If the class uses BSON::ObjectIds for the id.
|
|
342
|
-
#
|
|
343
|
-
# @since 1.0.0
|
|
344
371
|
def using_object_ids?
|
|
345
372
|
fields["_id"].object_id_field?
|
|
346
373
|
end
|
|
@@ -354,8 +381,6 @@ module Mongoid
|
|
|
354
381
|
# Model.add_defaults(field)
|
|
355
382
|
#
|
|
356
383
|
# @param [ Field ] field The field to add for.
|
|
357
|
-
#
|
|
358
|
-
# @since 2.4.0
|
|
359
384
|
def add_defaults(field)
|
|
360
385
|
default, name = field.default_val, field.name.to_s
|
|
361
386
|
remove_defaults(name)
|
|
@@ -424,8 +449,6 @@ module Mongoid
|
|
|
424
449
|
# @param [ Symbol ] name The name of the field.
|
|
425
450
|
# @param [ Symbol ] meth The name of the accessor.
|
|
426
451
|
# @param [ Hash ] options The options.
|
|
427
|
-
#
|
|
428
|
-
# @since 2.0.0
|
|
429
452
|
def create_accessors(name, meth, options = {})
|
|
430
453
|
field = fields[name]
|
|
431
454
|
|
|
@@ -449,8 +472,6 @@ module Mongoid
|
|
|
449
472
|
# @param [ String ] name The name of the attribute.
|
|
450
473
|
# @param [ String ] meth The name of the method.
|
|
451
474
|
# @param [ Field ] field The field.
|
|
452
|
-
#
|
|
453
|
-
# @since 2.4.0
|
|
454
475
|
def create_field_getter(name, meth, field)
|
|
455
476
|
generated_methods.module_eval do
|
|
456
477
|
re_define_method(meth) do
|
|
@@ -475,8 +496,6 @@ module Mongoid
|
|
|
475
496
|
#
|
|
476
497
|
# @param [ String ] name The name of the attribute.
|
|
477
498
|
# @param [ String ] meth The name of the method.
|
|
478
|
-
#
|
|
479
|
-
# @since 3.1.0
|
|
480
499
|
def create_field_getter_before_type_cast(name, meth)
|
|
481
500
|
generated_methods.module_eval do
|
|
482
501
|
re_define_method("#{meth}_before_type_cast") do
|
|
@@ -497,8 +516,6 @@ module Mongoid
|
|
|
497
516
|
# @param [ String ] name The name of the attribute.
|
|
498
517
|
# @param [ String ] meth The name of the method.
|
|
499
518
|
# @param [ Field ] field The field.
|
|
500
|
-
#
|
|
501
|
-
# @since 2.4.0
|
|
502
519
|
def create_field_setter(name, meth, field)
|
|
503
520
|
generated_methods.module_eval do
|
|
504
521
|
re_define_method("#{meth}=") do |value|
|
|
@@ -518,8 +535,6 @@ module Mongoid
|
|
|
518
535
|
#
|
|
519
536
|
# @param [ String ] name The name of the attribute.
|
|
520
537
|
# @param [ String ] meth The name of the method.
|
|
521
|
-
#
|
|
522
|
-
# @since 2.4.0
|
|
523
538
|
def create_field_check(name, meth)
|
|
524
539
|
generated_methods.module_eval do
|
|
525
540
|
re_define_method("#{meth}?") do
|
|
@@ -536,8 +551,6 @@ module Mongoid
|
|
|
536
551
|
#
|
|
537
552
|
# @param [ String ] name The name of the attribute.
|
|
538
553
|
# @param [ String ] meth The name of the method.
|
|
539
|
-
#
|
|
540
|
-
# @since 2.4.0
|
|
541
554
|
def create_translations_getter(name, meth)
|
|
542
555
|
generated_methods.module_eval do
|
|
543
556
|
re_define_method("#{meth}_translations") do
|
|
@@ -556,8 +569,6 @@ module Mongoid
|
|
|
556
569
|
# @param [ String ] name The name of the attribute.
|
|
557
570
|
# @param [ String ] meth The name of the method.
|
|
558
571
|
# @param [ Field ] field The field.
|
|
559
|
-
#
|
|
560
|
-
# @since 2.4.0
|
|
561
572
|
def create_translations_setter(name, meth, field)
|
|
562
573
|
generated_methods.module_eval do
|
|
563
574
|
re_define_method("#{meth}_translations=") do |value|
|
|
@@ -579,8 +590,6 @@ module Mongoid
|
|
|
579
590
|
# Person.generated_methods
|
|
580
591
|
#
|
|
581
592
|
# @return [ Module ] The module of generated methods.
|
|
582
|
-
#
|
|
583
|
-
# @since 2.0.0
|
|
584
593
|
def generated_methods
|
|
585
594
|
@generated_methods ||= begin
|
|
586
595
|
mod = Module.new
|
|
@@ -595,8 +604,6 @@ module Mongoid
|
|
|
595
604
|
# Model.remove_defaults(name)
|
|
596
605
|
#
|
|
597
606
|
# @param [ String ] name The field name.
|
|
598
|
-
#
|
|
599
|
-
# @since 2.4.0
|
|
600
607
|
def remove_defaults(name)
|
|
601
608
|
pre_processed_defaults.delete_one(name)
|
|
602
609
|
post_processed_defaults.delete_one(name)
|
data/lib/mongoid/findable.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 defines the finder methods that hang off the document at the
|
|
7
6
|
# class level.
|
|
8
|
-
#
|
|
9
|
-
# @since 4.0.0
|
|
10
7
|
module Findable
|
|
11
8
|
extend Forwardable
|
|
12
9
|
|
|
@@ -149,8 +146,6 @@ module Mongoid
|
|
|
149
146
|
# and Mongoid.raise_not_found_error is true.
|
|
150
147
|
#
|
|
151
148
|
# @return [ Document, nil ] A matching document.
|
|
152
|
-
#
|
|
153
|
-
# @since 3.0.0
|
|
154
149
|
def find_by(attrs = {})
|
|
155
150
|
result = where(attrs).find_first
|
|
156
151
|
if result.nil? && Mongoid.raise_not_found_error
|