mongoid 7.4.3 → 8.0.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
- checksums.yaml.gz.sig +0 -0
- data/README.md +3 -3
- data/Rakefile +25 -0
- data/lib/config/locales/en.yml +52 -28
- data/lib/mongoid/association/accessors.rb +38 -9
- data/lib/mongoid/association/bindable.rb +50 -2
- data/lib/mongoid/association/builders.rb +4 -2
- data/lib/mongoid/association/constrainable.rb +0 -1
- data/lib/mongoid/association/eager_loadable.rb +29 -7
- data/lib/mongoid/association/embedded/batchable.rb +33 -10
- 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/proxy.rb +2 -2
- 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 +1 -1
- data/lib/mongoid/association/embedded/embeds_many/proxy.rb +65 -41
- data/lib/mongoid/association/embedded/embeds_many.rb +2 -2
- data/lib/mongoid/association/embedded/embeds_one/buildable.rb +18 -4
- data/lib/mongoid/association/embedded/embeds_one/proxy.rb +23 -4
- data/lib/mongoid/association/embedded/embeds_one.rb +3 -3
- data/lib/mongoid/association/macros.rb +28 -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 +5 -5
- data/lib/mongoid/association/one.rb +2 -2
- data/lib/mongoid/association/options.rb +9 -9
- data/lib/mongoid/association/proxy.rb +14 -3
- 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 +20 -24
- data/lib/mongoid/association/referenced/has_many/proxy.rb +26 -16
- 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 +2 -2
- 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 +7 -0
- data/lib/mongoid/attributes/dynamic.rb +3 -3
- data/lib/mongoid/attributes/nested.rb +5 -5
- data/lib/mongoid/attributes/processing.rb +37 -6
- data/lib/mongoid/attributes/projector.rb +1 -1
- data/lib/mongoid/attributes/readonly.rb +2 -2
- data/lib/mongoid/attributes.rb +43 -40
- data/lib/mongoid/cacheable.rb +2 -2
- data/lib/mongoid/changeable.rb +43 -10
- data/lib/mongoid/clients/options.rb +5 -1
- data/lib/mongoid/clients/sessions.rb +2 -14
- data/lib/mongoid/clients/validators/storage.rb +3 -3
- data/lib/mongoid/config/options.rb +3 -0
- data/lib/mongoid/config/validators/client.rb +6 -6
- data/lib/mongoid/config.rb +62 -17
- 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 +180 -21
- data/lib/mongoid/contextual/mongo.rb +260 -217
- data/lib/mongoid/contextual/none.rb +67 -5
- data/lib/mongoid/contextual/queryable.rb +1 -1
- data/lib/mongoid/contextual.rb +2 -2
- data/lib/mongoid/copyable.rb +32 -8
- data/lib/mongoid/criteria/findable.rb +7 -4
- data/lib/mongoid/criteria/includable.rb +24 -20
- 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 -14
- 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 -15
- data/lib/mongoid/criteria/queryable/extensions/numeric.rb +1 -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 +3 -3
- data/lib/mongoid/criteria/queryable/mergeable.rb +21 -0
- data/lib/mongoid/criteria/queryable/optional.rb +5 -11
- 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 +31 -37
- data/lib/mongoid/criteria/queryable/selector.rb +93 -8
- data/lib/mongoid/criteria/queryable/smash.rb +40 -7
- data/lib/mongoid/criteria/queryable/storable.rb +1 -1
- 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 +16 -35
- data/lib/mongoid/deprecable.rb +37 -0
- data/lib/mongoid/deprecation.rb +25 -0
- data/lib/mongoid/document.rb +135 -34
- data/lib/mongoid/equality.rb +8 -8
- data/lib/mongoid/errors/document_not_found.rb +33 -12
- 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_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/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 +2 -2
- 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 +37 -8
- data/lib/mongoid/extensions/integer.rb +7 -4
- data/lib/mongoid/extensions/module.rb +1 -1
- data/lib/mongoid/extensions/object.rb +8 -6
- 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 +27 -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 +9 -4
- data/lib/mongoid/fields/standard.rb +7 -7
- data/lib/mongoid/fields/validators/macro.rb +3 -9
- data/lib/mongoid/fields.rb +233 -40
- data/lib/mongoid/findable.rb +34 -13
- data/lib/mongoid/indexable/specification.rb +2 -2
- data/lib/mongoid/indexable/validators/options.rb +6 -2
- data/lib/mongoid/interceptable.rb +185 -16
- data/lib/mongoid/matchable.rb +1 -1
- data/lib/mongoid/matcher.rb +33 -13
- data/lib/mongoid/persistable/creatable.rb +18 -9
- data/lib/mongoid/persistable/deletable.rb +1 -1
- data/lib/mongoid/persistable/destroyable.rb +1 -1
- data/lib/mongoid/persistable/savable.rb +2 -2
- data/lib/mongoid/persistable/unsettable.rb +1 -1
- data/lib/mongoid/persistable/updatable.rb +19 -12
- data/lib/mongoid/persistable/upsertable.rb +1 -1
- data/lib/mongoid/persistable.rb +3 -3
- data/lib/mongoid/persistence_context.rb +63 -10
- data/lib/mongoid/query_cache.rb +8 -260
- data/lib/mongoid/railties/controller_runtime.rb +1 -1
- data/lib/mongoid/reloadable.rb +10 -8
- data/lib/mongoid/scopable.rb +26 -22
- data/lib/mongoid/selectable.rb +1 -2
- data/lib/mongoid/serializable.rb +10 -6
- data/lib/mongoid/shardable.rb +35 -11
- data/lib/mongoid/stateful.rb +35 -9
- data/lib/mongoid/tasks/database.rb +0 -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 +2 -3
- data/lib/mongoid/traversable.rb +5 -4
- data/lib/mongoid/validatable/localizable.rb +1 -1
- data/lib/mongoid/validatable/macros.rb +0 -2
- data/lib/mongoid/validatable/presence.rb +2 -2
- data/lib/mongoid/validatable/uniqueness.rb +9 -8
- data/lib/mongoid/validatable.rb +6 -6
- data/lib/mongoid/version.rb +1 -1
- data/lib/mongoid/warnings.rb +28 -0
- data/lib/mongoid.rb +2 -0
- data/lib/rails/generators/mongoid/config/templates/mongoid.yml +4 -3
- data/spec/config/mongoid.yml +16 -0
- data/spec/integration/app_spec.rb +8 -12
- 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 +21 -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 +95 -1
- data/spec/integration/callbacks_spec.rb +246 -4
- data/spec/integration/criteria/range_spec.rb +95 -1
- data/spec/integration/discriminator_key_spec.rb +115 -76
- data/spec/integration/dots_and_dollars_spec.rb +277 -0
- data/spec/integration/i18n_fallbacks_spec.rb +1 -17
- 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 +69 -9
- data/spec/mongoid/association/embedded/embeds_many/buildable_spec.rb +112 -0
- data/spec/mongoid/association/embedded/embeds_many/proxy_spec.rb +235 -40
- data/spec/mongoid/association/embedded/embeds_many_models.rb +36 -0
- data/spec/mongoid/association/embedded/embeds_many_query_spec.rb +12 -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_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 +15 -0
- data/spec/mongoid/association/referenced/belongs_to_models.rb +11 -0
- data/spec/mongoid/association/referenced/belongs_to_spec.rb +2 -2
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_spec.rb +202 -201
- 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 +8 -8
- data/spec/mongoid/association/referenced/has_many/proxy_spec.rb +160 -119
- 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 +14 -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_spec.rb +551 -27
- data/spec/mongoid/cacheable_spec.rb +3 -3
- data/spec/mongoid/changeable_spec.rb +130 -13
- data/spec/mongoid/clients/factory_spec.rb +23 -30
- data/spec/mongoid/clients/options_spec.rb +1 -0
- data/spec/mongoid/clients/sessions_spec.rb +0 -38
- data/spec/mongoid/clients_spec.rb +57 -2
- data/spec/mongoid/config_spec.rb +78 -18
- 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 +1336 -69
- data/spec/mongoid/contextual/mongo_spec.rb +1253 -247
- data/spec/mongoid/contextual/none_spec.rb +38 -0
- data/spec/mongoid/copyable_spec.rb +451 -1
- 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 +0 -59
- 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/selectable_logical_spec.rb +50 -0
- data/spec/mongoid/criteria/queryable/selectable_spec.rb +289 -124
- data/spec/mongoid/criteria/queryable/selector_spec.rb +89 -4
- data/spec/mongoid/criteria/queryable/storable_spec.rb +72 -0
- data/spec/mongoid/criteria/translator_spec.rb +132 -0
- data/spec/mongoid/criteria_projection_spec.rb +0 -1
- data/spec/mongoid/criteria_spec.rb +475 -1199
- 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 +76 -0
- 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/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 +634 -66
- data/spec/mongoid/extensions/time_with_zone_spec.rb +17 -31
- data/spec/mongoid/factory_spec.rb +61 -1
- data/spec/mongoid/fields/localized_spec.rb +37 -12
- data/spec/mongoid/fields_spec.rb +364 -50
- data/spec/mongoid/findable_spec.rb +80 -15
- data/spec/mongoid/indexable/specification_spec.rb +2 -2
- data/spec/mongoid/indexable_spec.rb +39 -20
- data/spec/mongoid/interceptable_spec.rb +807 -27
- 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 +2 -2
- data/spec/mongoid/persistable/destroyable_spec.rb +2 -2
- data/spec/mongoid/persistable/upsertable_spec.rb +14 -0
- data/spec/mongoid/persistence_context_spec.rb +50 -1
- data/spec/mongoid/query_cache_middleware_spec.rb +0 -18
- data/spec/mongoid/query_cache_spec.rb +0 -154
- data/spec/mongoid/reloadable_spec.rb +59 -2
- data/spec/mongoid/scopable_spec.rb +54 -16
- data/spec/mongoid/shardable_models.rb +14 -0
- data/spec/mongoid/shardable_spec.rb +157 -51
- data/spec/mongoid/stateful_spec.rb +28 -0
- data/spec/mongoid/timestamps_spec.rb +390 -0
- data/spec/mongoid/timestamps_spec_models.rb +67 -0
- data/spec/mongoid/touchable_spec.rb +116 -0
- data/spec/mongoid/touchable_spec_models.rb +12 -8
- data/spec/mongoid/traversable_spec.rb +4 -11
- data/spec/mongoid/validatable/presence_spec.rb +1 -1
- data/spec/mongoid/validatable/uniqueness_spec.rb +59 -31
- data/spec/mongoid/warnings_spec.rb +35 -0
- data/spec/mongoid_spec.rb +1 -1
- data/spec/rails/controller_extension/controller_runtime_spec.rb +2 -2
- data/spec/rails/mongoid_spec.rb +4 -16
- data/spec/shared/lib/mrss/docker_runner.rb +7 -0
- data/spec/shared/lib/mrss/lite_constraints.rb +10 -2
- data/spec/shared/lib/mrss/server_version_registry.rb +16 -23
- data/spec/shared/lib/mrss/utils.rb +28 -6
- data/spec/shared/share/Dockerfile.erb +36 -40
- data/spec/shared/shlib/server.sh +32 -8
- data/spec/shared/shlib/set_env.sh +4 -4
- data/spec/support/constraints.rb +24 -0
- data/spec/support/macros.rb +46 -0
- data/spec/support/models/augmentation.rb +12 -0
- data/spec/support/models/band.rb +3 -0
- data/spec/support/models/catalog.rb +24 -0
- data/spec/support/models/circus.rb +3 -0
- data/spec/support/models/code.rb +2 -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/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/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
- data.tar.gz.sig +4 -1
- metadata +682 -635
- metadata.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/errors/eager_load_spec.rb +0 -31
@@ -6,20 +6,12 @@ describe Mongoid::Extensions::TimeWithZone do
|
|
6
6
|
|
7
7
|
describe ".demongoize" do
|
8
8
|
|
9
|
-
after(:all) do
|
10
|
-
Mongoid.use_utc = false
|
11
|
-
Mongoid.use_activesupport_time_zone = true
|
12
|
-
end
|
13
|
-
|
14
9
|
let!(:time) do
|
15
10
|
Time.local(2010, 11, 19)
|
16
11
|
end
|
17
12
|
|
18
13
|
context "when the time zone is not defined" do
|
19
|
-
|
20
|
-
before do
|
21
|
-
Mongoid.use_utc = false
|
22
|
-
end
|
14
|
+
config_override :use_utc, false
|
23
15
|
|
24
16
|
context "when the local time is not observing daylight saving" do
|
25
17
|
|
@@ -57,15 +49,14 @@ describe Mongoid::Extensions::TimeWithZone do
|
|
57
49
|
end
|
58
50
|
|
59
51
|
context "when using the ActiveSupport time zone" do
|
52
|
+
config_override :use_activesupport_time_zone, true
|
60
53
|
|
61
54
|
before do
|
62
|
-
Mongoid.use_activesupport_time_zone = true
|
63
55
|
Time.zone = "Stockholm"
|
64
56
|
end
|
65
57
|
|
66
58
|
after do
|
67
59
|
Time.zone = nil
|
68
|
-
Mongoid.use_activesupport_time_zone = false
|
69
60
|
end
|
70
61
|
|
71
62
|
it "returns an ActiveSupport::TimeWithZone" do
|
@@ -114,33 +105,25 @@ describe Mongoid::Extensions::TimeWithZone do
|
|
114
105
|
end
|
115
106
|
|
116
107
|
context "when the time zone is defined as UTC" do
|
117
|
-
|
118
|
-
before do
|
119
|
-
Mongoid.use_utc = true
|
120
|
-
end
|
121
|
-
|
122
|
-
after do
|
123
|
-
Mongoid.use_utc = false
|
124
|
-
end
|
108
|
+
config_override :use_utc, true
|
125
109
|
|
126
110
|
it "returns utc" do
|
127
111
|
expect(ActiveSupport::TimeWithZone.demongoize(time.dup.utc).utc_offset).to eq(0)
|
128
112
|
end
|
129
113
|
|
130
114
|
context "when using the ActiveSupport time zone" do
|
115
|
+
config_override :use_activesupport_time_zone, true
|
131
116
|
|
132
117
|
let(:time) do
|
133
118
|
Time.utc(2010, 11, 19, 0, 30)
|
134
119
|
end
|
135
120
|
|
136
121
|
before do
|
137
|
-
Mongoid.use_activesupport_time_zone = true
|
138
122
|
Time.zone = "Stockholm"
|
139
123
|
end
|
140
124
|
|
141
125
|
after do
|
142
126
|
Time.zone = nil
|
143
|
-
Mongoid.use_activesupport_time_zone = false
|
144
127
|
end
|
145
128
|
|
146
129
|
it "returns utc" do
|
@@ -180,8 +163,12 @@ describe Mongoid::Extensions::TimeWithZone do
|
|
180
163
|
|
181
164
|
context "when string is empty" do
|
182
165
|
|
166
|
+
let(:mongoized) do
|
167
|
+
ActiveSupport::TimeWithZone.mongoize("")
|
168
|
+
end
|
169
|
+
|
183
170
|
it "returns nil" do
|
184
|
-
expect(
|
171
|
+
expect(mongoized).to be_nil
|
185
172
|
end
|
186
173
|
end
|
187
174
|
|
@@ -205,23 +192,25 @@ describe Mongoid::Extensions::TimeWithZone do
|
|
205
192
|
end
|
206
193
|
|
207
194
|
context "when the string is an invalid time" do
|
195
|
+
let(:mongoized) do
|
196
|
+
ActiveSupport::TimeWithZone.mongoize("time")
|
197
|
+
end
|
208
198
|
|
209
199
|
it "returns nil" do
|
210
|
-
expect(
|
200
|
+
expect(mongoized).to be_nil
|
211
201
|
end
|
212
202
|
end
|
213
203
|
|
214
204
|
context "when using the ActiveSupport time zone" do
|
205
|
+
config_override :use_activesupport_time_zone, true
|
215
206
|
|
216
207
|
before do
|
217
|
-
Mongoid.use_activesupport_time_zone = true
|
218
208
|
# if this is actually your time zone, the following tests are useless
|
219
209
|
Time.zone = "Stockholm"
|
220
210
|
end
|
221
211
|
|
222
212
|
after do
|
223
213
|
Time.zone = nil
|
224
|
-
Mongoid.use_activesupport_time_zone = false
|
225
214
|
end
|
226
215
|
|
227
216
|
context "when the local time is not observing daylight saving" do
|
@@ -257,20 +246,19 @@ describe Mongoid::Extensions::TimeWithZone do
|
|
257
246
|
end
|
258
247
|
|
259
248
|
context "when using the ActiveSupport time zone" do
|
249
|
+
config_override :use_activesupport_time_zone, true
|
260
250
|
|
261
251
|
let(:datetime) do
|
262
252
|
DateTime.new(2010, 11, 19)
|
263
253
|
end
|
264
254
|
|
265
255
|
before do
|
266
|
-
Mongoid.use_activesupport_time_zone = true
|
267
256
|
# if this is actually your time zone, the following tests are useless
|
268
257
|
Time.zone = "Stockholm"
|
269
258
|
end
|
270
259
|
|
271
260
|
after do
|
272
261
|
Time.zone = nil
|
273
|
-
Mongoid.use_activesupport_time_zone = false
|
274
262
|
end
|
275
263
|
|
276
264
|
it "assumes the given time is local" do
|
@@ -328,20 +316,19 @@ describe Mongoid::Extensions::TimeWithZone do
|
|
328
316
|
end
|
329
317
|
|
330
318
|
context "when using the ActiveSupport time zone" do
|
319
|
+
config_override :use_activesupport_time_zone, true
|
331
320
|
|
332
321
|
let(:date) do
|
333
322
|
Date.new(2010, 11, 19)
|
334
323
|
end
|
335
324
|
|
336
325
|
before do
|
337
|
-
Mongoid.use_activesupport_time_zone = true
|
338
326
|
# if this is actually your time zone, the following tests are useless
|
339
327
|
Time.zone = "Stockholm"
|
340
328
|
end
|
341
329
|
|
342
330
|
after do
|
343
331
|
Time.zone = nil
|
344
|
-
Mongoid.use_activesupport_time_zone = false
|
345
332
|
end
|
346
333
|
|
347
334
|
it "assumes the given time is local" do
|
@@ -361,16 +348,15 @@ describe Mongoid::Extensions::TimeWithZone do
|
|
361
348
|
end
|
362
349
|
|
363
350
|
context "when using the ActiveSupport time zone" do
|
351
|
+
config_override :use_activesupport_time_zone, true
|
364
352
|
|
365
353
|
before do
|
366
|
-
Mongoid.use_activesupport_time_zone = true
|
367
354
|
# if this is actually your time zone, the following tests are useless
|
368
355
|
Time.zone = "Stockholm"
|
369
356
|
end
|
370
357
|
|
371
358
|
after do
|
372
359
|
Time.zone = nil
|
373
|
-
Mongoid.use_activesupport_time_zone = false
|
374
360
|
end
|
375
361
|
|
376
362
|
it "assumes the given time is local" do
|
@@ -449,7 +449,7 @@ describe Mongoid::Factory do
|
|
449
449
|
|
450
450
|
context 'when type is correct but the instantiation raises a NoMethodError' do
|
451
451
|
class BadPerson < Person
|
452
|
-
def self.
|
452
|
+
def self.instantiate_document(*args)
|
453
453
|
call_some_nonexistent_method(*args)
|
454
454
|
super
|
455
455
|
end
|
@@ -470,5 +470,65 @@ describe Mongoid::Factory do
|
|
470
470
|
end
|
471
471
|
|
472
472
|
end
|
473
|
+
|
474
|
+
context "when not deferring callbacks" do
|
475
|
+
|
476
|
+
let(:person) do
|
477
|
+
described_class.execute_from_db(Person, {}, execute_callbacks: true)
|
478
|
+
end
|
479
|
+
|
480
|
+
before do
|
481
|
+
Person.set_callback :initialize, :after do |doc|
|
482
|
+
doc.title = "Madam"
|
483
|
+
end
|
484
|
+
|
485
|
+
Person.set_callback :find, :after do |doc|
|
486
|
+
doc.ssn = 1234
|
487
|
+
end
|
488
|
+
end
|
489
|
+
|
490
|
+
after do
|
491
|
+
Person.reset_callbacks(:initialize)
|
492
|
+
Person.reset_callbacks(:find)
|
493
|
+
end
|
494
|
+
|
495
|
+
it "runs the initialize callbacks" do
|
496
|
+
expect(person.title).to eq("Madam")
|
497
|
+
end
|
498
|
+
|
499
|
+
it "runs the find callbacks" do
|
500
|
+
expect(person.ssn).to eq(1234)
|
501
|
+
end
|
502
|
+
end
|
503
|
+
|
504
|
+
context "when deferring callbacks" do
|
505
|
+
|
506
|
+
let(:person) do
|
507
|
+
described_class.execute_from_db(Person, {}, nil, nil, execute_callbacks: false)
|
508
|
+
end
|
509
|
+
|
510
|
+
before do
|
511
|
+
Person.set_callback :initialize, :after do |doc|
|
512
|
+
doc.title = "Madam"
|
513
|
+
end
|
514
|
+
|
515
|
+
Person.set_callback :find, :after do |doc|
|
516
|
+
doc.ssn = 1234
|
517
|
+
end
|
518
|
+
end
|
519
|
+
|
520
|
+
after do
|
521
|
+
Person.reset_callbacks(:initialize)
|
522
|
+
Person.reset_callbacks(:find)
|
523
|
+
end
|
524
|
+
|
525
|
+
it "runs the initialize callbacks" do
|
526
|
+
expect(person.title).to be nil
|
527
|
+
end
|
528
|
+
|
529
|
+
it "runs the find callbacks" do
|
530
|
+
expect(person.ssn).to be nil
|
531
|
+
end
|
532
|
+
end
|
473
533
|
end
|
474
534
|
end
|
@@ -102,6 +102,29 @@ describe Mongoid::Fields::Localized do
|
|
102
102
|
end
|
103
103
|
end
|
104
104
|
|
105
|
+
context "when key is a symbol" do
|
106
|
+
|
107
|
+
let(:value) do
|
108
|
+
field.demongoize({ :de => "This is a test" })
|
109
|
+
end
|
110
|
+
|
111
|
+
it "returns the string from the set locale" do
|
112
|
+
expect(value).to eq("This is a test")
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
|
117
|
+
context "passing a bogus value" do
|
118
|
+
|
119
|
+
let(:value) do
|
120
|
+
field.demongoize("bogus")
|
121
|
+
end
|
122
|
+
|
123
|
+
it "returns nil" do
|
124
|
+
expect(value).to be_nil
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
105
128
|
context "when the value does not exist" do
|
106
129
|
|
107
130
|
context "when not using fallbacks" do
|
@@ -117,10 +140,7 @@ describe Mongoid::Fields::Localized do
|
|
117
140
|
|
118
141
|
context "when using fallbacks" do
|
119
142
|
|
120
|
-
|
121
|
-
require "i18n/backend/fallbacks"
|
122
|
-
I18n::Backend::Simple.send(:include, I18n::Backend::Fallbacks)
|
123
|
-
end
|
143
|
+
with_i18n_fallbacks
|
124
144
|
|
125
145
|
context "when fallbacks are defined" do
|
126
146
|
|
@@ -139,6 +159,17 @@ describe Mongoid::Fields::Localized do
|
|
139
159
|
end
|
140
160
|
end
|
141
161
|
|
162
|
+
context "when the fallback translation exists and is a symbol" do
|
163
|
+
|
164
|
+
let(:value) do
|
165
|
+
field.demongoize({ :es => "testing" })
|
166
|
+
end
|
167
|
+
|
168
|
+
it "returns the fallback translation" do
|
169
|
+
expect(value).to eq("testing")
|
170
|
+
end
|
171
|
+
end
|
172
|
+
|
142
173
|
context "when another fallback translation exists" do
|
143
174
|
|
144
175
|
let(:value) do
|
@@ -275,10 +306,7 @@ describe Mongoid::Fields::Localized do
|
|
275
306
|
|
276
307
|
context "when using fallbacks" do
|
277
308
|
|
278
|
-
|
279
|
-
require "i18n/backend/fallbacks"
|
280
|
-
I18n::Backend::Simple.send(:include, I18n::Backend::Fallbacks)
|
281
|
-
end
|
309
|
+
with_i18n_fallbacks
|
282
310
|
|
283
311
|
context "when fallbacks are defined" do
|
284
312
|
|
@@ -476,10 +504,7 @@ describe Mongoid::Fields::Localized do
|
|
476
504
|
|
477
505
|
context "when fallbacks are defined" do
|
478
506
|
|
479
|
-
|
480
|
-
require "i18n/backend/fallbacks"
|
481
|
-
I18n::Backend::Simple.send(:include, I18n::Backend::Fallbacks)
|
482
|
-
end
|
507
|
+
with_i18n_fallbacks
|
483
508
|
|
484
509
|
context "when the lookup does not need to use fallbacks" do
|
485
510
|
|