mongoid 7.0.2 → 8.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +33 -33
- data/LICENSE +1 -0
- data/README.md +34 -20
- data/Rakefile +100 -5
- data/lib/config/locales/en.yml +220 -105
- data/lib/mongoid/association/accessors.rb +176 -84
- data/lib/mongoid/association/bindable.rb +57 -28
- data/lib/mongoid/association/builders.rb +9 -15
- data/lib/mongoid/association/constrainable.rb +5 -7
- data/lib/mongoid/association/depending.rb +9 -18
- data/lib/mongoid/association/eager_loadable.rb +31 -10
- data/lib/mongoid/association/embedded/batchable.rb +68 -54
- data/lib/mongoid/association/embedded/cyclic.rb +10 -17
- data/lib/mongoid/association/embedded/embedded_in/binding.rb +27 -9
- data/lib/mongoid/association/embedded/embedded_in/buildable.rb +9 -6
- data/lib/mongoid/association/embedded/embedded_in/proxy.rb +16 -25
- data/lib/mongoid/association/embedded/embedded_in.rb +9 -28
- data/lib/mongoid/association/embedded/embeds_many/binding.rb +5 -8
- data/lib/mongoid/association/embedded/embeds_many/buildable.rb +10 -6
- data/lib/mongoid/association/embedded/embeds_many/proxy.rb +156 -135
- data/lib/mongoid/association/embedded/embeds_many.rb +10 -37
- data/lib/mongoid/association/embedded/embeds_one/binding.rb +4 -8
- data/lib/mongoid/association/embedded/embeds_one/buildable.rb +27 -10
- data/lib/mongoid/association/embedded/embeds_one/proxy.rb +64 -30
- data/lib/mongoid/association/embedded/embeds_one.rb +11 -34
- data/lib/mongoid/association/embedded.rb +2 -0
- data/lib/mongoid/association/macros.rb +65 -41
- data/lib/mongoid/association/many.rb +25 -35
- data/lib/mongoid/association/marshalable.rb +3 -6
- data/lib/mongoid/association/nested/many.rb +22 -30
- data/lib/mongoid/association/nested/nested_buildable.rb +9 -15
- data/lib/mongoid/association/nested/one.rb +57 -30
- data/lib/mongoid/association/nested.rb +3 -3
- data/lib/mongoid/association/one.rb +5 -12
- data/lib/mongoid/association/options.rb +16 -46
- data/lib/mongoid/association/proxy.rb +52 -40
- data/lib/mongoid/association/referenced/auto_save.rb +9 -14
- data/lib/mongoid/association/referenced/belongs_to/binding.rb +5 -9
- data/lib/mongoid/association/referenced/belongs_to/buildable.rb +11 -9
- data/lib/mongoid/association/referenced/belongs_to/eager.rb +40 -3
- data/lib/mongoid/association/referenced/belongs_to/proxy.rb +19 -31
- data/lib/mongoid/association/referenced/belongs_to.rb +16 -38
- data/lib/mongoid/association/referenced/counter_cache.rb +14 -25
- data/lib/mongoid/association/referenced/eager.rb +42 -38
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/binding.rb +12 -11
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/buildable.rb +5 -5
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/eager.rb +2 -1
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/proxy.rb +106 -67
- data/lib/mongoid/association/referenced/has_and_belongs_to_many.rb +29 -46
- data/lib/mongoid/association/referenced/has_many/binding.rb +3 -6
- data/lib/mongoid/association/referenced/has_many/buildable.rb +5 -5
- data/lib/mongoid/association/referenced/has_many/eager.rb +2 -1
- data/lib/mongoid/association/referenced/has_many/enumerable.rb +440 -456
- data/lib/mongoid/association/referenced/has_many/proxy.rb +104 -127
- data/lib/mongoid/association/referenced/has_many.rb +21 -45
- data/lib/mongoid/association/referenced/has_one/binding.rb +4 -9
- data/lib/mongoid/association/referenced/has_one/buildable.rb +20 -6
- data/lib/mongoid/association/referenced/has_one/eager.rb +2 -1
- data/lib/mongoid/association/referenced/has_one/nested_builder.rb +16 -29
- data/lib/mongoid/association/referenced/has_one/proxy.rb +25 -30
- data/lib/mongoid/association/referenced/has_one.rb +16 -36
- data/lib/mongoid/association/referenced/syncable.rb +11 -26
- data/lib/mongoid/association/referenced.rb +2 -0
- data/lib/mongoid/association/reflections.rb +7 -6
- data/lib/mongoid/association/relatable.rb +149 -89
- data/lib/mongoid/association.rb +13 -27
- data/lib/mongoid/atomic/modifiers.rb +29 -53
- data/lib/mongoid/atomic/paths/embedded/many.rb +23 -7
- data/lib/mongoid/atomic/paths/embedded/one.rb +4 -7
- data/lib/mongoid/atomic/paths/embedded.rb +3 -4
- data/lib/mongoid/atomic/paths/root.rb +4 -7
- data/lib/mongoid/atomic/paths.rb +2 -1
- data/lib/mongoid/atomic.rb +49 -47
- data/lib/mongoid/attributes/dynamic.rb +22 -36
- data/lib/mongoid/attributes/nested.rb +12 -15
- data/lib/mongoid/attributes/processing.rb +19 -27
- data/lib/mongoid/attributes/projector.rb +119 -0
- data/lib/mongoid/attributes/readonly.rb +6 -9
- data/lib/mongoid/attributes.rb +103 -100
- data/lib/mongoid/cacheable.rb +7 -10
- data/lib/mongoid/changeable.rb +152 -73
- data/lib/mongoid/clients/factory.rb +42 -17
- data/lib/mongoid/clients/options.rb +21 -18
- data/lib/mongoid/clients/sessions.rb +10 -10
- data/lib/mongoid/clients/storage_options.rb +9 -17
- data/lib/mongoid/clients/validators/storage.rb +5 -24
- data/lib/mongoid/clients/validators.rb +2 -1
- data/lib/mongoid/clients.rb +3 -10
- data/lib/mongoid/collection_configurable.rb +58 -0
- data/lib/mongoid/composable.rb +7 -9
- data/lib/mongoid/config/defaults.rb +60 -0
- data/lib/mongoid/config/environment.rb +51 -13
- data/lib/mongoid/config/options.rb +20 -23
- data/lib/mongoid/config/validators/async_query_executor.rb +24 -0
- data/lib/mongoid/config/validators/client.rb +8 -23
- data/lib/mongoid/config/validators/option.rb +2 -3
- data/lib/mongoid/config/validators.rb +3 -1
- data/lib/mongoid/config.rb +235 -48
- data/lib/mongoid/contextual/aggregable/memory.rb +40 -27
- data/lib/mongoid/contextual/aggregable/mongo.rb +32 -33
- data/lib/mongoid/contextual/aggregable/none.rb +65 -0
- data/lib/mongoid/contextual/aggregable.rb +17 -0
- data/lib/mongoid/contextual/atomic.rb +29 -31
- data/lib/mongoid/contextual/command.rb +2 -5
- data/lib/mongoid/contextual/geo_near.rb +13 -44
- data/lib/mongoid/contextual/map_reduce.rb +7 -35
- data/lib/mongoid/contextual/memory.rb +387 -81
- data/lib/mongoid/contextual/mongo/documents_loader.rb +177 -0
- data/lib/mongoid/contextual/mongo.rb +641 -283
- data/lib/mongoid/contextual/none.rb +264 -31
- data/lib/mongoid/contextual/queryable.rb +3 -4
- data/lib/mongoid/contextual.rb +21 -11
- data/lib/mongoid/copyable.rb +46 -17
- data/lib/mongoid/criteria/findable.rb +20 -20
- data/lib/mongoid/criteria/includable.rb +32 -34
- data/lib/mongoid/criteria/inspectable.rb +2 -3
- data/lib/mongoid/criteria/marshalable.rb +12 -7
- data/lib/mongoid/criteria/modifiable.rb +15 -21
- data/lib/mongoid/criteria/options.rb +4 -5
- data/lib/mongoid/criteria/permission.rb +3 -2
- data/lib/mongoid/criteria/queryable/aggregable.rb +4 -15
- data/lib/mongoid/criteria/queryable/expandable.rb +68 -0
- data/lib/mongoid/criteria/queryable/extensions/array.rb +7 -41
- data/lib/mongoid/criteria/queryable/extensions/big_decimal.rb +28 -8
- data/lib/mongoid/criteria/queryable/extensions/boolean.rb +5 -6
- data/lib/mongoid/criteria/queryable/extensions/date.rb +9 -9
- data/lib/mongoid/criteria/queryable/extensions/date_time.rb +11 -12
- data/lib/mongoid/criteria/queryable/extensions/hash.rb +4 -41
- data/lib/mongoid/criteria/queryable/extensions/nil_class.rb +3 -14
- data/lib/mongoid/criteria/queryable/extensions/numeric.rb +4 -21
- data/lib/mongoid/criteria/queryable/extensions/object.rb +6 -30
- data/lib/mongoid/criteria/queryable/extensions/range.rb +49 -17
- data/lib/mongoid/criteria/queryable/extensions/regexp.rb +12 -19
- data/lib/mongoid/criteria/queryable/extensions/set.rb +4 -5
- data/lib/mongoid/criteria/queryable/extensions/string.rb +7 -32
- data/lib/mongoid/criteria/queryable/extensions/symbol.rb +7 -22
- data/lib/mongoid/criteria/queryable/extensions/time.rb +10 -10
- data/lib/mongoid/criteria/queryable/extensions/time_with_zone.rb +19 -7
- data/lib/mongoid/criteria/queryable/extensions.rb +1 -4
- data/lib/mongoid/criteria/queryable/key.rb +105 -31
- data/lib/mongoid/criteria/queryable/macroable.rb +3 -4
- data/lib/mongoid/criteria/queryable/mergeable.rb +205 -44
- data/lib/mongoid/criteria/queryable/optional.rb +16 -65
- data/lib/mongoid/criteria/queryable/options.rb +4 -21
- data/lib/mongoid/criteria/queryable/pipeline.rb +5 -15
- data/lib/mongoid/criteria/queryable/selectable.rb +471 -168
- data/lib/mongoid/criteria/queryable/selector.rb +133 -58
- data/lib/mongoid/criteria/queryable/smash.rb +42 -18
- data/lib/mongoid/criteria/queryable/storable.rb +237 -0
- data/lib/mongoid/criteria/queryable.rb +18 -15
- data/lib/mongoid/criteria/scopable.rb +29 -21
- data/lib/mongoid/criteria/translator.rb +45 -0
- data/lib/mongoid/criteria.rb +106 -111
- data/lib/mongoid/deprecable.rb +36 -0
- data/lib/mongoid/deprecation.rb +25 -0
- data/lib/mongoid/document.rb +162 -103
- data/lib/mongoid/equality.rb +35 -18
- data/lib/mongoid/errors/ambiguous_relationship.rb +4 -5
- data/lib/mongoid/errors/callback.rb +2 -3
- data/lib/mongoid/errors/create_collection_failure.rb +33 -0
- data/lib/mongoid/errors/criteria_argument_required.rb +18 -0
- data/lib/mongoid/errors/delete_restriction.rb +10 -13
- data/lib/mongoid/errors/document_not_destroyed.rb +4 -7
- data/lib/mongoid/errors/document_not_found.rb +35 -21
- data/lib/mongoid/errors/drop_collection_failure.rb +27 -0
- data/lib/mongoid/errors/empty_config_file.rb +25 -0
- data/lib/mongoid/errors/immutable_attribute.rb +26 -0
- data/lib/mongoid/errors/in_memory_collation_not_supported.rb +2 -3
- data/lib/mongoid/errors/invalid_async_query_executor.rb +25 -0
- data/lib/mongoid/errors/invalid_collection.rb +2 -1
- data/lib/mongoid/errors/invalid_config_file.rb +25 -0
- data/lib/mongoid/errors/invalid_config_option.rb +3 -4
- data/lib/mongoid/errors/invalid_dependent_strategy.rb +3 -4
- data/lib/mongoid/errors/invalid_discriminator_key_target.rb +24 -0
- data/lib/mongoid/errors/invalid_dot_dollar_assignment.rb +23 -0
- data/lib/mongoid/errors/invalid_elem_match_operator.rb +32 -0
- data/lib/mongoid/errors/invalid_estimated_count_criteria.rb +25 -0
- data/lib/mongoid/errors/invalid_expression_operator.rb +27 -0
- data/lib/mongoid/errors/invalid_field.rb +8 -7
- data/lib/mongoid/errors/invalid_field_operator.rb +32 -0
- data/lib/mongoid/errors/invalid_field_option.rb +2 -3
- data/lib/mongoid/errors/invalid_field_type.rb +26 -0
- data/lib/mongoid/errors/invalid_find.rb +2 -3
- data/lib/mongoid/errors/invalid_global_executor_concurrency.rb +22 -0
- data/lib/mongoid/errors/invalid_includes.rb +2 -3
- data/lib/mongoid/errors/invalid_index.rb +2 -3
- data/lib/mongoid/errors/invalid_options.rb +4 -5
- data/lib/mongoid/errors/invalid_path.rb +2 -3
- data/lib/mongoid/errors/invalid_persistence_option.rb +2 -5
- data/lib/mongoid/errors/invalid_query.rb +40 -0
- data/lib/mongoid/errors/invalid_relation.rb +5 -10
- data/lib/mongoid/errors/invalid_relation_option.rb +4 -5
- data/lib/mongoid/errors/invalid_scope.rb +2 -3
- data/lib/mongoid/errors/invalid_session_use.rb +3 -6
- data/lib/mongoid/errors/invalid_set_polymorphic_relation.rb +6 -5
- data/lib/mongoid/errors/invalid_storage_options.rb +3 -4
- data/lib/mongoid/errors/invalid_storage_parent.rb +4 -3
- data/lib/mongoid/errors/invalid_time.rb +2 -3
- data/lib/mongoid/errors/inverse_not_found.rb +3 -4
- data/lib/mongoid/errors/mixed_client_configuration.rb +2 -3
- data/lib/mongoid/errors/mixed_relations.rb +2 -3
- data/lib/mongoid/errors/mongoid_error.rb +6 -13
- data/lib/mongoid/errors/nested_attributes_metadata_not_found.rb +3 -4
- data/lib/mongoid/errors/no_client_config.rb +4 -5
- data/lib/mongoid/errors/no_client_database.rb +3 -4
- data/lib/mongoid/errors/no_client_hosts.rb +3 -4
- data/lib/mongoid/errors/no_clients_config.rb +2 -3
- data/lib/mongoid/errors/no_default_client.rb +3 -4
- data/lib/mongoid/errors/no_environment.rb +2 -3
- data/lib/mongoid/errors/no_map_reduce_output.rb +2 -3
- data/lib/mongoid/errors/no_metadata.rb +2 -3
- data/lib/mongoid/errors/no_parent.rb +2 -3
- data/lib/mongoid/errors/readonly_attribute.rb +3 -4
- data/lib/mongoid/errors/readonly_document.rb +3 -6
- data/lib/mongoid/errors/scope_overwrite.rb +2 -1
- data/lib/mongoid/errors/too_many_nested_attribute_records.rb +3 -1
- data/lib/mongoid/errors/unknown_attribute.rb +3 -4
- data/lib/mongoid/errors/unknown_model.rb +2 -3
- data/lib/mongoid/errors/unsaved_document.rb +3 -2
- data/lib/mongoid/errors/unsupported_javascript.rb +2 -3
- data/lib/mongoid/errors/validations.rb +2 -1
- data/lib/mongoid/errors.rb +18 -4
- data/lib/mongoid/evolvable.rb +4 -5
- data/lib/mongoid/extensions/array.rb +37 -44
- data/lib/mongoid/extensions/big_decimal.rb +35 -21
- data/lib/mongoid/extensions/binary.rb +42 -0
- data/lib/mongoid/extensions/boolean.rb +10 -6
- data/lib/mongoid/extensions/date.rb +32 -25
- data/lib/mongoid/extensions/date_time.rb +5 -13
- data/lib/mongoid/extensions/decimal128.rb +2 -5
- data/lib/mongoid/extensions/false_class.rb +5 -8
- data/lib/mongoid/extensions/float.rb +12 -14
- data/lib/mongoid/extensions/hash.rb +64 -42
- data/lib/mongoid/extensions/integer.rb +12 -16
- data/lib/mongoid/extensions/module.rb +3 -4
- data/lib/mongoid/extensions/nil_class.rb +2 -5
- data/lib/mongoid/extensions/object.rb +27 -52
- data/lib/mongoid/extensions/object_id.rb +2 -7
- data/lib/mongoid/extensions/range.rb +42 -20
- data/lib/mongoid/extensions/regexp.rb +14 -7
- data/lib/mongoid/extensions/set.rb +13 -11
- data/lib/mongoid/extensions/string.rb +35 -64
- data/lib/mongoid/extensions/symbol.rb +6 -22
- data/lib/mongoid/extensions/time.rb +38 -22
- data/lib/mongoid/extensions/time_with_zone.rb +26 -9
- data/lib/mongoid/extensions/true_class.rb +5 -8
- data/lib/mongoid/extensions.rb +19 -3
- data/lib/mongoid/factory.rb +104 -17
- data/lib/mongoid/fields/foreign_key.rb +14 -26
- data/lib/mongoid/fields/localized.rb +21 -15
- data/lib/mongoid/fields/standard.rb +23 -43
- data/lib/mongoid/fields/validators/macro.rb +32 -20
- data/lib/mongoid/fields/validators.rb +2 -1
- data/lib/mongoid/fields.rb +349 -76
- data/lib/mongoid/findable.rb +115 -34
- data/lib/mongoid/indexable/specification.rb +5 -18
- data/lib/mongoid/indexable/validators/options.rb +8 -9
- data/lib/mongoid/indexable.rb +6 -21
- data/lib/mongoid/inspectable.rb +4 -11
- data/lib/mongoid/interceptable.rb +85 -41
- data/lib/mongoid/loggable.rb +13 -16
- data/lib/mongoid/matchable.rb +4 -154
- data/lib/mongoid/matcher/all.rb +22 -0
- data/lib/mongoid/matcher/and.rb +21 -0
- data/lib/mongoid/matcher/bits.rb +41 -0
- data/lib/mongoid/matcher/bits_all_clear.rb +20 -0
- data/lib/mongoid/matcher/bits_all_set.rb +20 -0
- data/lib/mongoid/matcher/bits_any_clear.rb +20 -0
- data/lib/mongoid/matcher/bits_any_set.rb +20 -0
- data/lib/mongoid/matcher/elem_match.rb +36 -0
- data/lib/mongoid/matcher/elem_match_expression.rb +20 -0
- data/lib/mongoid/matcher/eq.rb +11 -0
- data/lib/mongoid/matcher/eq_impl.rb +67 -0
- data/lib/mongoid/matcher/eq_impl_with_regexp.rb +26 -0
- data/lib/mongoid/matcher/exists.rb +15 -0
- data/lib/mongoid/matcher/expression.rb +35 -0
- data/lib/mongoid/matcher/expression_operator.rb +19 -0
- data/lib/mongoid/matcher/field_expression.rb +62 -0
- data/lib/mongoid/matcher/field_operator.rb +54 -0
- data/lib/mongoid/matcher/gt.rb +17 -0
- data/lib/mongoid/matcher/gte.rb +17 -0
- data/lib/mongoid/matcher/in.rb +25 -0
- data/lib/mongoid/matcher/lt.rb +17 -0
- data/lib/mongoid/matcher/lte.rb +17 -0
- data/lib/mongoid/matcher/mod.rb +17 -0
- data/lib/mongoid/matcher/ne.rb +16 -0
- data/lib/mongoid/matcher/nin.rb +11 -0
- data/lib/mongoid/matcher/nor.rb +25 -0
- data/lib/mongoid/matcher/not.rb +29 -0
- data/lib/mongoid/matcher/or.rb +21 -0
- data/lib/mongoid/matcher/regex.rb +41 -0
- data/lib/mongoid/matcher/size.rb +26 -0
- data/lib/mongoid/matcher/type.rb +99 -0
- data/lib/mongoid/matcher.rb +130 -0
- data/lib/mongoid/persistable/creatable.rb +23 -30
- data/lib/mongoid/persistable/deletable.rb +7 -23
- data/lib/mongoid/persistable/destroyable.rb +12 -11
- data/lib/mongoid/persistable/incrementable.rb +6 -7
- data/lib/mongoid/persistable/logical.rb +4 -6
- data/lib/mongoid/persistable/poppable.rb +3 -6
- data/lib/mongoid/persistable/pullable.rb +3 -8
- data/lib/mongoid/persistable/pushable.rb +14 -10
- data/lib/mongoid/persistable/renamable.rb +10 -8
- data/lib/mongoid/persistable/savable.rb +16 -9
- data/lib/mongoid/persistable/settable.rb +3 -6
- data/lib/mongoid/persistable/unsettable.rb +10 -10
- data/lib/mongoid/persistable/updatable.rb +99 -30
- data/lib/mongoid/persistable/upsertable.rb +23 -9
- data/lib/mongoid/persistable.rb +138 -40
- data/lib/mongoid/persistence_context.rb +107 -52
- data/lib/mongoid/positional.rb +3 -6
- data/lib/mongoid/query_cache.rb +18 -234
- data/lib/mongoid/railtie.rb +20 -16
- data/lib/mongoid/railties/controller_runtime.rb +88 -0
- data/lib/mongoid/railties/database.rake +16 -2
- data/lib/mongoid/reloadable.rb +19 -22
- data/lib/mongoid/scopable.rb +37 -60
- data/lib/mongoid/selectable.rb +8 -18
- data/lib/mongoid/serializable.rb +33 -34
- data/lib/mongoid/shardable.rb +108 -21
- data/lib/mongoid/stateful.rb +60 -20
- data/lib/mongoid/stringified_symbol.rb +52 -0
- data/lib/mongoid/tasks/database.rake +24 -5
- data/lib/mongoid/tasks/database.rb +105 -7
- data/lib/mongoid/threaded/lifecycle.rb +7 -26
- data/lib/mongoid/threaded.rb +80 -67
- data/lib/mongoid/timestamps/created/short.rb +2 -1
- data/lib/mongoid/timestamps/created.rb +4 -3
- data/lib/mongoid/timestamps/short.rb +2 -1
- data/lib/mongoid/timestamps/timeless.rb +6 -9
- data/lib/mongoid/timestamps/updated/short.rb +2 -1
- data/lib/mongoid/timestamps/updated.rb +5 -6
- data/lib/mongoid/timestamps.rb +3 -2
- data/lib/mongoid/touchable.rb +54 -25
- data/lib/mongoid/traversable.rb +185 -61
- data/lib/mongoid/utils.rb +22 -0
- data/lib/mongoid/validatable/associated.rb +5 -6
- data/lib/mongoid/validatable/format.rb +2 -1
- data/lib/mongoid/validatable/length.rb +2 -1
- data/lib/mongoid/validatable/localizable.rb +3 -4
- data/lib/mongoid/validatable/macros.rb +8 -15
- data/lib/mongoid/validatable/presence.rb +10 -15
- data/lib/mongoid/validatable/queryable.rb +2 -3
- data/lib/mongoid/validatable/uniqueness.rb +30 -42
- data/lib/mongoid/validatable.rb +16 -32
- data/lib/mongoid/version.rb +3 -2
- data/lib/mongoid/warnings.rb +44 -0
- data/lib/mongoid.rb +50 -17
- data/lib/rails/generators/mongoid/config/config_generator.rb +10 -2
- data/lib/rails/generators/mongoid/config/templates/mongoid.yml +53 -32
- data/lib/rails/generators/mongoid/model/model_generator.rb +3 -2
- data/lib/rails/generators/mongoid/model/templates/model.rb.tt +1 -1
- data/lib/rails/generators/mongoid_generator.rb +2 -1
- data/lib/rails/mongoid.rb +4 -5
- data/spec/README.md +33 -0
- data/spec/config/mongoid.yml +29 -3
- data/spec/config/mongoid_with_schema_map_uuid.yml +27 -0
- data/spec/integration/app_spec.rb +345 -0
- data/spec/integration/associations/belongs_to_spec.rb +33 -0
- data/spec/integration/associations/embedded_dirty_spec.rb +57 -0
- data/spec/integration/associations/embedded_spec.rb +283 -0
- data/spec/integration/associations/embeds_many_spec.rb +219 -0
- data/spec/integration/associations/embeds_one_spec.rb +41 -0
- data/spec/integration/associations/foreign_key_spec.rb +107 -0
- data/spec/integration/associations/foreign_key_spec_models.rb +64 -0
- data/spec/integration/associations/has_and_belongs_to_many_spec.rb +21 -0
- data/spec/integration/associations/has_many_spec.rb +128 -0
- data/spec/integration/associations/has_one_spec.rb +272 -0
- data/spec/integration/associations/nested_attributes_assignment_spec.rb +115 -0
- data/spec/integration/associations/reverse_population_spec.rb +34 -0
- data/spec/integration/associations/reverse_population_spec_models.rb +36 -0
- data/spec/integration/associations/scope_option_spec.rb +101 -0
- data/spec/integration/atomic/modifiers_spec.rb +116 -0
- data/spec/integration/bson_regexp_raw_spec.rb +19 -0
- data/spec/integration/callbacks_models.rb +192 -0
- data/spec/integration/callbacks_spec.rb +584 -0
- data/spec/integration/contextual/empty_spec.rb +141 -0
- data/spec/integration/criteria/alias_query_spec.rb +161 -0
- data/spec/integration/criteria/date_field_spec.rb +40 -0
- data/spec/integration/criteria/default_scope_spec.rb +72 -0
- data/spec/integration/criteria/logical_spec.rb +124 -0
- data/spec/integration/criteria/range_spec.rb +359 -0
- data/spec/integration/criteria/time_with_zone_spec.rb +142 -0
- data/spec/integration/discriminator_key_spec.rb +391 -0
- data/spec/integration/discriminator_value_spec.rb +206 -0
- data/spec/integration/document_spec.rb +51 -0
- data/spec/integration/dots_and_dollars_spec.rb +277 -0
- data/spec/integration/i18n_fallbacks_spec.rb +74 -0
- data/spec/integration/matcher_examples_spec.rb +765 -0
- data/spec/integration/matcher_operator_data/all.yml +140 -0
- data/spec/integration/matcher_operator_data/and.yml +93 -0
- data/spec/integration/matcher_operator_data/bits_all_clear.yml +159 -0
- data/spec/integration/matcher_operator_data/bits_all_set.yml +159 -0
- data/spec/integration/matcher_operator_data/bits_any_clear.yml +159 -0
- data/spec/integration/matcher_operator_data/bits_any_set.yml +159 -0
- data/spec/integration/matcher_operator_data/comment.yml +22 -0
- data/spec/integration/matcher_operator_data/elem_match.yml +409 -0
- data/spec/integration/matcher_operator_data/elem_match_expr.yml +213 -0
- data/spec/integration/matcher_operator_data/eq.yml +191 -0
- data/spec/integration/matcher_operator_data/exists.yml +213 -0
- data/spec/integration/matcher_operator_data/generic_op.yml +17 -0
- data/spec/integration/matcher_operator_data/gt.yml +132 -0
- data/spec/integration/matcher_operator_data/gt_types.yml +63 -0
- data/spec/integration/matcher_operator_data/gte.yml +132 -0
- data/spec/integration/matcher_operator_data/gte_types.yml +15 -0
- data/spec/integration/matcher_operator_data/implicit.yml +331 -0
- data/spec/integration/matcher_operator_data/implicit_traversal.yml +112 -0
- data/spec/integration/matcher_operator_data/in.yml +210 -0
- data/spec/integration/matcher_operator_data/invalid_op.yml +59 -0
- data/spec/integration/matcher_operator_data/invalid_syntax.yml +39 -0
- data/spec/integration/matcher_operator_data/lt.yml +132 -0
- data/spec/integration/matcher_operator_data/lt_types.yml +15 -0
- data/spec/integration/matcher_operator_data/lte.yml +132 -0
- data/spec/integration/matcher_operator_data/lte_types.yml +15 -0
- data/spec/integration/matcher_operator_data/mod.yml +55 -0
- data/spec/integration/matcher_operator_data/multiple.yml +29 -0
- data/spec/integration/matcher_operator_data/ne.yml +150 -0
- data/spec/integration/matcher_operator_data/ne_types.yml +15 -0
- data/spec/integration/matcher_operator_data/nin.yml +114 -0
- data/spec/integration/matcher_operator_data/nor.yml +126 -0
- data/spec/integration/matcher_operator_data/not.yml +196 -0
- data/spec/integration/matcher_operator_data/or.yml +137 -0
- data/spec/integration/matcher_operator_data/regex.yml +174 -0
- data/spec/integration/matcher_operator_data/regex_options.yml +72 -0
- data/spec/integration/matcher_operator_data/size.yml +174 -0
- data/spec/integration/matcher_operator_data/type.yml +70 -0
- data/spec/integration/matcher_operator_data/type_array.yml +16 -0
- data/spec/integration/matcher_operator_data/type_binary.yml +18 -0
- data/spec/integration/matcher_operator_data/type_boolean.yml +39 -0
- data/spec/integration/matcher_operator_data/type_code.yml +26 -0
- data/spec/integration/matcher_operator_data/type_code_with_scope.yml +26 -0
- data/spec/integration/matcher_operator_data/type_date.yml +39 -0
- data/spec/integration/matcher_operator_data/type_db_pointer.yml +19 -0
- data/spec/integration/matcher_operator_data/type_decimal.yml +41 -0
- data/spec/integration/matcher_operator_data/type_double.yml +15 -0
- data/spec/integration/matcher_operator_data/type_int32.yml +33 -0
- data/spec/integration/matcher_operator_data/type_int64.yml +33 -0
- data/spec/integration/matcher_operator_data/type_max_key.yml +17 -0
- data/spec/integration/matcher_operator_data/type_min_key.yml +17 -0
- data/spec/integration/matcher_operator_data/type_null.yml +23 -0
- data/spec/integration/matcher_operator_data/type_object.yml +23 -0
- data/spec/integration/matcher_operator_data/type_object_id.yml +25 -0
- data/spec/integration/matcher_operator_data/type_regex.yml +44 -0
- data/spec/integration/matcher_operator_data/type_string.yml +15 -0
- data/spec/integration/matcher_operator_data/type_symbol.yml +32 -0
- data/spec/integration/matcher_operator_data/type_timestamp.yml +25 -0
- data/spec/integration/matcher_operator_data/type_undefined.yml +17 -0
- data/spec/integration/matcher_operator_spec.rb +122 -0
- data/spec/integration/matcher_spec.rb +283 -0
- data/spec/integration/persistence/range_field_spec.rb +350 -0
- data/spec/integration/server_query_spec.rb +141 -0
- data/spec/integration/shardable_spec.rb +148 -0
- data/spec/integration/stringified_symbol_field_spec.rb +203 -0
- data/spec/lite_spec_helper.rb +83 -0
- data/spec/mongoid/association/accessors_spec.rb +284 -77
- data/spec/mongoid/association/auto_save_spec.rb +74 -33
- data/spec/mongoid/association/builders_spec.rb +3 -1
- data/spec/mongoid/association/constrainable_spec.rb +2 -0
- data/spec/mongoid/association/counter_cache_spec.rb +35 -33
- data/spec/mongoid/association/depending_spec.rb +431 -338
- data/spec/mongoid/association/eager_spec.rb +8 -5
- data/spec/mongoid/association/embedded/cyclic_spec.rb +4 -2
- data/spec/mongoid/association/embedded/dirty_spec.rb +4 -2
- data/spec/mongoid/association/embedded/embedded_in/binding_spec.rb +4 -1
- data/spec/mongoid/association/embedded/embedded_in/buildable_spec.rb +56 -0
- data/spec/mongoid/association/embedded/embedded_in/proxy_spec.rb +152 -13
- data/spec/mongoid/association/embedded/embedded_in_spec.rb +61 -1
- data/spec/mongoid/association/embedded/embeds_many/binding_spec.rb +2 -0
- data/spec/mongoid/association/embedded/embeds_many/buildable_spec.rb +114 -0
- data/spec/mongoid/association/embedded/embeds_many/proxy_spec.rb +706 -197
- data/spec/mongoid/association/embedded/embeds_many_models.rb +227 -0
- data/spec/mongoid/association/embedded/embeds_many_query_spec.rb +63 -0
- data/spec/mongoid/association/embedded/embeds_many_spec.rb +81 -1
- data/spec/mongoid/association/embedded/embeds_one/binding_spec.rb +2 -0
- data/spec/mongoid/association/embedded/embeds_one/buildable_spec.rb +27 -0
- data/spec/mongoid/association/embedded/embeds_one/proxy_spec.rb +38 -23
- data/spec/mongoid/association/embedded/embeds_one_dnl_models.rb +8 -0
- data/spec/mongoid/association/embedded/embeds_one_models.rb +73 -0
- data/spec/mongoid/association/embedded/embeds_one_query_spec.rb +28 -0
- data/spec/mongoid/association/embedded/embeds_one_spec.rb +77 -1
- data/spec/mongoid/association/macros_spec.rb +11 -9
- data/spec/mongoid/association/nested/many_spec.rb +2 -0
- data/spec/mongoid/association/nested/one_spec.rb +18 -12
- data/spec/mongoid/association/options_spec.rb +2 -0
- data/spec/mongoid/association/polymorphic_spec.rb +2 -0
- data/spec/mongoid/association/referenced/belongs_to/binding_spec.rb +4 -1
- data/spec/mongoid/association/referenced/belongs_to/buildable_spec.rb +111 -16
- data/spec/mongoid/association/referenced/belongs_to/eager_spec.rb +266 -17
- data/spec/mongoid/association/referenced/belongs_to/proxy_spec.rb +114 -58
- data/spec/mongoid/association/referenced/belongs_to_models.rb +11 -0
- data/spec/mongoid/association/referenced/belongs_to_query_spec.rb +57 -0
- data/spec/mongoid/association/referenced/belongs_to_spec.rb +96 -29
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/binding_spec.rb +3 -1
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/buildable_spec.rb +28 -1
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/eager_spec.rb +67 -4
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_persistence_spec.rb +76 -0
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_spec.rb +559 -385
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_models.rb +92 -0
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_query_spec.rb +39 -0
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_spec.rb +84 -7
- data/spec/mongoid/association/referenced/has_many/binding_spec.rb +3 -1
- data/spec/mongoid/association/referenced/has_many/buildable_spec.rb +132 -0
- data/spec/mongoid/association/referenced/has_many/eager_spec.rb +40 -9
- data/spec/mongoid/association/referenced/has_many/enumerable_spec.rb +415 -129
- data/spec/mongoid/association/referenced/has_many/proxy_query_spec.rb +23 -0
- data/spec/mongoid/association/referenced/has_many/proxy_spec.rb +859 -502
- data/spec/mongoid/association/referenced/has_many_models.rb +97 -0
- data/spec/mongoid/association/referenced/has_many_query_spec.rb +37 -0
- data/spec/mongoid/association/referenced/has_many_spec.rb +51 -3
- data/spec/mongoid/association/referenced/has_one/binding_spec.rb +2 -0
- data/spec/mongoid/association/referenced/has_one/buildable_spec.rb +55 -9
- data/spec/mongoid/association/referenced/has_one/eager_spec.rb +34 -4
- data/spec/mongoid/association/referenced/has_one/proxy_spec.rb +135 -27
- data/spec/mongoid/association/referenced/has_one_models.rb +113 -0
- data/spec/mongoid/association/referenced/has_one_query_spec.rb +37 -0
- data/spec/mongoid/association/referenced/has_one_spec.rb +87 -7
- data/spec/mongoid/association/reflections_spec.rb +2 -0
- data/spec/mongoid/association/syncable_spec.rb +48 -32
- data/spec/mongoid/association_spec.rb +2 -0
- data/spec/mongoid/atomic/modifiers_spec.rb +49 -0
- data/spec/mongoid/atomic/paths/embedded/many_spec.rb +2 -0
- data/spec/mongoid/atomic/paths/embedded/one_spec.rb +2 -0
- data/spec/mongoid/atomic/paths/root_spec.rb +2 -0
- data/spec/mongoid/atomic/paths_spec.rb +93 -12
- data/spec/mongoid/atomic_spec.rb +53 -6
- data/spec/mongoid/attributes/dynamic_spec.rb +152 -0
- data/spec/mongoid/attributes/nested_spec.rb +149 -78
- data/spec/mongoid/attributes/nested_spec_models.rb +48 -0
- data/spec/mongoid/attributes/projector_data/embedded.yml +105 -0
- data/spec/mongoid/attributes/projector_data/fields.yml +93 -0
- data/spec/mongoid/attributes/projector_spec.rb +40 -0
- data/spec/mongoid/attributes/readonly_spec.rb +24 -22
- data/spec/mongoid/attributes_spec.rb +895 -54
- data/spec/mongoid/cacheable_spec.rb +6 -4
- data/spec/mongoid/changeable_spec.rb +484 -67
- data/spec/mongoid/clients/factory_spec.rb +139 -33
- data/spec/mongoid/clients/options_spec.rb +76 -54
- data/spec/mongoid/clients/sessions_spec.rb +35 -63
- data/spec/mongoid/clients/transactions_spec.rb +87 -41
- data/spec/mongoid/clients_spec.rb +257 -31
- data/spec/mongoid/collection_configurable_spec.rb +158 -0
- data/spec/mongoid/composable_spec.rb +2 -0
- data/spec/mongoid/config/defaults_spec.rb +160 -0
- data/spec/mongoid/config/environment_spec.rb +126 -8
- data/spec/mongoid/config/options_spec.rb +22 -3
- data/spec/mongoid/config_spec.rb +507 -2
- data/spec/mongoid/contextual/aggregable/memory_spec.rb +433 -153
- 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/aggregable/mongo_spec.rb +122 -20
- data/spec/mongoid/contextual/aggregable/none_spec.rb +60 -0
- data/spec/mongoid/contextual/atomic_spec.rb +242 -81
- data/spec/mongoid/contextual/geo_near_spec.rb +31 -19
- data/spec/mongoid/contextual/map_reduce_spec.rb +22 -19
- data/spec/mongoid/contextual/memory_spec.rb +1828 -303
- data/spec/mongoid/contextual/mongo/documents_loader_spec.rb +187 -0
- data/spec/mongoid/contextual/mongo_spec.rb +3505 -1268
- data/spec/mongoid/contextual/none_spec.rb +80 -67
- data/spec/mongoid/copyable_spec.rb +697 -40
- data/spec/mongoid/copyable_spec_models.rb +47 -0
- data/spec/mongoid/criteria/findable_spec.rb +161 -228
- data/spec/mongoid/criteria/includable_spec.rb +1492 -0
- data/spec/mongoid/criteria/includable_spec_models.rb +54 -0
- data/spec/mongoid/criteria/inspectable_spec.rb +2 -0
- data/spec/mongoid/criteria/marshalable_spec.rb +20 -1
- data/spec/mongoid/criteria/modifiable_spec.rb +100 -48
- data/spec/mongoid/criteria/options_spec.rb +2 -0
- data/spec/mongoid/criteria/queryable/aggregable_spec.rb +3 -1
- data/spec/mongoid/criteria/queryable/expandable_spec.rb +61 -0
- data/spec/mongoid/criteria/queryable/extensions/array_spec.rb +9 -19
- data/spec/mongoid/criteria/queryable/extensions/big_decimal_spec.rb +136 -26
- data/spec/mongoid/criteria/queryable/extensions/boolean_spec.rb +3 -1
- data/spec/mongoid/criteria/queryable/extensions/date_spec.rb +13 -0
- data/spec/mongoid/criteria/queryable/extensions/date_time_spec.rb +46 -17
- data/spec/mongoid/criteria/queryable/extensions/float_spec.rb +2 -0
- data/spec/mongoid/criteria/queryable/extensions/hash_spec.rb +2 -15
- data/spec/mongoid/criteria/queryable/extensions/integer_spec.rb +2 -0
- data/spec/mongoid/criteria/queryable/extensions/nil_class_spec.rb +2 -0
- data/spec/mongoid/criteria/queryable/extensions/numeric_spec.rb +119 -0
- data/spec/mongoid/criteria/queryable/extensions/object_spec.rb +2 -0
- data/spec/mongoid/criteria/queryable/extensions/range_spec.rb +239 -178
- data/spec/mongoid/criteria/queryable/extensions/regexp_raw_spec.rb +3 -1
- data/spec/mongoid/criteria/queryable/extensions/regexp_spec.rb +9 -7
- data/spec/mongoid/criteria/queryable/extensions/set_spec.rb +2 -0
- data/spec/mongoid/criteria/queryable/extensions/string_spec.rb +7 -70
- data/spec/mongoid/criteria/queryable/extensions/symbol_spec.rb +2 -59
- data/spec/mongoid/criteria/queryable/extensions/time_spec.rb +53 -23
- data/spec/mongoid/criteria/queryable/extensions/time_with_zone_spec.rb +41 -1
- data/spec/mongoid/criteria/queryable/key_spec.rb +50 -6
- data/spec/mongoid/criteria/queryable/mergeable_spec.rb +145 -12
- data/spec/mongoid/criteria/queryable/optional_spec.rb +18 -485
- data/spec/mongoid/criteria/queryable/options_spec.rb +3 -1
- data/spec/mongoid/criteria/queryable/pipeline_spec.rb +2 -0
- data/spec/mongoid/criteria/queryable/queryable_spec.rb +3 -1
- data/spec/mongoid/criteria/queryable/selectable_logical_spec.rb +2538 -0
- data/spec/mongoid/criteria/queryable/selectable_shared_examples.rb +38 -0
- data/spec/mongoid/criteria/queryable/selectable_spec.rb +1193 -2934
- data/spec/mongoid/criteria/queryable/selectable_where_spec.rb +589 -0
- data/spec/mongoid/criteria/queryable/selector_spec.rb +56 -5
- data/spec/mongoid/criteria/queryable/smash_spec.rb +2 -0
- data/spec/mongoid/criteria/queryable/storable_spec.rb +226 -0
- data/spec/mongoid/criteria/scopable_spec.rb +210 -0
- data/spec/mongoid/criteria/translator_spec.rb +132 -0
- data/spec/mongoid/criteria_projection_spec.rb +406 -0
- data/spec/mongoid/criteria_spec.rb +1334 -1719
- data/spec/mongoid/document_fields_spec.rb +262 -0
- data/spec/mongoid/document_persistence_context_spec.rb +32 -0
- data/spec/mongoid/document_query_spec.rb +89 -0
- data/spec/mongoid/document_spec.rb +212 -67
- data/spec/mongoid/equality_spec.rb +144 -41
- data/spec/mongoid/errors/ambiguous_relationship_spec.rb +5 -3
- data/spec/mongoid/errors/callback_spec.rb +2 -0
- data/spec/mongoid/errors/delete_restriction_spec.rb +4 -2
- data/spec/mongoid/errors/document_not_destroyed_spec.rb +2 -0
- data/spec/mongoid/errors/document_not_found_spec.rb +78 -0
- data/spec/mongoid/errors/invalid_collection_spec.rb +2 -0
- data/spec/mongoid/errors/{eager_load_spec.rb → invalid_config_file_spec.rb} +7 -5
- data/spec/mongoid/errors/invalid_config_option_spec.rb +2 -0
- data/spec/mongoid/errors/invalid_field_option_spec.rb +2 -0
- data/spec/mongoid/errors/invalid_field_spec.rb +3 -1
- data/spec/mongoid/errors/invalid_field_type_spec.rb +55 -0
- data/spec/mongoid/errors/invalid_find_spec.rb +2 -0
- data/spec/mongoid/errors/invalid_includes_spec.rb +2 -0
- data/spec/mongoid/errors/invalid_index_spec.rb +2 -0
- data/spec/mongoid/errors/invalid_options_spec.rb +4 -2
- data/spec/mongoid/errors/invalid_path_spec.rb +2 -0
- data/spec/mongoid/errors/invalid_relation_spec.rb +4 -2
- data/spec/mongoid/errors/invalid_scope_spec.rb +3 -1
- data/spec/mongoid/errors/invalid_set_polymorphic_relation_spec.rb +2 -0
- data/spec/mongoid/errors/invalid_storage_options_spec.rb +2 -0
- data/spec/mongoid/errors/invalid_time_spec.rb +2 -0
- data/spec/mongoid/errors/inverse_not_found_spec.rb +3 -1
- data/spec/mongoid/errors/mixed_client_configuration_spec.rb +2 -0
- data/spec/mongoid/errors/mixed_relations_spec.rb +2 -0
- data/spec/mongoid/errors/mongoid_error_spec.rb +24 -8
- data/spec/mongoid/errors/nested_attributes_metadata_not_found_spec.rb +5 -3
- data/spec/mongoid/errors/no_client_config_spec.rb +4 -2
- data/spec/mongoid/errors/no_client_database_spec.rb +5 -3
- data/spec/mongoid/errors/no_client_hosts_spec.rb +5 -3
- data/spec/mongoid/errors/no_clients_config_spec.rb +2 -0
- data/spec/mongoid/errors/no_environment_spec.rb +5 -3
- data/spec/mongoid/errors/no_map_reduce_output_spec.rb +2 -0
- data/spec/mongoid/errors/no_metadata_spec.rb +4 -2
- data/spec/mongoid/errors/no_parent_spec.rb +3 -1
- data/spec/mongoid/errors/readonly_attribute_spec.rb +2 -0
- data/spec/mongoid/errors/readonly_document_spec.rb +4 -2
- data/spec/mongoid/errors/scope_overwrite_spec.rb +2 -0
- data/spec/mongoid/errors/too_many_nested_attribute_records_spec.rb +3 -1
- data/spec/mongoid/errors/unknown_attribute_spec.rb +4 -2
- data/spec/mongoid/errors/unsaved_document_spec.rb +3 -1
- data/spec/mongoid/errors/unsupported_javascript_spec.rb +2 -0
- data/spec/mongoid/errors/validations_spec.rb +2 -0
- data/spec/mongoid/extensions/array_spec.rb +41 -45
- data/spec/mongoid/extensions/big_decimal_spec.rb +715 -213
- data/spec/mongoid/extensions/binary_spec.rb +46 -9
- data/spec/mongoid/extensions/boolean_spec.rb +70 -82
- data/spec/mongoid/extensions/date_class_mongoize_spec.rb +339 -0
- data/spec/mongoid/extensions/date_spec.rb +58 -140
- data/spec/mongoid/extensions/date_time_spec.rb +32 -69
- data/spec/mongoid/extensions/decimal128_spec.rb +2 -0
- data/spec/mongoid/extensions/false_class_spec.rb +3 -1
- data/spec/mongoid/extensions/float_spec.rb +66 -73
- data/spec/mongoid/extensions/hash_spec.rb +135 -0
- data/spec/mongoid/extensions/integer_spec.rb +61 -63
- data/spec/mongoid/extensions/module_spec.rb +2 -0
- data/spec/mongoid/extensions/nil_class_spec.rb +2 -0
- data/spec/mongoid/extensions/object_id_spec.rb +2 -0
- data/spec/mongoid/extensions/object_spec.rb +13 -24
- data/spec/mongoid/extensions/range_spec.rb +257 -54
- data/spec/mongoid/extensions/regexp_spec.rb +70 -20
- data/spec/mongoid/extensions/set_spec.rb +108 -0
- data/spec/mongoid/extensions/string_spec.rb +146 -57
- data/spec/mongoid/extensions/stringified_symbol_spec.rb +84 -0
- data/spec/mongoid/extensions/symbol_spec.rb +20 -25
- data/spec/mongoid/extensions/time_spec.rb +668 -106
- data/spec/mongoid/extensions/time_with_zone_spec.rb +57 -83
- data/spec/mongoid/extensions/true_class_spec.rb +3 -1
- data/spec/mongoid/extensions_spec.rb +16 -2
- data/spec/mongoid/factory_spec.rb +347 -27
- data/spec/mongoid/fields/foreign_key_spec.rb +2 -0
- data/spec/mongoid/fields/localized_spec.rb +86 -41
- data/spec/mongoid/fields/standard_spec.rb +2 -0
- data/spec/mongoid/fields_spec.rb +869 -114
- data/spec/mongoid/findable_spec.rb +521 -65
- data/spec/mongoid/indexable/specification_spec.rb +4 -2
- data/spec/mongoid/indexable_spec.rb +87 -32
- data/spec/mongoid/inspectable_spec.rb +39 -2
- data/spec/mongoid/interceptable_spec.rb +761 -98
- data/spec/mongoid/interceptable_spec_models.rb +307 -0
- data/spec/mongoid/loggable_spec.rb +2 -0
- data/spec/mongoid/matcher/extract_attribute_data/numeric_keys.yml +104 -0
- data/spec/mongoid/matcher/extract_attribute_data/traversal.yml +239 -0
- data/spec/mongoid/matcher/extract_attribute_spec.rb +36 -0
- data/spec/mongoid/mongoizable_spec.rb +285 -0
- data/spec/mongoid/persistable/creatable_spec.rb +114 -29
- data/spec/mongoid/persistable/deletable_spec.rb +300 -18
- data/spec/mongoid/persistable/destroyable_spec.rb +228 -18
- data/spec/mongoid/persistable/incrementable_spec.rb +66 -13
- data/spec/mongoid/persistable/logical_spec.rb +56 -3
- data/spec/mongoid/persistable/poppable_spec.rb +55 -3
- data/spec/mongoid/persistable/pullable_spec.rb +108 -6
- data/spec/mongoid/persistable/pushable_spec.rb +163 -7
- data/spec/mongoid/persistable/renamable_spec.rb +54 -2
- data/spec/mongoid/persistable/savable_spec.rb +284 -25
- data/spec/mongoid/persistable/settable_spec.rb +91 -8
- data/spec/mongoid/persistable/unsettable_spec.rb +55 -3
- data/spec/mongoid/persistable/updatable_spec.rb +63 -49
- data/spec/mongoid/persistable/upsertable_spec.rb +93 -3
- data/spec/mongoid/persistable_spec.rb +85 -9
- data/spec/mongoid/persistence_context_spec.rb +60 -59
- data/spec/mongoid/positional_spec.rb +2 -0
- data/spec/mongoid/query_cache_middleware_spec.rb +50 -0
- data/spec/mongoid/query_cache_spec.rb +446 -78
- data/spec/mongoid/relations/proxy_spec.rb +9 -7
- data/spec/mongoid/reloadable_spec.rb +381 -26
- data/spec/mongoid/scopable_spec.rb +206 -38
- data/spec/mongoid/selectable_spec.rb +8 -6
- data/spec/mongoid/serializable_spec.rb +148 -38
- data/spec/mongoid/shardable_models.rb +75 -0
- data/spec/mongoid/shardable_spec.rb +239 -34
- data/spec/mongoid/stateful_spec.rb +153 -9
- data/spec/mongoid/tasks/database_rake_spec.rb +89 -13
- data/spec/mongoid/tasks/database_spec.rb +130 -1
- data/spec/mongoid/threaded_spec.rb +72 -2
- data/spec/mongoid/timestamps/created/short_spec.rb +3 -1
- data/spec/mongoid/timestamps/created_spec.rb +3 -1
- data/spec/mongoid/timestamps/timeless_spec.rb +4 -2
- data/spec/mongoid/timestamps/updated/short_spec.rb +5 -3
- data/spec/mongoid/timestamps/updated_spec.rb +5 -3
- data/spec/mongoid/timestamps_spec.rb +400 -10
- data/spec/mongoid/timestamps_spec_models.rb +67 -0
- data/spec/mongoid/touchable_spec.rb +568 -33
- data/spec/mongoid/touchable_spec_models.rb +59 -0
- data/spec/mongoid/traversable_spec.rb +1145 -1
- data/spec/mongoid/validatable/associated_spec.rb +2 -0
- data/spec/mongoid/validatable/format_spec.rb +2 -0
- data/spec/mongoid/validatable/length_spec.rb +2 -0
- data/spec/mongoid/validatable/numericality_spec.rb +2 -0
- data/spec/mongoid/validatable/presence_spec.rb +28 -22
- data/spec/mongoid/validatable/uniqueness_spec.rb +159 -103
- data/spec/mongoid/validatable_spec.rb +5 -3
- data/spec/mongoid/warnings_spec.rb +35 -0
- data/spec/mongoid_spec.rb +36 -10
- data/spec/rails/controller_extension/controller_runtime_spec.rb +112 -0
- data/spec/rails/mongoid_spec.rb +8 -18
- data/spec/shared/LICENSE +20 -0
- data/spec/shared/bin/get-mongodb-download-url +17 -0
- data/spec/shared/bin/s3-copy +45 -0
- data/spec/shared/bin/s3-upload +69 -0
- data/spec/shared/lib/mrss/child_process_helper.rb +80 -0
- data/spec/shared/lib/mrss/cluster_config.rb +231 -0
- data/spec/shared/lib/mrss/constraints.rb +378 -0
- data/spec/shared/lib/mrss/docker_runner.rb +298 -0
- data/spec/shared/lib/mrss/eg_config_utils.rb +51 -0
- data/spec/shared/lib/mrss/event_subscriber.rb +210 -0
- data/spec/shared/lib/mrss/lite_constraints.rb +238 -0
- data/spec/shared/lib/mrss/server_version_registry.rb +113 -0
- data/spec/shared/lib/mrss/session_registry.rb +69 -0
- data/spec/shared/lib/mrss/session_registry_legacy.rb +60 -0
- data/spec/shared/lib/mrss/spec_organizer.rb +179 -0
- data/spec/shared/lib/mrss/utils.rb +37 -0
- data/spec/shared/share/Dockerfile.erb +321 -0
- data/spec/shared/share/haproxy-1.conf +16 -0
- data/spec/shared/share/haproxy-2.conf +17 -0
- data/spec/shared/shlib/config.sh +27 -0
- data/spec/shared/shlib/distro.sh +74 -0
- data/spec/shared/shlib/server.sh +416 -0
- data/spec/shared/shlib/set_env.sh +169 -0
- data/spec/spec_helper.rb +74 -88
- data/spec/support/authorization.rb +2 -0
- data/spec/support/client_registry.rb +9 -0
- data/spec/support/constraints.rb +77 -0
- data/spec/support/expectations.rb +21 -3
- data/spec/support/helpers.rb +11 -0
- data/spec/support/immutable_ids.rb +118 -0
- data/spec/support/macros.rb +129 -0
- data/spec/{app → support}/models/account.rb +3 -1
- data/spec/{app → support}/models/acolyte.rb +2 -0
- data/spec/{app → support}/models/actor.rb +3 -1
- data/spec/support/models/actress.rb +4 -0
- data/spec/{app → support}/models/address.rb +6 -0
- data/spec/{app → support}/models/address_component.rb +2 -0
- data/spec/{app → support}/models/address_number.rb +2 -0
- data/spec/{app → support}/models/agency.rb +2 -0
- data/spec/{app → support}/models/agent.rb +2 -0
- data/spec/{app → support}/models/album.rb +2 -0
- data/spec/{app → support}/models/alert.rb +2 -0
- data/spec/{app → support}/models/animal.rb +2 -0
- data/spec/{app → support}/models/answer.rb +2 -0
- data/spec/{app → support}/models/appointment.rb +2 -0
- data/spec/support/models/armrest.rb +9 -0
- data/spec/{app → support}/models/article.rb +2 -0
- data/spec/{app → support}/models/artist.rb +4 -1
- data/spec/{app → support}/models/artwork.rb +2 -0
- data/spec/support/models/audible_sound.rb +3 -0
- data/spec/{app → support}/models/audio.rb +2 -0
- data/spec/support/models/augmentation.rb +25 -0
- data/spec/{app → support}/models/author.rb +2 -0
- data/spec/{app → support}/models/baby.rb +2 -0
- data/spec/{app → support}/models/band.rb +10 -0
- data/spec/{app → support}/models/bar.rb +2 -0
- data/spec/{app → support}/models/basic.rb +2 -0
- data/spec/support/models/bed.rb +3 -0
- data/spec/{app → support}/models/big_palette.rb +2 -0
- data/spec/{app → support}/models/birthday.rb +2 -0
- data/spec/support/models/bolt.rb +7 -0
- data/spec/{app → support}/models/bomb.rb +2 -0
- data/spec/{app → support}/models/book.rb +3 -0
- data/spec/{app → support}/models/breed.rb +2 -0
- data/spec/{app → support}/models/browser.rb +3 -1
- data/spec/{app → support}/models/building.rb +4 -0
- data/spec/{app → support}/models/building_address.rb +2 -0
- data/spec/{app → support}/models/bus.rb +2 -0
- data/spec/{app → support}/models/business.rb +2 -0
- data/spec/{app → support}/models/callback_test.rb +2 -0
- data/spec/{app → support}/models/canvas.rb +3 -1
- data/spec/support/models/car.rb +3 -0
- data/spec/{app → support}/models/cat.rb +2 -0
- data/spec/support/models/catalog.rb +24 -0
- data/spec/{app → support}/models/category.rb +2 -0
- data/spec/{app → support}/models/child.rb +2 -0
- data/spec/{app → support}/models/child_doc.rb +5 -3
- data/spec/{app → support}/models/church.rb +2 -0
- data/spec/{app → support}/models/circle.rb +2 -0
- data/spec/{app → support}/models/circuit.rb +2 -0
- data/spec/support/models/circus.rb +12 -0
- data/spec/{app → support}/models/code.rb +4 -0
- data/spec/support/models/coding/pull_request.rb +11 -0
- data/spec/support/models/coding.rb +3 -0
- data/spec/{app → support}/models/comment.rb +2 -0
- data/spec/{app → support}/models/company.rb +2 -0
- data/spec/{app → support}/models/consumption_period.rb +2 -0
- data/spec/{app → support}/models/contextable_item.rb +2 -0
- data/spec/{app → support}/models/contractor.rb +2 -0
- data/spec/{app → support}/models/cookie.rb +2 -0
- data/spec/{app → support}/models/country_code.rb +4 -0
- data/spec/{app → support}/models/courier_job.rb +2 -0
- data/spec/support/models/cover.rb +10 -0
- data/spec/support/models/crate.rb +12 -0
- data/spec/support/models/customer.rb +10 -0
- data/spec/support/models/customer_address.rb +11 -0
- data/spec/support/models/deed.rb +7 -0
- data/spec/{app → support}/models/definition.rb +2 -0
- data/spec/support/models/delegating_patient.rb +15 -0
- data/spec/{app → support}/models/description.rb +2 -0
- data/spec/{app → support}/models/dictionary.rb +8 -0
- data/spec/{app → support}/models/division.rb +2 -0
- data/spec/{app → support}/models/doctor.rb +2 -0
- data/spec/{app → support}/models/dog.rb +2 -0
- data/spec/{app → support}/models/dokument.rb +2 -0
- data/spec/{app → support}/models/draft.rb +2 -0
- data/spec/{app → support}/models/dragon.rb +2 -0
- data/spec/{app → support}/models/driver.rb +3 -1
- data/spec/{app → support}/models/drug.rb +2 -0
- data/spec/{app → support}/models/dungeon.rb +2 -0
- data/spec/{app → support}/models/edit.rb +2 -0
- data/spec/{app → support}/models/email.rb +2 -0
- data/spec/{app → support}/models/employer.rb +2 -0
- data/spec/{app → support}/models/entry.rb +2 -0
- data/spec/support/models/eraser.rb +3 -0
- data/spec/{app → support}/models/even.rb +2 -0
- data/spec/{app → support}/models/event.rb +2 -0
- data/spec/{app → support}/models/exhibition.rb +2 -0
- data/spec/{app → support}/models/exhibitor.rb +2 -0
- data/spec/{app → support}/models/explosion.rb +2 -0
- data/spec/{app → support}/models/eye.rb +2 -0
- data/spec/{app → support}/models/eye_bowl.rb +2 -0
- data/spec/{app → support}/models/face.rb +2 -0
- data/spec/support/models/fanatic.rb +8 -0
- data/spec/{app → support}/models/favorite.rb +2 -0
- data/spec/{app → support}/models/filesystem.rb +2 -0
- data/spec/{app → support}/models/fire_hydrant.rb +2 -0
- data/spec/{app → support}/models/firefox.rb +2 -0
- data/spec/{app → support}/models/fish.rb +2 -0
- data/spec/{app → support}/models/folder.rb +2 -0
- data/spec/{app → support}/models/folder_item.rb +2 -0
- data/spec/{app → support}/models/fruits.rb +2 -0
- data/spec/{app → support}/models/game.rb +2 -0
- data/spec/{app → support}/models/ghost.rb +2 -0
- data/spec/support/models/guitar.rb +4 -0
- data/spec/support/models/hole.rb +12 -0
- data/spec/{app → support}/models/home.rb +2 -0
- data/spec/{app → support}/models/house.rb +2 -0
- data/spec/{app → support}/models/html_writer.rb +2 -0
- data/spec/{app → support}/models/id_key.rb +2 -0
- data/spec/support/models/idnodef.rb +7 -0
- data/spec/{app → support}/models/image.rb +2 -0
- data/spec/{app → support}/models/implant.rb +11 -0
- data/spec/support/models/instrument.rb +8 -0
- data/spec/{app → support}/models/item.rb +3 -1
- data/spec/{app → support}/models/jar.rb +2 -0
- data/spec/{app → support}/models/kaleidoscope.rb +2 -0
- data/spec/{app → support}/models/kangaroo.rb +3 -1
- data/spec/{app → support}/models/label.rb +6 -1
- data/spec/{app → support}/models/language.rb +2 -0
- data/spec/{app → support}/models/lat_lng.rb +2 -0
- data/spec/{app → support}/models/league.rb +2 -0
- data/spec/support/models/learner.rb +4 -0
- data/spec/{app → support}/models/line_item.rb +2 -0
- data/spec/{app → support}/models/location.rb +2 -0
- data/spec/{app → support}/models/login.rb +2 -0
- data/spec/{app → support}/models/manufacturer.rb +2 -0
- data/spec/{app → support}/models/meat.rb +2 -0
- data/spec/{app → support}/models/membership.rb +3 -0
- data/spec/{app → support}/models/message.rb +2 -0
- data/spec/support/models/minim.rb +6 -0
- data/spec/{app → support}/models/mixed_drink.rb +2 -0
- data/spec/support/models/mop.rb +24 -0
- data/spec/{app → support}/models/movie.rb +2 -0
- data/spec/support/models/my_hash.rb +4 -0
- data/spec/{app → support}/models/name.rb +2 -0
- data/spec/support/models/name_only.rb +8 -0
- data/spec/{app → support}/models/node.rb +2 -0
- data/spec/{app → support}/models/note.rb +2 -0
- data/spec/support/models/nut.rb +7 -0
- data/spec/{app → support}/models/odd.rb +2 -0
- data/spec/support/models/order.rb +12 -0
- data/spec/{app → support}/models/ordered_post.rb +3 -1
- data/spec/{app → support}/models/ordered_preference.rb +2 -0
- data/spec/{app → support}/models/oscar.rb +2 -0
- data/spec/support/models/other_owner_object.rb +4 -0
- data/spec/{app → support}/models/override.rb +2 -0
- data/spec/{app → support}/models/ownable.rb +2 -0
- data/spec/{app → support}/models/owner.rb +4 -0
- data/spec/{app → support}/models/pack.rb +2 -0
- data/spec/{app → support}/models/page.rb +2 -0
- data/spec/{app → support}/models/page_question.rb +2 -0
- data/spec/{app → support}/models/palette.rb +3 -1
- data/spec/{app → support}/models/parent.rb +2 -0
- data/spec/{app → support}/models/parent_doc.rb +2 -0
- data/spec/support/models/passport.rb +22 -0
- data/spec/{app → support}/models/patient.rb +2 -0
- data/spec/{app → support}/models/pdf_writer.rb +2 -0
- data/spec/support/models/pencil.rb +3 -0
- data/spec/{app → support}/models/person.rb +22 -1
- data/spec/{app → support}/models/pet.rb +2 -0
- data/spec/{app → support}/models/pet_owner.rb +2 -0
- data/spec/{app → support}/models/phone.rb +5 -1
- data/spec/support/models/piano.rb +4 -0
- data/spec/{app → support}/models/pizza.rb +2 -0
- data/spec/{app → support}/models/player.rb +4 -0
- data/spec/{app → support}/models/post.rb +2 -0
- data/spec/{app → support}/models/post_genre.rb +2 -0
- data/spec/support/models/powerup.rb +25 -0
- data/spec/{app → support}/models/preference.rb +2 -0
- data/spec/{app → support}/models/princess.rb +2 -0
- data/spec/{app → support}/models/product.rb +3 -0
- data/spec/support/models/profile.rb +17 -0
- data/spec/{app → support}/models/pronunciation.rb +2 -0
- data/spec/{app → support}/models/pub.rb +2 -0
- data/spec/support/models/publication/encyclopedia.rb +11 -0
- data/spec/support/models/publication/review.rb +13 -0
- data/spec/support/models/publication.rb +4 -0
- data/spec/{app → support}/models/purchase.rb +2 -0
- data/spec/support/models/purchased_item.rb +10 -0
- data/spec/{app → support}/models/question.rb +2 -0
- data/spec/{app → support}/models/quiz.rb +2 -0
- data/spec/{app → support}/models/rating.rb +2 -0
- data/spec/{app → support}/models/record.rb +2 -0
- data/spec/{app → support}/models/registry.rb +3 -0
- data/spec/{app → support}/models/role.rb +2 -0
- data/spec/{app → support}/models/root_category.rb +2 -0
- data/spec/{app → support}/models/sandwich.rb +2 -0
- data/spec/{app → support}/models/scheduler.rb +2 -0
- data/spec/support/models/school.rb +14 -0
- data/spec/support/models/scribe.rb +7 -0
- data/spec/support/models/sealer.rb +7 -0
- data/spec/support/models/seat.rb +24 -0
- data/spec/{app → support}/models/seo.rb +2 -0
- data/spec/support/models/series.rb +7 -0
- data/spec/{app → support}/models/server.rb +2 -0
- data/spec/{app → support}/models/service.rb +2 -0
- data/spec/{app → support}/models/shape.rb +4 -2
- data/spec/{app → support}/models/shelf.rb +2 -0
- data/spec/support/models/shield.rb +18 -0
- data/spec/{app → support}/models/shipment_address.rb +2 -0
- data/spec/{app → support}/models/shipping_container.rb +2 -0
- data/spec/{app → support}/models/shipping_pack.rb +2 -0
- data/spec/support/models/shirt.rb +11 -0
- data/spec/{app → support}/models/shop.rb +2 -0
- data/spec/{app → support}/models/short_agent.rb +2 -0
- data/spec/{app → support}/models/short_quiz.rb +2 -0
- data/spec/{app → support}/models/simple.rb +2 -0
- data/spec/{app → support}/models/slave.rb +2 -0
- data/spec/{app → support}/models/song.rb +2 -0
- data/spec/{app → support}/models/sound.rb +2 -0
- data/spec/support/models/spacer.rb +7 -0
- data/spec/{app → support}/models/square.rb +2 -0
- data/spec/{app → support}/models/staff.rb +2 -0
- data/spec/{app → support}/models/store_as_dup_test1.rb +2 -0
- data/spec/{app → support}/models/store_as_dup_test2.rb +2 -0
- data/spec/support/models/store_as_dup_test3.rb +7 -0
- data/spec/support/models/store_as_dup_test4.rb +7 -0
- data/spec/{app → support}/models/strategy.rb +2 -0
- data/spec/support/models/student.rb +14 -0
- data/spec/{app → support}/models/sub_item.rb +2 -0
- data/spec/{app → support}/models/subscription.rb +2 -0
- data/spec/{app → support}/models/survey.rb +2 -0
- data/spec/{app → support}/models/symptom.rb +2 -0
- data/spec/support/models/system_role.rb +7 -0
- data/spec/{app → support}/models/tag.rb +2 -0
- data/spec/{app → support}/models/target.rb +2 -0
- data/spec/{app → support}/models/template.rb +2 -0
- data/spec/{app → support}/models/thing.rb +2 -0
- data/spec/support/models/threadlocker.rb +7 -0
- data/spec/{app → support}/models/title.rb +2 -0
- data/spec/{app → support}/models/tool.rb +4 -2
- data/spec/{app → support}/models/topping.rb +2 -0
- data/spec/support/models/toy.rb +9 -0
- data/spec/{app → support}/models/track.rb +2 -0
- data/spec/{app → support}/models/translation.rb +2 -0
- data/spec/{app → support}/models/tree.rb +2 -0
- data/spec/support/models/truck.rb +7 -0
- data/spec/{app → support}/models/user.rb +2 -0
- data/spec/{app → support}/models/user_account.rb +2 -0
- data/spec/{app → support}/models/validation_callback.rb +2 -0
- data/spec/support/models/vehicle.rb +18 -0
- data/spec/{app → support}/models/version.rb +2 -0
- data/spec/{app → support}/models/vertex.rb +3 -1
- data/spec/{app → support}/models/vet_visit.rb +2 -0
- data/spec/{app → support}/models/video.rb +2 -0
- data/spec/support/models/video_game.rb +3 -0
- data/spec/support/models/washer.rb +7 -0
- data/spec/support/models/weapon.rb +25 -0
- data/spec/{app → support}/models/wiki_page.rb +3 -0
- data/spec/{app → support}/models/word.rb +2 -0
- data/spec/{app → support}/models/word_origin.rb +2 -0
- data/spec/{app → support}/models/writer.rb +4 -2
- data/spec/support/schema_maps/schema_map_aws.json +17 -0
- data/spec/support/schema_maps/schema_map_aws_key_alt_names.json +12 -0
- data/spec/support/schema_maps/schema_map_azure.json +17 -0
- data/spec/support/schema_maps/schema_map_azure_key_alt_names.json +12 -0
- data/spec/support/schema_maps/schema_map_gcp.json +17 -0
- data/spec/support/schema_maps/schema_map_gcp_key_alt_names.json +12 -0
- data/spec/support/schema_maps/schema_map_kmip.json +17 -0
- data/spec/support/schema_maps/schema_map_kmip_key_alt_names.json +12 -0
- data/spec/support/schema_maps/schema_map_local.json +18 -0
- data/spec/support/schema_maps/schema_map_local_key_alt_names.json +12 -0
- data/spec/support/shared/time.rb +53 -0
- data/spec/support/spec_config.rb +64 -0
- data.tar.gz.sig +1 -2
- metadata +1158 -615
- metadata.gz.sig +0 -0
- data/lib/mongoid/criteria/queryable/forwardable.rb +0 -65
- data/lib/mongoid/errors/eager_load.rb +0 -22
- data/lib/mongoid/errors/invalid_value.rb +0 -16
- data/lib/mongoid/matchable/all.rb +0 -27
- data/lib/mongoid/matchable/and.rb +0 -30
- data/lib/mongoid/matchable/default.rb +0 -72
- data/lib/mongoid/matchable/elem_match.rb +0 -34
- data/lib/mongoid/matchable/exists.rb +0 -23
- data/lib/mongoid/matchable/gt.rb +0 -23
- data/lib/mongoid/matchable/gte.rb +0 -23
- data/lib/mongoid/matchable/in.rb +0 -24
- data/lib/mongoid/matchable/lt.rb +0 -23
- data/lib/mongoid/matchable/lte.rb +0 -23
- data/lib/mongoid/matchable/ne.rb +0 -21
- data/lib/mongoid/matchable/nin.rb +0 -22
- data/lib/mongoid/matchable/nor.rb +0 -37
- data/lib/mongoid/matchable/or.rb +0 -33
- data/lib/mongoid/matchable/regexp.rb +0 -27
- data/lib/mongoid/matchable/size.rb +0 -21
- data/lib/support/ruby_version.rb +0 -26
- data/spec/app/models/actress.rb +0 -2
- data/spec/app/models/augmentation.rb +0 -11
- data/spec/app/models/bed.rb +0 -1
- data/spec/app/models/car.rb +0 -1
- data/spec/app/models/circus.rb +0 -7
- data/spec/app/models/eraser.rb +0 -1
- data/spec/app/models/learner.rb +0 -2
- data/spec/app/models/my_hash.rb +0 -2
- data/spec/app/models/passport.rb +0 -5
- data/spec/app/models/pencil.rb +0 -1
- data/spec/app/models/powerup.rb +0 -11
- data/spec/app/models/profile.rb +0 -5
- data/spec/app/models/series.rb +0 -4
- data/spec/app/models/truck.rb +0 -3
- data/spec/app/models/vehicle.rb +0 -11
- data/spec/app/models/video_game.rb +0 -1
- data/spec/app/models/weapon.rb +0 -11
- data/spec/mongoid/criteria/queryable/extensions/bignum_spec.rb +0 -58
- data/spec/mongoid/criteria/queryable/extensions/fixnum_spec.rb +0 -58
- data/spec/mongoid/criteria/queryable/forwardable_spec.rb +0 -87
- data/spec/mongoid/matchable/all_spec.rb +0 -31
- data/spec/mongoid/matchable/and_spec.rb +0 -187
- data/spec/mongoid/matchable/default_spec.rb +0 -130
- data/spec/mongoid/matchable/elem_match_spec.rb +0 -106
- data/spec/mongoid/matchable/exists_spec.rb +0 -57
- data/spec/mongoid/matchable/gt_spec.rb +0 -86
- data/spec/mongoid/matchable/gte_spec.rb +0 -84
- data/spec/mongoid/matchable/in_spec.rb +0 -49
- data/spec/mongoid/matchable/lt_spec.rb +0 -85
- data/spec/mongoid/matchable/lte_spec.rb +0 -85
- data/spec/mongoid/matchable/ne_spec.rb +0 -46
- data/spec/mongoid/matchable/nin_spec.rb +0 -48
- data/spec/mongoid/matchable/nor_spec.rb +0 -209
- data/spec/mongoid/matchable/or_spec.rb +0 -131
- data/spec/mongoid/matchable/regexp_spec.rb +0 -59
- data/spec/mongoid/matchable/size_spec.rb +0 -25
- data/spec/mongoid/matchable_spec.rb +0 -853
- /data/spec/{app → support}/models/array_field.rb +0 -0
- /data/spec/{app → support}/models/updatable.rb +0 -0
data/lib/config/locales/en.yml
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
en:
|
|
2
|
+
errors:
|
|
3
|
+
messages:
|
|
4
|
+
taken: "has already been taken"
|
|
5
|
+
|
|
2
6
|
mongoid:
|
|
3
7
|
errors:
|
|
4
8
|
messages:
|
|
@@ -7,16 +11,17 @@ en:
|
|
|
7
11
|
message_title: "message"
|
|
8
12
|
summary_title: "summary"
|
|
9
13
|
resolution_title: "resolution"
|
|
14
|
+
|
|
10
15
|
ambiguous_relationship:
|
|
11
|
-
message: "Ambiguous
|
|
16
|
+
message: "Ambiguous associations %{candidates} defined on %{klass}."
|
|
12
17
|
summary:
|
|
13
|
-
"When Mongoid attempts to set an inverse document of
|
|
14
|
-
in memory, it needs to know which
|
|
18
|
+
"When Mongoid attempts to set an inverse document of an association
|
|
19
|
+
in memory, it needs to know which association it belongs to. When
|
|
15
20
|
setting %{name}, Mongoid looked on the class %{inverse}
|
|
16
|
-
for a matching
|
|
21
|
+
for a matching association, but multiples were found that could
|
|
17
22
|
potentially match: %{candidates}."
|
|
18
|
-
resolution: "On the %{name}
|
|
19
|
-
:inverse_of option to specify the exact
|
|
23
|
+
resolution: "On the %{name} association on %{inverse} you must add an
|
|
24
|
+
:inverse_of option to specify the exact association on %{klass}
|
|
20
25
|
that is the opposite of %{name}."
|
|
21
26
|
callbacks:
|
|
22
27
|
message: "Calling %{method} on %{klass} resulted in a false return
|
|
@@ -26,6 +31,26 @@ en:
|
|
|
26
31
|
since the document did not actually get saved."
|
|
27
32
|
resolution: "Double check all before callbacks to make sure they are
|
|
28
33
|
not unintentionally returning false."
|
|
34
|
+
create_collection_failure:
|
|
35
|
+
message: "Cannot create collection %{collection_name}
|
|
36
|
+
with options %{collection_options}. The following error was raised:
|
|
37
|
+
%{error}."
|
|
38
|
+
summary: "The server rejected createCollection command with given collection
|
|
39
|
+
options. This may happen when some of the options are invalid, or not
|
|
40
|
+
supported by your version of the server."
|
|
41
|
+
resolution: "Double check that collection options for the collection
|
|
42
|
+
%{collection_name} are valid. Consult with Ruby driver documentation
|
|
43
|
+
and MongoDB documentation if the desired options are supported by
|
|
44
|
+
your version of the server."
|
|
45
|
+
criteria_argument_required:
|
|
46
|
+
message: "Calling Criteria methods with nil arguments is not allowed."
|
|
47
|
+
summary: "Arguments to Criteria methods cannot be nil, and most
|
|
48
|
+
Criteria methods require at least one argument. Only logical
|
|
49
|
+
operations (and, or, nor and not), `all' and `where' can be called
|
|
50
|
+
without arguments.
|
|
51
|
+
The method that was called with nil argument was: %{query_method}."
|
|
52
|
+
resolution: "Invoke Criteria methods with non-nil arguments or omit
|
|
53
|
+
the respective invocations."
|
|
29
54
|
calling_document_find_with_nil_is_invalid:
|
|
30
55
|
message: "Calling Document.find with nil is invalid."
|
|
31
56
|
summary: "Document.find expects the parameters to be 1 or more ids, and
|
|
@@ -34,6 +59,8 @@ en:
|
|
|
34
59
|
resolution: "Most likely this is caused by passing parameters directly
|
|
35
60
|
through to the find, and the parameter either is not present or the
|
|
36
61
|
key from which it is accessed is incorrect."
|
|
62
|
+
destroy_restrict_with_error_dependencies_exist:
|
|
63
|
+
"is not empty and prevents the document from being destroyed"
|
|
37
64
|
document_not_destroyed:
|
|
38
65
|
message: "%{klass} with id %{id} was not destroyed."
|
|
39
66
|
summary: "When calling %{klass}#destroy! and a callback halts the destroy
|
|
@@ -49,7 +76,7 @@ en:
|
|
|
49
76
|
and the following ids were not found: %{missing}."
|
|
50
77
|
resolution: "Search for an id that is in the database or set
|
|
51
78
|
the Mongoid.raise_not_found_error configuration option to false,
|
|
52
|
-
which will cause
|
|
79
|
+
which will cause nil to be returned instead of raising this error when
|
|
53
80
|
searching for a single id, or only the matched documents when searching
|
|
54
81
|
for multiples."
|
|
55
82
|
document_with_attributes_not_found:
|
|
@@ -59,15 +86,35 @@ en:
|
|
|
59
86
|
will be raised."
|
|
60
87
|
resolution: "Search for attributes that are in the database or set
|
|
61
88
|
the Mongoid.raise_not_found_error configuration option to false,
|
|
62
|
-
which will cause
|
|
63
|
-
|
|
64
|
-
message: "
|
|
65
|
-
|
|
66
|
-
summary: "
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
89
|
+
which will cause nil to be returned instead of raising this error."
|
|
90
|
+
document_with_shard_key_not_found:
|
|
91
|
+
message: "Document not found for class %{klass} with id %{missing} and
|
|
92
|
+
shard key %{shard_key}."
|
|
93
|
+
summary: "When calling %{klass}.find with an id and a shard key, each
|
|
94
|
+
parameter must match a document in the database or this error will
|
|
95
|
+
be raised. The search was for the id: %{missing} with
|
|
96
|
+
shard_key: %{shard_key} and it was not found."
|
|
97
|
+
resolution: "Search for an id/shard key that is in the database or set
|
|
98
|
+
the Mongoid.raise_not_found_error configuration option to false,
|
|
99
|
+
which will cause nil to be returned instead of raising this error."
|
|
100
|
+
drop_collection_failure:
|
|
101
|
+
message: "Cannot drop collection %{collection_name}."
|
|
102
|
+
summary: "Mongoid tried to drop collection %{collection_name}, but the
|
|
103
|
+
collection still exists in the database."
|
|
104
|
+
resolution: "Try to drop the collection manually using Ruby driver or
|
|
105
|
+
mongo shell."
|
|
106
|
+
empty_config_file:
|
|
107
|
+
message: "Empty configuration file: %{path}."
|
|
108
|
+
summary: "Your mongoid.yml configuration file appears to be empty."
|
|
109
|
+
resolution: "Ensure your configuration file contains the correct contents.
|
|
110
|
+
Refer to: https://www.mongodb.com/docs/mongoid/current/reference/configuration/"
|
|
111
|
+
immutable_attribute:
|
|
112
|
+
message: "Attempted to change the immutable attribute '%{name}' with
|
|
113
|
+
the value: %{value}."
|
|
114
|
+
summary: "Immutable attributes can only have values set when the
|
|
115
|
+
document is a new record."
|
|
116
|
+
resolution: "Do not attempt to update the value of '%{name}' after
|
|
117
|
+
the document is persisted."
|
|
71
118
|
invalid_collection:
|
|
72
119
|
message: "Access to the collection for %{klass} is not allowed."
|
|
73
120
|
summary: "%{klass}.collection was called, and %{klass} is an embedded
|
|
@@ -82,6 +129,20 @@ en:
|
|
|
82
129
|
A collation option is only supported if the query is executed on a MongoDB server
|
|
83
130
|
with version >= 3.4."
|
|
84
131
|
resolution: "Remove the collation option from the query."
|
|
132
|
+
invalid_async_query_executor:
|
|
133
|
+
message: "Invalid async_query_executor option: %{executor}."
|
|
134
|
+
summary: "A invalid async query executor was specified.
|
|
135
|
+
The valid options are: %{options}."
|
|
136
|
+
resolution: "Pick an allowed option or fix the typo. If you were
|
|
137
|
+
expecting the option to be there, please consult the following page
|
|
138
|
+
with respect to Mongoid's configuration:\n\n
|
|
139
|
+
\_\_https://www.mongodb.com/docs/mongoid/current/reference/configuration/#mongoid-configuration-options"
|
|
140
|
+
invalid_config_file:
|
|
141
|
+
message: "Invalid configuration file: %{path}."
|
|
142
|
+
summary: "Your mongoid.yml configuration file does not contain the
|
|
143
|
+
correct file structure."
|
|
144
|
+
resolution: "Ensure your configuration file contains the correct contents.
|
|
145
|
+
Refer to: https://www.mongodb.com/docs/mongoid/current/reference/configuration/"
|
|
85
146
|
invalid_config_option:
|
|
86
147
|
message: "Invalid configuration option: %{name}."
|
|
87
148
|
summary: "A invalid configuration option was provided in your
|
|
@@ -89,15 +150,52 @@ en:
|
|
|
89
150
|
options are: %{options}."
|
|
90
151
|
resolution: "Remove the invalid option or fix the typo. If you were
|
|
91
152
|
expecting the option to be there, please consult the following page
|
|
92
|
-
with
|
|
153
|
+
with respect to Mongoid's configuration:\n\n
|
|
93
154
|
\_\_http://mongoid.org/en/mongoid/docs/installation.html"
|
|
94
155
|
invalid_dependent_strategy:
|
|
95
156
|
message: "Invalid dependent strategy: %{invalid_strategy}."
|
|
96
157
|
summary: "An invalid dependent strategy was defined for the association:
|
|
97
158
|
%{association}. The valid strategies are: %{valid_strategies}."
|
|
98
159
|
resolution: "Change the dependent strategy to one of the valid types."
|
|
160
|
+
invalid_discriminator_key_target:
|
|
161
|
+
message: "Setting the discriminator key on a child class is not allowed."
|
|
162
|
+
summary: "The discriminator key on the class %{class_name} was attempted
|
|
163
|
+
to be changed. Changing the discriminator key on a child class is not
|
|
164
|
+
allowed."
|
|
165
|
+
resolution: "Try setting the discriminator key on %{superclass} or one of %{class_name}'s
|
|
166
|
+
ancestors."
|
|
167
|
+
invalid_dot_dollar_assignment:
|
|
168
|
+
message: "Cannot set the %{attr} attribute on the %{klass} class."
|
|
169
|
+
summary: "Calling the setters for fields that start with a dollar
|
|
170
|
+
sign ($) or contain a dot/period (.) is prohibited. See the
|
|
171
|
+
Mongoid documentation on Field Names with Dots/Periods (.) and
|
|
172
|
+
Dollar Signs ($) for more information."
|
|
173
|
+
resolution: "In order to set fields that start with a dollar
|
|
174
|
+
sign ($) or contain a dot/period (.), the aggregation pipeline can
|
|
175
|
+
be used. MongoDB provides specific operators for working with these
|
|
176
|
+
fields. Refer to the MongoDB documentation here:
|
|
177
|
+
https://www.mongodb.com/docs/manual/core/dot-dollar-considerations/"
|
|
178
|
+
invalid_elem_match_operator:
|
|
179
|
+
message: "Invalid $elemMatch operator '%{operator}'."
|
|
180
|
+
summary: "You misspelled an operator or are using an operator that
|
|
181
|
+
Mongoid does not support."
|
|
182
|
+
resolution: "Valid field operators are: %{valid_operators}.
|
|
183
|
+
Ensure you are using one of these operators."
|
|
184
|
+
invalid_estimated_count_criteria:
|
|
185
|
+
message: "Invalid criteria for estimated_count."
|
|
186
|
+
summary: "Estimated count is strictly a collection-level operation and cannot be called
|
|
187
|
+
on a filtered criteria."
|
|
188
|
+
resolution: "Try calling estimated_count directly on the class: %{class_name}.estimated_count.\n\n
|
|
189
|
+
\_If the class defines a default scope, use unscoped: %{class_name}.unscoped.estimated_count."
|
|
190
|
+
invalid_expression_operator:
|
|
191
|
+
message: "Invalid expression operator '%{operator}'."
|
|
192
|
+
summary: "You misspelled an operator, are using an operator that
|
|
193
|
+
Mongoid does not support, or are trying to use a field-level
|
|
194
|
+
operator on expression level."
|
|
195
|
+
resolution: "Valid expression operators are: %{valid_operators}.
|
|
196
|
+
Ensure you are using one of these operators."
|
|
99
197
|
invalid_field:
|
|
100
|
-
message: "Defining a field named '%{
|
|
198
|
+
message: "Defining a field named '%{field}' is not allowed."
|
|
101
199
|
summary: "Defining this field would override the method '%{name}',
|
|
102
200
|
which would cause issues with expectations around the original
|
|
103
201
|
method and cause extremely hard to debug issues. The original
|
|
@@ -109,26 +207,49 @@ en:
|
|
|
109
207
|
allowed, and don't use these names. These include names that also
|
|
110
208
|
conflict with core Ruby methods on Object, Module, Enumerable, or
|
|
111
209
|
included gems that inject methods into these or Mongoid internals."
|
|
210
|
+
invalid_field_operator:
|
|
211
|
+
message: "Invalid field operator '%{operator}'."
|
|
212
|
+
summary: "You misspelled an operator, are using an operator that
|
|
213
|
+
Mongoid does not support, or are trying to use an expression-level
|
|
214
|
+
operator on field level."
|
|
215
|
+
resolution: "Valid field operators are: %{valid_operators}.
|
|
216
|
+
Ensure you are using one of these operators."
|
|
112
217
|
invalid_field_option:
|
|
113
218
|
message: "Invalid option :%{option} provided for field :%{name}."
|
|
114
219
|
summary: "Mongoid requires that you only provide valid options on each
|
|
115
|
-
field definition in order to prevent unexpected
|
|
220
|
+
field definition in order to prevent unexpected behavior later on."
|
|
116
221
|
resolution: "When defining the field :%{name} on '%{klass}', please provide
|
|
117
222
|
valid options for the field. These are currently: %{valid}. If you
|
|
118
|
-
meant to define a custom field option, please do so first
|
|
223
|
+
meant to define a custom field option, please do so first as follows:\n\n
|
|
119
224
|
\_\_Mongoid::Fields.option :%{option} do |model, field, value|\n
|
|
120
225
|
\_\_\_\_# Your logic here...\n
|
|
121
226
|
\_\_end\n
|
|
122
227
|
\_\_class %{klass}\n
|
|
123
228
|
\_\_\_\_include Mongoid::Document\n
|
|
124
229
|
\_\_\_\_field :%{name}, %{option}: true\n
|
|
125
|
-
\_\_end\n\n
|
|
230
|
+
\_\_end\n\n
|
|
231
|
+
Refer to:
|
|
232
|
+
https://www.mongodb.com/docs/mongoid/current/reference/fields/#custom-field-options"
|
|
233
|
+
invalid_field_type:
|
|
234
|
+
message: "Invalid field type %{type_inspection} for field '%{field}' on model '%{klass}'."
|
|
235
|
+
summary: "Model '%{klass}' defines a field '%{field}' with an unknown type value
|
|
236
|
+
%{type_inspection}."
|
|
237
|
+
resolution: "Please provide a valid type value for the field.
|
|
238
|
+
Refer to:
|
|
239
|
+
https://www.mongodb.com/docs/mongoid/current/reference/fields/#using-symbols-or-strings-instead-of-classes"
|
|
240
|
+
invalid_global_executor_concurrency:
|
|
241
|
+
message: "Invalid global_executor_concurrency option."
|
|
242
|
+
summary: "You set global_executor_concurrency while async_query_executor
|
|
243
|
+
option is not set to :global_thread_pool. The global_executor_concurrency is
|
|
244
|
+
allowed only for the global thread pool executor."
|
|
245
|
+
resolution: "Set global_executor_concurrency option to :global_thread_pool
|
|
246
|
+
or remove global_executor_concurrency option."
|
|
126
247
|
invalid_includes:
|
|
127
248
|
message: "Invalid includes directive: %{klass}.includes(%{args})"
|
|
128
249
|
summary: "Eager loading in Mongoid only supports providing arguments
|
|
129
|
-
to %{klass}.includes that are the names of
|
|
250
|
+
to %{klass}.includes that are the names of associations on the %{klass}."
|
|
130
251
|
resolution: "Ensure that each parameter passed to %{klass}.includes is
|
|
131
|
-
a valid name of
|
|
252
|
+
a valid name of an association on the %{klass} model. These are: %{relations}."
|
|
132
253
|
invalid_index:
|
|
133
254
|
message: "Invalid index specification on %{klass}: %{spec}, %{options}"
|
|
134
255
|
summary: "Indexes in Mongoid are defined as a hash of field name and
|
|
@@ -138,7 +259,6 @@ en:
|
|
|
138
259
|
Valid options are:\n
|
|
139
260
|
\_\_background: true|false\n
|
|
140
261
|
\_\_database: 'database_name'\n
|
|
141
|
-
\_\_drop_dups: true|false\n
|
|
142
262
|
\_\_name: 'index_name'\n
|
|
143
263
|
\_\_sparse: true|false\n
|
|
144
264
|
\_\_unique: true|false\n
|
|
@@ -157,7 +277,8 @@ en:
|
|
|
157
277
|
\_\_language_override\n
|
|
158
278
|
\_\_default_language\n
|
|
159
279
|
\_\_collation\n
|
|
160
|
-
|
|
280
|
+
\_\_wildcard_projection: { 'path.to.field.a': 1, 'path.to.field.b': 0 }\n
|
|
281
|
+
Valid types are: 1, -1, '2d', '2dsphere', 'geoHaystack (deprecated)', 'text', 'hashed'\n\n
|
|
161
282
|
Example:\n
|
|
162
283
|
\_\_class Band\n
|
|
163
284
|
\_\_\_\_include Mongoid::Document\n
|
|
@@ -165,8 +286,8 @@ en:
|
|
|
165
286
|
\_\_\_\_index({ location: '2d' }, { background: true })\n
|
|
166
287
|
\_\_end\n\n"
|
|
167
288
|
invalid_options:
|
|
168
|
-
message: "Invalid option :%{invalid} provided to
|
|
169
|
-
summary: "Mongoid checks the options that are passed to the
|
|
289
|
+
message: "Invalid option :%{invalid} provided to association :%{name}."
|
|
290
|
+
summary: "Mongoid checks the options that are passed to the association
|
|
170
291
|
macros to ensure that no ill side effects occur by letting something
|
|
171
292
|
slip by."
|
|
172
293
|
resolution: "Valid options are: %{valid}, make sure these are the ones
|
|
@@ -179,7 +300,7 @@ en:
|
|
|
179
300
|
root path assigned."
|
|
180
301
|
resolution: "Most likely your embedded model, %{klass} is also
|
|
181
302
|
referenced via a has_many from a root document in another
|
|
182
|
-
collection. Double check the
|
|
303
|
+
collection. Double check the association definitions and fix any
|
|
183
304
|
instances where embedded documents are improperly referenced
|
|
184
305
|
from other collections."
|
|
185
306
|
invalid_persistence_option:
|
|
@@ -189,8 +310,8 @@ en:
|
|
|
189
310
|
resolution: "Valid options are: %{valid}, make sure these are the ones
|
|
190
311
|
you are using."
|
|
191
312
|
invalid_relation:
|
|
192
|
-
message: "Defining
|
|
193
|
-
summary: "Defining this
|
|
313
|
+
message: "Defining an association named '%{name}' is not allowed."
|
|
314
|
+
summary: "Defining this association would override the method '%{name}',
|
|
194
315
|
which would cause issues with expectations around the original
|
|
195
316
|
method and cause extremely hard to debug issues. The original
|
|
196
317
|
method was defined in:\n
|
|
@@ -202,15 +323,15 @@ en:
|
|
|
202
323
|
conflict with core Ruby methods on Object, Module, Enumerable, or
|
|
203
324
|
included gems that inject methods into these or Mongoid internals."
|
|
204
325
|
invalid_relation_option:
|
|
205
|
-
message: "Invalid
|
|
326
|
+
message: "Invalid association option :%{option} for association '%{name}' on class
|
|
206
327
|
%{klass}."
|
|
207
|
-
summary: "An invalid option was provided for
|
|
328
|
+
summary: "An invalid option was provided for an association."
|
|
208
329
|
resolution: "Valid options are: %{valid_options}, make sure you use only those."
|
|
209
330
|
invalid_scope:
|
|
210
331
|
message: "Defining a scope of value %{value} on %{klass} is not
|
|
211
332
|
allowed."
|
|
212
333
|
summary: "Scopes in Mongoid must be procs that wrap criteria objects."
|
|
213
|
-
resolution: "Change the scope to be a proc wrapped
|
|
334
|
+
resolution: "Change the scope to be a proc wrapped criteria.\n\n
|
|
214
335
|
Example:\n
|
|
215
336
|
\_\_class Band\n
|
|
216
337
|
\_\_\_\_include Mongoid::Document\n
|
|
@@ -233,21 +354,15 @@ en:
|
|
|
233
354
|
invalid_storage_options:
|
|
234
355
|
message: "Invalid options passed to %{klass}.store_in: %{options}."
|
|
235
356
|
summary: "The :store_in macro takes only a hash of parameters with
|
|
236
|
-
the keys :database, :collection, or :client."
|
|
357
|
+
the keys :database, :collection, :collection_options, or :client."
|
|
237
358
|
resolution: "Change the options passed to store_in to match the
|
|
238
359
|
documented API, and ensure all keys in the options hash are
|
|
239
360
|
symbols.\n\n
|
|
240
361
|
Example:\n
|
|
241
362
|
\_\_class Band\n
|
|
242
363
|
\_\_\_\_include Mongoid::Document\n
|
|
243
|
-
\_\_\_\_store_in collection: 'artists', database: '
|
|
364
|
+
\_\_\_\_store_in collection: 'artists', database: 'music'\n
|
|
244
365
|
\_\_end\n\n"
|
|
245
|
-
invalid_storage_parent:
|
|
246
|
-
message: "Invalid store_in call on class %{klass}."
|
|
247
|
-
summary: "The :store_in macro can only be called on a base Mongoid Document"
|
|
248
|
-
resolution: "Remove the store_in call on class %{klass}, as it will use its
|
|
249
|
-
parent store configuration. Or remove the hierarchy extension for this
|
|
250
|
-
class."
|
|
251
366
|
invalid_time:
|
|
252
367
|
message: "'%{value}' is not a valid Time."
|
|
253
368
|
summary: "Mongoid tries to serialize the values for Date, DateTime, and
|
|
@@ -261,43 +376,39 @@ en:
|
|
|
261
376
|
message: "When adding a(n) %{klass} to %{base}#%{name}, Mongoid could
|
|
262
377
|
not determine the inverse foreign key to set. The attempted key was
|
|
263
378
|
'%{inverse}'."
|
|
264
|
-
summary: "When adding a document to
|
|
265
|
-
to link the newly added document to the base of the
|
|
379
|
+
summary: "When adding a document to an association, Mongoid attempts
|
|
380
|
+
to link the newly added document to the base of the association in
|
|
266
381
|
memory, as well as set the foreign key to link them on the
|
|
267
382
|
database side. In this case Mongoid could not determine what the
|
|
268
383
|
inverse foreign key was."
|
|
269
384
|
resolution: "If an inverse is not required, like a belongs_to or
|
|
270
385
|
has_and_belongs_to_many, ensure that :inverse_of => nil is set
|
|
271
|
-
on the
|
|
272
|
-
inverse cannot be figured out from the names of the
|
|
273
|
-
you will need to explicitly tell Mongoid on the
|
|
386
|
+
on the association. If the inverse is needed, most likely the
|
|
387
|
+
inverse cannot be figured out from the names of the associations and
|
|
388
|
+
you will need to explicitly tell Mongoid on the association what
|
|
274
389
|
the inverse is.\n\n
|
|
275
390
|
Example:\n
|
|
276
|
-
\_\_class
|
|
391
|
+
\_\_class Car\n
|
|
277
392
|
\_\_\_\_include Mongoid::Document\n
|
|
278
|
-
\_\_\_\_has_one :
|
|
393
|
+
\_\_\_\_has_one :engine, class_name: \"Motor\", inverse_of: :machine\n
|
|
279
394
|
\_\_end\n\n
|
|
280
|
-
\_\_class
|
|
395
|
+
\_\_class Motor\n
|
|
281
396
|
\_\_\_\_include Mongoid::Document\n
|
|
282
|
-
\_\_\_\_belongs_to :
|
|
397
|
+
\_\_\_\_belongs_to :machine, class_name: \"Car\", inverse_of: :engine\n
|
|
283
398
|
\_\_end"
|
|
284
399
|
invalid_set_polymorphic_relation:
|
|
285
400
|
message: "The %{name} attribute can't be set to an instance of
|
|
286
|
-
%{other_klass} as %{other_klass} has multiple
|
|
401
|
+
%{other_klass} as %{other_klass} has multiple associations referencing
|
|
287
402
|
%{klass} as %{name}."
|
|
288
|
-
summary: "If the parent class of a polymorphic
|
|
289
|
-
definitions for the same
|
|
403
|
+
summary: "If the parent class of a polymorphic association has multiple
|
|
404
|
+
definitions for the same association, the values must be set from the
|
|
290
405
|
parent side and not the child side since Mongoid cannot determine
|
|
291
|
-
from the child side which
|
|
292
|
-
resolution: "Set the values from the parent, or redefine the
|
|
406
|
+
from the child side which association to go in."
|
|
407
|
+
resolution: "Set the values from the parent, or redefine the association
|
|
293
408
|
with only a single definition in the parent."
|
|
294
|
-
invalid_value:
|
|
295
|
-
message: "Value of type %{value_class} cannot be written to a field of type %{field_class}"
|
|
296
|
-
summary: "Tried to set a value of type %{value_class} to a field of type %{field_class}"
|
|
297
|
-
resolution: "Verify if the value to be set correspond to field definition"
|
|
298
409
|
mixed_relations:
|
|
299
410
|
message: "Referencing a(n) %{embedded} document from the %{root}
|
|
300
|
-
document via a
|
|
411
|
+
document via a non-embedded association is not allowed since the
|
|
301
412
|
%{embedded} is embedded."
|
|
302
413
|
summary: "In order to properly access a(n) %{embedded} from %{root}
|
|
303
414
|
the reference would need to go through the root document of
|
|
@@ -317,15 +428,15 @@ en:
|
|
|
317
428
|
resolution: "Provide either only a uri as configuration or only
|
|
318
429
|
standard options."
|
|
319
430
|
nested_attributes_metadata_not_found:
|
|
320
|
-
message: "Could not find metadata for
|
|
431
|
+
message: "Could not find metadata for association '%{name}' on model:
|
|
321
432
|
%{klass}."
|
|
322
|
-
summary: "When defining nested attributes for
|
|
323
|
-
needs to access the metadata for the
|
|
433
|
+
summary: "When defining nested attributes for an association, Mongoid
|
|
434
|
+
needs to access the metadata for the association '%{name}' in order
|
|
324
435
|
if add autosave functionality to it, if applicable. Either no
|
|
325
|
-
|
|
436
|
+
association named '%{name}' could be found, or the association had not
|
|
326
437
|
been defined yet."
|
|
327
|
-
resolution: "Make sure that there is
|
|
328
|
-
'%{name}' on %{klass} or that the
|
|
438
|
+
resolution: "Make sure that there is an association defined named
|
|
439
|
+
'%{name}' on %{klass} or that the association definition comes before
|
|
329
440
|
the accepts_nested_attributes_for macro in the model - order
|
|
330
441
|
matters so that Mongoid has access to the metadata.\n\n
|
|
331
442
|
Example:\n
|
|
@@ -346,17 +457,23 @@ en:
|
|
|
346
457
|
\_\_\_\_\_\_default:\n
|
|
347
458
|
\_\_\_\_\_\_\_\_hosts:\n
|
|
348
459
|
\_\_\_\_\_\_\_\_\_\_- localhost:27017\n\n"
|
|
460
|
+
no_documents_found:
|
|
461
|
+
message: "Could not find a document of class %{klass}."
|
|
462
|
+
summary: "Mongoid attempted to find a document of the class %{klass}
|
|
463
|
+
but none exist."
|
|
464
|
+
resolution: "Create a document of class %{klass} or use a finder
|
|
465
|
+
method that does not raise an exception when no documents are
|
|
466
|
+
found."
|
|
349
467
|
no_environment:
|
|
350
468
|
message: "Could not load the configuration since no environment
|
|
351
469
|
was defined."
|
|
352
|
-
summary: "Mongoid
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
being defined."
|
|
470
|
+
summary: "Mongoid could not determine the environment to use because
|
|
471
|
+
it was not specified in any of the following locations:
|
|
472
|
+
Rails.env, Sinatra::Base.environment,
|
|
473
|
+
ENV[\"RACK_ENV\"], ENV[\"MONGOID_ENV\"]. Without knowing the
|
|
474
|
+
environment, Mongoid cannot load its configuration."
|
|
475
|
+
resolution: "Please ensure an environment is set in one of the
|
|
476
|
+
listed locations. The environment must be explicitly set."
|
|
360
477
|
no_map_reduce_output:
|
|
361
478
|
message: "No output location was specified for the map/reduce
|
|
362
479
|
operation."
|
|
@@ -373,16 +490,16 @@ en:
|
|
|
373
490
|
\_\_reduce: 'collection-name'\n\n"
|
|
374
491
|
no_metadata:
|
|
375
492
|
message: "Metadata not found for document of type %{klass}."
|
|
376
|
-
summary: "Mongoid sets the metadata of
|
|
377
|
-
when it is either loaded from within the
|
|
493
|
+
summary: "Mongoid sets the metadata of an association on the document
|
|
494
|
+
when it is either loaded from within the association, or added to
|
|
378
495
|
one. The presence of the metadata is required in order to
|
|
379
|
-
provide various functionality around
|
|
496
|
+
provide various functionality around associations. Most likely you
|
|
380
497
|
are getting this error because the document is embedded and was
|
|
381
498
|
attempted to be persisted without being associated with a parent,
|
|
382
|
-
or the
|
|
383
|
-
resolution: "Ensure that your
|
|
384
|
-
are all properly defined, and that the inverse
|
|
385
|
-
are also properly defined. Embedded
|
|
499
|
+
or the association was not properly defined."
|
|
500
|
+
resolution: "Ensure that your associations on the %{klass} model
|
|
501
|
+
are all properly defined, and that the inverse associations
|
|
502
|
+
are also properly defined. Embedded associations must have both the
|
|
386
503
|
parent (embeds_one/embeds_many) and the inverse (embedded_in)
|
|
387
504
|
present in order to work properly."
|
|
388
505
|
no_parent:
|
|
@@ -393,9 +510,9 @@ en:
|
|
|
393
510
|
most likely caused by either calling %{klass}.create or
|
|
394
511
|
%{klass}.create! without setting the parent document as an
|
|
395
512
|
attribute."
|
|
396
|
-
resolution: "Ensure that you've set the parent
|
|
513
|
+
resolution: "Ensure that you've set the parent association if
|
|
397
514
|
instantiating the embedded document directly, or always create new
|
|
398
|
-
embedded documents via the parent
|
|
515
|
+
embedded documents via the parent association."
|
|
399
516
|
no_client_config:
|
|
400
517
|
message: "No configuration could be found for a client named
|
|
401
518
|
'%{name}'."
|
|
@@ -405,7 +522,7 @@ en:
|
|
|
405
522
|
to connect."
|
|
406
523
|
resolution: "Double check your mongoid.yml to make sure under the
|
|
407
524
|
clients key that a configuration exists for '%{name}'. If you
|
|
408
|
-
have set the configuration
|
|
525
|
+
have set the configuration programmatically, ensure that '%{name}'
|
|
409
526
|
exists in the configuration hash."
|
|
410
527
|
no_clients_config:
|
|
411
528
|
message: "No clients configuration provided."
|
|
@@ -461,9 +578,8 @@ en:
|
|
|
461
578
|
resolution: "Don't define '%{name}' as readonly, or do not attempt
|
|
462
579
|
to update its value after the document is persisted."
|
|
463
580
|
readonly_document:
|
|
464
|
-
message: "Attempted to persist
|
|
465
|
-
summary: "Documents
|
|
466
|
-
cannot be persisted."
|
|
581
|
+
message: "Attempted to persist a readonly document of class '%{klass}'."
|
|
582
|
+
summary: "Documents that are marked readonly cannot be persisted."
|
|
467
583
|
resolution: "Don't attempt to persist documents that are flagged as
|
|
468
584
|
readonly."
|
|
469
585
|
scope_overwrite:
|
|
@@ -483,11 +599,9 @@ en:
|
|
|
483
599
|
server versions 3.6 and higher."
|
|
484
600
|
resolution: "Verify that all servers in your deployment are at least
|
|
485
601
|
version 3.6 or don't attempt to use sessions with older server versions."
|
|
486
|
-
taken:
|
|
487
|
-
"is already taken"
|
|
488
602
|
too_many_nested_attribute_records:
|
|
489
603
|
message: "Accepting nested attributes for %{association} is limited
|
|
490
|
-
to %{limit}
|
|
604
|
+
to %{limit} documents."
|
|
491
605
|
summary: "More documents were sent to be processed than the allowed
|
|
492
606
|
limit."
|
|
493
607
|
resolution: "The limit is set as an option to the macro, for example:
|
|
@@ -497,24 +611,25 @@ en:
|
|
|
497
611
|
unknown_attribute:
|
|
498
612
|
message: "Attempted to set a value for '%{name}' which is not
|
|
499
613
|
allowed on the model %{klass}."
|
|
500
|
-
summary: "
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
attributes hash,
|
|
505
|
-
resolution: "
|
|
506
|
-
|
|
614
|
+
summary: "%{klass}#%{name}= was called but there is no '%{name}'
|
|
615
|
+
field defined in the model, and Mongoid::Attributes::Dynamic is
|
|
616
|
+
not included. This error is also raised instead of NoMethodError
|
|
617
|
+
if the unknown attribute is passed to any method that accepts an
|
|
618
|
+
attributes hash, such as #attributes=."
|
|
619
|
+
resolution: "Define the field '%{name}' in %{klass}, or include
|
|
620
|
+
Mongoid::Attributes::Dynamic in %{klass} if you intend to
|
|
621
|
+
store values in fields that are not explicitly defined."
|
|
507
622
|
unknown_model:
|
|
508
|
-
message: "Attempted to instantiate an object of the unknown
|
|
623
|
+
message: "Attempted to instantiate an object of the unknown model '%{klass}'."
|
|
509
624
|
summary: "A document with the value '%{value}' at the key '_type' was used to
|
|
510
625
|
instantiate a model object but Mongoid cannot find this Class."
|
|
511
626
|
resolution: "The _type field is a reserved one used by Mongoid to determine the
|
|
512
627
|
class for instantiating an object. Please don't save data in this field or ensure
|
|
513
|
-
that any values in this field correspond to valid
|
|
628
|
+
that any values in this field correspond to valid models."
|
|
514
629
|
unsaved_document:
|
|
515
630
|
message: "Attempted to save %{document} before the parent %{base}."
|
|
516
631
|
summary: "You cannot call create or create! through the
|
|
517
|
-
|
|
632
|
+
association (%{document}) whose parent (%{base}) is
|
|
518
633
|
not already saved. This would cause the database to be out of sync
|
|
519
634
|
since the child could potentially reference a nonexistent parent."
|
|
520
635
|
resolution: "Make sure to only use create or create! when the parent
|
|
@@ -526,16 +641,16 @@ en:
|
|
|
526
641
|
#where criterion on embedded documents. Since %{klass} is embedded,
|
|
527
642
|
the expression %{javascript} is not allowed."
|
|
528
643
|
resolution: "Please provide a standard hash to #where when the criteria
|
|
529
|
-
is for an embedded
|
|
644
|
+
is for an embedded association."
|
|
530
645
|
validations:
|
|
531
646
|
message: "Validation of %{document} failed."
|
|
532
647
|
summary: "The following errors were found: %{errors}"
|
|
533
648
|
resolution: "Try persisting the document with valid data or remove
|
|
534
649
|
the validations."
|
|
535
650
|
delete_restriction:
|
|
536
|
-
message: "Cannot
|
|
537
|
-
summary: "When defining '%{relation}' with a :dependent => :
|
|
538
|
-
Mongoid will raise an error when attempting to
|
|
651
|
+
message: "Cannot destroy %{document} because of dependent '%{relation}'."
|
|
652
|
+
summary: "When defining '%{relation}' with a :dependent => :restrict_with_error,
|
|
653
|
+
Mongoid will raise an error when attempting to destroy the
|
|
539
654
|
%{document} when the child '%{relation}' still has documents in it."
|
|
540
655
|
resolution: "Don't attempt to delete the parent %{document} when
|
|
541
|
-
it has children, or change the dependent option on the
|
|
656
|
+
it has children, or change the dependent option on the association."
|