mongoid 9.0.11 → 9.1.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
- data/CHANGELOG.md +8 -8
- data/README.md +5 -11
- data/Rakefile +35 -38
- data/lib/config/locales/en.yml +11 -0
- data/lib/mongoid/association/accessors.rb +19 -26
- data/lib/mongoid/association/bindable.rb +43 -45
- data/lib/mongoid/association/builders.rb +18 -15
- data/lib/mongoid/association/constrainable.rb +3 -5
- data/lib/mongoid/association/depending.rb +34 -38
- data/lib/mongoid/association/eager.rb +47 -13
- data/lib/mongoid/association/eager_loadable.rb +152 -24
- data/lib/mongoid/association/embedded/batchable.rb +28 -30
- data/lib/mongoid/association/embedded/cyclic.rb +8 -11
- data/lib/mongoid/association/embedded/eager.rb +1 -6
- data/lib/mongoid/association/embedded/embedded_in/binding.rb +6 -9
- data/lib/mongoid/association/embedded/embedded_in/buildable.rb +2 -3
- data/lib/mongoid/association/embedded/embedded_in/proxy.rb +2 -0
- data/lib/mongoid/association/embedded/embedded_in.rb +25 -22
- data/lib/mongoid/association/embedded/embeds_many/binding.rb +0 -2
- data/lib/mongoid/association/embedded/embeds_many/buildable.rb +2 -3
- data/lib/mongoid/association/embedded/embeds_many/proxy.rb +1 -1
- data/lib/mongoid/association/embedded/embeds_many.rb +24 -21
- data/lib/mongoid/association/embedded/embeds_one/binding.rb +0 -2
- data/lib/mongoid/association/embedded/embeds_one/buildable.rb +2 -6
- data/lib/mongoid/association/embedded/embeds_one.rb +20 -18
- data/lib/mongoid/association/embedded.rb +0 -1
- data/lib/mongoid/association/macros.rb +3 -7
- data/lib/mongoid/association/many.rb +75 -3
- data/lib/mongoid/association/marshalable.rb +0 -3
- data/lib/mongoid/association/nested/many.rb +18 -13
- data/lib/mongoid/association/nested/nested_buildable.rb +6 -9
- data/lib/mongoid/association/nested/one.rb +4 -7
- data/lib/mongoid/association/nested.rb +1 -3
- data/lib/mongoid/association/one.rb +0 -3
- data/lib/mongoid/association/options.rb +8 -7
- data/lib/mongoid/association/referenced/auto_save.rb +0 -2
- data/lib/mongoid/association/referenced/belongs_to/binding.rb +11 -15
- data/lib/mongoid/association/referenced/belongs_to/buildable.rb +23 -5
- data/lib/mongoid/association/referenced/belongs_to/eager.rb +1 -3
- data/lib/mongoid/association/referenced/belongs_to.rb +48 -43
- data/lib/mongoid/association/referenced/counter_cache.rb +5 -10
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/binding.rb +0 -2
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/buildable.rb +8 -4
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/eager.rb +0 -3
- data/lib/mongoid/association/referenced/has_and_belongs_to_many.rb +52 -47
- data/lib/mongoid/association/referenced/has_many/binding.rb +0 -2
- data/lib/mongoid/association/referenced/has_many/buildable.rb +11 -5
- data/lib/mongoid/association/referenced/has_many/eager.rb +0 -3
- data/lib/mongoid/association/referenced/has_many/enumerable.rb +107 -38
- data/lib/mongoid/association/referenced/has_many/proxy.rb +10 -6
- data/lib/mongoid/association/referenced/has_many.rb +30 -24
- data/lib/mongoid/association/referenced/has_one/binding.rb +0 -2
- data/lib/mongoid/association/referenced/has_one/buildable.rb +11 -9
- data/lib/mongoid/association/referenced/has_one/eager.rb +0 -3
- data/lib/mongoid/association/referenced/has_one.rb +26 -21
- data/lib/mongoid/association/referenced/syncable.rb +30 -34
- data/lib/mongoid/association/referenced.rb +0 -1
- data/lib/mongoid/association/reflections.rb +0 -3
- data/lib/mongoid/association/relatable.rb +69 -66
- data/lib/mongoid/association.rb +12 -15
- data/lib/mongoid/atomic/modifiers.rb +65 -25
- data/lib/mongoid/atomic/paths/embedded/many.rb +4 -7
- data/lib/mongoid/atomic/paths/embedded/one.rb +2 -4
- data/lib/mongoid/atomic/paths/embedded.rb +3 -6
- data/lib/mongoid/atomic/paths/root.rb +1 -4
- data/lib/mongoid/atomic/paths.rb +2 -3
- data/lib/mongoid/atomic.rb +0 -3
- data/lib/mongoid/attributes/dynamic.rb +6 -7
- data/lib/mongoid/attributes/nested.rb +8 -10
- data/lib/mongoid/attributes/projector.rb +7 -20
- data/lib/mongoid/attributes/readonly.rb +6 -11
- data/lib/mongoid/attributes.rb +18 -34
- data/lib/mongoid/cacheable.rb +24 -6
- data/lib/mongoid/clients/factory.rb +12 -15
- data/lib/mongoid/clients/options.rb +2 -5
- data/lib/mongoid/clients/sessions.rb +50 -60
- data/lib/mongoid/clients/storage_options.rb +1 -4
- data/lib/mongoid/clients/validators/storage.rb +2 -3
- data/lib/mongoid/clients/validators.rb +1 -2
- data/lib/mongoid/clients.rb +8 -11
- data/lib/mongoid/collection_configurable.rb +10 -14
- data/lib/mongoid/composable.rb +30 -34
- data/lib/mongoid/config/defaults.rb +7 -4
- data/lib/mongoid/config/encryption.rb +1 -3
- data/lib/mongoid/config/environment.rb +7 -16
- data/lib/mongoid/config/introspection.rb +14 -16
- data/lib/mongoid/config/options.rb +16 -10
- data/lib/mongoid/config/validators/async_query_executor.rb +3 -6
- data/lib/mongoid/config/validators/client.rb +12 -15
- data/lib/mongoid/config/validators/option.rb +3 -5
- data/lib/mongoid/config/validators.rb +3 -4
- data/lib/mongoid/config.rb +132 -42
- data/lib/mongoid/contextual/aggregable/memory.rb +2 -4
- data/lib/mongoid/contextual/aggregable/mongo.rb +20 -22
- data/lib/mongoid/contextual/aggregable/none.rb +2 -4
- data/lib/mongoid/contextual/aggregable.rb +5 -7
- data/lib/mongoid/contextual/atomic.rb +20 -24
- data/lib/mongoid/contextual/command.rb +0 -3
- data/lib/mongoid/contextual/map_reduce.rb +12 -16
- data/lib/mongoid/contextual/memory.rb +72 -65
- data/lib/mongoid/contextual/mongo/documents_loader.rb +2 -3
- data/lib/mongoid/contextual/mongo.rb +169 -85
- data/lib/mongoid/contextual/none.rb +9 -9
- data/lib/mongoid/contextual/queryable.rb +1 -4
- data/lib/mongoid/contextual.rb +18 -7
- data/lib/mongoid/copyable.rb +7 -9
- data/lib/mongoid/criteria/findable.rb +5 -7
- data/lib/mongoid/criteria/includable.rb +37 -8
- data/lib/mongoid/criteria/inspectable.rb +2 -5
- data/lib/mongoid/criteria/marshalable.rb +4 -8
- data/lib/mongoid/criteria/modifiable.rb +3 -11
- data/lib/mongoid/criteria/options.rb +0 -3
- data/lib/mongoid/criteria/permission.rb +34 -37
- data/lib/mongoid/criteria/queryable/aggregable.rb +9 -10
- data/lib/mongoid/criteria/queryable/expandable.rb +4 -9
- data/lib/mongoid/criteria/queryable/extensions/array.rb +7 -10
- data/lib/mongoid/criteria/queryable/extensions/big_decimal.rb +3 -5
- data/lib/mongoid/criteria/queryable/extensions/boolean.rb +1 -4
- data/lib/mongoid/criteria/queryable/extensions/date.rb +2 -6
- data/lib/mongoid/criteria/queryable/extensions/date_time.rb +3 -7
- data/lib/mongoid/criteria/queryable/extensions/hash.rb +1 -4
- data/lib/mongoid/criteria/queryable/extensions/nil_class.rb +20 -11
- data/lib/mongoid/criteria/queryable/extensions/numeric.rb +15 -11
- data/lib/mongoid/criteria/queryable/extensions/object.rb +7 -8
- data/lib/mongoid/criteria/queryable/extensions/range.rb +6 -9
- data/lib/mongoid/criteria/queryable/extensions/regexp.rb +10 -12
- data/lib/mongoid/criteria/queryable/extensions/set.rb +4 -6
- data/lib/mongoid/criteria/queryable/extensions/string.rb +5 -9
- data/lib/mongoid/criteria/queryable/extensions/symbol.rb +3 -7
- data/lib/mongoid/criteria/queryable/extensions/time.rb +2 -6
- data/lib/mongoid/criteria/queryable/extensions/time_with_zone.rb +2 -12
- data/lib/mongoid/criteria/queryable/extensions.rb +18 -21
- data/lib/mongoid/criteria/queryable/key.rb +12 -18
- data/lib/mongoid/criteria/queryable/macroable.rb +0 -3
- data/lib/mongoid/criteria/queryable/mergeable.rb +31 -39
- data/lib/mongoid/criteria/queryable/optional.rb +17 -18
- data/lib/mongoid/criteria/queryable/options.rb +20 -9
- data/lib/mongoid/criteria/queryable/pipeline.rb +6 -9
- data/lib/mongoid/criteria/queryable/selectable.rb +131 -193
- data/lib/mongoid/criteria/queryable/selector.rb +20 -29
- data/lib/mongoid/criteria/queryable/smash.rb +1 -6
- data/lib/mongoid/criteria/queryable/storable.rb +20 -39
- data/lib/mongoid/criteria/queryable.rb +25 -15
- data/lib/mongoid/criteria/scopable.rb +5 -11
- data/lib/mongoid/criteria/translator.rb +5 -8
- data/lib/mongoid/criteria.rb +109 -54
- data/lib/mongoid/deprecable.rb +1 -4
- data/lib/mongoid/deprecation.rb +2 -6
- data/lib/mongoid/document.rb +1 -1
- data/lib/mongoid/encryptable.rb +1 -2
- data/lib/mongoid/equality.rb +4 -5
- data/lib/mongoid/errors/ambiguous_relationship.rb +2 -5
- data/lib/mongoid/errors/attribute_not_loaded.rb +1 -4
- data/lib/mongoid/errors/callback.rb +1 -4
- data/lib/mongoid/errors/create_collection_failure.rb +8 -11
- data/lib/mongoid/errors/criteria_argument_required.rb +2 -5
- data/lib/mongoid/errors/delete_restriction.rb +1 -4
- data/lib/mongoid/errors/document_not_destroyed.rb +1 -4
- data/lib/mongoid/errors/document_not_found.rb +16 -21
- data/lib/mongoid/errors/drop_collection_failure.rb +7 -10
- data/lib/mongoid/errors/empty_config_file.rb +1 -4
- data/lib/mongoid/errors/immutable_attribute.rb +1 -4
- data/lib/mongoid/errors/in_memory_collation_not_supported.rb +1 -4
- data/lib/mongoid/errors/invalid_async_query_executor.rb +2 -5
- data/lib/mongoid/errors/invalid_auto_encryption_configuration.rb +2 -5
- data/lib/mongoid/errors/invalid_collection.rb +1 -3
- data/lib/mongoid/errors/invalid_config_file.rb +1 -4
- data/lib/mongoid/errors/invalid_config_option.rb +2 -5
- data/lib/mongoid/errors/invalid_dependent_strategy.rb +6 -10
- data/lib/mongoid/errors/invalid_discriminator_key_target.rb +2 -4
- data/lib/mongoid/errors/invalid_dot_dollar_assignment.rb +1 -4
- data/lib/mongoid/errors/invalid_elem_match_operator.rb +5 -9
- data/lib/mongoid/errors/invalid_estimated_count_criteria.rb +1 -4
- data/lib/mongoid/errors/invalid_estimated_count_scoping.rb +1 -4
- data/lib/mongoid/errors/invalid_expression_operator.rb +3 -7
- data/lib/mongoid/errors/invalid_field.rb +2 -5
- data/lib/mongoid/errors/invalid_field_operator.rb +5 -9
- data/lib/mongoid/errors/invalid_field_option.rb +2 -5
- data/lib/mongoid/errors/invalid_field_type.rb +1 -4
- data/lib/mongoid/errors/invalid_find.rb +1 -4
- data/lib/mongoid/errors/invalid_global_executor_concurrency.rb +1 -4
- data/lib/mongoid/errors/invalid_includes.rb +3 -6
- data/lib/mongoid/errors/invalid_index.rb +1 -4
- data/lib/mongoid/errors/invalid_options.rb +1 -4
- data/lib/mongoid/errors/invalid_path.rb +1 -4
- data/lib/mongoid/errors/invalid_persistence_option.rb +4 -7
- data/lib/mongoid/errors/invalid_query.rb +6 -11
- data/lib/mongoid/errors/invalid_relation.rb +10 -13
- data/lib/mongoid/errors/invalid_relation_option.rb +4 -7
- data/lib/mongoid/errors/invalid_scope.rb +1 -4
- data/lib/mongoid/errors/invalid_session_nesting.rb +0 -3
- data/lib/mongoid/errors/invalid_set_polymorphic_relation.rb +2 -4
- data/lib/mongoid/errors/invalid_storage_options.rb +1 -4
- data/lib/mongoid/errors/invalid_time.rb +1 -4
- data/lib/mongoid/errors/invalid_transaction_nesting.rb +0 -3
- data/lib/mongoid/errors/inverse_not_found.rb +1 -4
- data/lib/mongoid/errors/mixed_client_configuration.rb +1 -4
- data/lib/mongoid/errors/mixed_relations.rb +1 -3
- data/lib/mongoid/errors/mongoid_error.rb +7 -11
- data/lib/mongoid/errors/nested_attributes_metadata_not_found.rb +1 -4
- data/lib/mongoid/errors/no_client_config.rb +1 -4
- data/lib/mongoid/errors/no_client_database.rb +1 -4
- data/lib/mongoid/errors/no_client_hosts.rb +1 -4
- data/lib/mongoid/errors/no_clients_config.rb +1 -4
- data/lib/mongoid/errors/no_default_client.rb +1 -4
- data/lib/mongoid/errors/no_environment.rb +1 -4
- data/lib/mongoid/errors/no_map_reduce_output.rb +1 -4
- data/lib/mongoid/errors/no_metadata.rb +1 -4
- data/lib/mongoid/errors/no_parent.rb +1 -4
- data/lib/mongoid/errors/readonly_attribute.rb +1 -4
- data/lib/mongoid/errors/readonly_document.rb +1 -4
- data/lib/mongoid/errors/rollback.rb +0 -2
- data/lib/mongoid/errors/scope_overwrite.rb +2 -4
- data/lib/mongoid/errors/sessions_not_supported.rb +0 -3
- data/lib/mongoid/errors/too_many_nested_attribute_records.rb +1 -3
- data/lib/mongoid/errors/transaction_error.rb +0 -3
- data/lib/mongoid/errors/transactions_not_supported.rb +0 -3
- data/lib/mongoid/errors/unknown_attribute.rb +1 -4
- data/lib/mongoid/errors/unknown_model.rb +1 -4
- data/lib/mongoid/errors/unregistered_class.rb +1 -1
- data/lib/mongoid/errors/unsaved_document.rb +1 -3
- data/lib/mongoid/errors/unsupported_isolation_level.rb +22 -0
- data/lib/mongoid/errors/unsupported_javascript.rb +1 -4
- data/lib/mongoid/errors/validations.rb +3 -5
- data/lib/mongoid/errors.rb +72 -72
- data/lib/mongoid/evolvable.rb +0 -3
- data/lib/mongoid/extensions/array.rb +5 -7
- data/lib/mongoid/extensions/big_decimal.rb +6 -7
- data/lib/mongoid/extensions/binary.rb +3 -6
- data/lib/mongoid/extensions/boolean.rb +4 -7
- data/lib/mongoid/extensions/bson_document.rb +28 -0
- data/lib/mongoid/extensions/date.rb +10 -14
- data/lib/mongoid/extensions/date_time.rb +2 -6
- data/lib/mongoid/extensions/decimal128.rb +1 -5
- data/lib/mongoid/extensions/false_class.rb +3 -5
- data/lib/mongoid/extensions/float.rb +5 -10
- data/lib/mongoid/extensions/hash.rb +5 -10
- data/lib/mongoid/extensions/integer.rb +5 -10
- data/lib/mongoid/extensions/module.rb +1 -4
- data/lib/mongoid/extensions/nil_class.rb +0 -1
- data/lib/mongoid/extensions/object.rb +9 -14
- data/lib/mongoid/extensions/object_id.rb +2 -6
- data/lib/mongoid/extensions/range.rb +14 -15
- data/lib/mongoid/extensions/raw_value.rb +0 -3
- data/lib/mongoid/extensions/regexp.rb +3 -6
- data/lib/mongoid/extensions/set.rb +3 -4
- data/lib/mongoid/extensions/string.rb +8 -12
- data/lib/mongoid/extensions/symbol.rb +3 -7
- data/lib/mongoid/extensions/time.rb +24 -26
- data/lib/mongoid/extensions/time_with_zone.rb +4 -7
- data/lib/mongoid/extensions/true_class.rb +3 -5
- data/lib/mongoid/extensions.rb +26 -26
- data/lib/mongoid/factory.rb +5 -9
- data/lib/mongoid/fields/encrypted.rb +0 -1
- data/lib/mongoid/fields/foreign_key.rb +9 -10
- data/lib/mongoid/fields/localized.rb +12 -12
- data/lib/mongoid/fields/standard.rb +5 -7
- data/lib/mongoid/fields/validators/macro.rb +23 -34
- data/lib/mongoid/fields/validators.rb +1 -2
- data/lib/mongoid/fields.rb +151 -58
- data/lib/mongoid/findable.rb +82 -53
- data/lib/mongoid/indexable/specification.rb +20 -6
- data/lib/mongoid/indexable/validators/options.rb +33 -40
- data/lib/mongoid/indexable.rb +26 -25
- data/lib/mongoid/inspectable.rb +4 -7
- data/lib/mongoid/interceptable.rb +41 -40
- data/lib/mongoid/loadable.rb +17 -18
- data/lib/mongoid/loggable.rb +4 -8
- data/lib/mongoid/matchable.rb +0 -2
- data/lib/mongoid/matcher/all.rb +2 -5
- data/lib/mongoid/matcher/and.rb +0 -3
- data/lib/mongoid/matcher/bits.rb +13 -8
- data/lib/mongoid/matcher/bits_all_clear.rb +1 -3
- data/lib/mongoid/matcher/bits_all_set.rb +1 -3
- data/lib/mongoid/matcher/bits_any_clear.rb +1 -3
- data/lib/mongoid/matcher/bits_any_set.rb +1 -3
- data/lib/mongoid/matcher/elem_match.rb +13 -15
- data/lib/mongoid/matcher/elem_match_expression.rb +0 -3
- data/lib/mongoid/matcher/eq.rb +0 -3
- data/lib/mongoid/matcher/eq_impl.rb +12 -17
- data/lib/mongoid/matcher/eq_impl_with_regexp.rb +4 -7
- data/lib/mongoid/matcher/exists.rb +1 -4
- data/lib/mongoid/matcher/expression.rb +5 -10
- data/lib/mongoid/matcher/expression_operator.rb +1 -3
- data/lib/mongoid/matcher/field_expression.rb +10 -13
- data/lib/mongoid/matcher/field_operator.rb +4 -6
- data/lib/mongoid/matcher/gt.rb +0 -3
- data/lib/mongoid/matcher/gte.rb +0 -3
- data/lib/mongoid/matcher/in.rb +9 -12
- data/lib/mongoid/matcher/lt.rb +0 -3
- data/lib/mongoid/matcher/lte.rb +0 -3
- data/lib/mongoid/matcher/mod.rb +4 -8
- data/lib/mongoid/matcher/ne.rb +0 -3
- data/lib/mongoid/matcher/nin.rb +0 -3
- data/lib/mongoid/matcher/nor.rb +1 -6
- data/lib/mongoid/matcher/not.rb +0 -3
- data/lib/mongoid/matcher/or.rb +0 -3
- data/lib/mongoid/matcher/regex.rb +11 -14
- data/lib/mongoid/matcher/size.rb +2 -5
- data/lib/mongoid/matcher/type.rb +32 -37
- data/lib/mongoid/matcher.rb +7 -15
- data/lib/mongoid/model_resolver.rb +1 -0
- data/lib/mongoid/persistable/creatable.rb +23 -7
- data/lib/mongoid/persistable/deletable.rb +6 -7
- data/lib/mongoid/persistable/destroyable.rb +2 -6
- data/lib/mongoid/persistable/incrementable.rb +1 -3
- data/lib/mongoid/persistable/logical.rb +3 -5
- data/lib/mongoid/persistable/maxable.rb +2 -4
- data/lib/mongoid/persistable/minable.rb +2 -4
- data/lib/mongoid/persistable/multipliable.rb +1 -3
- data/lib/mongoid/persistable/poppable.rb +2 -4
- data/lib/mongoid/persistable/pullable.rb +3 -5
- data/lib/mongoid/persistable/pushable.rb +5 -7
- data/lib/mongoid/persistable/renamable.rb +1 -3
- data/lib/mongoid/persistable/savable.rb +0 -3
- data/lib/mongoid/persistable/settable.rb +4 -13
- data/lib/mongoid/persistable/unsettable.rb +1 -3
- data/lib/mongoid/persistable/updatable.rb +16 -24
- data/lib/mongoid/persistable/upsertable.rb +8 -10
- data/lib/mongoid/persistable.rb +28 -27
- data/lib/mongoid/persistence_context.rb +34 -41
- data/lib/mongoid/pluckable.rb +0 -2
- data/lib/mongoid/positional.rb +5 -11
- data/lib/mongoid/railtie.rb +16 -22
- data/lib/mongoid/railties/console_sandbox.rb +6 -8
- data/lib/mongoid/railties/controller_runtime.rb +7 -11
- data/lib/mongoid/railties/database.rake +42 -44
- data/lib/mongoid/scopable.rb +23 -31
- data/lib/mongoid/search_indexable.rb +330 -0
- data/lib/mongoid/selectable.rb +1 -3
- data/lib/mongoid/serializable.rb +6 -8
- data/lib/mongoid/shardable.rb +8 -17
- data/lib/mongoid/stateful.rb +5 -10
- data/lib/mongoid/stringified_symbol.rb +5 -9
- data/lib/mongoid/tasks/database.rake +31 -32
- data/lib/mongoid/tasks/database.rb +28 -30
- data/lib/mongoid/tasks/encryption.rb +10 -15
- data/lib/mongoid/threaded/lifecycle.rb +6 -9
- data/lib/mongoid/threaded.rb +132 -32
- data/lib/mongoid/timestamps/created/short.rb +2 -3
- data/lib/mongoid/timestamps/created.rb +1 -2
- data/lib/mongoid/timestamps/short.rb +0 -1
- data/lib/mongoid/timestamps/timeless.rb +8 -13
- data/lib/mongoid/timestamps/updated/short.rb +2 -3
- data/lib/mongoid/timestamps/updated.rb +2 -5
- data/lib/mongoid/timestamps.rb +4 -6
- data/lib/mongoid/touchable.rb +19 -11
- data/lib/mongoid/traversable.rb +3 -2
- data/lib/mongoid/validatable/associated.rb +1 -5
- data/lib/mongoid/validatable/format.rb +0 -2
- data/lib/mongoid/validatable/length.rb +0 -2
- data/lib/mongoid/validatable/localizable.rb +0 -3
- data/lib/mongoid/validatable/macros.rb +0 -2
- data/lib/mongoid/validatable/numericality.rb +24 -3
- data/lib/mongoid/validatable/presence.rb +8 -10
- data/lib/mongoid/validatable/queryable.rb +0 -3
- data/lib/mongoid/validatable/uniqueness.rb +12 -14
- data/lib/mongoid/validatable.rb +15 -20
- data/lib/mongoid/version.rb +1 -1
- data/lib/mongoid/warnings.rb +10 -11
- data/lib/mongoid.rb +30 -34
- data/lib/rails/generators/mongoid/config/config_generator.rb +2 -4
- data/lib/rails/generators/mongoid/config/templates/mongoid.rb +4 -5
- data/lib/rails/generators/mongoid/config/templates/mongoid.yml +2 -2
- data/lib/rails/generators/mongoid/model/model_generator.rb +5 -8
- data/lib/rails/generators/mongoid_generator.rb +6 -10
- data/lib/rails/mongoid.rb +1 -3
- data/spec/integration/active_job_spec.rb +1 -2
- data/spec/integration/app_spec.rb +142 -178
- data/spec/integration/associations/belongs_to_spec.rb +30 -28
- data/spec/integration/associations/embedded_dirty_spec.rb +0 -1
- data/spec/integration/associations/embedded_spec.rb +41 -43
- data/spec/integration/associations/embeds_many_spec.rb +46 -29
- data/spec/integration/associations/embeds_one_spec.rb +2 -1
- data/spec/integration/associations/foreign_key_spec.rb +10 -11
- data/spec/integration/associations/foreign_key_spec_models.rb +8 -9
- data/spec/integration/associations/has_and_belongs_to_many_spec.rb +16 -13
- data/spec/integration/associations/has_many_spec.rb +17 -18
- data/spec/integration/associations/has_one_spec.rb +42 -45
- data/spec/integration/associations/nested_attributes_assignment_spec.rb +36 -39
- data/spec/integration/associations/reverse_population_spec.rb +4 -5
- data/spec/integration/associations/reverse_population_spec_models.rb +0 -1
- data/spec/integration/associations/scope_option_spec.rb +18 -20
- data/spec/integration/atomic/modifiers_spec.rb +72 -52
- data/spec/integration/bson_regexp_raw_spec.rb +2 -3
- data/spec/integration/caching_spec.rb +68 -0
- data/spec/integration/callbacks_models.rb +11 -9
- data/spec/integration/callbacks_spec.rb +78 -80
- data/spec/integration/contextual/empty_spec.rb +19 -20
- data/spec/integration/criteria/alias_query_spec.rb +12 -19
- data/spec/integration/criteria/date_field_spec.rb +1 -2
- data/spec/integration/criteria/default_scope_spec.rb +23 -18
- data/spec/integration/criteria/logical_spec.rb +18 -19
- data/spec/integration/criteria/range_spec.rb +77 -86
- data/spec/integration/criteria/raw_value_spec.rb +122 -109
- data/spec/integration/criteria/time_with_zone_spec.rb +33 -24
- data/spec/integration/discriminator_key_spec.rb +85 -85
- data/spec/integration/discriminator_value_spec.rb +70 -73
- data/spec/integration/document_spec.rb +9 -10
- data/spec/integration/dots_and_dollars_spec.rb +104 -119
- data/spec/integration/encryption_spec.rb +8 -11
- data/spec/integration/i18n_fallbacks_spec.rb +7 -8
- data/spec/integration/isolation_state_spec.rb +241 -0
- data/spec/integration/matcher_examples_spec.rb +145 -168
- data/spec/integration/matcher_operator_data/in.yml +6 -6
- data/spec/integration/matcher_operator_spec.rb +16 -26
- data/spec/integration/matcher_spec.rb +31 -32
- data/spec/integration/persistence/collection_options_spec.rb +0 -2
- data/spec/integration/persistence/range_field_spec.rb +24 -2
- data/spec/integration/server_query_spec.rb +43 -37
- data/spec/integration/shardable_spec.rb +10 -11
- data/spec/integration/stringified_symbol_field_spec.rb +28 -43
- data/spec/lite_spec_helper.rb +11 -12
- data/spec/mongoid/association/accessors_spec.rb +197 -285
- data/spec/mongoid/association/auto_save_spec.rb +62 -93
- data/spec/mongoid/association/builders_spec.rb +121 -74
- data/spec/mongoid/association/constrainable_spec.rb +9 -22
- data/spec/mongoid/association/counter_cache_spec.rb +71 -104
- data/spec/mongoid/association/depending_spec.rb +166 -208
- data/spec/mongoid/association/eager_spec.rb +416 -80
- data/spec/mongoid/association/embedded/cyclic_spec.rb +36 -48
- data/spec/mongoid/association/embedded/dirty_spec.rb +15 -20
- data/spec/mongoid/association/embedded/embedded_in/binding_spec.rb +36 -54
- data/spec/mongoid/association/embedded/embedded_in/buildable_spec.rb +8 -15
- data/spec/mongoid/association/embedded/embedded_in/proxy_spec.rb +135 -175
- data/spec/mongoid/association/embedded/embedded_in_spec.rb +25 -127
- data/spec/mongoid/association/embedded/embeds_many/binding_spec.rb +9 -14
- data/spec/mongoid/association/embedded/embeds_many/buildable_spec.rb +38 -51
- data/spec/mongoid/association/embedded/embeds_many/proxy_spec.rb +1151 -1340
- data/spec/mongoid/association/embedded/embeds_many_models.rb +17 -17
- data/spec/mongoid/association/embedded/embeds_many_query_spec.rb +11 -11
- data/spec/mongoid/association/embedded/embeds_many_spec.rb +25 -138
- data/spec/mongoid/association/embedded/embeds_one/binding_spec.rb +15 -23
- data/spec/mongoid/association/embedded/embeds_one/buildable_spec.rb +18 -26
- data/spec/mongoid/association/embedded/embeds_one/proxy_spec.rb +204 -273
- 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 +5 -6
- data/spec/mongoid/association/embedded/embeds_one_spec.rb +28 -143
- data/spec/mongoid/association/macros_spec.rb +213 -300
- data/spec/mongoid/association/nested/many_spec.rb +51 -73
- data/spec/mongoid/association/nested/one_spec.rb +56 -80
- data/spec/mongoid/association/options_spec.rb +187 -310
- data/spec/mongoid/association/polymorphic_spec.rb +35 -53
- data/spec/mongoid/association/referenced/belongs_to/binding_spec.rb +55 -76
- data/spec/mongoid/association/referenced/belongs_to/buildable_spec.rb +36 -41
- data/spec/mongoid/association/referenced/belongs_to/eager_spec.rb +81 -101
- data/spec/mongoid/association/referenced/belongs_to/proxy_spec.rb +258 -345
- data/spec/mongoid/association/referenced/belongs_to_models.rb +4 -3
- data/spec/mongoid/association/referenced/belongs_to_query_spec.rb +3 -4
- data/spec/mongoid/association/referenced/belongs_to_spec.rb +91 -294
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/binding_spec.rb +42 -56
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/buildable_spec.rb +41 -32
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/eager_spec.rb +36 -42
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_persistence_spec.rb +8 -9
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_spec.rb +771 -975
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_models.rb +9 -9
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_query_spec.rb +5 -6
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_spec.rb +59 -177
- data/spec/mongoid/association/referenced/has_many/binding_spec.rb +29 -43
- data/spec/mongoid/association/referenced/has_many/buildable_spec.rb +53 -53
- data/spec/mongoid/association/referenced/has_many/eager_spec.rb +104 -67
- data/spec/mongoid/association/referenced/has_many/enumerable_spec.rb +431 -675
- data/spec/mongoid/association/referenced/has_many/proxy_query_spec.rb +1 -2
- data/spec/mongoid/association/referenced/has_many/proxy_spec.rb +173 -11
- data/spec/mongoid/association/referenced/has_many_models.rb +1 -2
- data/spec/mongoid/association/referenced/has_many_query_spec.rb +3 -4
- data/spec/mongoid/association/referenced/has_many_spec.rb +44 -188
- data/spec/mongoid/association/referenced/has_one/binding_spec.rb +26 -38
- data/spec/mongoid/association/referenced/has_one/buildable_spec.rb +28 -29
- data/spec/mongoid/association/referenced/has_one/eager_spec.rb +29 -42
- data/spec/mongoid/association/referenced/has_one/proxy_spec.rb +270 -332
- data/spec/mongoid/association/referenced/has_one_models.rb +1 -2
- data/spec/mongoid/association/referenced/has_one_query_spec.rb +3 -4
- data/spec/mongoid/association/referenced/has_one_spec.rb +40 -188
- data/spec/mongoid/association/reflections_spec.rb +14 -24
- data/spec/mongoid/association/syncable_spec.rb +102 -125
- data/spec/mongoid/association_spec.rb +47 -70
- data/spec/mongoid/atomic/modifiers_spec.rb +184 -197
- data/spec/mongoid/atomic/paths/embedded/many_spec.rb +39 -52
- data/spec/mongoid/atomic/paths/embedded/one_spec.rb +35 -49
- data/spec/mongoid/atomic/paths/root_spec.rb +9 -15
- data/spec/mongoid/atomic/paths_spec.rb +81 -117
- data/spec/mongoid/atomic_spec.rb +156 -171
- data/spec/mongoid/attributes/dynamic_spec.rb +5 -6
- data/spec/mongoid/attributes/nested_spec.rb +1219 -1692
- data/spec/mongoid/attributes/nested_spec_models.rb +8 -9
- data/spec/mongoid/attributes/projector_spec.rb +2 -6
- data/spec/mongoid/attributes/readonly_spec.rb +73 -97
- data/spec/mongoid/attributes_spec.rb +669 -826
- data/spec/mongoid/cacheable_spec.rb +74 -44
- data/spec/mongoid/changeable_spec.rb +591 -733
- data/spec/mongoid/clients/factory_spec.rb +122 -154
- data/spec/mongoid/clients/options_spec.rb +40 -59
- data/spec/mongoid/clients/sessions_spec.rb +25 -44
- data/spec/mongoid/clients/transactions_spec.rb +33 -50
- data/spec/mongoid/clients/transactions_spec_models.rb +3 -4
- data/spec/mongoid/clients_spec.rb +265 -355
- data/spec/mongoid/collection_configurable_spec.rb +9 -12
- data/spec/mongoid/composable_spec.rb +2 -9
- data/spec/mongoid/config/defaults_spec.rb +24 -31
- data/spec/mongoid/config/encryption_spec.rb +54 -57
- data/spec/mongoid/config/environment_spec.rb +30 -40
- data/spec/mongoid/config/introspection_spec.rb +42 -37
- data/spec/mongoid/config/options_spec.rb +14 -21
- data/spec/mongoid/config_spec.rb +145 -195
- data/spec/mongoid/contextual/aggregable/memory_spec.rb +98 -135
- data/spec/mongoid/contextual/aggregable/memory_table_spec.rb +4 -7
- data/spec/mongoid/contextual/aggregable/mongo_spec.rb +149 -187
- data/spec/mongoid/contextual/aggregable/none_spec.rb +14 -16
- data/spec/mongoid/contextual/atomic_spec.rb +223 -271
- data/spec/mongoid/contextual/map_reduce_spec.rb +110 -138
- data/spec/mongoid/contextual/memory_spec.rb +706 -854
- data/spec/mongoid/contextual/mongo/documents_loader_spec.rb +12 -13
- data/spec/mongoid/contextual/mongo_spec.rb +1008 -1213
- data/spec/mongoid/contextual/none_spec.rb +54 -59
- data/spec/mongoid/contextual/short_circuit_spec.rb +139 -0
- data/spec/mongoid/copyable_spec.rb +254 -300
- data/spec/mongoid/copyable_spec_models.rb +0 -1
- data/spec/mongoid/criteria/findable_spec.rb +322 -387
- data/spec/mongoid/criteria/includable_spec.rb +421 -372
- data/spec/mongoid/criteria/includable_spec_models.rb +16 -7
- data/spec/mongoid/criteria/inspectable_spec.rb +11 -14
- data/spec/mongoid/criteria/marshalable_spec.rb +11 -14
- data/spec/mongoid/criteria/modifiable_spec.rb +366 -512
- data/spec/mongoid/criteria/options_spec.rb +2 -7
- data/spec/mongoid/criteria/queryable/aggregable_spec.rb +112 -141
- data/spec/mongoid/criteria/queryable/expandable_spec.rb +8 -11
- data/spec/mongoid/criteria/queryable/extensions/array_spec.rb +127 -184
- data/spec/mongoid/criteria/queryable/extensions/big_decimal_spec.rb +123 -60
- data/spec/mongoid/criteria/queryable/extensions/boolean_spec.rb +84 -117
- data/spec/mongoid/criteria/queryable/extensions/date_spec.rb +44 -65
- data/spec/mongoid/criteria/queryable/extensions/date_time_spec.rb +86 -108
- data/spec/mongoid/criteria/queryable/extensions/float_spec.rb +94 -33
- data/spec/mongoid/criteria/queryable/extensions/hash_spec.rb +103 -138
- data/spec/mongoid/criteria/queryable/extensions/integer_spec.rb +95 -34
- data/spec/mongoid/criteria/queryable/extensions/nil_class_spec.rb +25 -38
- data/spec/mongoid/criteria/queryable/extensions/numeric_spec.rb +26 -28
- data/spec/mongoid/criteria/queryable/extensions/object_spec.rb +32 -54
- data/spec/mongoid/criteria/queryable/extensions/range_spec.rb +136 -130
- data/spec/mongoid/criteria/queryable/extensions/regexp_raw_spec.rb +16 -24
- data/spec/mongoid/criteria/queryable/extensions/regexp_spec.rb +15 -24
- data/spec/mongoid/criteria/queryable/extensions/set_spec.rb +12 -19
- data/spec/mongoid/criteria/queryable/extensions/string_spec.rb +46 -63
- data/spec/mongoid/criteria/queryable/extensions/symbol_spec.rb +28 -42
- data/spec/mongoid/criteria/queryable/extensions/time_spec.rb +73 -96
- data/spec/mongoid/criteria/queryable/extensions/time_with_zone_spec.rb +71 -92
- data/spec/mongoid/criteria/queryable/key_spec.rb +32 -36
- data/spec/mongoid/criteria/queryable/mergeable_spec.rb +44 -49
- data/spec/mongoid/criteria/queryable/optional_spec.rb +373 -486
- data/spec/mongoid/criteria/queryable/options_spec.rb +172 -123
- data/spec/mongoid/criteria/queryable/pipeline_spec.rb +65 -87
- data/spec/mongoid/criteria/queryable/queryable_spec.rb +41 -53
- data/spec/mongoid/criteria/queryable/selectable_logical_spec.rb +576 -680
- data/spec/mongoid/criteria/queryable/selectable_shared_examples.rb +7 -11
- data/spec/mongoid/criteria/queryable/selectable_spec.rb +807 -998
- data/spec/mongoid/criteria/queryable/selectable_where_spec.rb +154 -191
- data/spec/mongoid/criteria/queryable/selector_spec.rb +294 -390
- data/spec/mongoid/criteria/queryable/smash_spec.rb +6 -11
- data/spec/mongoid/criteria/queryable/storable_spec.rb +54 -81
- data/spec/mongoid/criteria/queryable_mql_spec.rb +92 -0
- data/spec/mongoid/criteria/scopable_spec.rb +102 -138
- data/spec/mongoid/criteria/translator_spec.rb +59 -60
- data/spec/mongoid/criteria_projection_spec.rb +81 -99
- data/spec/mongoid/criteria_spec.rb +935 -950
- data/spec/mongoid/document_fields_spec.rb +28 -30
- data/spec/mongoid/document_persistence_context_spec.rb +13 -15
- data/spec/mongoid/document_query_spec.rb +9 -12
- data/spec/mongoid/document_spec.rb +317 -409
- data/spec/mongoid/equality_spec.rb +69 -102
- data/spec/mongoid/errors/ambiguous_relationship_spec.rb +8 -11
- data/spec/mongoid/errors/attribute_not_loaded_spec.rb +7 -10
- data/spec/mongoid/errors/callback_spec.rb +8 -11
- data/spec/mongoid/errors/delete_restriction_spec.rb +5 -8
- data/spec/mongoid/errors/document_not_destroyed_spec.rb +7 -10
- data/spec/mongoid/errors/document_not_found_spec.rb +51 -61
- data/spec/mongoid/errors/invalid_collection_spec.rb +9 -13
- data/spec/mongoid/errors/invalid_config_file_spec.rb +8 -11
- data/spec/mongoid/errors/invalid_config_option_spec.rb +8 -11
- data/spec/mongoid/errors/invalid_field_option_spec.rb +7 -10
- data/spec/mongoid/errors/invalid_field_spec.rb +10 -11
- data/spec/mongoid/errors/invalid_field_type_spec.rb +9 -12
- data/spec/mongoid/errors/invalid_find_spec.rb +8 -11
- data/spec/mongoid/errors/invalid_includes_spec.rb +9 -13
- data/spec/mongoid/errors/invalid_index_spec.rb +8 -11
- data/spec/mongoid/errors/invalid_options_spec.rb +8 -11
- data/spec/mongoid/errors/invalid_path_spec.rb +7 -10
- data/spec/mongoid/errors/invalid_relation_spec.rb +15 -16
- data/spec/mongoid/errors/invalid_scope_spec.rb +8 -11
- data/spec/mongoid/errors/invalid_set_polymorphic_relation_spec.rb +3 -6
- data/spec/mongoid/errors/invalid_storage_options_spec.rb +8 -11
- data/spec/mongoid/errors/invalid_time_spec.rb +8 -11
- data/spec/mongoid/errors/inverse_not_found_spec.rb +9 -12
- data/spec/mongoid/errors/mixed_client_configuration_spec.rb +9 -12
- data/spec/mongoid/errors/mixed_relations_spec.rb +8 -11
- data/spec/mongoid/errors/mongoid_error_spec.rb +21 -24
- data/spec/mongoid/errors/nested_attributes_metadata_not_found_spec.rb +6 -9
- data/spec/mongoid/errors/no_client_config_spec.rb +7 -10
- data/spec/mongoid/errors/no_client_database_spec.rb +9 -12
- data/spec/mongoid/errors/no_client_hosts_spec.rb +9 -12
- data/spec/mongoid/errors/no_clients_config_spec.rb +7 -10
- data/spec/mongoid/errors/no_environment_spec.rb +8 -11
- data/spec/mongoid/errors/no_map_reduce_output_spec.rb +8 -11
- data/spec/mongoid/errors/no_metadata_spec.rb +7 -10
- data/spec/mongoid/errors/no_parent_spec.rb +7 -10
- data/spec/mongoid/errors/readonly_attribute_spec.rb +7 -10
- data/spec/mongoid/errors/readonly_document_spec.rb +6 -9
- data/spec/mongoid/errors/scope_overwrite_spec.rb +9 -12
- data/spec/mongoid/errors/too_many_nested_attribute_records_spec.rb +9 -12
- data/spec/mongoid/errors/unknown_attribute_spec.rb +5 -8
- data/spec/mongoid/errors/unsaved_document_spec.rb +8 -11
- data/spec/mongoid/errors/unsupported_javascript_spec.rb +9 -12
- data/spec/mongoid/errors/validations_spec.rb +11 -14
- data/spec/mongoid/extensions/array_spec.rb +70 -92
- data/spec/mongoid/extensions/big_decimal_spec.rb +233 -313
- data/spec/mongoid/extensions/binary_spec.rb +21 -32
- data/spec/mongoid/extensions/boolean_spec.rb +52 -75
- data/spec/mongoid/extensions/date_class_mongoize_spec.rb +43 -54
- data/spec/mongoid/extensions/date_spec.rb +26 -38
- data/spec/mongoid/extensions/date_time_spec.rb +22 -32
- data/spec/mongoid/extensions/decimal128_spec.rb +12 -18
- data/spec/mongoid/extensions/false_class_spec.rb +10 -17
- data/spec/mongoid/extensions/float_spec.rb +40 -61
- data/spec/mongoid/extensions/hash_spec.rb +46 -64
- data/spec/mongoid/extensions/integer_spec.rb +40 -61
- data/spec/mongoid/extensions/module_spec.rb +13 -18
- data/spec/mongoid/extensions/nil_class_spec.rb +2 -5
- data/spec/mongoid/extensions/object_id_spec.rb +159 -247
- data/spec/mongoid/extensions/object_spec.rb +31 -47
- data/spec/mongoid/extensions/range_spec.rb +112 -115
- data/spec/mongoid/extensions/raw_value_spec.rb +10 -12
- data/spec/mongoid/extensions/regexp_spec.rb +23 -36
- data/spec/mongoid/extensions/set_spec.rb +38 -49
- data/spec/mongoid/extensions/string_spec.rb +118 -167
- data/spec/mongoid/extensions/stringified_symbol_spec.rb +29 -43
- data/spec/mongoid/extensions/symbol_spec.rb +12 -20
- data/spec/mongoid/extensions/time_spec.rb +160 -202
- data/spec/mongoid/extensions/time_with_zone_spec.rb +79 -105
- data/spec/mongoid/extensions/true_class_spec.rb +10 -17
- data/spec/mongoid/factory_spec.rb +125 -148
- data/spec/mongoid/fields/foreign_key_spec.rb +124 -169
- data/spec/mongoid/fields/localized_spec.rb +140 -185
- data/spec/mongoid/fields/standard_spec.rb +43 -59
- data/spec/mongoid/fields_spec.rb +751 -620
- data/spec/mongoid/findable_spec.rb +260 -228
- data/spec/mongoid/indexable/specification_spec.rb +42 -58
- data/spec/mongoid/indexable_spec.rb +260 -264
- data/spec/mongoid/inspectable_spec.rb +45 -55
- data/spec/mongoid/interceptable_spec.rb +784 -922
- data/spec/mongoid/interceptable_spec_models.rb +35 -35
- data/spec/mongoid/loading_spec.rb +47 -43
- data/spec/mongoid/loggable_spec.rb +3 -6
- data/spec/mongoid/matcher/extract_attribute_spec.rb +2 -6
- data/spec/mongoid/mongoizable_spec.rb +81 -90
- data/spec/mongoid/monkey_patches_spec.rb +4 -0
- data/spec/mongoid/persistable/creatable_spec.rb +181 -220
- data/spec/mongoid/persistable/deletable_spec.rb +139 -179
- data/spec/mongoid/persistable/destroyable_spec.rb +135 -164
- data/spec/mongoid/persistable/incrementable_spec.rb +65 -84
- data/spec/mongoid/persistable/logical_spec.rb +48 -61
- data/spec/mongoid/persistable/maxable_spec.rb +45 -44
- data/spec/mongoid/persistable/minable_spec.rb +45 -44
- data/spec/mongoid/persistable/multipliable_spec.rb +54 -69
- data/spec/mongoid/persistable/poppable_spec.rb +47 -60
- data/spec/mongoid/persistable/pullable_spec.rb +79 -103
- data/spec/mongoid/persistable/pushable_spec.rb +106 -131
- data/spec/mongoid/persistable/renamable_spec.rb +52 -65
- data/spec/mongoid/persistable/savable_spec.rb +152 -189
- data/spec/mongoid/persistable/settable_spec.rb +121 -145
- data/spec/mongoid/persistable/unsettable_spec.rb +56 -73
- data/spec/mongoid/persistable/updatable_spec.rb +185 -232
- data/spec/mongoid/persistable/upsertable_spec.rb +66 -77
- data/spec/mongoid/persistable_spec.rb +132 -139
- data/spec/mongoid/persistence_context_spec.rb +31 -89
- data/spec/mongoid/positional_spec.rb +67 -79
- data/spec/mongoid/railties/bson_object_id_serializer_spec.rb +0 -3
- data/spec/mongoid/railties/console_sandbox_spec.rb +0 -1
- data/spec/mongoid/relations/proxy_spec.rb +0 -1
- data/spec/mongoid/reloadable_spec.rb +250 -145
- data/spec/mongoid/scopable_spec.rb +319 -398
- data/spec/mongoid/search_indexable_spec.rb +446 -41
- data/spec/mongoid/selectable_spec.rb +36 -51
- data/spec/mongoid/serializable_spec.rb +269 -312
- data/spec/mongoid/shardable_models.rb +5 -5
- data/spec/mongoid/shardable_spec.rb +44 -46
- data/spec/mongoid/stateful_spec.rb +55 -75
- data/spec/mongoid/tasks/database_rake_spec.rb +138 -141
- data/spec/mongoid/tasks/database_spec.rb +80 -80
- data/spec/mongoid/tasks/encryption_spec.rb +22 -20
- data/spec/mongoid/threaded_spec.rb +57 -83
- data/spec/mongoid/timestamps/created/short_spec.rb +12 -16
- data/spec/mongoid/timestamps/created_spec.rb +16 -20
- data/spec/mongoid/timestamps/timeless_spec.rb +31 -43
- data/spec/mongoid/timestamps/updated/short_spec.rb +21 -28
- data/spec/mongoid/timestamps/updated_spec.rb +18 -25
- data/spec/mongoid/timestamps_spec.rb +171 -188
- data/spec/mongoid/timestamps_spec_models.rb +12 -13
- data/spec/mongoid/touchable_spec.rb +330 -294
- data/spec/mongoid/touchable_spec_models.rb +35 -37
- data/spec/mongoid/traversable_spec.rb +435 -471
- data/spec/mongoid/validatable/associated_spec.rb +42 -60
- data/spec/mongoid/validatable/format_spec.rb +24 -34
- data/spec/mongoid/validatable/length_spec.rb +62 -86
- data/spec/mongoid/validatable/numericality_spec.rb +114 -23
- data/spec/mongoid/validatable/presence_spec.rb +149 -203
- data/spec/mongoid/validatable/uniqueness_spec.rb +632 -830
- data/spec/mongoid/validatable_spec.rb +71 -103
- data/spec/mongoid/warnings_spec.rb +5 -9
- data/spec/mongoid_spec.rb +25 -41
- data/spec/rails/controller_extension/controller_runtime_spec.rb +45 -49
- data/spec/rails/mongoid_spec.rb +15 -15
- data/spec/shared/lib/mrss/cluster_config.rb +5 -40
- data/spec/shared/lib/mrss/constraints.rb +7 -46
- data/spec/shared/lib/mrss/docker_runner.rb +10 -21
- data/spec/shared/lib/mrss/eg_config_utils.rb +0 -31
- data/spec/shared/lib/mrss/release/candidate.rb +18 -12
- data/spec/shared/lib/mrss/server_version_registry.rb +1 -5
- data/spec/shared/share/Dockerfile.erb +6 -8
- data/spec/shared/shlib/server.sh +0 -50
- data/spec/shared/shlib/set_env.sh +4 -10
- data/spec/spec_helper.rb +54 -31
- data/spec/support/authorization.rb +0 -1
- data/spec/support/client_registry.rb +1 -2
- data/spec/support/constraints.rb +8 -25
- data/spec/support/crypt/models.rb +7 -8
- data/spec/support/crypt.rb +6 -9
- data/spec/support/expectations.rb +21 -7
- data/spec/support/feature_sandbox.rb +1 -4
- data/spec/support/helpers.rb +0 -1
- data/spec/support/immutable_ids.rb +20 -21
- data/spec/support/macros.rb +1 -3
- data/spec/support/models/account.rb +4 -5
- data/spec/support/models/acolyte.rb +5 -5
- data/spec/support/models/actor.rb +3 -3
- data/spec/support/models/actress.rb +0 -1
- data/spec/support/models/address.rb +11 -11
- data/spec/support/models/address_component.rb +1 -1
- data/spec/support/models/address_number.rb +1 -1
- data/spec/support/models/agency.rb +1 -1
- data/spec/support/models/agent.rb +1 -1
- data/spec/support/models/album.rb +1 -2
- data/spec/support/models/alert.rb +1 -1
- data/spec/support/models/animal.rb +4 -5
- data/spec/support/models/answer.rb +1 -1
- data/spec/support/models/appointment.rb +2 -2
- 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 +16 -12
- data/spec/support/models/artwork.rb +1 -1
- data/spec/support/models/audible_sound.rb +0 -1
- data/spec/support/models/audio.rb +2 -2
- data/spec/support/models/augmentation.rb +1 -2
- data/spec/support/models/author.rb +1 -1
- data/spec/support/models/baby.rb +1 -1
- data/spec/support/models/band.rb +0 -1
- data/spec/support/models/bar.rb +2 -2
- 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 +3 -5
- data/spec/support/models/bolt.rb +0 -1
- data/spec/support/models/bomb.rb +1 -1
- data/spec/support/models/book.rb +1 -1
- data/spec/support/models/breed.rb +1 -1
- data/spec/support/models/browser.rb +1 -2
- data/spec/support/models/building.rb +0 -1
- data/spec/support/models/building_address.rb +1 -1
- data/spec/support/models/bus.rb +1 -1
- data/spec/support/models/business.rb +2 -2
- data/spec/support/models/callback_test.rb +1 -1
- data/spec/support/models/canvas.rb +5 -6
- data/spec/support/models/car.rb +0 -1
- data/spec/support/models/cat.rb +0 -2
- data/spec/support/models/catalog.rb +0 -1
- data/spec/support/models/category.rb +1 -1
- data/spec/support/models/child.rb +1 -1
- data/spec/support/models/child_doc.rb +5 -6
- data/spec/support/models/church.rb +1 -1
- data/spec/support/models/circle.rb +0 -1
- data/spec/support/models/circuit.rb +2 -2
- 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 +1 -1
- data/spec/support/models/contractor.rb +1 -1
- data/spec/support/models/cookie.rb +0 -1
- data/spec/support/models/country_code.rb +2 -3
- data/spec/support/models/courier_job.rb +2 -2
- data/spec/support/models/cover.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 +1 -1
- data/spec/support/models/definition.rb +1 -1
- data/spec/support/models/delegating_patient.rb +0 -1
- data/spec/support/models/description.rb +0 -1
- data/spec/support/models/dictionary.rb +1 -1
- data/spec/support/models/division.rb +2 -2
- data/spec/support/models/doctor.rb +0 -1
- data/spec/support/models/dog.rb +2 -2
- data/spec/support/models/dokument.rb +1 -1
- data/spec/support/models/draft.rb +0 -1
- data/spec/support/models/dragon.rb +1 -1
- data/spec/support/models/driver.rb +2 -2
- data/spec/support/models/drug.rb +1 -1
- data/spec/support/models/dungeon.rb +1 -1
- data/spec/support/models/edit.rb +1 -1
- data/spec/support/models/email.rb +1 -1
- data/spec/support/models/employer.rb +1 -2
- data/spec/support/models/entry.rb +1 -1
- data/spec/support/models/eraser.rb +0 -1
- data/spec/support/models/even.rb +1 -1
- data/spec/support/models/event.rb +3 -4
- data/spec/support/models/exhibition.rb +1 -1
- data/spec/support/models/exhibitor.rb +1 -1
- data/spec/support/models/explosion.rb +1 -1
- data/spec/support/models/eye.rb +0 -1
- data/spec/support/models/eye_bowl.rb +2 -3
- data/spec/support/models/face.rb +2 -3
- data/spec/support/models/fanatic.rb +1 -1
- data/spec/support/models/favorite.rb +1 -1
- data/spec/support/models/filesystem.rb +1 -1
- data/spec/support/models/fire_hydrant.rb +1 -1
- data/spec/support/models/firefox.rb +0 -1
- data/spec/support/models/fish.rb +0 -1
- data/spec/support/models/folder.rb +0 -2
- data/spec/support/models/folder_item.rb +1 -3
- data/spec/support/models/fruits.rb +9 -5
- data/spec/support/models/game.rb +3 -4
- 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 +1 -1
- data/spec/support/models/house.rb +2 -2
- data/spec/support/models/html_writer.rb +0 -1
- data/spec/support/models/id_key.rb +3 -3
- data/spec/support/models/idnodef.rb +0 -1
- data/spec/support/models/image.rb +0 -1
- data/spec/support/models/implant.rb +1 -2
- data/spec/support/models/instrument.rb +2 -3
- data/spec/support/models/item.rb +2 -2
- data/spec/support/models/jar.rb +1 -2
- data/spec/support/models/kaleidoscope.rb +1 -1
- data/spec/support/models/kangaroo.rb +1 -1
- data/spec/support/models/label.rb +2 -2
- data/spec/support/models/language.rb +1 -1
- data/spec/support/models/lat_lng.rb +0 -1
- data/spec/support/models/league.rb +1 -1
- data/spec/support/models/learner.rb +0 -1
- data/spec/support/models/line_item.rb +1 -1
- data/spec/support/models/location.rb +1 -1
- data/spec/support/models/login.rb +1 -2
- data/spec/support/models/manufacturer.rb +0 -1
- data/spec/support/models/meat.rb +1 -1
- data/spec/support/models/membership.rb +1 -1
- data/spec/support/models/message.rb +1 -2
- data/spec/support/models/minim.rb +0 -1
- data/spec/support/models/mixed_drink.rb +1 -1
- data/spec/support/models/modifier_models.rb +25 -0
- data/spec/support/models/mop.rb +0 -1
- data/spec/support/models/movie.rb +1 -1
- data/spec/support/models/my_hash.rb +1 -2
- data/spec/support/models/name.rb +4 -5
- data/spec/support/models/name_only.rb +0 -1
- data/spec/support/models/node.rb +1 -1
- data/spec/support/models/note.rb +3 -3
- data/spec/support/models/nut.rb +0 -1
- data/spec/support/models/odd.rb +1 -1
- data/spec/support/models/order.rb +1 -1
- data/spec/support/models/ordered_post.rb +1 -1
- data/spec/support/models/ordered_preference.rb +1 -1
- data/spec/support/models/oscar.rb +1 -1
- data/spec/support/models/other_owner_object.rb +0 -1
- data/spec/support/models/override.rb +3 -11
- data/spec/support/models/ownable.rb +1 -1
- data/spec/support/models/owner.rb +1 -1
- data/spec/support/models/pack.rb +0 -1
- data/spec/support/models/page.rb +3 -3
- data/spec/support/models/page_question.rb +1 -1
- data/spec/support/models/palette.rb +2 -2
- data/spec/support/models/parent.rb +2 -2
- data/spec/support/models/parent_doc.rb +1 -1
- data/spec/support/models/passport.rb +0 -1
- data/spec/support/models/patient.rb +2 -2
- data/spec/support/models/pdf_writer.rb +0 -1
- data/spec/support/models/pencil.rb +0 -1
- data/spec/support/models/person.rb +32 -28
- data/spec/support/models/pet.rb +1 -1
- data/spec/support/models/pet_owner.rb +1 -1
- data/spec/support/models/phone.rb +1 -2
- data/spec/support/models/piano.rb +0 -1
- data/spec/support/models/pizza.rb +1 -1
- data/spec/support/models/player.rb +5 -5
- data/spec/support/models/post.rb +12 -12
- data/spec/support/models/post_genre.rb +1 -1
- data/spec/support/models/powerup.rb +1 -2
- data/spec/support/models/preference.rb +2 -2
- data/spec/support/models/princess.rb +1 -1
- data/spec/support/models/product.rb +3 -3
- data/spec/support/models/profile.rb +2 -1
- data/spec/support/models/pronunciation.rb +1 -1
- data/spec/support/models/pub.rb +2 -2
- 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 +1 -1
- data/spec/support/models/purchased_item.rb +1 -1
- data/spec/support/models/question.rb +2 -2
- data/spec/support/models/quiz.rb +1 -1
- data/spec/support/models/rating.rb +1 -1
- data/spec/support/models/record.rb +2 -3
- data/spec/support/models/registry.rb +1 -1
- data/spec/support/models/role.rb +1 -1
- data/spec/support/models/root_category.rb +1 -1
- data/spec/support/models/sandbox/app/models/app_models_message.rb +0 -1
- data/spec/support/models/sandbox/lib/models/lib_models_message.rb +0 -1
- data/spec/support/models/sandbox/sandbox_message.rb +0 -1
- data/spec/support/models/sandbox/sandbox_user.rb +0 -1
- data/spec/support/models/sandbox/subdir/sandbox_comment.rb +0 -1
- data/spec/support/models/sandwich.rb +1 -1
- data/spec/support/models/scheduler.rb +0 -1
- data/spec/support/models/school.rb +0 -1
- data/spec/support/models/scribe.rb +1 -1
- data/spec/support/models/sealer.rb +0 -1
- data/spec/support/models/seat.rb +0 -1
- data/spec/support/models/seo.rb +1 -1
- data/spec/support/models/series.rb +1 -1
- data/spec/support/models/server.rb +1 -1
- data/spec/support/models/service.rb +2 -2
- data/spec/support/models/shape.rb +3 -3
- data/spec/support/models/shelf.rb +1 -1
- data/spec/support/models/shield.rb +2 -2
- data/spec/support/models/shipment_address.rb +0 -1
- data/spec/support/models/shipping_container.rb +1 -1
- data/spec/support/models/shipping_pack.rb +0 -1
- data/spec/support/models/shirt.rb +0 -1
- data/spec/support/models/shop.rb +2 -2
- data/spec/support/models/short_agent.rb +0 -1
- data/spec/support/models/short_quiz.rb +1 -1
- data/spec/support/models/simple.rb +1 -1
- data/spec/support/models/slave.rb +1 -1
- data/spec/support/models/song.rb +1 -2
- data/spec/support/models/sound.rb +2 -2
- 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 +2 -2
- data/spec/support/models/store_as_dup_test2.rb +1 -1
- data/spec/support/models/store_as_dup_test3.rb +2 -2
- data/spec/support/models/store_as_dup_test4.rb +1 -1
- data/spec/support/models/strategy.rb +0 -1
- data/spec/support/models/student.rb +1 -2
- data/spec/support/models/sub_item.rb +0 -1
- data/spec/support/models/subscription.rb +2 -2
- data/spec/support/models/survey.rb +2 -2
- data/spec/support/models/symptom.rb +2 -2
- data/spec/support/models/system_role.rb +2 -3
- data/spec/support/models/tag.rb +2 -2
- data/spec/support/models/target.rb +1 -1
- data/spec/support/models/template.rb +1 -1
- data/spec/support/models/thing.rb +1 -1
- data/spec/support/models/threadlocker.rb +0 -1
- data/spec/support/models/title.rb +0 -1
- data/spec/support/models/tool.rb +3 -3
- data/spec/support/models/topping.rb +1 -1
- data/spec/support/models/toy.rb +0 -1
- data/spec/support/models/track.rb +1 -1
- data/spec/support/models/translation.rb +1 -1
- data/spec/support/models/tree.rb +2 -3
- data/spec/support/models/truck.rb +0 -1
- data/spec/support/models/updatable.rb +0 -1
- data/spec/support/models/user.rb +3 -4
- data/spec/support/models/user_account.rb +3 -3
- data/spec/support/models/validation_callback.rb +4 -4
- data/spec/support/models/vehicle.rb +2 -3
- data/spec/support/models/version.rb +1 -1
- data/spec/support/models/vertex.rb +0 -1
- data/spec/support/models/vet_visit.rb +1 -1
- data/spec/support/models/video.rb +2 -2
- data/spec/support/models/video_game.rb +0 -1
- data/spec/support/models/washer.rb +0 -1
- data/spec/support/models/weapon.rb +1 -2
- data/spec/support/models/wiki_page.rb +2 -3
- data/spec/support/models/word.rb +2 -2
- data/spec/support/models/word_origin.rb +1 -2
- data/spec/support/models/writer.rb +3 -3
- data/spec/support/rails_mock.rb +7 -12
- data/spec/support/shared/time.rb +0 -1
- data/spec/support/sinatra_mock.rb +4 -2
- data/spec/support/spec_config.rb +19 -18
- metadata +14 -2
data/spec/mongoid/config_spec.rb
CHANGED
|
@@ -1,32 +1,27 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# rubocop:todo all
|
|
3
2
|
|
|
4
|
-
require
|
|
5
|
-
require
|
|
3
|
+
require 'spec_helper'
|
|
4
|
+
require 'support/feature_sandbox'
|
|
6
5
|
|
|
7
6
|
describe Mongoid::Config do
|
|
8
|
-
|
|
9
7
|
after do
|
|
10
8
|
Mongoid.configure do |config|
|
|
11
9
|
config.load_configuration(CONFIG)
|
|
12
10
|
end
|
|
13
11
|
end
|
|
14
12
|
|
|
15
|
-
describe
|
|
16
|
-
|
|
13
|
+
describe '#configured?' do
|
|
17
14
|
after do
|
|
18
15
|
described_class.connect_to(database_id, read: :primary)
|
|
19
16
|
end
|
|
20
17
|
|
|
21
|
-
context
|
|
22
|
-
|
|
23
|
-
context "when a default database is configured" do
|
|
24
|
-
|
|
18
|
+
context 'when a default client config exists' do
|
|
19
|
+
context 'when a default database is configured' do
|
|
25
20
|
let(:config) do
|
|
26
21
|
{
|
|
27
22
|
default: {
|
|
28
23
|
database: database_id,
|
|
29
|
-
hosts: [
|
|
24
|
+
hosts: [ '127.0.0.1:27017' ]
|
|
30
25
|
}
|
|
31
26
|
}
|
|
32
27
|
end
|
|
@@ -35,47 +30,43 @@ describe Mongoid::Config do
|
|
|
35
30
|
described_class.send(:clients=, config)
|
|
36
31
|
end
|
|
37
32
|
|
|
38
|
-
it
|
|
33
|
+
it 'returns true' do
|
|
39
34
|
expect(described_class).to be_configured
|
|
40
35
|
end
|
|
41
36
|
end
|
|
42
37
|
end
|
|
43
38
|
|
|
44
|
-
context
|
|
45
|
-
|
|
39
|
+
context 'when no default client config exists' do
|
|
46
40
|
before do
|
|
47
41
|
described_class.clients.clear
|
|
48
42
|
end
|
|
49
43
|
|
|
50
|
-
it
|
|
51
|
-
expect(described_class).
|
|
44
|
+
it 'returns false' do
|
|
45
|
+
expect(described_class).not_to be_configured
|
|
52
46
|
end
|
|
53
47
|
end
|
|
54
48
|
end
|
|
55
49
|
|
|
56
|
-
describe
|
|
57
|
-
|
|
50
|
+
describe '#destructive_fields' do
|
|
58
51
|
Mongoid::Composable.prohibited_methods.each do |method|
|
|
59
|
-
|
|
60
52
|
it "contains #{method}" do
|
|
61
53
|
expect(described_class.destructive_fields).to include(method)
|
|
62
54
|
end
|
|
63
55
|
end
|
|
64
56
|
end
|
|
65
57
|
|
|
66
|
-
context
|
|
67
|
-
|
|
58
|
+
context 'when the log level is not set in the configuration' do
|
|
68
59
|
before do
|
|
69
60
|
Mongoid.configure do |config|
|
|
70
61
|
config.load_configuration(CONFIG)
|
|
71
62
|
end
|
|
72
63
|
end
|
|
73
64
|
|
|
74
|
-
it
|
|
65
|
+
it 'sets the Mongoid logger level to the default' do
|
|
75
66
|
expect(Mongoid.logger.level).to eq(Logger::INFO)
|
|
76
67
|
end
|
|
77
68
|
|
|
78
|
-
it
|
|
69
|
+
it 'sets the Mongo driver logger level to the default' do
|
|
79
70
|
expect(Mongo::Logger.logger.level).to eq(Logger::INFO)
|
|
80
71
|
end
|
|
81
72
|
end
|
|
@@ -95,7 +86,7 @@ describe Mongoid::Config do
|
|
|
95
86
|
context 'is set in the config' do
|
|
96
87
|
it 'sets the value' do
|
|
97
88
|
Mongoid::Config.reset
|
|
98
|
-
configuration = CONFIG.merge(options: {background_indexing: true})
|
|
89
|
+
configuration = CONFIG.merge(options: { background_indexing: true })
|
|
99
90
|
|
|
100
91
|
Mongoid.configure { |config| config.load_configuration(configuration) }
|
|
101
92
|
|
|
@@ -105,7 +96,6 @@ describe Mongoid::Config do
|
|
|
105
96
|
end
|
|
106
97
|
|
|
107
98
|
context 'when the belongs_to_required_by_default option is not set in the config' do
|
|
108
|
-
|
|
109
99
|
before do
|
|
110
100
|
Mongoid::Config.reset
|
|
111
101
|
Mongoid.configure do |config|
|
|
@@ -119,7 +109,6 @@ describe Mongoid::Config do
|
|
|
119
109
|
end
|
|
120
110
|
|
|
121
111
|
context 'when the belongs_to_required_by_default option is set in the config' do
|
|
122
|
-
|
|
123
112
|
before do
|
|
124
113
|
Mongoid.configure do |config|
|
|
125
114
|
config.load_configuration(conf)
|
|
@@ -127,7 +116,6 @@ describe Mongoid::Config do
|
|
|
127
116
|
end
|
|
128
117
|
|
|
129
118
|
context 'when the value is set to true' do
|
|
130
|
-
|
|
131
119
|
let(:conf) do
|
|
132
120
|
CONFIG.merge(options: { belongs_to_required_by_default: true })
|
|
133
121
|
end
|
|
@@ -138,7 +126,6 @@ describe Mongoid::Config do
|
|
|
138
126
|
end
|
|
139
127
|
|
|
140
128
|
context 'when the value is set to false' do
|
|
141
|
-
|
|
142
129
|
let(:conf) do
|
|
143
130
|
CONFIG.merge(options: { belongs_to_required_by_default: false })
|
|
144
131
|
end
|
|
@@ -157,7 +144,6 @@ describe Mongoid::Config do
|
|
|
157
144
|
end
|
|
158
145
|
|
|
159
146
|
context 'when the app_name is set in the config' do
|
|
160
|
-
|
|
161
147
|
let(:conf) do
|
|
162
148
|
CONFIG.merge(options: { app_name: 'admin-reporting' })
|
|
163
149
|
end
|
|
@@ -174,7 +160,6 @@ describe Mongoid::Config do
|
|
|
174
160
|
end
|
|
175
161
|
|
|
176
162
|
context 'when the app_name is not set in the config' do
|
|
177
|
-
|
|
178
163
|
before do
|
|
179
164
|
Mongoid::Config.reset
|
|
180
165
|
Mongoid.configure do |config|
|
|
@@ -195,22 +180,22 @@ describe Mongoid::Config do
|
|
|
195
180
|
|
|
196
181
|
Mongoid.configure { |config| config.load_configuration(configuration) }
|
|
197
182
|
|
|
198
|
-
expect(Mongoid::Config.discriminator_key).to eq(
|
|
183
|
+
expect(Mongoid::Config.discriminator_key).to eq('_type')
|
|
199
184
|
end
|
|
200
185
|
end
|
|
201
186
|
|
|
202
187
|
context 'is set in the config' do
|
|
203
188
|
it 'sets the value' do
|
|
204
189
|
Mongoid::Config.reset
|
|
205
|
-
configuration = CONFIG.merge(options: {discriminator_key:
|
|
190
|
+
configuration = CONFIG.merge(options: { discriminator_key: 'test' })
|
|
206
191
|
|
|
207
192
|
Mongoid.configure { |config| config.load_configuration(configuration) }
|
|
208
193
|
|
|
209
|
-
expect(Mongoid::Config.discriminator_key).to eq(
|
|
194
|
+
expect(Mongoid::Config.discriminator_key).to eq('test')
|
|
210
195
|
end
|
|
211
196
|
|
|
212
197
|
it 'is set globally' do
|
|
213
|
-
expect(Mongoid.discriminator_key).to eq(
|
|
198
|
+
expect(Mongoid.discriminator_key).to eq('test')
|
|
214
199
|
end
|
|
215
200
|
end
|
|
216
201
|
end
|
|
@@ -225,33 +210,30 @@ describe Mongoid::Config do
|
|
|
225
210
|
end
|
|
226
211
|
end
|
|
227
212
|
|
|
228
|
-
context
|
|
229
|
-
|
|
213
|
+
context 'when it is not set in the config' do
|
|
230
214
|
let(:conf) { CONFIG }
|
|
231
215
|
|
|
232
|
-
it
|
|
216
|
+
it 'is set to its default' do
|
|
233
217
|
expect(Mongoid.send(option)).to eq(:immediate)
|
|
234
218
|
end
|
|
235
219
|
end
|
|
236
220
|
|
|
237
221
|
context 'when the value is :immediate' do
|
|
238
|
-
|
|
239
222
|
let(:conf) do
|
|
240
223
|
CONFIG.merge(options: { option => :immediate })
|
|
241
224
|
end
|
|
242
225
|
|
|
243
|
-
it
|
|
226
|
+
it 'is set to false' do
|
|
244
227
|
expect(Mongoid.send(option)).to be(:immediate)
|
|
245
228
|
end
|
|
246
229
|
end
|
|
247
230
|
|
|
248
231
|
context 'when the value is :global_thread_pool' do
|
|
249
|
-
|
|
250
232
|
let(:conf) do
|
|
251
233
|
CONFIG.merge(options: { option => :global_thread_pool })
|
|
252
234
|
end
|
|
253
235
|
|
|
254
|
-
it
|
|
236
|
+
it 'is set to false' do
|
|
255
237
|
expect(Mongoid.send(option)).to be(:global_thread_pool)
|
|
256
238
|
end
|
|
257
239
|
end
|
|
@@ -267,29 +249,26 @@ describe Mongoid::Config do
|
|
|
267
249
|
end
|
|
268
250
|
end
|
|
269
251
|
|
|
270
|
-
context
|
|
271
|
-
|
|
252
|
+
context 'when it is not set in the config' do
|
|
272
253
|
let(:conf) { CONFIG }
|
|
273
254
|
|
|
274
|
-
it
|
|
255
|
+
it 'is set to its default' do
|
|
275
256
|
expect(Mongoid.send(option)).to eq(nil)
|
|
276
257
|
end
|
|
277
258
|
end
|
|
278
259
|
|
|
279
260
|
context 'when the value is set to a number' do
|
|
280
|
-
|
|
281
261
|
let(:conf) do
|
|
282
262
|
CONFIG.merge(options: { option => 5 })
|
|
283
263
|
end
|
|
284
264
|
|
|
285
|
-
it
|
|
265
|
+
it 'is set to the number' do
|
|
286
266
|
expect(Mongoid.send(option)).to be(5)
|
|
287
267
|
end
|
|
288
268
|
end
|
|
289
269
|
end
|
|
290
270
|
|
|
291
|
-
shared_examples
|
|
292
|
-
|
|
271
|
+
shared_examples 'a config option' do
|
|
293
272
|
before do
|
|
294
273
|
Mongoid::Config.reset
|
|
295
274
|
Mongoid.configure do |config|
|
|
@@ -298,32 +277,29 @@ describe Mongoid::Config do
|
|
|
298
277
|
end
|
|
299
278
|
|
|
300
279
|
context 'when the value is false' do
|
|
301
|
-
|
|
302
280
|
let(:conf) do
|
|
303
281
|
CONFIG.merge(options: { option => false })
|
|
304
282
|
end
|
|
305
283
|
|
|
306
|
-
it
|
|
284
|
+
it 'is set to false' do
|
|
307
285
|
expect(Mongoid.send(option)).to be(false)
|
|
308
286
|
end
|
|
309
287
|
end
|
|
310
288
|
|
|
311
289
|
context 'when the value is true' do
|
|
312
|
-
|
|
313
290
|
let(:conf) do
|
|
314
291
|
CONFIG.merge(options: { option => true })
|
|
315
292
|
end
|
|
316
293
|
|
|
317
|
-
it
|
|
294
|
+
it 'is set to true' do
|
|
318
295
|
expect(Mongoid.send(option)).to be(true)
|
|
319
296
|
end
|
|
320
297
|
end
|
|
321
298
|
|
|
322
|
-
context
|
|
323
|
-
|
|
299
|
+
context 'when it is not set in the config' do
|
|
324
300
|
let(:conf) { CONFIG }
|
|
325
301
|
|
|
326
|
-
it
|
|
302
|
+
it 'is set to its default' do
|
|
327
303
|
expect(Mongoid.send(option)).to eq(default)
|
|
328
304
|
end
|
|
329
305
|
end
|
|
@@ -333,7 +309,7 @@ describe Mongoid::Config do
|
|
|
333
309
|
let(:option) { :map_big_decimal_to_decimal128 }
|
|
334
310
|
let(:default) { true }
|
|
335
311
|
|
|
336
|
-
it_behaves_like
|
|
312
|
+
it_behaves_like 'a config option'
|
|
337
313
|
end
|
|
338
314
|
|
|
339
315
|
context 'when setting the allow_bson5_decimal128 option in the config' do
|
|
@@ -342,33 +318,31 @@ describe Mongoid::Config do
|
|
|
342
318
|
let(:option) { :allow_bson5_decimal128 }
|
|
343
319
|
let(:default) { false }
|
|
344
320
|
|
|
345
|
-
it_behaves_like
|
|
321
|
+
it_behaves_like 'a config option'
|
|
346
322
|
end
|
|
347
323
|
|
|
348
324
|
context 'when setting the legacy_readonly option in the config' do
|
|
349
325
|
let(:option) { :legacy_readonly }
|
|
350
326
|
let(:default) { false }
|
|
351
327
|
|
|
352
|
-
it_behaves_like
|
|
328
|
+
it_behaves_like 'a config option'
|
|
353
329
|
end
|
|
354
330
|
|
|
355
331
|
context 'when setting the legacy_persistence_context_behavior option in the config' do
|
|
356
332
|
let(:option) { :legacy_persistence_context_behavior }
|
|
357
333
|
let(:default) { false }
|
|
358
334
|
|
|
359
|
-
it_behaves_like
|
|
335
|
+
it_behaves_like 'a config option'
|
|
360
336
|
end
|
|
361
337
|
|
|
362
|
-
describe
|
|
363
|
-
|
|
338
|
+
describe '#load!' do
|
|
364
339
|
let(:file) do
|
|
365
|
-
File.join(File.dirname(__FILE__),
|
|
340
|
+
File.join(File.dirname(__FILE__), '..', 'config', 'mongoid.yml')
|
|
366
341
|
end
|
|
367
342
|
|
|
368
|
-
context
|
|
369
|
-
|
|
343
|
+
context 'when existing clients exist in the configuration' do
|
|
370
344
|
let(:client) do
|
|
371
|
-
Mongo::Client.new([
|
|
345
|
+
Mongo::Client.new([ '127.0.0.1:27017' ])
|
|
372
346
|
end
|
|
373
347
|
|
|
374
348
|
before do
|
|
@@ -380,37 +354,35 @@ describe Mongoid::Config do
|
|
|
380
354
|
client.close
|
|
381
355
|
end
|
|
382
356
|
|
|
383
|
-
it
|
|
357
|
+
it 'clears the previous clients' do
|
|
384
358
|
expect(Mongoid::Clients.clients[:test]).to be_nil
|
|
385
359
|
end
|
|
386
360
|
end
|
|
387
361
|
|
|
388
|
-
context
|
|
389
|
-
|
|
362
|
+
context 'when the log level is set in the configuration' do
|
|
390
363
|
before do
|
|
391
364
|
described_class.load!(file, :test)
|
|
392
365
|
end
|
|
393
366
|
|
|
394
|
-
it
|
|
367
|
+
it 'sets the Mongoid logger level' do
|
|
395
368
|
expect(Mongoid.logger.level).to eq(Logger::WARN)
|
|
396
369
|
end
|
|
397
370
|
|
|
398
|
-
it
|
|
371
|
+
it 'sets the Mongo driver logger level' do
|
|
399
372
|
expect(Mongo::Logger.logger.level).to eq(Logger::WARN)
|
|
400
373
|
end
|
|
401
374
|
|
|
402
|
-
context
|
|
403
|
-
|
|
375
|
+
context 'when in a Rails environment' do
|
|
404
376
|
around do |example|
|
|
405
377
|
FeatureSandbox.quarantine do
|
|
406
|
-
require
|
|
378
|
+
require 'support/rails_mock'
|
|
407
379
|
Mongoid.logger = Rails.logger
|
|
408
380
|
described_class.load!(file, :test)
|
|
409
381
|
example.run
|
|
410
382
|
end
|
|
411
383
|
end
|
|
412
384
|
|
|
413
|
-
it
|
|
385
|
+
it 'keeps the Mongoid logger level the same as the Rails logger' do
|
|
414
386
|
expect(Mongoid.logger.level).to eq(Rails.logger.level)
|
|
415
387
|
expect(Mongoid.logger.level).not_to eq(Mongoid::Config.log_level)
|
|
416
388
|
end
|
|
@@ -421,8 +393,7 @@ describe Mongoid::Config do
|
|
|
421
393
|
end
|
|
422
394
|
end
|
|
423
395
|
|
|
424
|
-
context
|
|
425
|
-
|
|
396
|
+
context 'when provided an environment' do
|
|
426
397
|
before do
|
|
427
398
|
described_class.load!(file, :test)
|
|
428
399
|
end
|
|
@@ -431,37 +402,36 @@ describe Mongoid::Config do
|
|
|
431
402
|
described_class.reset
|
|
432
403
|
end
|
|
433
404
|
|
|
434
|
-
it
|
|
405
|
+
it 'sets the include root in json option' do
|
|
435
406
|
expect(described_class.include_root_in_json).to be false
|
|
436
407
|
end
|
|
437
408
|
|
|
438
|
-
it
|
|
409
|
+
it 'sets the include type with serialization option' do
|
|
439
410
|
expect(described_class.include_type_for_serialization).to be false
|
|
440
411
|
end
|
|
441
412
|
|
|
442
|
-
it
|
|
413
|
+
it 'sets the scope overwrite option' do
|
|
443
414
|
expect(described_class.scope_overwrite_exception).to be false
|
|
444
415
|
end
|
|
445
416
|
|
|
446
|
-
it
|
|
417
|
+
it 'sets the preload models option' do
|
|
447
418
|
expect(described_class.preload_models).to be false
|
|
448
419
|
end
|
|
449
420
|
|
|
450
|
-
it
|
|
421
|
+
it 'sets the raise not found error option' do
|
|
451
422
|
expect(described_class.raise_not_found_error).to be true
|
|
452
423
|
end
|
|
453
424
|
|
|
454
|
-
it
|
|
425
|
+
it 'sets the use utc option' do
|
|
455
426
|
expect(described_class.use_utc).to be false
|
|
456
427
|
end
|
|
457
428
|
|
|
458
|
-
it
|
|
429
|
+
it 'sets the join_contexts default option' do
|
|
459
430
|
expect(described_class.join_contexts).to be false
|
|
460
431
|
end
|
|
461
432
|
end
|
|
462
433
|
|
|
463
|
-
context
|
|
464
|
-
|
|
434
|
+
context 'when provided an environment with driver options' do
|
|
465
435
|
before do
|
|
466
436
|
described_class.load!(file, :test)
|
|
467
437
|
end
|
|
@@ -470,17 +440,16 @@ describe Mongoid::Config do
|
|
|
470
440
|
described_class.reset
|
|
471
441
|
end
|
|
472
442
|
|
|
473
|
-
it
|
|
443
|
+
it 'sets the Mongo.broken_view_options option' do
|
|
474
444
|
expect(Mongo.broken_view_options).to eq(false)
|
|
475
445
|
end
|
|
476
446
|
|
|
477
|
-
it
|
|
447
|
+
it 'does not override the unset Mongo.validate_update_replace option' do
|
|
478
448
|
expect(Mongo.validate_update_replace).to eq(false)
|
|
479
449
|
end
|
|
480
450
|
end
|
|
481
451
|
|
|
482
|
-
context
|
|
483
|
-
|
|
452
|
+
context 'when provided an environment with a nil driver option' do
|
|
484
453
|
before do
|
|
485
454
|
described_class.load!(file, :test_nil)
|
|
486
455
|
end
|
|
@@ -489,61 +458,57 @@ describe Mongoid::Config do
|
|
|
489
458
|
described_class.reset
|
|
490
459
|
end
|
|
491
460
|
|
|
492
|
-
it
|
|
461
|
+
it 'sets the Mongo.broken_view_options option to nil' do
|
|
493
462
|
expect(Mongo.broken_view_options).to be_nil
|
|
494
463
|
end
|
|
495
464
|
end
|
|
496
465
|
|
|
497
|
-
context
|
|
498
|
-
|
|
466
|
+
context 'when the rack environment is set' do
|
|
499
467
|
before do
|
|
500
|
-
ENV[
|
|
468
|
+
ENV['RACK_ENV'] = 'test'
|
|
501
469
|
end
|
|
502
470
|
|
|
503
471
|
after do
|
|
504
|
-
ENV[
|
|
472
|
+
ENV['RACK_ENV'] = nil
|
|
505
473
|
described_class.reset
|
|
506
474
|
end
|
|
507
475
|
|
|
508
|
-
context
|
|
509
|
-
|
|
476
|
+
context 'when mongoid options are provided' do
|
|
510
477
|
before do
|
|
511
478
|
described_class.load!(file)
|
|
512
479
|
end
|
|
513
480
|
|
|
514
|
-
it
|
|
481
|
+
it 'sets the include root in json option' do
|
|
515
482
|
expect(described_class.include_root_in_json).to be false
|
|
516
483
|
end
|
|
517
484
|
|
|
518
|
-
it
|
|
485
|
+
it 'sets the include type with serialization option' do
|
|
519
486
|
expect(described_class.include_type_for_serialization).to be false
|
|
520
487
|
end
|
|
521
488
|
|
|
522
|
-
it
|
|
489
|
+
it 'sets the scope overwrite option' do
|
|
523
490
|
expect(described_class.scope_overwrite_exception).to be false
|
|
524
491
|
end
|
|
525
492
|
|
|
526
|
-
it
|
|
493
|
+
it 'sets the preload models option' do
|
|
527
494
|
expect(described_class.preload_models).to be false
|
|
528
495
|
end
|
|
529
496
|
|
|
530
|
-
it
|
|
497
|
+
it 'sets the raise not found error option' do
|
|
531
498
|
expect(described_class.raise_not_found_error).to be true
|
|
532
499
|
end
|
|
533
500
|
|
|
534
|
-
it
|
|
501
|
+
it 'sets the use utc option' do
|
|
535
502
|
expect(described_class.use_utc).to be false
|
|
536
503
|
end
|
|
537
504
|
|
|
538
|
-
it
|
|
505
|
+
it 'sets the join_contexts default option' do
|
|
539
506
|
expect(described_class.join_contexts).to be false
|
|
540
507
|
end
|
|
541
508
|
end
|
|
542
509
|
|
|
543
|
-
context
|
|
544
|
-
|
|
545
|
-
context "when a default is provided" do
|
|
546
|
-
|
|
510
|
+
context 'when client configurations are provided' do
|
|
511
|
+
context 'when a default is provided' do
|
|
547
512
|
before do
|
|
548
513
|
described_class.load!(file, :test_with_max_staleness)
|
|
549
514
|
end
|
|
@@ -552,21 +517,20 @@ describe Mongoid::Config do
|
|
|
552
517
|
described_class.clients[:default]
|
|
553
518
|
end
|
|
554
519
|
|
|
555
|
-
it
|
|
520
|
+
it 'sets the default hosts' do
|
|
556
521
|
expect(default[:hosts]).to eq(SpecConfig.instance.addresses)
|
|
557
522
|
# and make sure the value is not empty
|
|
558
523
|
expect(default[:hosts].first).to include(':')
|
|
559
524
|
end
|
|
560
525
|
|
|
561
|
-
context
|
|
562
|
-
|
|
526
|
+
context 'when the default has options' do
|
|
563
527
|
let(:options) do
|
|
564
|
-
default[
|
|
528
|
+
default['options']
|
|
565
529
|
end
|
|
566
530
|
|
|
567
|
-
it
|
|
568
|
-
expect(options[
|
|
569
|
-
|
|
531
|
+
it 'sets the read option' do
|
|
532
|
+
expect(options['read']).to eq({ 'mode' => :primary_preferred,
|
|
533
|
+
'max_staleness' => 100 })
|
|
570
534
|
end
|
|
571
535
|
end
|
|
572
536
|
end
|
|
@@ -575,68 +539,66 @@ describe Mongoid::Config do
|
|
|
575
539
|
|
|
576
540
|
context 'when schema map is provided with uuid' do
|
|
577
541
|
let(:file) do
|
|
578
|
-
File.join(File.dirname(__FILE__),
|
|
542
|
+
File.join(File.dirname(__FILE__), '..', 'config', 'mongoid_with_schema_map_uuid.yml')
|
|
579
543
|
end
|
|
544
|
+
let(:client) { Mongoid.default_client }
|
|
580
545
|
|
|
581
546
|
before do
|
|
582
547
|
described_class.load!(file, :test)
|
|
583
548
|
end
|
|
584
549
|
|
|
585
|
-
let(:client) { Mongoid.default_client }
|
|
586
|
-
|
|
587
550
|
it 'passes uuid to driver' do
|
|
588
551
|
Mongo::Client.should receive(:new).with(SpecConfig.instance.addresses,
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
552
|
+
{
|
|
553
|
+
auto_encryption_options: {
|
|
554
|
+
'key_vault_namespace' => 'admin.datakeys',
|
|
555
|
+
'kms_providers' => { 'local' => { 'key' => 'z7iYiYKLuYymEWtk4kfny1ESBwwFdA58qMqff96A8ghiOcIK75lJGPUIocku8LOFjQuEgeIP4xlln3s7r93FV9J5sAE7zg8U' } },
|
|
556
|
+
'schema_map' => { 'blog_development.comments' => {
|
|
557
|
+
'bsonType' => 'object',
|
|
558
|
+
'properties' => {
|
|
559
|
+
'message' => { 'encrypt' => {
|
|
560
|
+
'algorithm' => 'AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic',
|
|
561
|
+
'bsonType' => 'string',
|
|
562
|
+
'keyId' => [ BSON::Binary.new(
|
|
563
|
+
"G\xF0 5\xCC@HX\xA2%b\x97\xA9a\xA8\xE7", :uuid
|
|
564
|
+
) ]
|
|
565
|
+
} }
|
|
566
|
+
}
|
|
567
|
+
} }
|
|
568
|
+
},
|
|
569
|
+
database: 'mongoid_test',
|
|
570
|
+
platform: "mongoid-#{Mongoid::VERSION}",
|
|
571
|
+
wrapping_libraries: [
|
|
572
|
+
{ 'name' => 'Mongoid', 'version' => Mongoid::VERSION }
|
|
573
|
+
]
|
|
574
|
+
})
|
|
610
575
|
|
|
611
576
|
client
|
|
612
577
|
end
|
|
613
578
|
end
|
|
614
579
|
end
|
|
615
580
|
|
|
616
|
-
describe
|
|
617
|
-
|
|
618
|
-
context "when there are no options" do
|
|
619
|
-
|
|
581
|
+
describe '#options=' do
|
|
582
|
+
context 'when there are no options' do
|
|
620
583
|
before do
|
|
621
584
|
described_class.options = nil
|
|
622
585
|
end
|
|
623
586
|
|
|
624
|
-
it
|
|
587
|
+
it 'does not try to assign options' do
|
|
625
588
|
expect(described_class.preload_models).to be false
|
|
626
589
|
end
|
|
627
590
|
end
|
|
628
591
|
|
|
629
|
-
context
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
expect {
|
|
592
|
+
context 'when provided a non-existent option' do
|
|
593
|
+
it 'raises an error' do
|
|
594
|
+
expect do
|
|
633
595
|
described_class.options = { bad_option: true }
|
|
634
|
-
|
|
596
|
+
end.to raise_error(Mongoid::Errors::InvalidConfigOption)
|
|
635
597
|
end
|
|
636
598
|
end
|
|
637
599
|
|
|
638
600
|
context 'when invalid global_executor_concurrency option provided' do
|
|
639
|
-
it
|
|
601
|
+
it 'raises an error' do
|
|
640
602
|
expect do
|
|
641
603
|
described_class.options = {
|
|
642
604
|
async_query_executor: :immediate,
|
|
@@ -647,66 +609,58 @@ describe Mongoid::Config do
|
|
|
647
609
|
end
|
|
648
610
|
end
|
|
649
611
|
|
|
650
|
-
describe
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
it "raises an error" do
|
|
655
|
-
expect {
|
|
612
|
+
describe '#clients=' do
|
|
613
|
+
context 'when no clients configuration exists' do
|
|
614
|
+
it 'raises an error' do
|
|
615
|
+
expect do
|
|
656
616
|
described_class.send(:clients=, nil)
|
|
657
|
-
|
|
617
|
+
end.to raise_error(Mongoid::Errors::NoClientsConfig)
|
|
658
618
|
end
|
|
659
619
|
end
|
|
660
620
|
|
|
661
|
-
context
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
expect {
|
|
621
|
+
context 'when no default client exists' do
|
|
622
|
+
it 'raises an error' do
|
|
623
|
+
expect do
|
|
665
624
|
described_class.send(:clients=, {})
|
|
666
|
-
|
|
625
|
+
end.to raise_error(Mongoid::Errors::NoDefaultClient)
|
|
667
626
|
end
|
|
668
627
|
end
|
|
669
628
|
|
|
670
|
-
context
|
|
671
|
-
|
|
672
|
-
context "when no hosts are provided" do
|
|
673
|
-
|
|
629
|
+
context 'when a default client exists' do
|
|
630
|
+
context 'when no hosts are provided' do
|
|
674
631
|
let(:clients) do
|
|
675
|
-
{
|
|
632
|
+
{ 'default' => { database: database_id } }
|
|
676
633
|
end
|
|
677
634
|
|
|
678
|
-
it
|
|
679
|
-
expect
|
|
635
|
+
it 'raises an error' do
|
|
636
|
+
expect do
|
|
680
637
|
described_class.send(:clients=, clients)
|
|
681
|
-
|
|
638
|
+
end.to raise_error(Mongoid::Errors::NoClientHosts)
|
|
682
639
|
end
|
|
683
640
|
end
|
|
684
641
|
|
|
685
|
-
context
|
|
686
|
-
|
|
642
|
+
context 'when no database is provided' do
|
|
687
643
|
let(:clients) do
|
|
688
|
-
{
|
|
644
|
+
{ 'default' => { hosts: [ '127.0.0.1:27017' ] } }
|
|
689
645
|
end
|
|
690
646
|
|
|
691
|
-
it
|
|
692
|
-
expect
|
|
647
|
+
it 'raises an error' do
|
|
648
|
+
expect do
|
|
693
649
|
described_class.send(:clients=, clients)
|
|
694
|
-
|
|
650
|
+
end.to raise_error(Mongoid::Errors::NoClientDatabase)
|
|
695
651
|
end
|
|
696
652
|
end
|
|
697
653
|
|
|
698
|
-
context
|
|
699
|
-
|
|
654
|
+
context 'when a uri and standard options are provided' do
|
|
700
655
|
let(:clients) do
|
|
701
|
-
{
|
|
702
|
-
{ hosts: [
|
|
703
|
-
}
|
|
656
|
+
{ 'default' =>
|
|
657
|
+
{ hosts: [ '127.0.0.1:27017' ], uri: 'mongodb://127.0.0.1:27017' } }
|
|
704
658
|
end
|
|
705
659
|
|
|
706
|
-
it
|
|
707
|
-
expect
|
|
660
|
+
it 'raises an error' do
|
|
661
|
+
expect do
|
|
708
662
|
described_class.send(:clients=, clients)
|
|
709
|
-
|
|
663
|
+
end.to raise_error(Mongoid::Errors::MixedClientConfiguration)
|
|
710
664
|
end
|
|
711
665
|
end
|
|
712
666
|
end
|
|
@@ -741,8 +695,7 @@ describe Mongoid::Config do
|
|
|
741
695
|
end
|
|
742
696
|
end
|
|
743
697
|
|
|
744
|
-
describe
|
|
745
|
-
|
|
698
|
+
describe '#purge!' do
|
|
746
699
|
it 'deletes models' do
|
|
747
700
|
House.create!(name: '1', model: 'Big')
|
|
748
701
|
expect(House.count).to eq(1)
|
|
@@ -761,8 +714,7 @@ describe Mongoid::Config do
|
|
|
761
714
|
end
|
|
762
715
|
end
|
|
763
716
|
|
|
764
|
-
describe
|
|
765
|
-
|
|
717
|
+
describe '#truncate!' do
|
|
766
718
|
it 'deletes models' do
|
|
767
719
|
House.create!(name: '1', model: 'Big')
|
|
768
720
|
expect(House.count).to eq(1)
|
|
@@ -782,13 +734,13 @@ describe Mongoid::Config do
|
|
|
782
734
|
|
|
783
735
|
it 'does not drop indexes' do
|
|
784
736
|
User.create_indexes
|
|
785
|
-
expect(User.collection.indexes.map {|i| i['name'] }).to eq %w[_id_ name_1]
|
|
737
|
+
expect(User.collection.indexes.map { |i| i['name'] }).to eq %w[_id_ name_1]
|
|
786
738
|
Mongoid.truncate!
|
|
787
|
-
expect(User.collection.indexes.map {|i| i['name'] }).to eq %w[_id_ name_1]
|
|
739
|
+
expect(User.collection.indexes.map { |i| i['name'] }).to eq %w[_id_ name_1]
|
|
788
740
|
end
|
|
789
741
|
end
|
|
790
742
|
|
|
791
|
-
describe
|
|
743
|
+
describe '#override_database' do
|
|
792
744
|
let(:database) do
|
|
793
745
|
"test_override_#{Time.now.to_i}"
|
|
794
746
|
end
|
|
@@ -814,7 +766,7 @@ describe Mongoid::Config do
|
|
|
814
766
|
expect(Band.count).to eq(0)
|
|
815
767
|
end
|
|
816
768
|
|
|
817
|
-
|
|
769
|
+
describe '#truncate and #purge' do
|
|
818
770
|
before do
|
|
819
771
|
House.create!(name: '1', model: 'Big')
|
|
820
772
|
expect(House.count).to eq(1)
|
|
@@ -826,7 +778,7 @@ describe Mongoid::Config do
|
|
|
826
778
|
expect(House.count).to eq(1)
|
|
827
779
|
end
|
|
828
780
|
|
|
829
|
-
|
|
781
|
+
describe '#purge' do
|
|
830
782
|
it 'respects persistence context overrides' do
|
|
831
783
|
House.create!(name: '2', model: 'Tiny')
|
|
832
784
|
expect(House.count).to eq(1)
|
|
@@ -835,7 +787,7 @@ describe Mongoid::Config do
|
|
|
835
787
|
end
|
|
836
788
|
end
|
|
837
789
|
|
|
838
|
-
|
|
790
|
+
describe '#truncate' do
|
|
839
791
|
it '#truncate! respects persistence context overrides' do
|
|
840
792
|
House.create!(name: '2', model: 'Tiny')
|
|
841
793
|
expect(House.count).to eq(1)
|
|
@@ -848,9 +800,7 @@ describe Mongoid::Config do
|
|
|
848
800
|
|
|
849
801
|
describe 'deprecations' do
|
|
850
802
|
{}.each do |option, default|
|
|
851
|
-
|
|
852
803
|
context ":#{option} option" do
|
|
853
|
-
|
|
854
804
|
before do
|
|
855
805
|
Mongoid::Warnings.class_eval do
|
|
856
806
|
instance_variable_set(:"@#{option}_deprecated", false)
|