mongoid 7.5.4 → 8.1.7
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 +3 -3
- data/README.md +6 -6
- data/Rakefile +44 -46
- data/lib/config/locales/en.yml +92 -43
- data/lib/mongoid/association/accessors.rb +44 -11
- data/lib/mongoid/association/bindable.rb +50 -2
- data/lib/mongoid/association/builders.rb +5 -3
- data/lib/mongoid/association/constrainable.rb +0 -1
- data/lib/mongoid/association/eager_loadable.rb +29 -7
- data/lib/mongoid/association/embedded/batchable.rb +34 -11
- data/lib/mongoid/association/embedded/cyclic.rb +1 -1
- data/lib/mongoid/association/embedded/embedded_in/binding.rb +24 -2
- data/lib/mongoid/association/embedded/embedded_in/buildable.rb +2 -2
- data/lib/mongoid/association/embedded/embedded_in/proxy.rb +4 -3
- data/lib/mongoid/association/embedded/embedded_in.rb +3 -2
- data/lib/mongoid/association/embedded/embeds_many/binding.rb +1 -0
- data/lib/mongoid/association/embedded/embeds_many/buildable.rb +4 -3
- data/lib/mongoid/association/embedded/embeds_many/proxy.rb +85 -46
- data/lib/mongoid/association/embedded/embeds_many.rb +2 -2
- data/lib/mongoid/association/embedded/embeds_one/buildable.rb +19 -5
- data/lib/mongoid/association/embedded/embeds_one/proxy.rb +24 -5
- data/lib/mongoid/association/embedded/embeds_one.rb +3 -3
- data/lib/mongoid/association/macros.rb +8 -1
- data/lib/mongoid/association/many.rb +11 -7
- data/lib/mongoid/association/nested/many.rb +5 -4
- data/lib/mongoid/association/nested/nested_buildable.rb +4 -4
- data/lib/mongoid/association/nested/one.rb +45 -7
- data/lib/mongoid/association/one.rb +2 -2
- data/lib/mongoid/association/options.rb +9 -9
- data/lib/mongoid/association/proxy.rb +15 -4
- data/lib/mongoid/association/referenced/auto_save.rb +4 -3
- data/lib/mongoid/association/referenced/belongs_to/binding.rb +1 -0
- data/lib/mongoid/association/referenced/belongs_to/buildable.rb +1 -1
- data/lib/mongoid/association/referenced/belongs_to/proxy.rb +5 -6
- data/lib/mongoid/association/referenced/belongs_to.rb +2 -2
- data/lib/mongoid/association/referenced/counter_cache.rb +10 -10
- data/lib/mongoid/association/referenced/eager.rb +2 -2
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/proxy.rb +70 -13
- data/lib/mongoid/association/referenced/has_and_belongs_to_many.rb +6 -3
- data/lib/mongoid/association/referenced/has_many/enumerable.rb +22 -30
- data/lib/mongoid/association/referenced/has_many/proxy.rb +40 -21
- data/lib/mongoid/association/referenced/has_many.rb +3 -3
- data/lib/mongoid/association/referenced/has_one/buildable.rb +1 -1
- data/lib/mongoid/association/referenced/has_one/nested_builder.rb +5 -5
- data/lib/mongoid/association/referenced/has_one/proxy.rb +9 -12
- data/lib/mongoid/association/referenced/has_one.rb +3 -3
- data/lib/mongoid/association/referenced/syncable.rb +4 -4
- data/lib/mongoid/association/reflections.rb +4 -4
- data/lib/mongoid/association/relatable.rb +44 -10
- data/lib/mongoid/association.rb +5 -5
- data/lib/mongoid/atomic/modifiers.rb +2 -2
- data/lib/mongoid/atomic.rb +16 -7
- data/lib/mongoid/attributes/dynamic.rb +4 -4
- data/lib/mongoid/attributes/nested.rb +6 -6
- data/lib/mongoid/attributes/processing.rb +37 -6
- data/lib/mongoid/attributes/projector.rb +2 -2
- data/lib/mongoid/attributes/readonly.rb +3 -3
- data/lib/mongoid/attributes.rb +51 -42
- data/lib/mongoid/changeable.rb +147 -14
- data/lib/mongoid/clients/options.rb +5 -1
- data/lib/mongoid/clients/sessions.rb +2 -14
- data/lib/mongoid/clients/storage_options.rb +2 -5
- data/lib/mongoid/clients/validators/storage.rb +3 -15
- data/lib/mongoid/collection_configurable.rb +58 -0
- data/lib/mongoid/composable.rb +2 -0
- data/lib/mongoid/config/defaults.rb +60 -0
- data/lib/mongoid/config/options.rb +3 -0
- data/lib/mongoid/config/validators/async_query_executor.rb +24 -0
- data/lib/mongoid/config/validators/client.rb +6 -6
- data/lib/mongoid/config/validators.rb +1 -0
- data/lib/mongoid/config.rb +153 -18
- data/lib/mongoid/contextual/aggregable/memory.rb +24 -16
- data/lib/mongoid/contextual/aggregable/mongo.rb +5 -5
- data/lib/mongoid/contextual/aggregable/none.rb +1 -1
- data/lib/mongoid/contextual/atomic.rb +1 -1
- data/lib/mongoid/contextual/geo_near.rb +7 -7
- data/lib/mongoid/contextual/map_reduce.rb +2 -2
- data/lib/mongoid/contextual/memory.rb +285 -58
- data/lib/mongoid/contextual/mongo/documents_loader.rb +177 -0
- data/lib/mongoid/contextual/mongo.rb +540 -346
- data/lib/mongoid/contextual/none.rb +193 -20
- data/lib/mongoid/contextual/queryable.rb +1 -1
- data/lib/mongoid/contextual.rb +14 -2
- data/lib/mongoid/copyable.rb +32 -8
- data/lib/mongoid/criteria/findable.rb +8 -5
- data/lib/mongoid/criteria/includable.rb +27 -22
- data/lib/mongoid/criteria/marshalable.rb +10 -2
- data/lib/mongoid/criteria/permission.rb +1 -1
- data/lib/mongoid/criteria/queryable/aggregable.rb +2 -2
- data/lib/mongoid/criteria/queryable/extensions/array.rb +3 -16
- data/lib/mongoid/criteria/queryable/extensions/big_decimal.rb +25 -4
- data/lib/mongoid/criteria/queryable/extensions/boolean.rb +2 -2
- data/lib/mongoid/criteria/queryable/extensions/date.rb +6 -1
- data/lib/mongoid/criteria/queryable/extensions/date_time.rb +6 -1
- data/lib/mongoid/criteria/queryable/extensions/hash.rb +1 -17
- data/lib/mongoid/criteria/queryable/extensions/numeric.rb +15 -9
- data/lib/mongoid/criteria/queryable/extensions/object.rb +2 -1
- data/lib/mongoid/criteria/queryable/extensions/range.rb +13 -5
- data/lib/mongoid/criteria/queryable/extensions/regexp.rb +3 -3
- data/lib/mongoid/criteria/queryable/extensions/set.rb +1 -1
- data/lib/mongoid/criteria/queryable/extensions/string.rb +4 -14
- data/lib/mongoid/criteria/queryable/extensions/symbol.rb +4 -12
- data/lib/mongoid/criteria/queryable/extensions/time.rb +6 -1
- data/lib/mongoid/criteria/queryable/extensions/time_with_zone.rb +6 -1
- data/lib/mongoid/criteria/queryable/key.rb +4 -4
- data/lib/mongoid/criteria/queryable/mergeable.rb +1 -1
- data/lib/mongoid/criteria/queryable/optional.rb +11 -17
- data/lib/mongoid/criteria/queryable/options.rb +2 -2
- data/lib/mongoid/criteria/queryable/pipeline.rb +1 -1
- data/lib/mongoid/criteria/queryable/selectable.rb +47 -38
- data/lib/mongoid/criteria/queryable/selector.rb +92 -7
- data/lib/mongoid/criteria/queryable/smash.rb +40 -7
- data/lib/mongoid/criteria/queryable.rb +12 -7
- data/lib/mongoid/criteria/scopable.rb +2 -2
- data/lib/mongoid/criteria/translator.rb +45 -0
- data/lib/mongoid/criteria.rb +20 -40
- data/lib/mongoid/deprecable.rb +37 -0
- data/lib/mongoid/deprecation.rb +25 -0
- data/lib/mongoid/document.rb +127 -35
- data/lib/mongoid/equality.rb +8 -8
- data/lib/mongoid/errors/create_collection_failure.rb +33 -0
- data/lib/mongoid/errors/document_not_found.rb +10 -6
- data/lib/mongoid/errors/drop_collection_failure.rb +27 -0
- data/lib/mongoid/errors/immutable_attribute.rb +26 -0
- data/lib/mongoid/errors/invalid_async_query_executor.rb +25 -0
- data/lib/mongoid/errors/invalid_config_option.rb +1 -1
- data/lib/mongoid/errors/invalid_dependent_strategy.rb +1 -1
- data/lib/mongoid/errors/invalid_dot_dollar_assignment.rb +23 -0
- data/lib/mongoid/errors/invalid_field.rb +6 -2
- data/lib/mongoid/errors/invalid_field_type.rb +26 -0
- data/lib/mongoid/errors/invalid_global_executor_concurrency.rb +22 -0
- data/lib/mongoid/errors/invalid_relation.rb +1 -1
- data/lib/mongoid/errors/invalid_relation_option.rb +1 -1
- data/lib/mongoid/errors/invalid_session_use.rb +1 -1
- data/lib/mongoid/errors/invalid_storage_options.rb +1 -1
- data/lib/mongoid/errors/invalid_storage_parent.rb +2 -0
- data/lib/mongoid/errors/mongoid_error.rb +3 -3
- data/lib/mongoid/errors/nested_attributes_metadata_not_found.rb +1 -1
- data/lib/mongoid/errors/no_client_database.rb +1 -1
- data/lib/mongoid/errors/no_client_hosts.rb +1 -1
- data/lib/mongoid/errors/readonly_attribute.rb +1 -1
- data/lib/mongoid/errors/too_many_nested_attribute_records.rb +1 -1
- data/lib/mongoid/errors/unknown_attribute.rb +1 -1
- data/lib/mongoid/errors.rb +6 -3
- data/lib/mongoid/extensions/array.rb +9 -7
- data/lib/mongoid/extensions/big_decimal.rb +33 -10
- data/lib/mongoid/extensions/binary.rb +42 -0
- data/lib/mongoid/extensions/boolean.rb +8 -2
- data/lib/mongoid/extensions/date.rb +26 -20
- data/lib/mongoid/extensions/date_time.rb +1 -1
- data/lib/mongoid/extensions/false_class.rb +1 -1
- data/lib/mongoid/extensions/float.rb +7 -4
- data/lib/mongoid/extensions/hash.rb +38 -9
- data/lib/mongoid/extensions/integer.rb +7 -4
- data/lib/mongoid/extensions/module.rb +1 -1
- data/lib/mongoid/extensions/object.rb +10 -8
- data/lib/mongoid/extensions/range.rb +41 -10
- data/lib/mongoid/extensions/regexp.rb +11 -4
- data/lib/mongoid/extensions/set.rb +11 -4
- data/lib/mongoid/extensions/string.rb +11 -22
- data/lib/mongoid/extensions/symbol.rb +4 -15
- data/lib/mongoid/extensions/time.rb +29 -16
- data/lib/mongoid/extensions/time_with_zone.rb +1 -2
- data/lib/mongoid/extensions/true_class.rb +1 -1
- data/lib/mongoid/extensions.rb +1 -0
- data/lib/mongoid/factory.rb +55 -7
- data/lib/mongoid/fields/foreign_key.rb +11 -4
- data/lib/mongoid/fields/localized.rb +19 -4
- data/lib/mongoid/fields/standard.rb +17 -7
- data/lib/mongoid/fields/validators/macro.rb +3 -9
- data/lib/mongoid/fields.rb +142 -28
- data/lib/mongoid/findable.rb +54 -24
- data/lib/mongoid/indexable/specification.rb +2 -2
- data/lib/mongoid/indexable/validators/options.rb +6 -2
- data/lib/mongoid/interceptable.rb +186 -16
- data/lib/mongoid/matchable.rb +1 -1
- data/lib/mongoid/matcher/eq_impl.rb +1 -1
- data/lib/mongoid/matcher/type.rb +1 -1
- data/lib/mongoid/matcher.rb +48 -14
- data/lib/mongoid/persistable/creatable.rb +19 -9
- data/lib/mongoid/persistable/deletable.rb +2 -2
- data/lib/mongoid/persistable/destroyable.rb +1 -1
- data/lib/mongoid/persistable/savable.rb +14 -2
- data/lib/mongoid/persistable/unsettable.rb +2 -2
- data/lib/mongoid/persistable/updatable.rb +69 -12
- data/lib/mongoid/persistable/upsertable.rb +21 -2
- data/lib/mongoid/persistable.rb +6 -3
- data/lib/mongoid/persistence_context.rb +6 -4
- data/lib/mongoid/query_cache.rb +13 -261
- data/lib/mongoid/railties/controller_runtime.rb +1 -1
- data/lib/mongoid/railties/database.rake +7 -2
- data/lib/mongoid/reloadable.rb +10 -8
- data/lib/mongoid/scopable.rb +15 -13
- data/lib/mongoid/selectable.rb +1 -2
- data/lib/mongoid/serializable.rb +17 -13
- data/lib/mongoid/stateful.rb +57 -10
- data/lib/mongoid/tasks/database.rake +12 -0
- data/lib/mongoid/tasks/database.rb +20 -2
- data/lib/mongoid/threaded/lifecycle.rb +5 -5
- data/lib/mongoid/threaded.rb +42 -12
- data/lib/mongoid/timestamps/created.rb +1 -1
- data/lib/mongoid/timestamps/updated.rb +2 -2
- data/lib/mongoid/touchable.rb +3 -4
- data/lib/mongoid/traversable.rb +10 -5
- data/lib/mongoid/utils.rb +22 -0
- data/lib/mongoid/validatable/associated.rb +98 -17
- data/lib/mongoid/validatable/localizable.rb +1 -1
- data/lib/mongoid/validatable/macros.rb +5 -7
- data/lib/mongoid/validatable/presence.rb +2 -2
- data/lib/mongoid/validatable/uniqueness.rb +9 -8
- data/lib/mongoid/validatable.rb +17 -6
- data/lib/mongoid/version.rb +1 -1
- data/lib/mongoid/warnings.rb +19 -4
- data/lib/mongoid.rb +17 -3
- data/spec/config/mongoid.yml +16 -0
- data/spec/integration/app_spec.rb +24 -19
- data/spec/integration/associations/belongs_to_spec.rb +18 -0
- data/spec/integration/associations/embedded_spec.rb +15 -0
- data/spec/integration/associations/embeds_many_spec.rb +15 -2
- data/spec/integration/associations/embeds_one_spec.rb +18 -0
- data/spec/integration/associations/foreign_key_spec.rb +9 -0
- data/spec/integration/associations/has_and_belongs_to_many_spec.rb +61 -0
- data/spec/integration/associations/has_one_spec.rb +97 -1
- data/spec/integration/associations/scope_option_spec.rb +1 -1
- data/spec/integration/callbacks_models.rb +132 -1
- data/spec/integration/callbacks_spec.rb +381 -4
- data/spec/integration/criteria/range_spec.rb +95 -1
- data/spec/integration/discriminator_key_spec.rb +118 -80
- data/spec/integration/dots_and_dollars_spec.rb +277 -0
- data/spec/integration/i18n_fallbacks_spec.rb +3 -32
- data/spec/integration/matcher_examples_spec.rb +20 -13
- data/spec/integration/matcher_operator_data/type_decimal.yml +3 -2
- data/spec/integration/matcher_operator_spec.rb +3 -5
- data/spec/integration/persistence/range_field_spec.rb +350 -0
- data/spec/mongoid/association/counter_cache_spec.rb +1 -1
- data/spec/mongoid/association/depending_spec.rb +9 -9
- data/spec/mongoid/association/eager_spec.rb +2 -1
- data/spec/mongoid/association/embedded/embedded_in/binding_spec.rb +2 -1
- data/spec/mongoid/association/embedded/embedded_in/buildable_spec.rb +54 -0
- data/spec/mongoid/association/embedded/embedded_in/proxy_spec.rb +96 -9
- data/spec/mongoid/association/embedded/embeds_many/buildable_spec.rb +112 -0
- data/spec/mongoid/association/embedded/embeds_many/proxy_spec.rb +290 -65
- data/spec/mongoid/association/embedded/embeds_many_models.rb +37 -0
- data/spec/mongoid/association/embedded/embeds_many_query_spec.rb +16 -0
- data/spec/mongoid/association/embedded/embeds_many_spec.rb +68 -0
- data/spec/mongoid/association/embedded/embeds_one/buildable_spec.rb +25 -0
- data/spec/mongoid/association/embedded/embeds_one/proxy_spec.rb +15 -2
- data/spec/mongoid/association/embedded/embeds_one_models.rb +19 -0
- data/spec/mongoid/association/embedded/embeds_one_spec.rb +28 -0
- data/spec/mongoid/association/referenced/belongs_to/binding_spec.rb +2 -1
- data/spec/mongoid/association/referenced/belongs_to/buildable_spec.rb +54 -0
- data/spec/mongoid/association/referenced/belongs_to/proxy_spec.rb +19 -0
- data/spec/mongoid/association/referenced/belongs_to_models.rb +11 -0
- data/spec/mongoid/association/referenced/belongs_to_spec.rb +4 -20
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_spec.rb +186 -229
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_models.rb +25 -0
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_spec.rb +35 -2
- data/spec/mongoid/association/referenced/has_many/buildable_spec.rb +109 -0
- data/spec/mongoid/association/referenced/has_many/enumerable_spec.rb +2 -56
- data/spec/mongoid/association/referenced/has_many/proxy_spec.rb +215 -177
- data/spec/mongoid/association/referenced/has_many_models.rb +3 -1
- data/spec/mongoid/association/referenced/has_many_spec.rb +25 -0
- data/spec/mongoid/association/referenced/has_one/buildable_spec.rb +2 -2
- data/spec/mongoid/association/referenced/has_one/proxy_spec.rb +107 -1
- data/spec/mongoid/association/referenced/has_one_models.rb +16 -0
- data/spec/mongoid/association/syncable_spec.rb +15 -1
- data/spec/mongoid/atomic/paths_spec.rb +0 -14
- data/spec/mongoid/attributes/nested_spec.rb +80 -11
- data/spec/mongoid/attributes/nested_spec_models.rb +48 -0
- data/spec/mongoid/attributes/projector_spec.rb +1 -5
- data/spec/mongoid/attributes_spec.rb +526 -33
- data/spec/mongoid/changeable_spec.rb +429 -37
- data/spec/mongoid/clients/factory_spec.rb +23 -30
- data/spec/mongoid/clients/sessions_spec.rb +0 -38
- data/spec/mongoid/clients_spec.rb +149 -15
- data/spec/mongoid/collection_configurable_spec.rb +158 -0
- data/spec/mongoid/config/defaults_spec.rb +160 -0
- data/spec/mongoid/config_spec.rb +214 -31
- data/spec/mongoid/contextual/aggregable/memory_spec.rb +396 -158
- data/spec/mongoid/contextual/aggregable/memory_table.yml +88 -0
- data/spec/mongoid/contextual/aggregable/memory_table_spec.rb +62 -0
- data/spec/mongoid/contextual/map_reduce_spec.rb +2 -16
- data/spec/mongoid/contextual/memory_spec.rb +850 -88
- data/spec/mongoid/contextual/mongo/documents_loader_spec.rb +187 -0
- data/spec/mongoid/contextual/mongo_spec.rb +2256 -1005
- data/spec/mongoid/contextual/none_spec.rb +60 -21
- data/spec/mongoid/copyable_spec.rb +453 -11
- data/spec/mongoid/criteria/findable_spec.rb +86 -210
- data/spec/mongoid/criteria/includable_spec.rb +1492 -0
- data/spec/mongoid/criteria/includable_spec_models.rb +54 -0
- data/spec/mongoid/criteria/marshalable_spec.rb +18 -1
- data/spec/mongoid/criteria/queryable/extensions/array_spec.rb +7 -19
- data/spec/mongoid/criteria/queryable/extensions/big_decimal_spec.rb +134 -26
- data/spec/mongoid/criteria/queryable/extensions/date_spec.rb +11 -0
- data/spec/mongoid/criteria/queryable/extensions/date_time_spec.rb +11 -0
- data/spec/mongoid/criteria/queryable/extensions/hash_spec.rb +0 -15
- data/spec/mongoid/criteria/queryable/extensions/numeric_spec.rb +73 -7
- data/spec/mongoid/criteria/queryable/extensions/string_spec.rb +4 -69
- data/spec/mongoid/criteria/queryable/extensions/symbol_spec.rb +0 -59
- data/spec/mongoid/criteria/queryable/extensions/time_spec.rb +11 -0
- data/spec/mongoid/criteria/queryable/extensions/time_with_zone_spec.rb +11 -0
- data/spec/mongoid/criteria/queryable/optional_spec.rb +15 -484
- data/spec/mongoid/criteria/queryable/options_spec.rb +1 -1
- data/spec/mongoid/criteria/queryable/selectable_logical_spec.rb +469 -0
- data/spec/mongoid/criteria/queryable/selectable_spec.rb +78 -86
- data/spec/mongoid/criteria/queryable/selector_spec.rb +15 -3
- data/spec/mongoid/criteria/translator_spec.rb +132 -0
- data/spec/mongoid/criteria_projection_spec.rb +1 -5
- data/spec/mongoid/criteria_spec.rb +469 -1205
- data/spec/mongoid/document_fields_spec.rb +173 -24
- data/spec/mongoid/document_spec.rb +32 -41
- data/spec/mongoid/errors/document_not_found_spec.rb +29 -2
- data/spec/mongoid/errors/invalid_field_spec.rb +1 -1
- data/spec/mongoid/errors/invalid_field_type_spec.rb +55 -0
- data/spec/mongoid/errors/mongoid_error_spec.rb +3 -1
- data/spec/mongoid/errors/no_environment_spec.rb +3 -3
- data/spec/mongoid/errors/readonly_document_spec.rb +2 -2
- data/spec/mongoid/errors/too_many_nested_attribute_records_spec.rb +1 -1
- data/spec/mongoid/extensions/array_spec.rb +16 -2
- data/spec/mongoid/extensions/big_decimal_spec.rb +712 -212
- data/spec/mongoid/extensions/binary_spec.rb +44 -9
- data/spec/mongoid/extensions/boolean_spec.rb +68 -82
- data/spec/mongoid/extensions/date_class_mongoize_spec.rb +7 -3
- data/spec/mongoid/extensions/date_spec.rb +71 -1
- data/spec/mongoid/extensions/date_time_spec.rb +15 -9
- data/spec/mongoid/extensions/float_spec.rb +53 -74
- data/spec/mongoid/extensions/hash_spec.rb +33 -3
- data/spec/mongoid/extensions/integer_spec.rb +50 -64
- data/spec/mongoid/extensions/range_spec.rb +255 -54
- data/spec/mongoid/extensions/regexp_spec.rb +58 -33
- data/spec/mongoid/extensions/set_spec.rb +106 -0
- data/spec/mongoid/extensions/string_spec.rb +53 -25
- data/spec/mongoid/extensions/symbol_spec.rb +18 -25
- data/spec/mongoid/extensions/time_spec.rb +639 -106
- data/spec/mongoid/extensions/time_with_zone_spec.rb +24 -83
- data/spec/mongoid/factory_spec.rb +61 -1
- data/spec/mongoid/fields/localized_spec.rb +80 -37
- data/spec/mongoid/fields_spec.rb +503 -87
- data/spec/mongoid/findable_spec.rb +450 -58
- data/spec/mongoid/indexable/specification_spec.rb +2 -2
- data/spec/mongoid/indexable_spec.rb +55 -30
- data/spec/mongoid/interceptable_spec.rb +824 -22
- data/spec/mongoid/interceptable_spec_models.rb +235 -4
- data/spec/mongoid/matcher/extract_attribute_spec.rb +1 -5
- data/spec/mongoid/mongoizable_spec.rb +285 -0
- data/spec/mongoid/persistable/creatable_spec.rb +2 -2
- data/spec/mongoid/persistable/deletable_spec.rb +28 -8
- data/spec/mongoid/persistable/destroyable_spec.rb +28 -8
- data/spec/mongoid/persistable/incrementable_spec.rb +37 -0
- data/spec/mongoid/persistable/logical_spec.rb +37 -0
- data/spec/mongoid/persistable/poppable_spec.rb +36 -0
- data/spec/mongoid/persistable/pullable_spec.rb +72 -0
- data/spec/mongoid/persistable/pushable_spec.rb +72 -0
- data/spec/mongoid/persistable/renamable_spec.rb +36 -0
- data/spec/mongoid/persistable/savable_spec.rb +96 -0
- data/spec/mongoid/persistable/settable_spec.rb +37 -0
- data/spec/mongoid/persistable/unsettable_spec.rb +36 -0
- data/spec/mongoid/persistable/updatable_spec.rb +20 -28
- data/spec/mongoid/persistable/upsertable_spec.rb +89 -1
- data/spec/mongoid/persistence_context_spec.rb +31 -57
- data/spec/mongoid/query_cache_middleware_spec.rb +0 -18
- data/spec/mongoid/query_cache_spec.rb +56 -215
- data/spec/mongoid/reloadable_spec.rb +83 -6
- data/spec/mongoid/scopable_spec.rb +91 -1
- data/spec/mongoid/serializable_spec.rb +25 -39
- data/spec/mongoid/shardable_spec.rb +4 -4
- data/spec/mongoid/stateful_spec.rb +150 -8
- data/spec/mongoid/tasks/database_rake_spec.rb +74 -0
- data/spec/mongoid/tasks/database_spec.rb +127 -0
- data/spec/mongoid/timestamps_spec.rb +392 -4
- data/spec/mongoid/timestamps_spec_models.rb +67 -0
- data/spec/mongoid/touchable_spec.rb +390 -2
- data/spec/mongoid/touchable_spec_models.rb +14 -8
- data/spec/mongoid/traversable_spec.rb +13 -35
- data/spec/mongoid/validatable/associated_spec.rb +27 -34
- data/spec/mongoid/validatable/presence_spec.rb +1 -1
- data/spec/mongoid/validatable/uniqueness_spec.rb +58 -31
- data/spec/mongoid/warnings_spec.rb +35 -0
- data/spec/mongoid_spec.rb +34 -16
- data/spec/rails/controller_extension/controller_runtime_spec.rb +2 -2
- data/spec/rails/mongoid_spec.rb +4 -16
- data/spec/spec_helper.rb +5 -0
- data/spec/support/constraints.rb +24 -0
- data/spec/support/immutable_ids.rb +118 -0
- data/spec/support/macros.rb +78 -0
- data/spec/support/models/artist.rb +0 -1
- data/spec/support/models/augmentation.rb +12 -0
- data/spec/support/models/band.rb +5 -0
- data/spec/support/models/book.rb +1 -0
- data/spec/support/models/building.rb +2 -0
- data/spec/support/models/catalog.rb +24 -0
- data/spec/support/models/circus.rb +3 -0
- data/spec/support/models/cover.rb +10 -0
- data/spec/support/models/fanatic.rb +8 -0
- data/spec/support/models/implant.rb +9 -0
- data/spec/support/models/label.rb +2 -0
- data/spec/support/models/lat_lng.rb +6 -0
- data/spec/support/models/name.rb +10 -0
- data/spec/support/models/passport.rb +9 -0
- data/spec/support/models/person.rb +2 -0
- data/spec/support/models/player.rb +2 -0
- data/spec/support/models/powerup.rb +12 -0
- data/spec/support/models/product.rb +1 -0
- data/spec/support/models/purse.rb +9 -0
- data/spec/support/models/registry.rb +1 -0
- data/spec/support/models/school.rb +14 -0
- data/spec/support/models/shield.rb +18 -0
- data/spec/support/models/student.rb +14 -0
- data/spec/support/models/weapon.rb +12 -0
- metadata +101 -96
- checksums.yaml.gz.sig +0 -0
- data/lib/mongoid/errors/eager_load.rb +0 -23
- data/lib/mongoid/errors/invalid_value.rb +0 -17
- data/spec/mongoid/criteria/queryable/extensions/bignum_spec.rb +0 -60
- data/spec/mongoid/criteria/queryable/extensions/fixnum_spec.rb +0 -60
- data/spec/mongoid/errors/eager_load_spec.rb +0 -31
- data/spec/shared/LICENSE +0 -20
- data/spec/shared/bin/get-mongodb-download-url +0 -17
- data/spec/shared/bin/s3-copy +0 -45
- data/spec/shared/bin/s3-upload +0 -69
- data/spec/shared/lib/mrss/child_process_helper.rb +0 -80
- data/spec/shared/lib/mrss/cluster_config.rb +0 -231
- data/spec/shared/lib/mrss/constraints.rb +0 -378
- data/spec/shared/lib/mrss/docker_runner.rb +0 -291
- data/spec/shared/lib/mrss/eg_config_utils.rb +0 -51
- data/spec/shared/lib/mrss/event_subscriber.rb +0 -210
- data/spec/shared/lib/mrss/lite_constraints.rb +0 -238
- data/spec/shared/lib/mrss/server_version_registry.rb +0 -120
- data/spec/shared/lib/mrss/session_registry.rb +0 -69
- data/spec/shared/lib/mrss/session_registry_legacy.rb +0 -60
- data/spec/shared/lib/mrss/spec_organizer.rb +0 -179
- data/spec/shared/lib/mrss/utils.rb +0 -15
- data/spec/shared/share/Dockerfile.erb +0 -325
- data/spec/shared/share/haproxy-1.conf +0 -16
- data/spec/shared/share/haproxy-2.conf +0 -17
- data/spec/shared/shlib/config.sh +0 -27
- data/spec/shared/shlib/distro.sh +0 -74
- data/spec/shared/shlib/server.sh +0 -392
- data/spec/shared/shlib/set_env.sh +0 -169
- data.tar.gz.sig +0 -0
- metadata.gz.sig +0 -3
@@ -50,7 +50,7 @@ describe Mongoid::Criteria::Findable do
|
|
50
50
|
it 'respects conditions' do
|
51
51
|
expect do
|
52
52
|
found
|
53
|
-
end.to raise_error(Mongoid::Errors::DocumentNotFound)
|
53
|
+
end.to raise_error(Mongoid::Errors::DocumentNotFound, /Document\(s\) not found for class Band with id\(s\)/)
|
54
54
|
end
|
55
55
|
end
|
56
56
|
|
@@ -70,7 +70,7 @@ describe Mongoid::Criteria::Findable do
|
|
70
70
|
it 'respects both conditions' do
|
71
71
|
expect do
|
72
72
|
found
|
73
|
-
end.to raise_error(Mongoid::Errors::DocumentNotFound)
|
73
|
+
end.to raise_error(Mongoid::Errors::DocumentNotFound, /Document\(s\) not found for class Band with id\(s\)/)
|
74
74
|
end
|
75
75
|
end
|
76
76
|
end
|
@@ -108,10 +108,7 @@ describe Mongoid::Criteria::Findable do
|
|
108
108
|
context "when the id does not match" do
|
109
109
|
|
110
110
|
context "when raising a not found error" do
|
111
|
-
|
112
|
-
before do
|
113
|
-
Mongoid.raise_not_found_error = true
|
114
|
-
end
|
111
|
+
config_override :raise_not_found_error, true
|
115
112
|
|
116
113
|
let(:found) do
|
117
114
|
Band.find(BSON::ObjectId.new)
|
@@ -120,19 +117,12 @@ describe Mongoid::Criteria::Findable do
|
|
120
117
|
it "raises an error" do
|
121
118
|
expect {
|
122
119
|
found
|
123
|
-
}.to raise_error(Mongoid::Errors::DocumentNotFound)
|
120
|
+
}.to raise_error(Mongoid::Errors::DocumentNotFound, /Document\(s\) not found for class Band with id\(s\)/)
|
124
121
|
end
|
125
122
|
end
|
126
123
|
|
127
124
|
context "when raising no error" do
|
128
|
-
|
129
|
-
before do
|
130
|
-
Mongoid.raise_not_found_error = false
|
131
|
-
end
|
132
|
-
|
133
|
-
after do
|
134
|
-
Mongoid.raise_not_found_error = true
|
135
|
-
end
|
125
|
+
config_override :raise_not_found_error, false
|
136
126
|
|
137
127
|
let(:found) do
|
138
128
|
Band.find(BSON::ObjectId.new)
|
@@ -180,10 +170,7 @@ describe Mongoid::Criteria::Findable do
|
|
180
170
|
context "when any id does not match" do
|
181
171
|
|
182
172
|
context "when raising a not found error" do
|
183
|
-
|
184
|
-
before do
|
185
|
-
Mongoid.raise_not_found_error = true
|
186
|
-
end
|
173
|
+
config_override :raise_not_found_error, true
|
187
174
|
|
188
175
|
let(:found) do
|
189
176
|
Band.find(band.id, BSON::ObjectId.new)
|
@@ -192,19 +179,12 @@ describe Mongoid::Criteria::Findable do
|
|
192
179
|
it "raises an error" do
|
193
180
|
expect {
|
194
181
|
found
|
195
|
-
}.to raise_error(Mongoid::Errors::DocumentNotFound)
|
182
|
+
}.to raise_error(Mongoid::Errors::DocumentNotFound, /Document\(s\) not found for class Band with id\(s\)/)
|
196
183
|
end
|
197
184
|
end
|
198
185
|
|
199
186
|
context "when raising no error" do
|
200
|
-
|
201
|
-
before do
|
202
|
-
Mongoid.raise_not_found_error = false
|
203
|
-
end
|
204
|
-
|
205
|
-
after do
|
206
|
-
Mongoid.raise_not_found_error = true
|
207
|
-
end
|
187
|
+
config_override :raise_not_found_error, false
|
208
188
|
|
209
189
|
let(:found) do
|
210
190
|
Band.find(band.id, BSON::ObjectId.new)
|
@@ -252,10 +232,7 @@ describe Mongoid::Criteria::Findable do
|
|
252
232
|
context "when any id does not match" do
|
253
233
|
|
254
234
|
context "when raising a not found error" do
|
255
|
-
|
256
|
-
before do
|
257
|
-
Mongoid.raise_not_found_error = true
|
258
|
-
end
|
235
|
+
config_override :raise_not_found_error, true
|
259
236
|
|
260
237
|
let(:found) do
|
261
238
|
Band.find([ band.id, BSON::ObjectId.new ])
|
@@ -264,19 +241,12 @@ describe Mongoid::Criteria::Findable do
|
|
264
241
|
it "raises an error" do
|
265
242
|
expect {
|
266
243
|
found
|
267
|
-
}.to raise_error(Mongoid::Errors::DocumentNotFound)
|
244
|
+
}.to raise_error(Mongoid::Errors::DocumentNotFound, /Document\(s\) not found for class Band with id\(s\)/)
|
268
245
|
end
|
269
246
|
end
|
270
247
|
|
271
248
|
context "when raising no error" do
|
272
|
-
|
273
|
-
before do
|
274
|
-
Mongoid.raise_not_found_error = false
|
275
|
-
end
|
276
|
-
|
277
|
-
after do
|
278
|
-
Mongoid.raise_not_found_error = true
|
279
|
-
end
|
249
|
+
config_override :raise_not_found_error, false
|
280
250
|
|
281
251
|
let(:found) do
|
282
252
|
Band.find([ band.id, BSON::ObjectId.new ])
|
@@ -305,10 +275,7 @@ describe Mongoid::Criteria::Findable do
|
|
305
275
|
context "when the id does not match" do
|
306
276
|
|
307
277
|
context "when raising a not found error" do
|
308
|
-
|
309
|
-
before do
|
310
|
-
Mongoid.raise_not_found_error = true
|
311
|
-
end
|
278
|
+
config_override :raise_not_found_error, true
|
312
279
|
|
313
280
|
let(:found) do
|
314
281
|
Band.find(BSON::ObjectId.new.as_json)
|
@@ -317,19 +284,12 @@ describe Mongoid::Criteria::Findable do
|
|
317
284
|
it "raises an error" do
|
318
285
|
expect {
|
319
286
|
found
|
320
|
-
}.to raise_error(Mongoid::Errors::DocumentNotFound)
|
287
|
+
}.to raise_error(Mongoid::Errors::DocumentNotFound, /Document\(s\) not found for class Band with id\(s\)/)
|
321
288
|
end
|
322
289
|
end
|
323
290
|
|
324
291
|
context "when raising no error" do
|
325
|
-
|
326
|
-
before do
|
327
|
-
Mongoid.raise_not_found_error = false
|
328
|
-
end
|
329
|
-
|
330
|
-
after do
|
331
|
-
Mongoid.raise_not_found_error = true
|
332
|
-
end
|
292
|
+
config_override :raise_not_found_error, false
|
333
293
|
|
334
294
|
let(:found) do
|
335
295
|
Band.find(BSON::ObjectId.new.as_json)
|
@@ -377,10 +337,7 @@ describe Mongoid::Criteria::Findable do
|
|
377
337
|
context "when any id does not match" do
|
378
338
|
|
379
339
|
context "when raising a not found error" do
|
380
|
-
|
381
|
-
before do
|
382
|
-
Mongoid.raise_not_found_error = true
|
383
|
-
end
|
340
|
+
config_override :raise_not_found_error, true
|
384
341
|
|
385
342
|
let(:found) do
|
386
343
|
Band.find(band.id.as_json, BSON::ObjectId.new.as_json)
|
@@ -389,19 +346,12 @@ describe Mongoid::Criteria::Findable do
|
|
389
346
|
it "raises an error" do
|
390
347
|
expect {
|
391
348
|
found
|
392
|
-
}.to raise_error(Mongoid::Errors::DocumentNotFound)
|
349
|
+
}.to raise_error(Mongoid::Errors::DocumentNotFound, /Document\(s\) not found for class Band with id\(s\)/)
|
393
350
|
end
|
394
351
|
end
|
395
352
|
|
396
353
|
context "when raising no error" do
|
397
|
-
|
398
|
-
before do
|
399
|
-
Mongoid.raise_not_found_error = false
|
400
|
-
end
|
401
|
-
|
402
|
-
after do
|
403
|
-
Mongoid.raise_not_found_error = true
|
404
|
-
end
|
354
|
+
config_override :raise_not_found_error, false
|
405
355
|
|
406
356
|
let(:found) do
|
407
357
|
Band.find(band.id.as_json, BSON::ObjectId.new.as_json)
|
@@ -449,10 +399,7 @@ describe Mongoid::Criteria::Findable do
|
|
449
399
|
context "when any id does not match" do
|
450
400
|
|
451
401
|
context "when raising a not found error" do
|
452
|
-
|
453
|
-
before do
|
454
|
-
Mongoid.raise_not_found_error = true
|
455
|
-
end
|
402
|
+
config_override :raise_not_found_error, true
|
456
403
|
|
457
404
|
let(:found) do
|
458
405
|
Band.find([ band.id.as_json, BSON::ObjectId.new.as_json ])
|
@@ -461,19 +408,12 @@ describe Mongoid::Criteria::Findable do
|
|
461
408
|
it "raises an error" do
|
462
409
|
expect {
|
463
410
|
found
|
464
|
-
}.to raise_error(Mongoid::Errors::DocumentNotFound)
|
411
|
+
}.to raise_error(Mongoid::Errors::DocumentNotFound, /Document\(s\) not found for class Band with id\(s\)/)
|
465
412
|
end
|
466
413
|
end
|
467
414
|
|
468
415
|
context "when raising no error" do
|
469
|
-
|
470
|
-
before do
|
471
|
-
Mongoid.raise_not_found_error = false
|
472
|
-
end
|
473
|
-
|
474
|
-
after do
|
475
|
-
Mongoid.raise_not_found_error = true
|
476
|
-
end
|
416
|
+
config_override :raise_not_found_error, false
|
477
417
|
|
478
418
|
let(:found) do
|
479
419
|
Band.find([ band.id.as_json, BSON::ObjectId.new.as_json ])
|
@@ -519,10 +459,7 @@ describe Mongoid::Criteria::Findable do
|
|
519
459
|
context "when the id does not match" do
|
520
460
|
|
521
461
|
context "when raising a not found error" do
|
522
|
-
|
523
|
-
before do
|
524
|
-
Mongoid.raise_not_found_error = true
|
525
|
-
end
|
462
|
+
config_override :raise_not_found_error, true
|
526
463
|
|
527
464
|
let(:found) do
|
528
465
|
Band.find("depeche-mode")
|
@@ -531,19 +468,12 @@ describe Mongoid::Criteria::Findable do
|
|
531
468
|
it "raises an error" do
|
532
469
|
expect {
|
533
470
|
found
|
534
|
-
}.to raise_error(Mongoid::Errors::DocumentNotFound)
|
471
|
+
}.to raise_error(Mongoid::Errors::DocumentNotFound, /Document\(s\) not found for class Band with id\(s\)/)
|
535
472
|
end
|
536
473
|
end
|
537
474
|
|
538
475
|
context "when raising no error" do
|
539
|
-
|
540
|
-
before do
|
541
|
-
Mongoid.raise_not_found_error = false
|
542
|
-
end
|
543
|
-
|
544
|
-
after do
|
545
|
-
Mongoid.raise_not_found_error = true
|
546
|
-
end
|
476
|
+
config_override :raise_not_found_error, false
|
547
477
|
|
548
478
|
let(:found) do
|
549
479
|
Band.find("depeche-mode")
|
@@ -582,10 +512,7 @@ describe Mongoid::Criteria::Findable do
|
|
582
512
|
context "when any id does not match" do
|
583
513
|
|
584
514
|
context "when raising a not found error" do
|
585
|
-
|
586
|
-
before do
|
587
|
-
Mongoid.raise_not_found_error = true
|
588
|
-
end
|
515
|
+
config_override :raise_not_found_error, true
|
589
516
|
|
590
517
|
let(:found) do
|
591
518
|
Band.find(band.id, "new-order")
|
@@ -594,19 +521,12 @@ describe Mongoid::Criteria::Findable do
|
|
594
521
|
it "raises an error" do
|
595
522
|
expect {
|
596
523
|
found
|
597
|
-
}.to raise_error(Mongoid::Errors::DocumentNotFound)
|
524
|
+
}.to raise_error(Mongoid::Errors::DocumentNotFound, /Document\(s\) not found for class Band with id\(s\)/)
|
598
525
|
end
|
599
526
|
end
|
600
527
|
|
601
528
|
context "when raising no error" do
|
602
|
-
|
603
|
-
before do
|
604
|
-
Mongoid.raise_not_found_error = false
|
605
|
-
end
|
606
|
-
|
607
|
-
after do
|
608
|
-
Mongoid.raise_not_found_error = true
|
609
|
-
end
|
529
|
+
config_override :raise_not_found_error, false
|
610
530
|
|
611
531
|
let(:found) do
|
612
532
|
Band.find(band.id, "new-order")
|
@@ -645,10 +565,7 @@ describe Mongoid::Criteria::Findable do
|
|
645
565
|
context "when any id does not match" do
|
646
566
|
|
647
567
|
context "when raising a not found error" do
|
648
|
-
|
649
|
-
before do
|
650
|
-
Mongoid.raise_not_found_error = true
|
651
|
-
end
|
568
|
+
config_override :raise_not_found_error, true
|
652
569
|
|
653
570
|
let(:found) do
|
654
571
|
Band.find([ band.id, "new-order" ])
|
@@ -657,19 +574,12 @@ describe Mongoid::Criteria::Findable do
|
|
657
574
|
it "raises an error" do
|
658
575
|
expect {
|
659
576
|
found
|
660
|
-
}.to raise_error(Mongoid::Errors::DocumentNotFound)
|
577
|
+
}.to raise_error(Mongoid::Errors::DocumentNotFound, /Document\(s\) not found for class Band with id\(s\)/)
|
661
578
|
end
|
662
579
|
end
|
663
580
|
|
664
581
|
context "when raising no error" do
|
665
|
-
|
666
|
-
before do
|
667
|
-
Mongoid.raise_not_found_error = false
|
668
|
-
end
|
669
|
-
|
670
|
-
after do
|
671
|
-
Mongoid.raise_not_found_error = true
|
672
|
-
end
|
582
|
+
config_override :raise_not_found_error, false
|
673
583
|
|
674
584
|
let(:found) do
|
675
585
|
Band.find([ band.id, "new-order" ])
|
@@ -715,10 +625,7 @@ describe Mongoid::Criteria::Findable do
|
|
715
625
|
context "when the id does not match" do
|
716
626
|
|
717
627
|
context "when raising a not found error" do
|
718
|
-
|
719
|
-
before do
|
720
|
-
Mongoid.raise_not_found_error = true
|
721
|
-
end
|
628
|
+
config_override :raise_not_found_error, true
|
722
629
|
|
723
630
|
let(:found) do
|
724
631
|
Band.find({"new-order" => false, "Faith no More" => true})
|
@@ -727,19 +634,12 @@ describe Mongoid::Criteria::Findable do
|
|
727
634
|
it "raises an error" do
|
728
635
|
expect {
|
729
636
|
found
|
730
|
-
}.to raise_error(Mongoid::Errors::DocumentNotFound)
|
637
|
+
}.to raise_error(Mongoid::Errors::DocumentNotFound, /Document\(s\) not found for class Band with id\(s\)/)
|
731
638
|
end
|
732
639
|
end
|
733
640
|
|
734
641
|
context "when raising no error" do
|
735
|
-
|
736
|
-
before do
|
737
|
-
Mongoid.raise_not_found_error = false
|
738
|
-
end
|
739
|
-
|
740
|
-
after do
|
741
|
-
Mongoid.raise_not_found_error = true
|
742
|
-
end
|
642
|
+
config_override :raise_not_found_error, false
|
743
643
|
|
744
644
|
let(:found) do
|
745
645
|
Band.find({"new-order" => false, "Faith no More" => true})
|
@@ -778,10 +678,7 @@ describe Mongoid::Criteria::Findable do
|
|
778
678
|
context "when any id does not match" do
|
779
679
|
|
780
680
|
context "when raising a not found error" do
|
781
|
-
|
782
|
-
before do
|
783
|
-
Mongoid.raise_not_found_error = true
|
784
|
-
end
|
681
|
+
config_override :raise_not_found_error, true
|
785
682
|
|
786
683
|
let(:found) do
|
787
684
|
Band.find(band.id, {"Radiohead" => true, "Nirvana"=> false})
|
@@ -790,19 +687,12 @@ describe Mongoid::Criteria::Findable do
|
|
790
687
|
it "raises an error" do
|
791
688
|
expect {
|
792
689
|
found
|
793
|
-
}.to raise_error(Mongoid::Errors::DocumentNotFound)
|
690
|
+
}.to raise_error(Mongoid::Errors::DocumentNotFound, /Document\(s\) not found for class Band with id\(s\)/)
|
794
691
|
end
|
795
692
|
end
|
796
693
|
|
797
694
|
context "when raising no error" do
|
798
|
-
|
799
|
-
before do
|
800
|
-
Mongoid.raise_not_found_error = false
|
801
|
-
end
|
802
|
-
|
803
|
-
after do
|
804
|
-
Mongoid.raise_not_found_error = true
|
805
|
-
end
|
695
|
+
config_override :raise_not_found_error, false
|
806
696
|
|
807
697
|
let(:found) do
|
808
698
|
Band.find(band.id, {"Radiohead" => true, "Nirvana"=> false})
|
@@ -841,10 +731,7 @@ describe Mongoid::Criteria::Findable do
|
|
841
731
|
context "when any id does not match" do
|
842
732
|
|
843
733
|
context "when raising a not found error" do
|
844
|
-
|
845
|
-
before do
|
846
|
-
Mongoid.raise_not_found_error = true
|
847
|
-
end
|
734
|
+
config_override :raise_not_found_error, true
|
848
735
|
|
849
736
|
let(:found) do
|
850
737
|
Band.find([ band.id, {"Radiohead" => true, "Nirvana"=> false} ])
|
@@ -853,19 +740,12 @@ describe Mongoid::Criteria::Findable do
|
|
853
740
|
it "raises an error" do
|
854
741
|
expect {
|
855
742
|
found
|
856
|
-
}.to raise_error(Mongoid::Errors::DocumentNotFound)
|
743
|
+
}.to raise_error(Mongoid::Errors::DocumentNotFound, /Document\(s\) not found for class Band with id\(s\)/)
|
857
744
|
end
|
858
745
|
end
|
859
746
|
|
860
747
|
context "when raising no error" do
|
861
|
-
|
862
|
-
before do
|
863
|
-
Mongoid.raise_not_found_error = false
|
864
|
-
end
|
865
|
-
|
866
|
-
after do
|
867
|
-
Mongoid.raise_not_found_error = true
|
868
|
-
end
|
748
|
+
config_override :raise_not_found_error, false
|
869
749
|
|
870
750
|
let(:found) do
|
871
751
|
Band.find([ band.id, {"Radiohead" => true, "Nirvana"=> false} ])
|
@@ -911,10 +791,7 @@ describe Mongoid::Criteria::Findable do
|
|
911
791
|
context "when the id does not match" do
|
912
792
|
|
913
793
|
context "when raising a not found error" do
|
914
|
-
|
915
|
-
before do
|
916
|
-
Mongoid.raise_not_found_error = true
|
917
|
-
end
|
794
|
+
config_override :raise_not_found_error, true
|
918
795
|
|
919
796
|
let(:found) do
|
920
797
|
Band.find(3)
|
@@ -923,19 +800,12 @@ describe Mongoid::Criteria::Findable do
|
|
923
800
|
it "raises an error" do
|
924
801
|
expect {
|
925
802
|
found
|
926
|
-
}.to raise_error(Mongoid::Errors::DocumentNotFound)
|
803
|
+
}.to raise_error(Mongoid::Errors::DocumentNotFound, /Document\(s\) not found for class Band with id\(s\)/)
|
927
804
|
end
|
928
805
|
end
|
929
806
|
|
930
807
|
context "when raising no error" do
|
931
|
-
|
932
|
-
before do
|
933
|
-
Mongoid.raise_not_found_error = false
|
934
|
-
end
|
935
|
-
|
936
|
-
after do
|
937
|
-
Mongoid.raise_not_found_error = true
|
938
|
-
end
|
808
|
+
config_override :raise_not_found_error, false
|
939
809
|
|
940
810
|
let(:found) do
|
941
811
|
Band.find(3)
|
@@ -974,10 +844,7 @@ describe Mongoid::Criteria::Findable do
|
|
974
844
|
context "when any id does not match" do
|
975
845
|
|
976
846
|
context "when raising a not found error" do
|
977
|
-
|
978
|
-
before do
|
979
|
-
Mongoid.raise_not_found_error = true
|
980
|
-
end
|
847
|
+
config_override :raise_not_found_error, true
|
981
848
|
|
982
849
|
let(:found) do
|
983
850
|
Band.find(band.id, 3)
|
@@ -986,19 +853,12 @@ describe Mongoid::Criteria::Findable do
|
|
986
853
|
it "raises an error" do
|
987
854
|
expect {
|
988
855
|
found
|
989
|
-
}.to raise_error(Mongoid::Errors::DocumentNotFound)
|
856
|
+
}.to raise_error(Mongoid::Errors::DocumentNotFound, /Document\(s\) not found for class Band with id\(s\)/)
|
990
857
|
end
|
991
858
|
end
|
992
859
|
|
993
860
|
context "when raising no error" do
|
994
|
-
|
995
|
-
before do
|
996
|
-
Mongoid.raise_not_found_error = false
|
997
|
-
end
|
998
|
-
|
999
|
-
after do
|
1000
|
-
Mongoid.raise_not_found_error = true
|
1001
|
-
end
|
861
|
+
config_override :raise_not_found_error, false
|
1002
862
|
|
1003
863
|
let(:found) do
|
1004
864
|
Band.find(band.id, 3)
|
@@ -1037,10 +897,7 @@ describe Mongoid::Criteria::Findable do
|
|
1037
897
|
context "when any id does not match" do
|
1038
898
|
|
1039
899
|
context "when raising a not found error" do
|
1040
|
-
|
1041
|
-
before do
|
1042
|
-
Mongoid.raise_not_found_error = true
|
1043
|
-
end
|
900
|
+
config_override :raise_not_found_error, true
|
1044
901
|
|
1045
902
|
let(:found) do
|
1046
903
|
Band.find([ band.id, 3 ])
|
@@ -1049,19 +906,12 @@ describe Mongoid::Criteria::Findable do
|
|
1049
906
|
it "raises an error" do
|
1050
907
|
expect {
|
1051
908
|
found
|
1052
|
-
}.to raise_error(Mongoid::Errors::DocumentNotFound)
|
909
|
+
}.to raise_error(Mongoid::Errors::DocumentNotFound, /Document\(s\) not found for class Band with id\(s\)/)
|
1053
910
|
end
|
1054
911
|
end
|
1055
912
|
|
1056
913
|
context "when raising no error" do
|
1057
|
-
|
1058
|
-
before do
|
1059
|
-
Mongoid.raise_not_found_error = false
|
1060
|
-
end
|
1061
|
-
|
1062
|
-
after do
|
1063
|
-
Mongoid.raise_not_found_error = true
|
1064
|
-
end
|
914
|
+
config_override :raise_not_found_error, false
|
1065
915
|
|
1066
916
|
let(:found) do
|
1067
917
|
Band.find([ band.id, 3 ])
|
@@ -1100,10 +950,7 @@ describe Mongoid::Criteria::Findable do
|
|
1100
950
|
context "when any id does not match" do
|
1101
951
|
|
1102
952
|
context "when raising a not found error" do
|
1103
|
-
|
1104
|
-
before do
|
1105
|
-
Mongoid.raise_not_found_error = true
|
1106
|
-
end
|
953
|
+
config_override :raise_not_found_error, true
|
1107
954
|
|
1108
955
|
let(:found) do
|
1109
956
|
Band.find(1..3)
|
@@ -1112,19 +959,12 @@ describe Mongoid::Criteria::Findable do
|
|
1112
959
|
it "raises an error" do
|
1113
960
|
expect {
|
1114
961
|
found
|
1115
|
-
}.to raise_error(Mongoid::Errors::DocumentNotFound)
|
962
|
+
}.to raise_error(Mongoid::Errors::DocumentNotFound, /Document\(s\) not found for class Band with id\(s\)/)
|
1116
963
|
end
|
1117
964
|
end
|
1118
965
|
|
1119
966
|
context "when raising no error" do
|
1120
|
-
|
1121
|
-
before do
|
1122
|
-
Mongoid.raise_not_found_error = false
|
1123
|
-
end
|
1124
|
-
|
1125
|
-
after do
|
1126
|
-
Mongoid.raise_not_found_error = true
|
1127
|
-
end
|
967
|
+
config_override :raise_not_found_error, false
|
1128
968
|
|
1129
969
|
let(:found) do
|
1130
970
|
Band.find(1..3)
|
@@ -1166,6 +1006,42 @@ describe Mongoid::Criteria::Findable do
|
|
1166
1006
|
end
|
1167
1007
|
end
|
1168
1008
|
end
|
1009
|
+
|
1010
|
+
context "when passing in a block" do
|
1011
|
+
|
1012
|
+
let!(:band1) { Band.create!(name: '1') }
|
1013
|
+
let!(:band2) { Band.create!(name: '2') }
|
1014
|
+
let!(:band3) { Band.create!(name: '2') }
|
1015
|
+
|
1016
|
+
it "yields the documents to the block" do
|
1017
|
+
doc = Band.find { |b| b.name == '2' }
|
1018
|
+
expect(doc).to eq(band2)
|
1019
|
+
end
|
1020
|
+
end
|
1021
|
+
|
1022
|
+
context "when passing in ids and a block" do
|
1023
|
+
|
1024
|
+
let!(:band1) { Band.create!(name: '1') }
|
1025
|
+
let!(:band2) { Band.create!(name: '2') }
|
1026
|
+
let!(:band3) { Band.create!(name: '2') }
|
1027
|
+
|
1028
|
+
it "acts like findable find" do
|
1029
|
+
docs = Band.find(band1.id, band2.id) { |b| b.name == '2' }
|
1030
|
+
expect(docs).to eq([ band1, band2 ])
|
1031
|
+
end
|
1032
|
+
end
|
1033
|
+
|
1034
|
+
context "when passing in a Proc and a block" do
|
1035
|
+
|
1036
|
+
let!(:band1) { Band.create!(name: '1') }
|
1037
|
+
let!(:band2) { Band.create!(name: '2') }
|
1038
|
+
let!(:band3) { Band.create!(name: '2') }
|
1039
|
+
|
1040
|
+
it "acts like findable find" do
|
1041
|
+
docs = Band.find(-> { 'default' }) { |b| b.name == '3' }
|
1042
|
+
expect(docs).to eq('default')
|
1043
|
+
end
|
1044
|
+
end
|
1169
1045
|
end
|
1170
1046
|
|
1171
1047
|
describe "#for_ids" do
|