mongoid 7.5.4 → 8.1.9
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 +32 -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 +11 -6
- 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 +48 -39
- 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 +135 -36
- data/lib/mongoid/equality.rb +9 -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 +187 -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 +9 -2
- data/lib/mongoid/timestamps/updated.rb +2 -2
- data/lib/mongoid/touchable.rb +3 -4
- data/lib/mongoid/traversable.rb +41 -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 +26 -3
- 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/association_spec.rb +60 -0
- 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/readonly_spec.rb +19 -0
- 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 +107 -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 +59 -41
- data/spec/mongoid/equality_spec.rb +6 -0
- 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 +904 -22
- data/spec/mongoid/interceptable_spec_models.rb +189 -22
- 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/created_spec.rb +23 -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 +98 -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
@@ -142,107 +142,6 @@ describe Mongoid::Criteria::Queryable::Optional do
|
|
142
142
|
it_behaves_like "a cloning option"
|
143
143
|
end
|
144
144
|
end
|
145
|
-
|
146
|
-
context "when using the mongo-1.x driver syntax" do
|
147
|
-
|
148
|
-
let(:query) do
|
149
|
-
Mongoid::Query.new({}, {}, :mongo1x)
|
150
|
-
end
|
151
|
-
|
152
|
-
context "when provided symbols" do
|
153
|
-
|
154
|
-
let(:selection) do
|
155
|
-
query.send(method, :field_one, :field_two)
|
156
|
-
end
|
157
|
-
|
158
|
-
it "adds the sorting criteria" do
|
159
|
-
expect(selection.options).to eq(
|
160
|
-
{ sort: [[ :field_one, 1 ], [ :field_two, 1 ]]}
|
161
|
-
)
|
162
|
-
end
|
163
|
-
|
164
|
-
it_behaves_like "a cloning option"
|
165
|
-
end
|
166
|
-
|
167
|
-
context "when provided an array of symbols" do
|
168
|
-
|
169
|
-
let(:selection) do
|
170
|
-
query.send(method, [ :field_one, :field_two ])
|
171
|
-
end
|
172
|
-
|
173
|
-
it "adds the sorting criteria" do
|
174
|
-
expect(selection.options).to eq(
|
175
|
-
{ sort: [[ :field_one, 1 ], [ :field_two, 1 ]]}
|
176
|
-
)
|
177
|
-
end
|
178
|
-
|
179
|
-
it_behaves_like "a cloning option"
|
180
|
-
end
|
181
|
-
|
182
|
-
context "when provided strings" do
|
183
|
-
|
184
|
-
let(:selection) do
|
185
|
-
query.send(method, "field_one", "field_two")
|
186
|
-
end
|
187
|
-
|
188
|
-
it "adds the sorting criteria" do
|
189
|
-
expect(selection.options).to eq(
|
190
|
-
{ sort: [[ "field_one", 1 ], [ "field_two", 1 ]]}
|
191
|
-
)
|
192
|
-
end
|
193
|
-
|
194
|
-
it_behaves_like "a cloning option"
|
195
|
-
end
|
196
|
-
|
197
|
-
context "when provided an array of strings" do
|
198
|
-
|
199
|
-
let(:selection) do
|
200
|
-
query.send(method, [ "field_one", "field_two" ])
|
201
|
-
end
|
202
|
-
|
203
|
-
it "adds the sorting criteria" do
|
204
|
-
expect(selection.options).to eq(
|
205
|
-
{ sort: [[ "field_one", 1 ], [ "field_two", 1 ]]}
|
206
|
-
)
|
207
|
-
end
|
208
|
-
|
209
|
-
it_behaves_like "a cloning option"
|
210
|
-
end
|
211
|
-
|
212
|
-
context "when provided no options" do
|
213
|
-
|
214
|
-
let(:selection) do
|
215
|
-
query.send(method)
|
216
|
-
end
|
217
|
-
|
218
|
-
it "does not add any sorting criteria" do
|
219
|
-
expect(selection.options).to be_empty
|
220
|
-
end
|
221
|
-
|
222
|
-
it "returns the query" do
|
223
|
-
expect(selection).to eq(query)
|
224
|
-
end
|
225
|
-
|
226
|
-
it_behaves_like "a cloning option"
|
227
|
-
end
|
228
|
-
|
229
|
-
context "when provided nil" do
|
230
|
-
|
231
|
-
let(:selection) do
|
232
|
-
query.send(method, nil)
|
233
|
-
end
|
234
|
-
|
235
|
-
it "does not add any sorting criteria" do
|
236
|
-
expect(selection.options).to be_empty
|
237
|
-
end
|
238
|
-
|
239
|
-
it "returns the query" do
|
240
|
-
expect(selection).to eq(query)
|
241
|
-
end
|
242
|
-
|
243
|
-
it_behaves_like "a cloning option"
|
244
|
-
end
|
245
|
-
end
|
246
145
|
end
|
247
146
|
end
|
248
147
|
|
@@ -415,107 +314,6 @@ describe Mongoid::Criteria::Queryable::Optional do
|
|
415
314
|
it_behaves_like "a cloning option"
|
416
315
|
end
|
417
316
|
end
|
418
|
-
|
419
|
-
context "when using the mongo-1.x driver syntax" do
|
420
|
-
|
421
|
-
let(:query) do
|
422
|
-
Mongoid::Query.new({}, {}, :mongo1x)
|
423
|
-
end
|
424
|
-
|
425
|
-
context "when provided symbols" do
|
426
|
-
|
427
|
-
let(:selection) do
|
428
|
-
query.send(method, :field_one, :field_two)
|
429
|
-
end
|
430
|
-
|
431
|
-
it "adds the sorting criteria" do
|
432
|
-
expect(selection.options).to eq(
|
433
|
-
{ sort: [[ :field_one, -1 ], [ :field_two, -1 ]]}
|
434
|
-
)
|
435
|
-
end
|
436
|
-
|
437
|
-
it_behaves_like "a cloning option"
|
438
|
-
end
|
439
|
-
|
440
|
-
context "when provided an array of symbols" do
|
441
|
-
|
442
|
-
let(:selection) do
|
443
|
-
query.send(method, [ :field_one, :field_two ])
|
444
|
-
end
|
445
|
-
|
446
|
-
it "adds the sorting criteria" do
|
447
|
-
expect(selection.options).to eq(
|
448
|
-
{ sort: [[ :field_one, -1 ], [ :field_two, -1 ]]}
|
449
|
-
)
|
450
|
-
end
|
451
|
-
|
452
|
-
it_behaves_like "a cloning option"
|
453
|
-
end
|
454
|
-
|
455
|
-
context "when provided strings" do
|
456
|
-
|
457
|
-
let(:selection) do
|
458
|
-
query.send(method, "field_one", "field_two")
|
459
|
-
end
|
460
|
-
|
461
|
-
it "adds the sorting criteria" do
|
462
|
-
expect(selection.options).to eq(
|
463
|
-
{ sort: [[ "field_one", -1 ], [ "field_two", -1 ]]}
|
464
|
-
)
|
465
|
-
end
|
466
|
-
|
467
|
-
it_behaves_like "a cloning option"
|
468
|
-
end
|
469
|
-
|
470
|
-
context "when provided an array of strings" do
|
471
|
-
|
472
|
-
let(:selection) do
|
473
|
-
query.send(method, [ "field_one", "field_two" ])
|
474
|
-
end
|
475
|
-
|
476
|
-
it "adds the sorting criteria" do
|
477
|
-
expect(selection.options).to eq(
|
478
|
-
{ sort: [[ "field_one", -1 ], [ "field_two", -1 ]]}
|
479
|
-
)
|
480
|
-
end
|
481
|
-
|
482
|
-
it_behaves_like "a cloning option"
|
483
|
-
end
|
484
|
-
|
485
|
-
context "when provided no options" do
|
486
|
-
|
487
|
-
let(:selection) do
|
488
|
-
query.send(method)
|
489
|
-
end
|
490
|
-
|
491
|
-
it "does not add any sorting criteria" do
|
492
|
-
expect(selection.options).to be_empty
|
493
|
-
end
|
494
|
-
|
495
|
-
it "returns the query" do
|
496
|
-
expect(selection).to eq(query)
|
497
|
-
end
|
498
|
-
|
499
|
-
it_behaves_like "a cloning option"
|
500
|
-
end
|
501
|
-
|
502
|
-
context "when provided nil" do
|
503
|
-
|
504
|
-
let(:selection) do
|
505
|
-
query.send(method, nil)
|
506
|
-
end
|
507
|
-
|
508
|
-
it "does not add any sorting criteria" do
|
509
|
-
expect(selection.options).to be_empty
|
510
|
-
end
|
511
|
-
|
512
|
-
it "returns the query" do
|
513
|
-
expect(selection).to eq(query)
|
514
|
-
end
|
515
|
-
|
516
|
-
it_behaves_like "a cloning option"
|
517
|
-
end
|
518
|
-
end
|
519
317
|
end
|
520
318
|
end
|
521
319
|
|
@@ -943,283 +741,16 @@ describe Mongoid::Criteria::Queryable::Optional do
|
|
943
741
|
|
944
742
|
it_behaves_like "a cloning option"
|
945
743
|
end
|
946
|
-
end
|
947
|
-
|
948
|
-
context "when provided an array" do
|
949
|
-
|
950
|
-
context "when the array is multi-dimensional" do
|
951
|
-
|
952
|
-
context "when the arrays have integer values" do
|
953
|
-
|
954
|
-
let(:selection) do
|
955
|
-
query.send("#{method}", [[ :field_one, 1 ],[ :field_two, -1 ]])
|
956
|
-
end
|
957
|
-
|
958
|
-
it "adds the sorting criteria" do
|
959
|
-
expect(selection.options).to eq(
|
960
|
-
{ sort: { "field_one" => 1, "field_two" => -1 }}
|
961
|
-
)
|
962
|
-
end
|
963
|
-
|
964
|
-
it_behaves_like "a cloning option"
|
965
|
-
end
|
966
|
-
|
967
|
-
context "when the arrays have symbol values" do
|
968
|
-
|
969
|
-
let(:selection) do
|
970
|
-
query.send("#{method}", [[ :field_one, :asc ],[ :field_two, :desc ]])
|
971
|
-
end
|
972
|
-
|
973
|
-
it "adds the sorting criteria" do
|
974
|
-
expect(selection.options).to eq(
|
975
|
-
{ sort: { "field_one" => 1, "field_two" => -1 }}
|
976
|
-
)
|
977
|
-
end
|
978
|
-
|
979
|
-
it_behaves_like "a cloning option"
|
980
|
-
end
|
981
|
-
|
982
|
-
context "when the arrays have string values" do
|
983
|
-
|
984
|
-
let(:selection) do
|
985
|
-
query.send("#{method}", [[ :field_one, "asc" ],[ :field_two, "desc" ]])
|
986
|
-
end
|
987
|
-
|
988
|
-
it "adds the sorting criteria" do
|
989
|
-
expect(selection.options).to eq(
|
990
|
-
{ sort: { "field_one" => 1, "field_two" => -1 }}
|
991
|
-
)
|
992
|
-
end
|
993
|
-
|
994
|
-
it_behaves_like "a cloning option"
|
995
|
-
end
|
996
|
-
end
|
997
|
-
|
998
|
-
context "when the array is selectable keys" do
|
999
|
-
|
1000
|
-
let(:selection) do
|
1001
|
-
query.send("#{method}", [ :field_one.asc, :field_two.desc ])
|
1002
|
-
end
|
1003
|
-
|
1004
|
-
it "adds the sorting criteria" do
|
1005
|
-
expect(selection.options).to eq(
|
1006
|
-
{ sort: { "field_one" => 1, "field_two" => -1 }}
|
1007
|
-
)
|
1008
|
-
end
|
1009
|
-
|
1010
|
-
it_behaves_like "a cloning option"
|
1011
|
-
end
|
1012
|
-
end
|
1013
|
-
|
1014
|
-
context "when provided values" do
|
1015
|
-
|
1016
|
-
context "when the values are arrays" do
|
1017
|
-
|
1018
|
-
context "when the values have integer directions" do
|
1019
|
-
|
1020
|
-
let(:selection) do
|
1021
|
-
query.send("#{method}", [ :field_one, 1 ],[ :field_two, -1 ])
|
1022
|
-
end
|
1023
|
-
|
1024
|
-
it "adds the sorting criteria" do
|
1025
|
-
expect(selection.options).to eq(
|
1026
|
-
{ sort: { "field_one" => 1, "field_two" => -1 }}
|
1027
|
-
)
|
1028
|
-
end
|
1029
|
-
|
1030
|
-
it_behaves_like "a cloning option"
|
1031
|
-
end
|
1032
|
-
|
1033
|
-
context "when the values have symbol directions" do
|
1034
|
-
|
1035
|
-
let(:selection) do
|
1036
|
-
query.send("#{method}", [ :field_one, :asc ],[ :field_two, :desc ])
|
1037
|
-
end
|
1038
|
-
|
1039
|
-
it "adds the sorting criteria" do
|
1040
|
-
expect(selection.options).to eq(
|
1041
|
-
{ sort: { "field_one" => 1, "field_two" => -1 }}
|
1042
|
-
)
|
1043
|
-
end
|
1044
|
-
|
1045
|
-
it_behaves_like "a cloning option"
|
1046
|
-
end
|
1047
|
-
|
1048
|
-
context "when the values have string directions" do
|
1049
|
-
|
1050
|
-
let(:selection) do
|
1051
|
-
query.send("#{method}", [ :field_one, "asc" ],[ :field_two, "desc" ])
|
1052
|
-
end
|
1053
|
-
|
1054
|
-
it "adds the sorting criteria" do
|
1055
|
-
expect(selection.options).to eq(
|
1056
|
-
{ sort: { "field_one" => 1, "field_two" => -1 }}
|
1057
|
-
)
|
1058
|
-
end
|
1059
|
-
|
1060
|
-
it_behaves_like "a cloning option"
|
1061
|
-
end
|
1062
|
-
end
|
1063
|
-
|
1064
|
-
context "when the values are selectable keys" do
|
1065
|
-
|
1066
|
-
let(:selection) do
|
1067
|
-
query.send("#{method}", :field_one.asc, :field_two.desc)
|
1068
|
-
end
|
1069
|
-
|
1070
|
-
it "adds the sorting criteria" do
|
1071
|
-
expect(selection.options).to eq(
|
1072
|
-
{ sort: { "field_one" => 1, "field_two" => -1 }}
|
1073
|
-
)
|
1074
|
-
end
|
1075
|
-
|
1076
|
-
it_behaves_like "a cloning option"
|
1077
|
-
end
|
1078
|
-
end
|
1079
|
-
|
1080
|
-
context "when provided a string" do
|
1081
|
-
|
1082
|
-
context "when the direction is lowercase" do
|
1083
|
-
|
1084
|
-
context "when abbreviated" do
|
1085
|
-
|
1086
|
-
let(:selection) do
|
1087
|
-
query.send("#{method}", "field_one asc, field_two desc")
|
1088
|
-
end
|
1089
|
-
|
1090
|
-
it "adds the sorting criteria" do
|
1091
|
-
expect(selection.options).to eq(
|
1092
|
-
{ sort: { "field_one" => 1, "field_two" => -1 }}
|
1093
|
-
)
|
1094
|
-
end
|
1095
|
-
|
1096
|
-
it_behaves_like "a cloning option"
|
1097
|
-
end
|
1098
|
-
|
1099
|
-
context "when spelled out" do
|
1100
|
-
|
1101
|
-
let(:selection) do
|
1102
|
-
query.send("#{method}", "field_one ascending, field_two descending")
|
1103
|
-
end
|
1104
|
-
|
1105
|
-
it "adds the sorting criteria" do
|
1106
|
-
expect(selection.options).to eq(
|
1107
|
-
{ sort: { "field_one" => 1, "field_two" => -1 }}
|
1108
|
-
)
|
1109
|
-
end
|
1110
|
-
|
1111
|
-
it_behaves_like "a cloning option"
|
1112
|
-
end
|
1113
|
-
end
|
1114
|
-
|
1115
|
-
context "when the direction is uppercase" do
|
1116
|
-
|
1117
|
-
context "when abbreviated" do
|
1118
|
-
|
1119
|
-
let(:selection) do
|
1120
|
-
query.send("#{method}", "field_one ASC, field_two DESC")
|
1121
|
-
end
|
1122
|
-
|
1123
|
-
it "adds the sorting criteria" do
|
1124
|
-
expect(selection.options).to eq(
|
1125
|
-
{ sort: { "field_one" => 1, "field_two" => -1 }}
|
1126
|
-
)
|
1127
|
-
end
|
1128
|
-
|
1129
|
-
it_behaves_like "a cloning option"
|
1130
|
-
end
|
1131
|
-
|
1132
|
-
context "when spelled out" do
|
1133
|
-
|
1134
|
-
let(:selection) do
|
1135
|
-
query.send("#{method}", "field_one ASCENDING, field_two DESCENDING")
|
1136
|
-
end
|
1137
|
-
|
1138
|
-
it "adds the sorting criteria" do
|
1139
|
-
expect(selection.options).to eq(
|
1140
|
-
{ sort: { "field_one" => 1, "field_two" => -1 }}
|
1141
|
-
)
|
1142
|
-
end
|
1143
|
-
|
1144
|
-
it_behaves_like "a cloning option"
|
1145
|
-
end
|
1146
|
-
end
|
1147
|
-
end
|
1148
|
-
|
1149
|
-
context "when provided no options" do
|
1150
|
-
|
1151
|
-
let(:selection) do
|
1152
|
-
query.order_by
|
1153
|
-
end
|
1154
|
-
|
1155
|
-
it "returns the query" do
|
1156
|
-
expect(selection).to eq(query)
|
1157
|
-
end
|
1158
|
-
|
1159
|
-
it_behaves_like "a cloning option"
|
1160
|
-
end
|
1161
|
-
|
1162
|
-
context "when provided nil" do
|
1163
|
-
|
1164
|
-
let(:selection) do
|
1165
|
-
query.send("#{method}", nil)
|
1166
|
-
end
|
1167
|
-
|
1168
|
-
it "returns the query" do
|
1169
|
-
expect(selection).to eq(query)
|
1170
|
-
end
|
1171
|
-
|
1172
|
-
it_behaves_like "a cloning option"
|
1173
|
-
end
|
1174
|
-
end
|
1175
|
-
|
1176
|
-
context "when using the mongo-1.x driver syntax" do
|
1177
|
-
|
1178
|
-
let(:query) do
|
1179
|
-
Mongoid::Query.new({}, {}, :mongo1x)
|
1180
|
-
end
|
1181
|
-
|
1182
|
-
context "when provided a hash" do
|
1183
|
-
|
1184
|
-
context "when the hash has integer values" do
|
1185
|
-
|
1186
|
-
let(:selection) do
|
1187
|
-
query.send("#{method}", field_one: 1, field_two: -1)
|
1188
|
-
end
|
1189
|
-
|
1190
|
-
it "adds the sorting criteria" do
|
1191
|
-
expect(selection.options).to eq(
|
1192
|
-
{ sort: [[ :field_one, 1 ], [ :field_two, -1 ]]}
|
1193
|
-
)
|
1194
|
-
end
|
1195
|
-
|
1196
|
-
it_behaves_like "a cloning option"
|
1197
|
-
end
|
1198
744
|
|
1199
|
-
context "when the hash has
|
745
|
+
context "when the hash has hash values" do
|
1200
746
|
|
1201
747
|
let(:selection) do
|
1202
|
-
query.send("#{method}",
|
748
|
+
query.send("#{method}", score: { "$meta" => "textScore"})
|
1203
749
|
end
|
1204
750
|
|
1205
751
|
it "adds the sorting criteria" do
|
1206
752
|
expect(selection.options).to eq(
|
1207
|
-
{ sort:
|
1208
|
-
)
|
1209
|
-
end
|
1210
|
-
|
1211
|
-
it_behaves_like "a cloning option"
|
1212
|
-
end
|
1213
|
-
|
1214
|
-
context "when the hash has string values" do
|
1215
|
-
|
1216
|
-
let(:selection) do
|
1217
|
-
query.send("#{method}", field_one: "asc", field_two: "desc")
|
1218
|
-
end
|
1219
|
-
|
1220
|
-
it "adds the sorting criteria" do
|
1221
|
-
expect(selection.options).to eq(
|
1222
|
-
{ sort: [[ :field_one, 1 ], [ :field_two, -1 ]]}
|
753
|
+
{ sort: { "score" => { "$meta" => "textScore" } }}
|
1223
754
|
)
|
1224
755
|
end
|
1225
756
|
|
@@ -1239,7 +770,7 @@ describe Mongoid::Criteria::Queryable::Optional do
|
|
1239
770
|
|
1240
771
|
it "adds the sorting criteria" do
|
1241
772
|
expect(selection.options).to eq(
|
1242
|
-
{ sort:
|
773
|
+
{ sort: { "field_one" => 1, "field_two" => -1 }}
|
1243
774
|
)
|
1244
775
|
end
|
1245
776
|
|
@@ -1254,7 +785,7 @@ describe Mongoid::Criteria::Queryable::Optional do
|
|
1254
785
|
|
1255
786
|
it "adds the sorting criteria" do
|
1256
787
|
expect(selection.options).to eq(
|
1257
|
-
{ sort:
|
788
|
+
{ sort: { "field_one" => 1, "field_two" => -1 }}
|
1258
789
|
)
|
1259
790
|
end
|
1260
791
|
|
@@ -1269,7 +800,7 @@ describe Mongoid::Criteria::Queryable::Optional do
|
|
1269
800
|
|
1270
801
|
it "adds the sorting criteria" do
|
1271
802
|
expect(selection.options).to eq(
|
1272
|
-
{ sort:
|
803
|
+
{ sort: { "field_one" => 1, "field_two" => -1 }}
|
1273
804
|
)
|
1274
805
|
end
|
1275
806
|
|
@@ -1285,7 +816,7 @@ describe Mongoid::Criteria::Queryable::Optional do
|
|
1285
816
|
|
1286
817
|
it "adds the sorting criteria" do
|
1287
818
|
expect(selection.options).to eq(
|
1288
|
-
{ sort:
|
819
|
+
{ sort: { "field_one" => 1, "field_two" => -1 }}
|
1289
820
|
)
|
1290
821
|
end
|
1291
822
|
|
@@ -1305,7 +836,7 @@ describe Mongoid::Criteria::Queryable::Optional do
|
|
1305
836
|
|
1306
837
|
it "adds the sorting criteria" do
|
1307
838
|
expect(selection.options).to eq(
|
1308
|
-
{ sort:
|
839
|
+
{ sort: { "field_one" => 1, "field_two" => -1 }}
|
1309
840
|
)
|
1310
841
|
end
|
1311
842
|
|
@@ -1320,7 +851,7 @@ describe Mongoid::Criteria::Queryable::Optional do
|
|
1320
851
|
|
1321
852
|
it "adds the sorting criteria" do
|
1322
853
|
expect(selection.options).to eq(
|
1323
|
-
{ sort:
|
854
|
+
{ sort: { "field_one" => 1, "field_two" => -1 }}
|
1324
855
|
)
|
1325
856
|
end
|
1326
857
|
|
@@ -1335,7 +866,7 @@ describe Mongoid::Criteria::Queryable::Optional do
|
|
1335
866
|
|
1336
867
|
it "adds the sorting criteria" do
|
1337
868
|
expect(selection.options).to eq(
|
1338
|
-
{ sort:
|
869
|
+
{ sort: { "field_one" => 1, "field_two" => -1 }}
|
1339
870
|
)
|
1340
871
|
end
|
1341
872
|
|
@@ -1351,7 +882,7 @@ describe Mongoid::Criteria::Queryable::Optional do
|
|
1351
882
|
|
1352
883
|
it "adds the sorting criteria" do
|
1353
884
|
expect(selection.options).to eq(
|
1354
|
-
{ sort:
|
885
|
+
{ sort: { "field_one" => 1, "field_two" => -1 }}
|
1355
886
|
)
|
1356
887
|
end
|
1357
888
|
|
@@ -1371,7 +902,7 @@ describe Mongoid::Criteria::Queryable::Optional do
|
|
1371
902
|
|
1372
903
|
it "adds the sorting criteria" do
|
1373
904
|
expect(selection.options).to eq(
|
1374
|
-
{ sort:
|
905
|
+
{ sort: { "field_one" => 1, "field_two" => -1 }}
|
1375
906
|
)
|
1376
907
|
end
|
1377
908
|
|
@@ -1386,7 +917,7 @@ describe Mongoid::Criteria::Queryable::Optional do
|
|
1386
917
|
|
1387
918
|
it "adds the sorting criteria" do
|
1388
919
|
expect(selection.options).to eq(
|
1389
|
-
{ sort:
|
920
|
+
{ sort: { "field_one" => 1, "field_two" => -1 }}
|
1390
921
|
)
|
1391
922
|
end
|
1392
923
|
|
@@ -1404,7 +935,7 @@ describe Mongoid::Criteria::Queryable::Optional do
|
|
1404
935
|
|
1405
936
|
it "adds the sorting criteria" do
|
1406
937
|
expect(selection.options).to eq(
|
1407
|
-
{ sort:
|
938
|
+
{ sort: { "field_one" => 1, "field_two" => -1 }}
|
1408
939
|
)
|
1409
940
|
end
|
1410
941
|
|
@@ -1419,7 +950,7 @@ describe Mongoid::Criteria::Queryable::Optional do
|
|
1419
950
|
|
1420
951
|
it "adds the sorting criteria" do
|
1421
952
|
expect(selection.options).to eq(
|
1422
|
-
{ sort:
|
953
|
+
{ sort: { "field_one" => 1, "field_two" => -1 }}
|
1423
954
|
)
|
1424
955
|
end
|
1425
956
|
|
@@ -221,6 +221,7 @@ describe Mongoid::Criteria::Queryable::Options do
|
|
221
221
|
end
|
222
222
|
|
223
223
|
context "when the serializer is localized" do
|
224
|
+
with_default_i18n_configs
|
224
225
|
|
225
226
|
before(:all) do
|
226
227
|
class Field
|
@@ -232,7 +233,6 @@ describe Mongoid::Criteria::Queryable::Options do
|
|
232
233
|
|
233
234
|
after(:all) do
|
234
235
|
Object.send(:remove_const, :Field)
|
235
|
-
::I18n.locale = :en
|
236
236
|
end
|
237
237
|
|
238
238
|
let(:options) do
|