mongoid 7.3.5 → 7.4.3
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 +17 -17
- data/README.md +3 -3
- data/lib/config/locales/en.yml +21 -20
- data/lib/mongoid/association/accessors.rb +0 -27
- data/lib/mongoid/association/bindable.rb +0 -21
- data/lib/mongoid/association/builders.rb +0 -9
- data/lib/mongoid/association/constrainable.rb +0 -3
- data/lib/mongoid/association/depending.rb +0 -7
- data/lib/mongoid/association/eager_loadable.rb +0 -3
- data/lib/mongoid/association/embedded/batchable.rb +9 -39
- data/lib/mongoid/association/embedded/cyclic.rb +2 -11
- data/lib/mongoid/association/embedded/embedded_in/binding.rb +0 -7
- data/lib/mongoid/association/embedded/embedded_in/buildable.rb +0 -3
- data/lib/mongoid/association/embedded/embedded_in/proxy.rb +0 -13
- data/lib/mongoid/association/embedded/embedded_in.rb +0 -23
- data/lib/mongoid/association/embedded/embeds_many/binding.rb +0 -7
- data/lib/mongoid/association/embedded/embeds_many/buildable.rb +0 -3
- data/lib/mongoid/association/embedded/embeds_many/proxy.rb +31 -44
- data/lib/mongoid/association/embedded/embeds_many.rb +0 -31
- data/lib/mongoid/association/embedded/embeds_one/binding.rb +0 -7
- data/lib/mongoid/association/embedded/embeds_one/buildable.rb +0 -3
- data/lib/mongoid/association/embedded/embeds_one/proxy.rb +26 -14
- data/lib/mongoid/association/embedded/embeds_one.rb +0 -27
- data/lib/mongoid/association/embedded.rb +0 -1
- data/lib/mongoid/association/macros.rb +6 -5
- data/lib/mongoid/association/many.rb +0 -17
- data/lib/mongoid/association/marshalable.rb +0 -5
- data/lib/mongoid/association/nested/many.rb +0 -11
- data/lib/mongoid/association/nested/nested_buildable.rb +0 -9
- data/lib/mongoid/association/nested/one.rb +1 -16
- data/lib/mongoid/association/nested.rb +0 -3
- data/lib/mongoid/association/one.rb +1 -10
- data/lib/mongoid/association/options.rb +0 -33
- data/lib/mongoid/association/proxy.rb +0 -21
- data/lib/mongoid/association/referenced/auto_save.rb +0 -9
- data/lib/mongoid/association/referenced/belongs_to/binding.rb +0 -7
- data/lib/mongoid/association/referenced/belongs_to/buildable.rb +4 -5
- data/lib/mongoid/association/referenced/belongs_to/eager.rb +0 -1
- data/lib/mongoid/association/referenced/belongs_to/proxy.rb +0 -13
- data/lib/mongoid/association/referenced/belongs_to.rb +9 -34
- data/lib/mongoid/association/referenced/counter_cache.rb +2 -15
- data/lib/mongoid/association/referenced/eager.rb +3 -24
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/binding.rb +0 -5
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/buildable.rb +0 -3
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/eager.rb +0 -1
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/proxy.rb +12 -39
- data/lib/mongoid/association/referenced/has_and_belongs_to_many.rb +11 -38
- data/lib/mongoid/association/referenced/has_many/binding.rb +0 -5
- data/lib/mongoid/association/referenced/has_many/buildable.rb +0 -3
- data/lib/mongoid/association/referenced/has_many/eager.rb +0 -1
- data/lib/mongoid/association/referenced/has_many/enumerable.rb +8 -56
- data/lib/mongoid/association/referenced/has_many/proxy.rb +18 -61
- data/lib/mongoid/association/referenced/has_many.rb +12 -39
- data/lib/mongoid/association/referenced/has_one/binding.rb +0 -7
- data/lib/mongoid/association/referenced/has_one/buildable.rb +3 -4
- data/lib/mongoid/association/referenced/has_one/eager.rb +0 -1
- data/lib/mongoid/association/referenced/has_one/nested_builder.rb +0 -15
- data/lib/mongoid/association/referenced/has_one/proxy.rb +0 -9
- data/lib/mongoid/association/referenced/has_one.rb +9 -32
- data/lib/mongoid/association/referenced/syncable.rb +0 -17
- data/lib/mongoid/association/referenced.rb +0 -1
- data/lib/mongoid/association/reflections.rb +0 -1
- data/lib/mongoid/association/relatable.rb +0 -61
- data/lib/mongoid/association.rb +0 -17
- data/lib/mongoid/atomic/modifiers.rb +4 -51
- data/lib/mongoid/atomic/paths/embedded/many.rb +0 -5
- data/lib/mongoid/atomic/paths/embedded/one.rb +0 -5
- data/lib/mongoid/atomic/paths/embedded.rb +0 -3
- data/lib/mongoid/atomic/paths/root.rb +0 -5
- data/lib/mongoid/atomic/paths.rb +0 -1
- data/lib/mongoid/atomic.rb +1 -42
- data/lib/mongoid/attributes/dynamic.rb +0 -17
- data/lib/mongoid/attributes/nested.rb +0 -5
- data/lib/mongoid/attributes/processing.rb +1 -18
- data/lib/mongoid/attributes/projector.rb +0 -1
- data/lib/mongoid/attributes/readonly.rb +0 -5
- data/lib/mongoid/attributes.rb +0 -33
- data/lib/mongoid/cacheable.rb +1 -6
- data/lib/mongoid/changeable.rb +3 -59
- data/lib/mongoid/clients/factory.rb +0 -7
- data/lib/mongoid/clients/options.rb +0 -5
- data/lib/mongoid/clients/sessions.rb +0 -7
- data/lib/mongoid/clients/storage_options.rb +0 -7
- data/lib/mongoid/clients/validators/storage.rb +0 -9
- data/lib/mongoid/clients/validators.rb +0 -1
- data/lib/mongoid/clients.rb +0 -9
- data/lib/mongoid/composable.rb +0 -7
- data/lib/mongoid/config/environment.rb +21 -6
- data/lib/mongoid/config/options.rb +0 -11
- data/lib/mongoid/config/validators/client.rb +0 -17
- data/lib/mongoid/config/validators/option.rb +0 -3
- data/lib/mongoid/config/validators.rb +0 -1
- data/lib/mongoid/config.rb +37 -29
- data/lib/mongoid/contextual/aggregable/memory.rb +14 -11
- data/lib/mongoid/contextual/aggregable/mongo.rb +15 -20
- data/lib/mongoid/contextual/aggregable/none.rb +65 -0
- data/lib/mongoid/contextual/aggregable.rb +17 -0
- data/lib/mongoid/contextual/atomic.rb +0 -25
- data/lib/mongoid/contextual/command.rb +0 -5
- data/lib/mongoid/contextual/geo_near.rb +1 -34
- data/lib/mongoid/contextual/map_reduce.rb +0 -31
- data/lib/mongoid/contextual/memory.rb +4 -59
- data/lib/mongoid/contextual/mongo.rb +132 -78
- data/lib/mongoid/contextual/none.rb +39 -28
- data/lib/mongoid/contextual/queryable.rb +0 -3
- data/lib/mongoid/contextual.rb +0 -5
- data/lib/mongoid/copyable.rb +0 -5
- data/lib/mongoid/criteria/findable.rb +0 -13
- data/lib/mongoid/criteria/includable.rb +0 -9
- data/lib/mongoid/criteria/inspectable.rb +0 -3
- data/lib/mongoid/criteria/marshalable.rb +0 -5
- data/lib/mongoid/criteria/modifiable.rb +0 -19
- data/lib/mongoid/criteria/options.rb +0 -3
- data/lib/mongoid/criteria/permission.rb +0 -1
- data/lib/mongoid/criteria/queryable/aggregable.rb +0 -13
- data/lib/mongoid/criteria/queryable/expandable.rb +0 -1
- data/lib/mongoid/criteria/queryable/extensions/array.rb +1 -26
- data/lib/mongoid/criteria/queryable/extensions/big_decimal.rb +0 -3
- data/lib/mongoid/criteria/queryable/extensions/boolean.rb +0 -3
- data/lib/mongoid/criteria/queryable/extensions/date.rb +0 -7
- data/lib/mongoid/criteria/queryable/extensions/date_time.rb +0 -5
- data/lib/mongoid/criteria/queryable/extensions/hash.rb +0 -25
- data/lib/mongoid/criteria/queryable/extensions/nil_class.rb +0 -13
- data/lib/mongoid/criteria/queryable/extensions/numeric.rb +0 -11
- data/lib/mongoid/criteria/queryable/extensions/object.rb +1 -28
- data/lib/mongoid/criteria/queryable/extensions/range.rb +38 -16
- data/lib/mongoid/criteria/queryable/extensions/regexp.rb +0 -9
- data/lib/mongoid/criteria/queryable/extensions/set.rb +0 -3
- data/lib/mongoid/criteria/queryable/extensions/string.rb +0 -17
- data/lib/mongoid/criteria/queryable/extensions/symbol.rb +0 -9
- data/lib/mongoid/criteria/queryable/extensions/time.rb +0 -7
- data/lib/mongoid/criteria/queryable/extensions/time_with_zone.rb +0 -7
- data/lib/mongoid/criteria/queryable/extensions.rb +0 -1
- data/lib/mongoid/criteria/queryable/key.rb +1 -14
- data/lib/mongoid/criteria/queryable/macroable.rb +0 -3
- data/lib/mongoid/criteria/queryable/mergeable.rb +1 -30
- data/lib/mongoid/criteria/queryable/optional.rb +0 -45
- data/lib/mongoid/criteria/queryable/options.rb +0 -19
- data/lib/mongoid/criteria/queryable/pipeline.rb +0 -13
- data/lib/mongoid/criteria/queryable/selectable.rb +20 -67
- data/lib/mongoid/criteria/queryable/selector.rb +0 -17
- data/lib/mongoid/criteria/queryable/smash.rb +0 -11
- data/lib/mongoid/criteria/queryable/storable.rb +6 -2
- data/lib/mongoid/criteria/queryable.rb +0 -7
- data/lib/mongoid/criteria/scopable.rb +25 -19
- data/lib/mongoid/criteria.rb +0 -57
- data/lib/mongoid/document.rb +0 -51
- data/lib/mongoid/equality.rb +26 -10
- data/lib/mongoid/errors/ambiguous_relationship.rb +2 -5
- data/lib/mongoid/errors/callback.rb +0 -3
- data/lib/mongoid/errors/criteria_argument_required.rb +0 -1
- data/lib/mongoid/errors/delete_restriction.rb +0 -3
- data/lib/mongoid/errors/document_not_destroyed.rb +2 -7
- data/lib/mongoid/errors/document_not_found.rb +0 -9
- data/lib/mongoid/errors/eager_load.rb +0 -3
- data/lib/mongoid/errors/empty_config_file.rb +0 -1
- data/lib/mongoid/errors/in_memory_collation_not_supported.rb +0 -3
- data/lib/mongoid/errors/invalid_collection.rb +0 -1
- data/lib/mongoid/errors/invalid_config_file.rb +0 -1
- data/lib/mongoid/errors/invalid_config_option.rb +0 -3
- data/lib/mongoid/errors/invalid_dependent_strategy.rb +0 -3
- data/lib/mongoid/errors/invalid_discriminator_key_target.rb +0 -1
- data/lib/mongoid/errors/invalid_elem_match_operator.rb +0 -1
- data/lib/mongoid/errors/invalid_estimated_count_criteria.rb +0 -1
- data/lib/mongoid/errors/invalid_expression_operator.rb +0 -1
- data/lib/mongoid/errors/invalid_field.rb +0 -5
- data/lib/mongoid/errors/invalid_field_operator.rb +0 -1
- data/lib/mongoid/errors/invalid_field_option.rb +0 -3
- data/lib/mongoid/errors/invalid_find.rb +0 -3
- data/lib/mongoid/errors/invalid_includes.rb +0 -3
- data/lib/mongoid/errors/invalid_index.rb +0 -3
- data/lib/mongoid/errors/invalid_options.rb +0 -3
- data/lib/mongoid/errors/invalid_path.rb +0 -3
- data/lib/mongoid/errors/invalid_persistence_option.rb +0 -5
- data/lib/mongoid/errors/invalid_query.rb +0 -1
- data/lib/mongoid/errors/invalid_relation.rb +0 -7
- data/lib/mongoid/errors/invalid_relation_option.rb +0 -3
- data/lib/mongoid/errors/invalid_scope.rb +0 -3
- data/lib/mongoid/errors/invalid_session_use.rb +1 -6
- data/lib/mongoid/errors/invalid_set_polymorphic_relation.rb +0 -1
- data/lib/mongoid/errors/invalid_storage_options.rb +0 -3
- data/lib/mongoid/errors/invalid_storage_parent.rb +0 -3
- data/lib/mongoid/errors/invalid_time.rb +0 -3
- data/lib/mongoid/errors/invalid_value.rb +0 -1
- data/lib/mongoid/errors/inverse_not_found.rb +0 -3
- data/lib/mongoid/errors/mixed_client_configuration.rb +0 -3
- data/lib/mongoid/errors/mixed_relations.rb +0 -3
- data/lib/mongoid/errors/mongoid_error.rb +0 -9
- data/lib/mongoid/errors/nested_attributes_metadata_not_found.rb +0 -3
- data/lib/mongoid/errors/no_client_config.rb +0 -3
- data/lib/mongoid/errors/no_client_database.rb +0 -3
- data/lib/mongoid/errors/no_client_hosts.rb +0 -3
- data/lib/mongoid/errors/no_clients_config.rb +0 -3
- data/lib/mongoid/errors/no_default_client.rb +0 -3
- data/lib/mongoid/errors/no_environment.rb +0 -3
- data/lib/mongoid/errors/no_map_reduce_output.rb +0 -3
- data/lib/mongoid/errors/no_metadata.rb +0 -3
- data/lib/mongoid/errors/no_parent.rb +0 -3
- data/lib/mongoid/errors/readonly_attribute.rb +0 -3
- data/lib/mongoid/errors/readonly_document.rb +1 -6
- data/lib/mongoid/errors/scope_overwrite.rb +0 -1
- data/lib/mongoid/errors/too_many_nested_attribute_records.rb +0 -1
- data/lib/mongoid/errors/unknown_attribute.rb +0 -3
- data/lib/mongoid/errors/unknown_model.rb +0 -3
- data/lib/mongoid/errors/unsaved_document.rb +1 -2
- data/lib/mongoid/errors/unsupported_javascript.rb +0 -3
- data/lib/mongoid/errors/validations.rb +0 -1
- data/lib/mongoid/errors.rb +0 -1
- data/lib/mongoid/evolvable.rb +0 -3
- data/lib/mongoid/extensions/array.rb +3 -29
- data/lib/mongoid/extensions/big_decimal.rb +0 -11
- data/lib/mongoid/extensions/boolean.rb +0 -3
- data/lib/mongoid/extensions/date.rb +0 -9
- data/lib/mongoid/extensions/date_time.rb +0 -9
- data/lib/mongoid/extensions/decimal128.rb +0 -5
- data/lib/mongoid/extensions/false_class.rb +1 -6
- data/lib/mongoid/extensions/float.rb +0 -7
- data/lib/mongoid/extensions/hash.rb +0 -27
- data/lib/mongoid/extensions/integer.rb +0 -9
- data/lib/mongoid/extensions/module.rb +0 -3
- data/lib/mongoid/extensions/nil_class.rb +0 -5
- data/lib/mongoid/extensions/object.rb +1 -40
- data/lib/mongoid/extensions/object_id.rb +0 -7
- data/lib/mongoid/extensions/range.rb +0 -11
- data/lib/mongoid/extensions/regexp.rb +0 -3
- data/lib/mongoid/extensions/set.rb +0 -7
- data/lib/mongoid/extensions/string.rb +1 -30
- data/lib/mongoid/extensions/symbol.rb +0 -7
- data/lib/mongoid/extensions/time.rb +0 -11
- data/lib/mongoid/extensions/time_with_zone.rb +13 -9
- data/lib/mongoid/extensions/true_class.rb +1 -6
- data/lib/mongoid/extensions.rb +15 -3
- data/lib/mongoid/factory.rb +1 -2
- data/lib/mongoid/fields/foreign_key.rb +0 -21
- data/lib/mongoid/fields/localized.rb +0 -11
- data/lib/mongoid/fields/standard.rb +0 -33
- data/lib/mongoid/fields/validators/macro.rb +0 -9
- data/lib/mongoid/fields/validators.rb +0 -1
- data/lib/mongoid/fields.rb +64 -57
- data/lib/mongoid/findable.rb +0 -5
- data/lib/mongoid/indexable/specification.rb +0 -15
- data/lib/mongoid/indexable/validators/options.rb +0 -7
- data/lib/mongoid/indexable.rb +1 -18
- data/lib/mongoid/inspectable.rb +1 -10
- data/lib/mongoid/interceptable.rb +0 -25
- data/lib/mongoid/loggable.rb +0 -9
- data/lib/mongoid/matchable.rb +0 -5
- data/lib/mongoid/matcher/eq_impl.rb +37 -2
- data/lib/mongoid/matcher/eq_impl_with_regexp.rb +6 -1
- data/lib/mongoid/persistable/creatable.rb +1 -20
- data/lib/mongoid/persistable/deletable.rb +0 -17
- data/lib/mongoid/persistable/destroyable.rb +0 -7
- data/lib/mongoid/persistable/incrementable.rb +0 -5
- data/lib/mongoid/persistable/logical.rb +0 -5
- data/lib/mongoid/persistable/poppable.rb +0 -5
- data/lib/mongoid/persistable/pullable.rb +0 -7
- data/lib/mongoid/persistable/pushable.rb +0 -7
- data/lib/mongoid/persistable/renamable.rb +0 -5
- data/lib/mongoid/persistable/savable.rb +0 -7
- data/lib/mongoid/persistable/settable.rb +0 -5
- data/lib/mongoid/persistable/unsettable.rb +0 -5
- data/lib/mongoid/persistable/updatable.rb +2 -17
- data/lib/mongoid/persistable/upsertable.rb +0 -7
- data/lib/mongoid/persistable.rb +0 -23
- data/lib/mongoid/persistence_context.rb +0 -27
- data/lib/mongoid/positional.rb +0 -5
- data/lib/mongoid/query_cache.rb +0 -33
- data/lib/mongoid/railtie.rb +0 -15
- data/lib/mongoid/railties/controller_runtime.rb +0 -1
- data/lib/mongoid/reloadable.rb +4 -16
- data/lib/mongoid/scopable.rb +6 -34
- data/lib/mongoid/selectable.rb +0 -9
- data/lib/mongoid/serializable.rb +0 -15
- data/lib/mongoid/shardable.rb +0 -7
- data/lib/mongoid/stateful.rb +0 -9
- data/lib/mongoid/stringified_symbol.rb +2 -3
- data/lib/mongoid/tasks/database.rb +0 -5
- data/lib/mongoid/threaded/lifecycle.rb +0 -21
- data/lib/mongoid/threaded.rb +0 -55
- data/lib/mongoid/timestamps/created/short.rb +0 -1
- data/lib/mongoid/timestamps/created.rb +0 -1
- data/lib/mongoid/timestamps/short.rb +0 -1
- data/lib/mongoid/timestamps/timeless.rb +0 -7
- data/lib/mongoid/timestamps/updated/short.rb +0 -1
- data/lib/mongoid/timestamps/updated.rb +0 -3
- data/lib/mongoid/timestamps.rb +0 -1
- data/lib/mongoid/touchable.rb +0 -7
- data/lib/mongoid/traversable.rb +67 -53
- data/lib/mongoid/validatable/associated.rb +0 -3
- data/lib/mongoid/validatable/format.rb +0 -1
- data/lib/mongoid/validatable/length.rb +0 -1
- data/lib/mongoid/validatable/localizable.rb +0 -3
- data/lib/mongoid/validatable/macros.rb +0 -7
- data/lib/mongoid/validatable/presence.rb +1 -8
- data/lib/mongoid/validatable/queryable.rb +0 -3
- data/lib/mongoid/validatable/uniqueness.rb +15 -30
- data/lib/mongoid/validatable.rb +1 -22
- data/lib/mongoid/version.rb +1 -2
- data/lib/mongoid.rb +0 -15
- data/lib/rails/generators/mongoid/config/config_generator.rb +0 -1
- data/lib/rails/generators/mongoid/model/model_generator.rb +0 -1
- data/lib/rails/generators/mongoid_generator.rb +0 -1
- data/lib/rails/mongoid.rb +0 -3
- data/spec/config/mongoid_with_schema_map_uuid.yml +27 -0
- data/spec/integration/app_spec.rb +20 -15
- data/spec/integration/associations/belongs_to_spec.rb +0 -1
- data/spec/integration/associations/embedded_dirty_spec.rb +57 -0
- data/spec/integration/associations/embedded_spec.rb +0 -1
- data/spec/integration/associations/embeds_many_spec.rb +0 -1
- data/spec/integration/associations/embeds_one_spec.rb +0 -1
- data/spec/integration/associations/foreign_key_spec.rb +0 -1
- data/spec/integration/associations/foreign_key_spec_models.rb +0 -1
- data/spec/integration/associations/has_many_spec.rb +0 -1
- data/spec/integration/associations/has_one_spec.rb +0 -1
- data/spec/integration/associations/nested_attributes_assignment_spec.rb +0 -1
- data/spec/integration/associations/reverse_population_spec.rb +0 -1
- data/spec/integration/associations/reverse_population_spec_models.rb +0 -1
- data/spec/integration/associations/scope_option_spec.rb +101 -0
- data/spec/integration/atomic/modifiers_spec.rb +0 -1
- data/spec/integration/bson_regexp_raw_spec.rb +0 -1
- data/spec/integration/callbacks_models.rb +12 -0
- data/spec/integration/callbacks_spec.rb +18 -6
- data/spec/integration/contextual/empty_spec.rb +0 -1
- data/spec/integration/criteria/alias_query_spec.rb +161 -0
- data/spec/integration/criteria/date_field_spec.rb +0 -1
- data/spec/integration/criteria/default_scope_spec.rb +51 -0
- data/spec/integration/criteria/logical_spec.rb +30 -0
- data/spec/integration/criteria/range_spec.rb +265 -0
- data/spec/integration/criteria/time_with_zone_spec.rb +125 -15
- data/spec/integration/discriminator_key_spec.rb +0 -1
- data/spec/integration/discriminator_value_spec.rb +0 -1
- data/spec/integration/document_spec.rb +0 -1
- data/spec/integration/i18n_fallbacks_spec.rb +0 -1
- data/spec/integration/matcher_examples_spec.rb +0 -1
- data/spec/integration/matcher_operator_spec.rb +27 -3
- data/spec/integration/matcher_spec.rb +95 -1
- data/spec/integration/server_query_spec.rb +0 -1
- data/spec/integration/shardable_spec.rb +0 -1
- data/spec/integration/stringified_symbol_field_spec.rb +14 -1
- data/spec/lite_spec_helper.rb +1 -2
- data/spec/mongoid/association/accessors_spec.rb +44 -15
- data/spec/mongoid/association/auto_save_spec.rb +72 -34
- data/spec/mongoid/association/builders_spec.rb +1 -2
- data/spec/mongoid/association/constrainable_spec.rb +0 -1
- data/spec/mongoid/association/counter_cache_spec.rb +32 -33
- data/spec/mongoid/association/depending_spec.rb +12 -13
- data/spec/mongoid/association/eager_spec.rb +4 -5
- data/spec/mongoid/association/embedded/cyclic_spec.rb +2 -3
- data/spec/mongoid/association/embedded/dirty_spec.rb +2 -3
- data/spec/mongoid/association/embedded/embedded_in/binding_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embedded_in/buildable_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embedded_in/proxy_spec.rb +13 -14
- data/spec/mongoid/association/embedded/embedded_in_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_many/binding_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_many/buildable_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_many/proxy_spec.rb +384 -135
- data/spec/mongoid/association/embedded/embeds_many_models.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_many_query_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_many_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one/binding_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one/buildable_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one/proxy_spec.rb +21 -22
- data/spec/mongoid/association/embedded/embeds_one_dnl_models.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one_models.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one_query_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one_spec.rb +0 -1
- data/spec/mongoid/association/macros_spec.rb +9 -10
- data/spec/mongoid/association/nested/many_spec.rb +0 -1
- data/spec/mongoid/association/nested/one_spec.rb +0 -1
- data/spec/mongoid/association/options_spec.rb +0 -1
- data/spec/mongoid/association/polymorphic_spec.rb +0 -1
- data/spec/mongoid/association/referenced/belongs_to/binding_spec.rb +0 -1
- data/spec/mongoid/association/referenced/belongs_to/buildable_spec.rb +55 -17
- data/spec/mongoid/association/referenced/belongs_to/eager_spec.rb +50 -15
- data/spec/mongoid/association/referenced/belongs_to/proxy_spec.rb +57 -53
- data/spec/mongoid/association/referenced/belongs_to_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/belongs_to_spec.rb +22 -2
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/binding_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/buildable_spec.rb +26 -2
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/eager_spec.rb +31 -3
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_persistence_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_spec.rb +179 -154
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_models.rb +18 -1
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_spec.rb +21 -1
- data/spec/mongoid/association/referenced/has_many/binding_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_many/buildable_spec.rb +21 -1
- data/spec/mongoid/association/referenced/has_many/eager_spec.rb +23 -7
- data/spec/mongoid/association/referenced/has_many/enumerable_spec.rb +59 -33
- data/spec/mongoid/association/referenced/has_many/proxy_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_many/proxy_spec.rb +217 -154
- data/spec/mongoid/association/referenced/has_many_models.rb +18 -1
- data/spec/mongoid/association/referenced/has_many_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_many_spec.rb +21 -1
- data/spec/mongoid/association/referenced/has_one/binding_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_one/buildable_spec.rb +51 -8
- data/spec/mongoid/association/referenced/has_one/eager_spec.rb +17 -2
- data/spec/mongoid/association/referenced/has_one/proxy_spec.rb +26 -27
- data/spec/mongoid/association/referenced/has_one_models.rb +18 -1
- data/spec/mongoid/association/referenced/has_one_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_one_spec.rb +21 -1
- data/spec/mongoid/association/reflections_spec.rb +0 -1
- data/spec/mongoid/association/syncable_spec.rb +31 -32
- data/spec/mongoid/association_spec.rb +0 -1
- data/spec/mongoid/atomic/modifiers_spec.rb +0 -1
- data/spec/mongoid/atomic/paths/embedded/many_spec.rb +0 -1
- data/spec/mongoid/atomic/paths/embedded/one_spec.rb +0 -1
- data/spec/mongoid/atomic/paths/root_spec.rb +0 -1
- data/spec/mongoid/atomic/paths_spec.rb +0 -1
- data/spec/mongoid/atomic_spec.rb +28 -7
- data/spec/mongoid/attributes/dynamic_spec.rb +0 -1
- data/spec/mongoid/attributes/nested_spec.rb +66 -67
- data/spec/mongoid/attributes/projector_spec.rb +5 -2
- data/spec/mongoid/attributes/readonly_spec.rb +22 -23
- data/spec/mongoid/attributes_spec.rb +32 -33
- data/spec/mongoid/cacheable_spec.rb +1 -2
- data/spec/mongoid/changeable_spec.rb +35 -36
- data/spec/mongoid/clients/factory_spec.rb +11 -13
- data/spec/mongoid/clients/options_spec.rb +4 -5
- data/spec/mongoid/clients/sessions_spec.rb +22 -23
- data/spec/mongoid/clients/transactions_spec.rb +49 -27
- data/spec/mongoid/clients_spec.rb +6 -7
- data/spec/mongoid/composable_spec.rb +0 -1
- data/spec/mongoid/config/environment_spec.rb +39 -2
- data/spec/mongoid/config/options_spec.rb +0 -1
- data/spec/mongoid/config_spec.rb +145 -1
- data/spec/mongoid/contextual/aggregable/memory_spec.rb +51 -12
- data/spec/mongoid/contextual/aggregable/mongo_spec.rb +120 -21
- data/spec/mongoid/contextual/aggregable/none_spec.rb +60 -0
- data/spec/mongoid/contextual/atomic_spec.rb +46 -47
- data/spec/mongoid/contextual/geo_near_spec.rb +17 -18
- data/spec/mongoid/contextual/map_reduce_spec.rb +2 -3
- data/spec/mongoid/contextual/memory_spec.rb +23 -24
- data/spec/mongoid/contextual/mongo_spec.rb +339 -77
- data/spec/mongoid/contextual/none_spec.rb +7 -82
- data/spec/mongoid/copyable_spec.rb +12 -13
- data/spec/mongoid/copyable_spec_models.rb +0 -1
- data/spec/mongoid/criteria/findable_spec.rb +23 -24
- data/spec/mongoid/criteria/inspectable_spec.rb +0 -1
- data/spec/mongoid/criteria/marshalable_spec.rb +0 -1
- data/spec/mongoid/criteria/modifiable_spec.rb +36 -37
- data/spec/mongoid/criteria/options_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/aggregable_spec.rb +1 -2
- data/spec/mongoid/criteria/queryable/expandable_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/array_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/big_decimal_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/bignum_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/boolean_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/date_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/date_time_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/fixnum_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/float_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/hash_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/integer_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/nil_class_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/numeric_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/object_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/range_spec.rb +237 -179
- data/spec/mongoid/criteria/queryable/extensions/regexp_raw_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/regexp_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/set_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/string_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/symbol_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/time_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/time_with_zone_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/key_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/mergeable_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/optional_spec.rb +1 -2
- data/spec/mongoid/criteria/queryable/options_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/pipeline_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/queryable_spec.rb +1 -2
- data/spec/mongoid/criteria/queryable/selectable_logical_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/selectable_shared_examples.rb +0 -1
- data/spec/mongoid/criteria/queryable/selectable_spec.rb +15 -16
- data/spec/mongoid/criteria/queryable/selectable_where_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/selector_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/smash_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/storable_spec.rb +37 -1
- data/spec/mongoid/criteria/scopable_spec.rb +127 -1
- data/spec/mongoid/criteria_projection_spec.rb +3 -4
- data/spec/mongoid/criteria_spec.rb +515 -187
- data/spec/mongoid/document_fields_spec.rb +0 -1
- data/spec/mongoid/document_persistence_context_spec.rb +0 -1
- data/spec/mongoid/document_query_spec.rb +0 -1
- data/spec/mongoid/document_spec.rb +11 -33
- data/spec/mongoid/equality_spec.rb +142 -41
- data/spec/mongoid/errors/ambiguous_relationship_spec.rb +0 -1
- data/spec/mongoid/errors/callback_spec.rb +0 -1
- data/spec/mongoid/errors/delete_restriction_spec.rb +0 -1
- data/spec/mongoid/errors/document_not_destroyed_spec.rb +0 -1
- data/spec/mongoid/errors/document_not_found_spec.rb +0 -1
- data/spec/mongoid/errors/eager_load_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_collection_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_config_file_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_config_option_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_field_option_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_field_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_find_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_includes_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_index_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_options_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_path_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_relation_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_scope_spec.rb +1 -2
- data/spec/mongoid/errors/invalid_set_polymorphic_relation_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_storage_options_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_time_spec.rb +0 -1
- data/spec/mongoid/errors/inverse_not_found_spec.rb +0 -1
- data/spec/mongoid/errors/mixed_client_configuration_spec.rb +0 -1
- data/spec/mongoid/errors/mixed_relations_spec.rb +0 -1
- data/spec/mongoid/errors/mongoid_error_spec.rb +1 -2
- data/spec/mongoid/errors/nested_attributes_metadata_not_found_spec.rb +0 -1
- data/spec/mongoid/errors/no_client_config_spec.rb +0 -1
- data/spec/mongoid/errors/no_client_database_spec.rb +0 -1
- data/spec/mongoid/errors/no_client_hosts_spec.rb +0 -1
- data/spec/mongoid/errors/no_clients_config_spec.rb +0 -1
- data/spec/mongoid/errors/no_environment_spec.rb +0 -1
- data/spec/mongoid/errors/no_map_reduce_output_spec.rb +0 -1
- data/spec/mongoid/errors/no_metadata_spec.rb +0 -1
- data/spec/mongoid/errors/no_parent_spec.rb +0 -1
- data/spec/mongoid/errors/readonly_attribute_spec.rb +0 -1
- data/spec/mongoid/errors/readonly_document_spec.rb +0 -1
- data/spec/mongoid/errors/scope_overwrite_spec.rb +0 -1
- data/spec/mongoid/errors/too_many_nested_attribute_records_spec.rb +0 -1
- data/spec/mongoid/errors/unknown_attribute_spec.rb +2 -3
- data/spec/mongoid/errors/unsaved_document_spec.rb +0 -1
- data/spec/mongoid/errors/unsupported_javascript_spec.rb +0 -1
- data/spec/mongoid/errors/validations_spec.rb +0 -1
- data/spec/mongoid/extensions/array_spec.rb +0 -1
- data/spec/mongoid/extensions/big_decimal_spec.rb +0 -1
- data/spec/mongoid/extensions/binary_spec.rb +0 -1
- data/spec/mongoid/extensions/boolean_spec.rb +0 -1
- data/spec/mongoid/extensions/date_class_mongoize_spec.rb +0 -1
- data/spec/mongoid/extensions/date_spec.rb +0 -1
- data/spec/mongoid/extensions/date_time_spec.rb +0 -1
- data/spec/mongoid/extensions/decimal128_spec.rb +0 -1
- data/spec/mongoid/extensions/false_class_spec.rb +0 -1
- data/spec/mongoid/extensions/float_spec.rb +0 -1
- data/spec/mongoid/extensions/hash_spec.rb +0 -1
- data/spec/mongoid/extensions/integer_spec.rb +0 -1
- data/spec/mongoid/extensions/module_spec.rb +0 -1
- data/spec/mongoid/extensions/nil_class_spec.rb +0 -1
- data/spec/mongoid/extensions/object_id_spec.rb +0 -1
- data/spec/mongoid/extensions/object_spec.rb +0 -1
- data/spec/mongoid/extensions/range_spec.rb +0 -1
- data/spec/mongoid/extensions/regexp_spec.rb +0 -1
- data/spec/mongoid/extensions/set_spec.rb +0 -1
- data/spec/mongoid/extensions/string_spec.rb +2 -3
- data/spec/mongoid/extensions/stringified_symbol_spec.rb +0 -1
- data/spec/mongoid/extensions/symbol_spec.rb +0 -1
- data/spec/mongoid/extensions/time_spec.rb +0 -1
- data/spec/mongoid/extensions/time_with_zone_spec.rb +0 -1
- data/spec/mongoid/extensions/true_class_spec.rb +0 -1
- data/spec/mongoid/extensions_spec.rb +14 -3
- data/spec/mongoid/factory_spec.rb +1 -1
- data/spec/mongoid/fields/foreign_key_spec.rb +0 -1
- data/spec/mongoid/fields/localized_spec.rb +0 -1
- data/spec/mongoid/fields/standard_spec.rb +0 -1
- data/spec/mongoid/fields_spec.rb +326 -31
- data/spec/mongoid/findable_spec.rb +21 -22
- data/spec/mongoid/indexable/specification_spec.rb +0 -1
- data/spec/mongoid/indexable_spec.rb +0 -1
- data/spec/mongoid/inspectable_spec.rb +0 -1
- data/spec/mongoid/interceptable_spec.rb +102 -95
- data/spec/mongoid/loggable_spec.rb +0 -1
- data/spec/mongoid/matcher/extract_attribute_spec.rb +5 -2
- data/spec/mongoid/persistable/creatable_spec.rb +2 -3
- data/spec/mongoid/persistable/deletable_spec.rb +18 -19
- data/spec/mongoid/persistable/destroyable_spec.rb +8 -9
- data/spec/mongoid/persistable/incrementable_spec.rb +8 -9
- data/spec/mongoid/persistable/logical_spec.rb +4 -5
- data/spec/mongoid/persistable/poppable_spec.rb +4 -5
- data/spec/mongoid/persistable/pullable_spec.rb +8 -9
- data/spec/mongoid/persistable/pushable_spec.rb +8 -9
- data/spec/mongoid/persistable/renamable_spec.rb +3 -4
- data/spec/mongoid/persistable/savable_spec.rb +15 -11
- data/spec/mongoid/persistable/settable_spec.rb +9 -10
- data/spec/mongoid/persistable/unsettable_spec.rb +4 -5
- data/spec/mongoid/persistable/updatable_spec.rb +41 -24
- data/spec/mongoid/persistable/upsertable_spec.rb +1 -2
- data/spec/mongoid/persistable_spec.rb +1 -2
- data/spec/mongoid/persistence_context_spec.rb +0 -1
- data/spec/mongoid/positional_spec.rb +0 -1
- data/spec/mongoid/query_cache_middleware_spec.rb +1 -2
- data/spec/mongoid/query_cache_spec.rb +30 -8
- data/spec/mongoid/relations/proxy_spec.rb +6 -7
- data/spec/mongoid/reloadable_spec.rb +209 -23
- data/spec/mongoid/scopable_spec.rb +54 -22
- data/spec/mongoid/selectable_spec.rb +6 -7
- data/spec/mongoid/serializable_spec.rb +9 -10
- data/spec/mongoid/shardable_spec.rb +2 -3
- data/spec/mongoid/stateful_spec.rb +1 -2
- data/spec/mongoid/tasks/database_rake_spec.rb +0 -1
- data/spec/mongoid/tasks/database_spec.rb +0 -1
- data/spec/mongoid/threaded_spec.rb +2 -3
- data/spec/mongoid/timestamps/created/short_spec.rb +1 -2
- data/spec/mongoid/timestamps/created_spec.rb +1 -2
- data/spec/mongoid/timestamps/timeless_spec.rb +2 -3
- data/spec/mongoid/timestamps/updated/short_spec.rb +3 -4
- data/spec/mongoid/timestamps/updated_spec.rb +3 -4
- data/spec/mongoid/timestamps_spec.rb +6 -7
- data/spec/mongoid/touchable_spec.rb +15 -20
- data/spec/mongoid/touchable_spec_models.rb +0 -1
- data/spec/mongoid/traversable_spec.rb +65 -2
- data/spec/mongoid/validatable/associated_spec.rb +0 -1
- data/spec/mongoid/validatable/format_spec.rb +0 -1
- data/spec/mongoid/validatable/length_spec.rb +0 -1
- data/spec/mongoid/validatable/numericality_spec.rb +0 -1
- data/spec/mongoid/validatable/presence_spec.rb +26 -23
- data/spec/mongoid/validatable/uniqueness_spec.rb +67 -68
- data/spec/mongoid/validatable_spec.rb +2 -3
- data/spec/mongoid_spec.rb +0 -1
- data/spec/rails/controller_extension/controller_runtime_spec.rb +0 -1
- data/spec/rails/mongoid_spec.rb +0 -1
- data/spec/shared/lib/mrss/constraints.rb +10 -17
- data/spec/shared/lib/mrss/docker_runner.rb +23 -3
- data/spec/shared/lib/mrss/eg_config_utils.rb +51 -0
- data/spec/shared/lib/mrss/event_subscriber.rb +15 -5
- data/spec/shared/lib/mrss/lite_constraints.rb +40 -1
- data/spec/shared/share/Dockerfile.erb +56 -54
- data/spec/shared/shlib/config.sh +27 -0
- data/spec/shared/shlib/distro.sh +2 -1
- data/spec/shared/shlib/server.sh +46 -21
- data/spec/shared/shlib/set_env.sh +43 -5
- data/spec/spec_helper.rb +12 -22
- data/spec/support/authorization.rb +0 -1
- data/spec/support/constraints.rb +0 -1
- data/spec/support/expectations.rb +0 -1
- data/spec/support/macros.rb +31 -1
- data/spec/support/models/account.rb +1 -2
- data/spec/support/models/acolyte.rb +0 -1
- data/spec/support/models/actor.rb +0 -1
- data/spec/support/models/actress.rb +0 -1
- data/spec/support/models/address.rb +0 -1
- data/spec/support/models/address_component.rb +0 -1
- data/spec/support/models/address_number.rb +0 -1
- data/spec/support/models/agency.rb +0 -1
- data/spec/support/models/agent.rb +0 -1
- data/spec/support/models/album.rb +0 -1
- data/spec/support/models/alert.rb +0 -1
- data/spec/support/models/animal.rb +0 -1
- data/spec/support/models/answer.rb +0 -1
- data/spec/support/models/appointment.rb +0 -1
- data/spec/support/models/armrest.rb +0 -1
- data/spec/support/models/array_field.rb +0 -1
- data/spec/support/models/article.rb +0 -1
- data/spec/support/models/artist.rb +2 -1
- data/spec/support/models/artwork.rb +0 -1
- data/spec/support/models/audio.rb +0 -1
- data/spec/support/models/augmentation.rb +0 -1
- data/spec/support/models/author.rb +0 -1
- data/spec/support/models/baby.rb +0 -1
- data/spec/support/models/band.rb +4 -1
- data/spec/support/models/bar.rb +0 -1
- data/spec/support/models/basic.rb +0 -1
- data/spec/support/models/bed.rb +0 -1
- data/spec/support/models/big_palette.rb +0 -1
- data/spec/support/models/birthday.rb +0 -1
- data/spec/support/models/bolt.rb +0 -1
- data/spec/support/models/bomb.rb +0 -1
- data/spec/support/models/book.rb +0 -1
- data/spec/support/models/breed.rb +0 -1
- data/spec/support/models/browser.rb +0 -1
- data/spec/support/models/building.rb +0 -1
- data/spec/support/models/building_address.rb +0 -1
- data/spec/support/models/bus.rb +0 -1
- data/spec/support/models/business.rb +0 -1
- data/spec/support/models/callback_test.rb +0 -1
- data/spec/support/models/canvas.rb +0 -1
- data/spec/support/models/car.rb +0 -1
- data/spec/support/models/cat.rb +0 -1
- data/spec/support/models/category.rb +0 -1
- data/spec/support/models/child.rb +0 -1
- data/spec/support/models/child_doc.rb +3 -4
- data/spec/support/models/church.rb +0 -1
- data/spec/support/models/circle.rb +0 -1
- data/spec/support/models/circuit.rb +0 -1
- data/spec/support/models/circus.rb +0 -1
- data/spec/support/models/code.rb +0 -1
- data/spec/support/models/coding/pull_request.rb +0 -1
- data/spec/support/models/coding.rb +0 -1
- data/spec/support/models/comment.rb +0 -1
- data/spec/support/models/company.rb +0 -1
- data/spec/support/models/consumption_period.rb +0 -1
- data/spec/support/models/contextable_item.rb +0 -1
- data/spec/support/models/contractor.rb +0 -1
- data/spec/support/models/cookie.rb +0 -1
- data/spec/support/models/country_code.rb +2 -1
- data/spec/support/models/courier_job.rb +0 -1
- data/spec/support/models/crate.rb +0 -1
- data/spec/support/models/customer.rb +0 -1
- data/spec/support/models/customer_address.rb +0 -1
- data/spec/support/models/deed.rb +0 -1
- data/spec/support/models/definition.rb +0 -1
- data/spec/support/models/delegating_patient.rb +0 -1
- data/spec/support/models/description.rb +0 -1
- data/spec/support/models/dictionary.rb +0 -1
- data/spec/support/models/division.rb +0 -1
- data/spec/support/models/doctor.rb +0 -1
- data/spec/support/models/dog.rb +0 -1
- data/spec/support/models/dokument.rb +0 -1
- data/spec/support/models/draft.rb +0 -1
- data/spec/support/models/dragon.rb +0 -1
- data/spec/support/models/driver.rb +0 -1
- data/spec/support/models/drug.rb +0 -1
- data/spec/support/models/dungeon.rb +0 -1
- data/spec/support/models/edit.rb +0 -1
- data/spec/support/models/email.rb +0 -1
- data/spec/support/models/employer.rb +0 -1
- data/spec/support/models/entry.rb +0 -1
- data/spec/support/models/eraser.rb +0 -1
- data/spec/support/models/even.rb +0 -1
- data/spec/support/models/event.rb +0 -1
- data/spec/support/models/exhibition.rb +0 -1
- data/spec/support/models/exhibitor.rb +0 -1
- data/spec/support/models/explosion.rb +0 -1
- data/spec/support/models/eye.rb +0 -1
- data/spec/support/models/eye_bowl.rb +0 -1
- data/spec/support/models/face.rb +0 -1
- data/spec/support/models/favorite.rb +0 -1
- data/spec/support/models/filesystem.rb +0 -1
- data/spec/support/models/fire_hydrant.rb +0 -1
- data/spec/support/models/firefox.rb +0 -1
- data/spec/support/models/fish.rb +0 -1
- data/spec/support/models/folder.rb +0 -1
- data/spec/support/models/folder_item.rb +0 -1
- data/spec/support/models/fruits.rb +0 -1
- data/spec/support/models/game.rb +0 -1
- data/spec/support/models/ghost.rb +0 -1
- data/spec/support/models/guitar.rb +0 -1
- data/spec/support/models/hole.rb +0 -1
- data/spec/support/models/home.rb +0 -1
- data/spec/support/models/house.rb +0 -1
- data/spec/support/models/html_writer.rb +0 -1
- data/spec/support/models/id_key.rb +0 -1
- data/spec/support/models/idnodef.rb +0 -1
- data/spec/support/models/image.rb +0 -1
- data/spec/support/models/implant.rb +0 -1
- data/spec/support/models/instrument.rb +0 -1
- data/spec/support/models/item.rb +0 -1
- data/spec/support/models/jar.rb +0 -1
- data/spec/support/models/kaleidoscope.rb +0 -1
- data/spec/support/models/kangaroo.rb +0 -1
- data/spec/support/models/label.rb +2 -2
- data/spec/support/models/language.rb +0 -1
- data/spec/support/models/lat_lng.rb +0 -1
- data/spec/support/models/league.rb +0 -1
- data/spec/support/models/learner.rb +0 -1
- data/spec/support/models/line_item.rb +0 -1
- data/spec/support/models/location.rb +0 -1
- data/spec/support/models/login.rb +0 -1
- data/spec/support/models/manufacturer.rb +0 -1
- data/spec/support/models/meat.rb +0 -1
- data/spec/support/models/membership.rb +1 -1
- data/spec/support/models/message.rb +0 -1
- data/spec/support/models/minim.rb +0 -1
- data/spec/support/models/mixed_drink.rb +0 -1
- data/spec/support/models/mop.rb +0 -1
- data/spec/support/models/movie.rb +0 -1
- data/spec/support/models/my_hash.rb +0 -1
- data/spec/support/models/name.rb +0 -1
- data/spec/support/models/name_only.rb +0 -1
- data/spec/support/models/node.rb +0 -1
- data/spec/support/models/note.rb +0 -1
- data/spec/support/models/nut.rb +0 -1
- data/spec/support/models/odd.rb +0 -1
- data/spec/support/models/order.rb +2 -1
- data/spec/support/models/ordered_post.rb +1 -2
- data/spec/support/models/ordered_preference.rb +0 -1
- data/spec/support/models/oscar.rb +0 -1
- data/spec/support/models/other_owner_object.rb +0 -1
- data/spec/support/models/override.rb +0 -1
- data/spec/support/models/ownable.rb +0 -1
- data/spec/support/models/owner.rb +0 -1
- data/spec/support/models/pack.rb +0 -1
- data/spec/support/models/page.rb +0 -1
- data/spec/support/models/page_question.rb +0 -1
- data/spec/support/models/palette.rb +0 -1
- data/spec/support/models/parent.rb +0 -1
- data/spec/support/models/parent_doc.rb +0 -1
- data/spec/support/models/passport.rb +5 -1
- data/spec/support/models/patient.rb +0 -1
- data/spec/support/models/pdf_writer.rb +0 -1
- data/spec/support/models/pencil.rb +0 -1
- data/spec/support/models/person.rb +1 -1
- data/spec/support/models/pet.rb +0 -1
- data/spec/support/models/pet_owner.rb +0 -1
- data/spec/support/models/phone.rb +2 -2
- data/spec/support/models/piano.rb +0 -1
- data/spec/support/models/pizza.rb +0 -1
- data/spec/support/models/player.rb +0 -1
- data/spec/support/models/post.rb +0 -1
- data/spec/support/models/post_genre.rb +0 -1
- data/spec/support/models/powerup.rb +0 -1
- data/spec/support/models/preference.rb +0 -1
- data/spec/support/models/princess.rb +0 -1
- data/spec/support/models/product.rb +0 -1
- data/spec/support/models/profile.rb +0 -1
- data/spec/support/models/pronunciation.rb +0 -1
- data/spec/support/models/pub.rb +0 -1
- data/spec/support/models/publication/encyclopedia.rb +0 -1
- data/spec/support/models/publication/review.rb +0 -1
- data/spec/support/models/publication.rb +0 -1
- data/spec/support/models/purchase.rb +0 -1
- data/spec/support/models/purchased_item.rb +10 -0
- data/spec/support/models/question.rb +0 -1
- data/spec/support/models/quiz.rb +0 -1
- data/spec/support/models/rating.rb +0 -1
- data/spec/support/models/record.rb +0 -1
- data/spec/support/models/registry.rb +0 -1
- data/spec/support/models/role.rb +0 -1
- data/spec/support/models/root_category.rb +0 -1
- data/spec/support/models/sandwich.rb +0 -1
- data/spec/support/models/scheduler.rb +0 -1
- data/spec/support/models/scribe.rb +0 -1
- data/spec/support/models/sealer.rb +0 -1
- data/spec/support/models/seat.rb +0 -1
- data/spec/support/models/seo.rb +0 -1
- data/spec/support/models/series.rb +0 -1
- data/spec/support/models/server.rb +0 -1
- data/spec/support/models/service.rb +0 -1
- data/spec/support/models/shape.rb +0 -1
- data/spec/support/models/shelf.rb +0 -1
- data/spec/support/models/shipment_address.rb +0 -1
- data/spec/support/models/shipping_container.rb +0 -1
- data/spec/support/models/shipping_pack.rb +0 -1
- data/spec/support/models/shirt.rb +0 -1
- data/spec/support/models/shop.rb +0 -1
- data/spec/support/models/short_agent.rb +0 -1
- data/spec/support/models/short_quiz.rb +0 -1
- data/spec/support/models/simple.rb +0 -1
- data/spec/support/models/slave.rb +0 -1
- data/spec/support/models/song.rb +0 -1
- data/spec/support/models/sound.rb +0 -1
- data/spec/support/models/spacer.rb +0 -1
- data/spec/support/models/square.rb +0 -1
- data/spec/support/models/staff.rb +0 -1
- data/spec/support/models/store_as_dup_test1.rb +0 -1
- data/spec/support/models/store_as_dup_test2.rb +0 -1
- data/spec/support/models/store_as_dup_test3.rb +0 -1
- data/spec/support/models/store_as_dup_test4.rb +0 -1
- data/spec/support/models/strategy.rb +0 -1
- data/spec/support/models/sub_item.rb +0 -1
- data/spec/support/models/subscription.rb +0 -1
- data/spec/support/models/survey.rb +0 -1
- data/spec/support/models/symptom.rb +0 -1
- data/spec/support/models/tag.rb +0 -1
- data/spec/support/models/target.rb +0 -1
- data/spec/support/models/template.rb +0 -1
- data/spec/support/models/thing.rb +0 -1
- data/spec/support/models/threadlocker.rb +0 -1
- data/spec/support/models/title.rb +0 -1
- data/spec/support/models/tool.rb +0 -1
- data/spec/support/models/topping.rb +0 -1
- data/spec/support/models/toy.rb +0 -1
- data/spec/support/models/track.rb +0 -1
- data/spec/support/models/translation.rb +0 -1
- data/spec/support/models/tree.rb +0 -1
- data/spec/support/models/truck.rb +0 -1
- data/spec/support/models/updatable.rb +0 -1
- data/spec/support/models/user.rb +0 -1
- data/spec/support/models/user_account.rb +0 -1
- data/spec/support/models/validation_callback.rb +0 -1
- data/spec/support/models/vehicle.rb +0 -1
- data/spec/support/models/version.rb +0 -1
- data/spec/support/models/vertex.rb +0 -1
- data/spec/support/models/vet_visit.rb +0 -1
- data/spec/support/models/video.rb +0 -1
- data/spec/support/models/video_game.rb +0 -1
- data/spec/support/models/washer.rb +0 -1
- data/spec/support/models/weapon.rb +0 -1
- data/spec/support/models/wiki_page.rb +0 -1
- data/spec/support/models/word.rb +0 -1
- data/spec/support/models/word_origin.rb +0 -1
- data/spec/support/models/writer.rb +0 -1
- 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 +0 -1
- data/spec/support/spec_config.rb +7 -1
- data.tar.gz.sig +0 -0
- metadata +51 -12
- metadata.gz.sig +0 -0
- data/lib/support/ruby_version.rb +0 -29
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
require "spec_helper"
|
|
5
4
|
|
|
@@ -21,10 +20,10 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
21
20
|
|
|
22
21
|
describe "##{method}" do
|
|
23
22
|
|
|
24
|
-
context "when providing the base class in child
|
|
23
|
+
context "when providing the base class in child constructor" do
|
|
25
24
|
|
|
26
25
|
let(:person) do
|
|
27
|
-
Person.create
|
|
26
|
+
Person.create!
|
|
28
27
|
end
|
|
29
28
|
|
|
30
29
|
let!(:post) do
|
|
@@ -86,7 +85,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
86
85
|
context "when the child is persisted" do
|
|
87
86
|
|
|
88
87
|
let(:post) do
|
|
89
|
-
Post.create
|
|
88
|
+
Post.create!
|
|
90
89
|
end
|
|
91
90
|
|
|
92
91
|
before do
|
|
@@ -116,8 +115,8 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
116
115
|
context "when subsequently saving the parent" do
|
|
117
116
|
|
|
118
117
|
before do
|
|
119
|
-
person.save
|
|
120
|
-
post.save
|
|
118
|
+
person.save!
|
|
119
|
+
post.save!
|
|
121
120
|
end
|
|
122
121
|
|
|
123
122
|
it "returns the correct count of the association" do
|
|
@@ -130,11 +129,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
130
129
|
context "when appending in a parent create block" do
|
|
131
130
|
|
|
132
131
|
let!(:post) do
|
|
133
|
-
Post.create(title: "testing")
|
|
132
|
+
Post.create!(title: "testing")
|
|
134
133
|
end
|
|
135
134
|
|
|
136
135
|
let!(:person) do
|
|
137
|
-
Person.create do |doc|
|
|
136
|
+
Person.create! do |doc|
|
|
138
137
|
doc.posts << post
|
|
139
138
|
end
|
|
140
139
|
end
|
|
@@ -163,7 +162,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
163
162
|
context "when the parent is not a new record" do
|
|
164
163
|
|
|
165
164
|
let(:person) do
|
|
166
|
-
Person.create
|
|
165
|
+
Person.create!
|
|
167
166
|
end
|
|
168
167
|
|
|
169
168
|
let(:post) do
|
|
@@ -206,13 +205,13 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
206
205
|
context "when the related item has embedded associations" do
|
|
207
206
|
|
|
208
207
|
let!(:user) do
|
|
209
|
-
User.create
|
|
208
|
+
User.create!
|
|
210
209
|
end
|
|
211
210
|
|
|
212
211
|
before do
|
|
213
|
-
p = Post.create(roles: [ Role.create ])
|
|
212
|
+
p = Post.create!(roles: [ Role.create! ])
|
|
214
213
|
user.posts = [ p ]
|
|
215
|
-
user.save
|
|
214
|
+
user.save!
|
|
216
215
|
end
|
|
217
216
|
|
|
218
217
|
it "add the document to the target" do
|
|
@@ -280,7 +279,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
280
279
|
context "when.adding to the association" do
|
|
281
280
|
|
|
282
281
|
let(:person) do
|
|
283
|
-
Person.create
|
|
282
|
+
Person.create!
|
|
284
283
|
end
|
|
285
284
|
|
|
286
285
|
context "when the operation succeeds" do
|
|
@@ -301,7 +300,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
301
300
|
context "when the operation fails" do
|
|
302
301
|
|
|
303
302
|
let!(:existing) do
|
|
304
|
-
Post.create
|
|
303
|
+
Post.create!
|
|
305
304
|
end
|
|
306
305
|
|
|
307
306
|
let(:post) do
|
|
@@ -354,7 +353,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
354
353
|
context "when the parent is not a new record" do
|
|
355
354
|
|
|
356
355
|
let(:movie) do
|
|
357
|
-
Movie.create
|
|
356
|
+
Movie.create!
|
|
358
357
|
end
|
|
359
358
|
|
|
360
359
|
let(:rating) do
|
|
@@ -423,7 +422,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
423
422
|
context "when the parent is not a new record" do
|
|
424
423
|
|
|
425
424
|
let(:person) do
|
|
426
|
-
Person.create
|
|
425
|
+
Person.create!
|
|
427
426
|
end
|
|
428
427
|
|
|
429
428
|
let(:post) do
|
|
@@ -490,7 +489,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
490
489
|
context "when replacing the with a combination of old and new docs" do
|
|
491
490
|
|
|
492
491
|
let(:new_post) do
|
|
493
|
-
Post.create(title: "new post")
|
|
492
|
+
Post.create!(title: "new post")
|
|
494
493
|
end
|
|
495
494
|
|
|
496
495
|
context "when using the same in memory instance" do
|
|
@@ -539,7 +538,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
539
538
|
context "when replacing the with a combination of only new docs" do
|
|
540
539
|
|
|
541
540
|
let(:new_post) do
|
|
542
|
-
Post.create(title: "new post")
|
|
541
|
+
Post.create!(title: "new post")
|
|
543
542
|
end
|
|
544
543
|
|
|
545
544
|
context "when using the same in memory instance" do
|
|
@@ -615,7 +614,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
615
614
|
context "when the parent is not a new record" do
|
|
616
615
|
|
|
617
616
|
let(:movie) do
|
|
618
|
-
Movie.create
|
|
617
|
+
Movie.create!
|
|
619
618
|
end
|
|
620
619
|
|
|
621
620
|
let(:rating) do
|
|
@@ -650,11 +649,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
650
649
|
context "when the parent is persisted" do
|
|
651
650
|
|
|
652
651
|
let(:posts) do
|
|
653
|
-
[ Post.create(title: "1"), Post.create(title: "2") ]
|
|
652
|
+
[ Post.create!(title: "1"), Post.create!(title: "2") ]
|
|
654
653
|
end
|
|
655
654
|
|
|
656
655
|
let(:person) do
|
|
657
|
-
Person.create(posts: posts)
|
|
656
|
+
Person.create!(posts: posts)
|
|
658
657
|
end
|
|
659
658
|
|
|
660
659
|
context "when the parent has multiple children" do
|
|
@@ -709,7 +708,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
709
708
|
context "when the parent is not a new record" do
|
|
710
709
|
|
|
711
710
|
let(:person) do
|
|
712
|
-
Person.create
|
|
711
|
+
Person.create!
|
|
713
712
|
end
|
|
714
713
|
|
|
715
714
|
context "when dependent is destructive" do
|
|
@@ -803,7 +802,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
803
802
|
context "when the parent is not a new record" do
|
|
804
803
|
|
|
805
804
|
let(:movie) do
|
|
806
|
-
Movie.create
|
|
805
|
+
Movie.create!
|
|
807
806
|
end
|
|
808
807
|
|
|
809
808
|
let(:rating) do
|
|
@@ -844,11 +843,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
844
843
|
end
|
|
845
844
|
|
|
846
845
|
let(:post_one) do
|
|
847
|
-
Post.create
|
|
846
|
+
Post.create!
|
|
848
847
|
end
|
|
849
848
|
|
|
850
849
|
let(:post_two) do
|
|
851
|
-
Post.create
|
|
850
|
+
Post.create!
|
|
852
851
|
end
|
|
853
852
|
|
|
854
853
|
before do
|
|
@@ -863,11 +862,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
863
862
|
describe "#\{name}_ids" do
|
|
864
863
|
|
|
865
864
|
let(:posts) do
|
|
866
|
-
[ Post.create
|
|
865
|
+
[ Post.create!, Post.create! ]
|
|
867
866
|
end
|
|
868
867
|
|
|
869
868
|
let(:person) do
|
|
870
|
-
Person.create(posts: posts)
|
|
869
|
+
Person.create!(posts: posts)
|
|
871
870
|
end
|
|
872
871
|
|
|
873
872
|
it "returns ids of documents that are in the association" do
|
|
@@ -923,7 +922,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
923
922
|
context "when the parent is not a new record" do
|
|
924
923
|
|
|
925
924
|
let(:person) do
|
|
926
|
-
Person.create
|
|
925
|
+
Person.create!
|
|
927
926
|
end
|
|
928
927
|
|
|
929
928
|
let!(:post) do
|
|
@@ -957,7 +956,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
957
956
|
context "when the parent is a subclass" do
|
|
958
957
|
|
|
959
958
|
let(:video_game) do
|
|
960
|
-
VideoGame.create
|
|
959
|
+
VideoGame.create!
|
|
961
960
|
end
|
|
962
961
|
|
|
963
962
|
let(:rating) do
|
|
@@ -1011,7 +1010,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
1011
1010
|
context "when the parent is not a new record" do
|
|
1012
1011
|
|
|
1013
1012
|
let(:movie) do
|
|
1014
|
-
Movie.create
|
|
1013
|
+
Movie.create!
|
|
1015
1014
|
end
|
|
1016
1015
|
|
|
1017
1016
|
let!(:rating) do
|
|
@@ -1049,13 +1048,13 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
1049
1048
|
context "when the parent has been persisted" do
|
|
1050
1049
|
|
|
1051
1050
|
let!(:person) do
|
|
1052
|
-
Person.create
|
|
1051
|
+
Person.create!
|
|
1053
1052
|
end
|
|
1054
1053
|
|
|
1055
1054
|
context "when the children are persisted" do
|
|
1056
1055
|
|
|
1057
1056
|
let!(:post) do
|
|
1058
|
-
person.posts.create(title: "Testing")
|
|
1057
|
+
person.posts.create!(title: "Testing")
|
|
1059
1058
|
end
|
|
1060
1059
|
|
|
1061
1060
|
let!(:association) do
|
|
@@ -1120,13 +1119,13 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
1120
1119
|
context "when the parent has been persisted" do
|
|
1121
1120
|
|
|
1122
1121
|
let!(:movie) do
|
|
1123
|
-
Movie.create
|
|
1122
|
+
Movie.create!
|
|
1124
1123
|
end
|
|
1125
1124
|
|
|
1126
1125
|
context "when the children are persisted" do
|
|
1127
1126
|
|
|
1128
1127
|
let!(:rating) do
|
|
1129
|
-
movie.ratings.create(value: 1)
|
|
1128
|
+
movie.ratings.create!(value: 1)
|
|
1130
1129
|
end
|
|
1131
1130
|
|
|
1132
1131
|
let!(:association) do
|
|
@@ -1229,11 +1228,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
1229
1228
|
context "when appending in a parent create block" do
|
|
1230
1229
|
|
|
1231
1230
|
let!(:post) do
|
|
1232
|
-
Post.create(title: "testing")
|
|
1231
|
+
Post.create!(title: "testing")
|
|
1233
1232
|
end
|
|
1234
1233
|
|
|
1235
1234
|
let!(:person) do
|
|
1236
|
-
Person.create do |doc|
|
|
1235
|
+
Person.create! do |doc|
|
|
1237
1236
|
doc.posts.concat([ post ])
|
|
1238
1237
|
end
|
|
1239
1238
|
end
|
|
@@ -1262,7 +1261,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
1262
1261
|
context "when the parent is not a new record" do
|
|
1263
1262
|
|
|
1264
1263
|
let(:person) do
|
|
1265
|
-
Person.create
|
|
1264
|
+
Person.create!
|
|
1266
1265
|
end
|
|
1267
1266
|
|
|
1268
1267
|
let(:post) do
|
|
@@ -1375,7 +1374,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
1375
1374
|
context "when the parent is not a new record" do
|
|
1376
1375
|
|
|
1377
1376
|
let(:movie) do
|
|
1378
|
-
Movie.create
|
|
1377
|
+
Movie.create!
|
|
1379
1378
|
end
|
|
1380
1379
|
|
|
1381
1380
|
let(:rating) do
|
|
@@ -1407,18 +1406,23 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
1407
1406
|
describe "#count" do
|
|
1408
1407
|
|
|
1409
1408
|
let(:movie) do
|
|
1410
|
-
Movie.create
|
|
1409
|
+
Movie.create!
|
|
1411
1410
|
end
|
|
1412
1411
|
|
|
1413
1412
|
context "when documents have been persisted" do
|
|
1414
1413
|
|
|
1415
1414
|
let!(:rating) do
|
|
1416
|
-
movie.ratings.create(value: 1)
|
|
1415
|
+
movie.ratings.create!(value: 1)
|
|
1417
1416
|
end
|
|
1418
1417
|
|
|
1419
1418
|
it "returns the number of persisted documents" do
|
|
1420
1419
|
expect(movie.ratings.count).to eq(1)
|
|
1421
1420
|
end
|
|
1421
|
+
|
|
1422
|
+
it "block form includes persisted results" do
|
|
1423
|
+
expect(movie.ratings.count {|r| r.value >= 1 }).to eq(1)
|
|
1424
|
+
expect(movie.ratings.count {|r| r.value >= 2 }).to eq(0)
|
|
1425
|
+
end
|
|
1422
1426
|
end
|
|
1423
1427
|
|
|
1424
1428
|
context "when documents have not been persisted" do
|
|
@@ -1430,6 +1434,27 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
1430
1434
|
it "returns 0" do
|
|
1431
1435
|
expect(movie.ratings.count).to eq(0)
|
|
1432
1436
|
end
|
|
1437
|
+
|
|
1438
|
+
it "block form does not include unpersisted results" do
|
|
1439
|
+
expect(movie.ratings.count {|r| r.value == 1 }).to eq(0)
|
|
1440
|
+
end
|
|
1441
|
+
end
|
|
1442
|
+
|
|
1443
|
+
context "when mixed persisted and unpersisted documents" do
|
|
1444
|
+
|
|
1445
|
+
before do
|
|
1446
|
+
movie.ratings.create(value: 1)
|
|
1447
|
+
movie.ratings.build(value: 2)
|
|
1448
|
+
end
|
|
1449
|
+
|
|
1450
|
+
it "returns 1" do
|
|
1451
|
+
expect(movie.ratings.count).to eq(1)
|
|
1452
|
+
end
|
|
1453
|
+
|
|
1454
|
+
it "block form includes only persisted results" do
|
|
1455
|
+
expect(movie.ratings.count {|r| r.value >= 1 }).to eq(1)
|
|
1456
|
+
expect(movie.ratings.count {|r| r.value == 2 }).to eq(0)
|
|
1457
|
+
end
|
|
1433
1458
|
end
|
|
1434
1459
|
|
|
1435
1460
|
context "when no document is added" do
|
|
@@ -1444,7 +1469,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
1444
1469
|
context "when the documents are part of the association" do
|
|
1445
1470
|
|
|
1446
1471
|
before do
|
|
1447
|
-
Rating.create(ratable: movie)
|
|
1472
|
+
Rating.create!(ratable: movie)
|
|
1448
1473
|
end
|
|
1449
1474
|
|
|
1450
1475
|
it "returns the count from the db" do
|
|
@@ -1455,7 +1480,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
1455
1480
|
context "when the documents are not part of the association" do
|
|
1456
1481
|
|
|
1457
1482
|
before do
|
|
1458
|
-
Rating.create
|
|
1483
|
+
Rating.create!
|
|
1459
1484
|
end
|
|
1460
1485
|
|
|
1461
1486
|
it "returns the count from the db" do
|
|
@@ -1517,7 +1542,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
1517
1542
|
end
|
|
1518
1543
|
|
|
1519
1544
|
let(:movie) do
|
|
1520
|
-
Movie.create
|
|
1545
|
+
Movie.create!
|
|
1521
1546
|
end
|
|
1522
1547
|
|
|
1523
1548
|
context "when nothing exists on the association" do
|
|
@@ -1614,7 +1639,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
1614
1639
|
context "when documents have been persisted" do
|
|
1615
1640
|
|
|
1616
1641
|
let!(:rating) do
|
|
1617
|
-
movie.ratings.create(value: 1)
|
|
1642
|
+
movie.ratings.create!(value: 1)
|
|
1618
1643
|
end
|
|
1619
1644
|
|
|
1620
1645
|
it "returns true" do
|
|
@@ -1638,7 +1663,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
1638
1663
|
|
|
1639
1664
|
context "when new documents exist in the database" do
|
|
1640
1665
|
before do
|
|
1641
|
-
Rating.create(ratable: movie)
|
|
1666
|
+
Rating.create!(ratable: movie)
|
|
1642
1667
|
end
|
|
1643
1668
|
|
|
1644
1669
|
it "returns true" do
|
|
@@ -1652,11 +1677,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
1652
1677
|
context "when providing multiple attributes" do
|
|
1653
1678
|
|
|
1654
1679
|
let(:person) do
|
|
1655
|
-
Person.create
|
|
1680
|
+
Person.create!
|
|
1656
1681
|
end
|
|
1657
1682
|
|
|
1658
1683
|
let!(:posts) do
|
|
1659
|
-
person.posts.create([{ text: "Test1" }, { text: "Test2" }])
|
|
1684
|
+
person.posts.create!([{ text: "Test1" }, { text: "Test2" }])
|
|
1660
1685
|
end
|
|
1661
1686
|
|
|
1662
1687
|
it "creates multiple documents" do
|
|
@@ -1685,7 +1710,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
1685
1710
|
end
|
|
1686
1711
|
|
|
1687
1712
|
let(:post) do
|
|
1688
|
-
person.posts.create(text: "Testing")
|
|
1713
|
+
person.posts.create!(text: "Testing")
|
|
1689
1714
|
end
|
|
1690
1715
|
|
|
1691
1716
|
it "raises an unsaved document error" do
|
|
@@ -1698,11 +1723,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
1698
1723
|
context "when the operation is successful" do
|
|
1699
1724
|
|
|
1700
1725
|
let(:person) do
|
|
1701
|
-
Person.create
|
|
1726
|
+
Person.create!
|
|
1702
1727
|
end
|
|
1703
1728
|
|
|
1704
1729
|
let!(:post) do
|
|
1705
|
-
person.posts.create(text: "Testing")
|
|
1730
|
+
person.posts.create!(text: "Testing")
|
|
1706
1731
|
end
|
|
1707
1732
|
|
|
1708
1733
|
it "creates the document" do
|
|
@@ -1713,16 +1738,16 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
1713
1738
|
context "when the operation fails" do
|
|
1714
1739
|
|
|
1715
1740
|
let(:person) do
|
|
1716
|
-
Person.create
|
|
1741
|
+
Person.create!
|
|
1717
1742
|
end
|
|
1718
1743
|
|
|
1719
1744
|
let!(:existing) do
|
|
1720
|
-
Post.create
|
|
1745
|
+
Post.create!
|
|
1721
1746
|
end
|
|
1722
1747
|
|
|
1723
1748
|
it "raises an error" do
|
|
1724
1749
|
expect {
|
|
1725
|
-
person.posts.create do |doc|
|
|
1750
|
+
person.posts.create! do |doc|
|
|
1726
1751
|
doc._id = existing.id
|
|
1727
1752
|
end
|
|
1728
1753
|
}.to raise_error(Mongo::Error::OperationFailure)
|
|
@@ -1733,11 +1758,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
1733
1758
|
context "when the parent is not a new record" do
|
|
1734
1759
|
|
|
1735
1760
|
let(:person) do
|
|
1736
|
-
Person.create
|
|
1761
|
+
Person.create!
|
|
1737
1762
|
end
|
|
1738
1763
|
|
|
1739
1764
|
let!(:post) do
|
|
1740
|
-
person.posts.create(text: "Testing") do |post|
|
|
1765
|
+
person.posts.create!(text: "Testing") do |post|
|
|
1741
1766
|
post.content = "The Content"
|
|
1742
1767
|
end
|
|
1743
1768
|
end
|
|
@@ -1770,11 +1795,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
1770
1795
|
context "when passing a new object" do
|
|
1771
1796
|
|
|
1772
1797
|
let!(:odd) do
|
|
1773
|
-
Odd.create(name: 'one')
|
|
1798
|
+
Odd.create!(name: 'one')
|
|
1774
1799
|
end
|
|
1775
1800
|
|
|
1776
1801
|
let!(:even) do
|
|
1777
|
-
odd.evens.create(name: 'two', odds: [Odd.new(name: 'three')])
|
|
1802
|
+
odd.evens.create!(name: 'two', odds: [Odd.new(name: 'three')])
|
|
1778
1803
|
end
|
|
1779
1804
|
|
|
1780
1805
|
it "only push one even to the list" do
|
|
@@ -1804,7 +1829,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
1804
1829
|
end
|
|
1805
1830
|
|
|
1806
1831
|
let(:rating) do
|
|
1807
|
-
movie.ratings.create(value: 1)
|
|
1832
|
+
movie.ratings.create!(value: 1)
|
|
1808
1833
|
end
|
|
1809
1834
|
|
|
1810
1835
|
it "raises an unsaved document error" do
|
|
@@ -1815,11 +1840,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
1815
1840
|
context "when the parent is not a new record" do
|
|
1816
1841
|
|
|
1817
1842
|
let(:movie) do
|
|
1818
|
-
Movie.create
|
|
1843
|
+
Movie.create!
|
|
1819
1844
|
end
|
|
1820
1845
|
|
|
1821
1846
|
let!(:rating) do
|
|
1822
|
-
movie.ratings.create(value: 3)
|
|
1847
|
+
movie.ratings.create!(value: 3)
|
|
1823
1848
|
end
|
|
1824
1849
|
|
|
1825
1850
|
it "sets the foreign key on the association" do
|
|
@@ -1844,7 +1869,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
1844
1869
|
end
|
|
1845
1870
|
end
|
|
1846
1871
|
|
|
1847
|
-
context "when using a
|
|
1872
|
+
context "when using a different primary_key" do
|
|
1848
1873
|
|
|
1849
1874
|
let(:person) do
|
|
1850
1875
|
Person.create!(username: 'arthurnn')
|
|
@@ -1865,7 +1890,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
1865
1890
|
context "when providing multiple attributes" do
|
|
1866
1891
|
|
|
1867
1892
|
let(:person) do
|
|
1868
|
-
Person.create
|
|
1893
|
+
Person.create!
|
|
1869
1894
|
end
|
|
1870
1895
|
|
|
1871
1896
|
let!(:posts) do
|
|
@@ -1909,7 +1934,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
1909
1934
|
context "when the parent is not a new record" do
|
|
1910
1935
|
|
|
1911
1936
|
let(:person) do
|
|
1912
|
-
Person.create
|
|
1937
|
+
Person.create!
|
|
1913
1938
|
end
|
|
1914
1939
|
|
|
1915
1940
|
let!(:post) do
|
|
@@ -1967,7 +1992,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
1967
1992
|
context "when the parent is not a new record" do
|
|
1968
1993
|
|
|
1969
1994
|
let(:movie) do
|
|
1970
|
-
Movie.create
|
|
1995
|
+
Movie.create!
|
|
1971
1996
|
end
|
|
1972
1997
|
|
|
1973
1998
|
let!(:rating) do
|
|
@@ -2055,7 +2080,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2055
2080
|
describe "#delete" do
|
|
2056
2081
|
|
|
2057
2082
|
let!(:person) do
|
|
2058
|
-
Person.create(username: 'arthurnn')
|
|
2083
|
+
Person.create!(username: 'arthurnn')
|
|
2059
2084
|
end
|
|
2060
2085
|
|
|
2061
2086
|
context "when the document is found" do
|
|
@@ -2065,7 +2090,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2065
2090
|
context "when we are assigning attributes" do
|
|
2066
2091
|
|
|
2067
2092
|
let!(:drug) do
|
|
2068
|
-
person.drugs.create
|
|
2093
|
+
person.drugs.create!
|
|
2069
2094
|
end
|
|
2070
2095
|
|
|
2071
2096
|
before do
|
|
@@ -2088,7 +2113,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2088
2113
|
context "when the document is loaded" do
|
|
2089
2114
|
|
|
2090
2115
|
let!(:drug) do
|
|
2091
|
-
person.drugs.create
|
|
2116
|
+
person.drugs.create!
|
|
2092
2117
|
end
|
|
2093
2118
|
|
|
2094
2119
|
let!(:deleted) do
|
|
@@ -2111,7 +2136,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2111
2136
|
context "when the document is not loaded" do
|
|
2112
2137
|
|
|
2113
2138
|
let!(:drug) do
|
|
2114
|
-
Drug.create(person_id: person.username)
|
|
2139
|
+
Drug.create!(person_id: person.username)
|
|
2115
2140
|
end
|
|
2116
2141
|
|
|
2117
2142
|
let!(:deleted) do
|
|
@@ -2137,7 +2162,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2137
2162
|
context "when the document is loaded" do
|
|
2138
2163
|
|
|
2139
2164
|
let!(:post) do
|
|
2140
|
-
person.posts.create(title: "test")
|
|
2165
|
+
person.posts.create!(title: "test")
|
|
2141
2166
|
end
|
|
2142
2167
|
|
|
2143
2168
|
let!(:deleted) do
|
|
@@ -2160,7 +2185,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2160
2185
|
context "when the document is not loaded" do
|
|
2161
2186
|
|
|
2162
2187
|
let!(:post) do
|
|
2163
|
-
Post.create(title: "foo", person_id: person.id)
|
|
2188
|
+
Post.create!(title: "foo", person_id: person.id)
|
|
2164
2189
|
end
|
|
2165
2190
|
|
|
2166
2191
|
let!(:deleted) do
|
|
@@ -2185,7 +2210,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2185
2210
|
context "when the document is not found" do
|
|
2186
2211
|
|
|
2187
2212
|
let!(:post) do
|
|
2188
|
-
Post.create(title: "foo")
|
|
2213
|
+
Post.create!(title: "foo")
|
|
2189
2214
|
end
|
|
2190
2215
|
|
|
2191
2216
|
let!(:deleted) do
|
|
@@ -2211,7 +2236,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2211
2236
|
context "when conditions are provided" do
|
|
2212
2237
|
|
|
2213
2238
|
let(:person) do
|
|
2214
|
-
Person.create(username: 'durran')
|
|
2239
|
+
Person.create!(username: 'durran')
|
|
2215
2240
|
end
|
|
2216
2241
|
|
|
2217
2242
|
let!(:post1) { person.posts.create!(title: "Testing") }
|
|
@@ -2241,12 +2266,12 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2241
2266
|
context "when conditions are not provided" do
|
|
2242
2267
|
|
|
2243
2268
|
let(:person) do
|
|
2244
|
-
Person.create
|
|
2269
|
+
Person.create!
|
|
2245
2270
|
end
|
|
2246
2271
|
|
|
2247
2272
|
before do
|
|
2248
|
-
person.posts.create(title: "Testing")
|
|
2249
|
-
person.posts.create(title: "Test")
|
|
2273
|
+
person.posts.create!(title: "Testing")
|
|
2274
|
+
person.posts.create!(title: "Test")
|
|
2250
2275
|
end
|
|
2251
2276
|
|
|
2252
2277
|
it "removes the correct posts" do
|
|
@@ -2275,7 +2300,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2275
2300
|
context "when conditions are provided" do
|
|
2276
2301
|
|
|
2277
2302
|
let(:movie) do
|
|
2278
|
-
Movie.create(title: "Bladerunner")
|
|
2303
|
+
Movie.create!(title: "Bladerunner")
|
|
2279
2304
|
end
|
|
2280
2305
|
|
|
2281
2306
|
let!(:rating1) { movie.ratings.create!(value: 1) }
|
|
@@ -2304,12 +2329,12 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2304
2329
|
context "when conditions are not provided" do
|
|
2305
2330
|
|
|
2306
2331
|
let(:movie) do
|
|
2307
|
-
Movie.create(title: "Bladerunner")
|
|
2332
|
+
Movie.create!(title: "Bladerunner")
|
|
2308
2333
|
end
|
|
2309
2334
|
|
|
2310
2335
|
before do
|
|
2311
|
-
movie.ratings.create(value: 1)
|
|
2312
|
-
movie.ratings.create(value: 2)
|
|
2336
|
+
movie.ratings.create!(value: 1)
|
|
2337
|
+
movie.ratings.create!(value: 2)
|
|
2313
2338
|
end
|
|
2314
2339
|
|
|
2315
2340
|
it "removes the correct ratings" do
|
|
@@ -2345,13 +2370,13 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2345
2370
|
describe "#exists?" do
|
|
2346
2371
|
|
|
2347
2372
|
let!(:person) do
|
|
2348
|
-
Person.create
|
|
2373
|
+
Person.create!
|
|
2349
2374
|
end
|
|
2350
2375
|
|
|
2351
2376
|
context "when documents exist in the database" do
|
|
2352
2377
|
|
|
2353
2378
|
before do
|
|
2354
|
-
person.posts.create
|
|
2379
|
+
person.posts.create!
|
|
2355
2380
|
end
|
|
2356
2381
|
|
|
2357
2382
|
it "returns true" do
|
|
@@ -2482,15 +2507,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2482
2507
|
context "when the association is not polymorphic" do
|
|
2483
2508
|
|
|
2484
2509
|
let(:person) do
|
|
2485
|
-
Person.create
|
|
2510
|
+
Person.create!
|
|
2486
2511
|
end
|
|
2487
2512
|
|
|
2488
2513
|
let!(:post_one) do
|
|
2489
|
-
person.posts.create(title: "Test")
|
|
2514
|
+
person.posts.create!(title: "Test")
|
|
2490
2515
|
end
|
|
2491
2516
|
|
|
2492
2517
|
let!(:post_two) do
|
|
2493
|
-
person.posts.create(title: "OMG I has associations")
|
|
2518
|
+
person.posts.create!(title: "OMG I has associations")
|
|
2494
2519
|
end
|
|
2495
2520
|
|
|
2496
2521
|
context "when providing an id" do
|
|
@@ -2509,7 +2534,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2509
2534
|
context "when the id matches but is not scoped to the association" do
|
|
2510
2535
|
|
|
2511
2536
|
let(:post) do
|
|
2512
|
-
Post.create(title: "Unscoped")
|
|
2537
|
+
Post.create!(title: "Unscoped")
|
|
2513
2538
|
end
|
|
2514
2539
|
|
|
2515
2540
|
it "raises an error" do
|
|
@@ -2608,15 +2633,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2608
2633
|
context "when the association is polymorphic" do
|
|
2609
2634
|
|
|
2610
2635
|
let(:movie) do
|
|
2611
|
-
Movie.create
|
|
2636
|
+
Movie.create!
|
|
2612
2637
|
end
|
|
2613
2638
|
|
|
2614
2639
|
let!(:rating_one) do
|
|
2615
|
-
movie.ratings.create(value: 1)
|
|
2640
|
+
movie.ratings.create!(value: 1)
|
|
2616
2641
|
end
|
|
2617
2642
|
|
|
2618
2643
|
let!(:rating_two) do
|
|
2619
|
-
movie.ratings.create(value: 5)
|
|
2644
|
+
movie.ratings.create!(value: 5)
|
|
2620
2645
|
end
|
|
2621
2646
|
|
|
2622
2647
|
context "when providing an id" do
|
|
@@ -2725,6 +2750,44 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2725
2750
|
end
|
|
2726
2751
|
end
|
|
2727
2752
|
end
|
|
2753
|
+
|
|
2754
|
+
context "with block" do
|
|
2755
|
+
let!(:author) do
|
|
2756
|
+
Person.create!(title: 'Person')
|
|
2757
|
+
end
|
|
2758
|
+
|
|
2759
|
+
let!(:post_one) do
|
|
2760
|
+
author.posts.create!(title: 'post one')
|
|
2761
|
+
end
|
|
2762
|
+
|
|
2763
|
+
let!(:post_two) do
|
|
2764
|
+
author.posts.create!(title: 'post two')
|
|
2765
|
+
end
|
|
2766
|
+
|
|
2767
|
+
it "finds one" do
|
|
2768
|
+
expect(
|
|
2769
|
+
author.posts.find do |post|
|
|
2770
|
+
post.title == 'post one'
|
|
2771
|
+
end
|
|
2772
|
+
).to be_a(Post)
|
|
2773
|
+
end
|
|
2774
|
+
|
|
2775
|
+
it "returns first match of multiple" do
|
|
2776
|
+
expect(
|
|
2777
|
+
author.posts.find do |post|
|
|
2778
|
+
['post one', 'post two'].include?(post.title)
|
|
2779
|
+
end
|
|
2780
|
+
).to eq(post_one)
|
|
2781
|
+
end
|
|
2782
|
+
|
|
2783
|
+
it "returns nil when not found" do
|
|
2784
|
+
expect(
|
|
2785
|
+
author.posts.find do |post|
|
|
2786
|
+
post.title == 'non exiting one'
|
|
2787
|
+
end
|
|
2788
|
+
).to be_nil
|
|
2789
|
+
end
|
|
2790
|
+
end
|
|
2728
2791
|
end
|
|
2729
2792
|
|
|
2730
2793
|
describe "#find_or_create_by" do
|
|
@@ -2732,11 +2795,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2732
2795
|
context "when the association is not polymorphic" do
|
|
2733
2796
|
|
|
2734
2797
|
let(:person) do
|
|
2735
|
-
Person.create
|
|
2798
|
+
Person.create!
|
|
2736
2799
|
end
|
|
2737
2800
|
|
|
2738
2801
|
let!(:post) do
|
|
2739
|
-
person.posts.create(title: "Testing")
|
|
2802
|
+
person.posts.create!(title: "Testing")
|
|
2740
2803
|
end
|
|
2741
2804
|
|
|
2742
2805
|
context "when the document exists" do
|
|
@@ -2805,11 +2868,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2805
2868
|
context "when the association is polymorphic" do
|
|
2806
2869
|
|
|
2807
2870
|
let(:movie) do
|
|
2808
|
-
Movie.create
|
|
2871
|
+
Movie.create!
|
|
2809
2872
|
end
|
|
2810
2873
|
|
|
2811
2874
|
let!(:rating) do
|
|
2812
|
-
movie.ratings.create(value: 1)
|
|
2875
|
+
movie.ratings.create!(value: 1)
|
|
2813
2876
|
end
|
|
2814
2877
|
|
|
2815
2878
|
context "when the document exists" do
|
|
@@ -2853,11 +2916,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2853
2916
|
context "when the association is not polymorphic" do
|
|
2854
2917
|
|
|
2855
2918
|
let(:person) do
|
|
2856
|
-
Person.create
|
|
2919
|
+
Person.create!
|
|
2857
2920
|
end
|
|
2858
2921
|
|
|
2859
2922
|
let!(:post) do
|
|
2860
|
-
person.posts.create(title: "Testing")
|
|
2923
|
+
person.posts.create!(title: "Testing")
|
|
2861
2924
|
end
|
|
2862
2925
|
|
|
2863
2926
|
context "when the document exists" do
|
|
@@ -2926,11 +2989,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2926
2989
|
context "when the association is polymorphic" do
|
|
2927
2990
|
|
|
2928
2991
|
let(:movie) do
|
|
2929
|
-
Movie.create
|
|
2992
|
+
Movie.create!
|
|
2930
2993
|
end
|
|
2931
2994
|
|
|
2932
2995
|
let!(:rating) do
|
|
2933
|
-
movie.ratings.create(value: 1)
|
|
2996
|
+
movie.ratings.create!(value: 1)
|
|
2934
2997
|
end
|
|
2935
2998
|
|
|
2936
2999
|
context "when the document exists" do
|
|
@@ -2983,11 +3046,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2983
3046
|
context "when the association is not polymorphic" do
|
|
2984
3047
|
|
|
2985
3048
|
let(:person) do
|
|
2986
|
-
Person.create
|
|
3049
|
+
Person.create!
|
|
2987
3050
|
end
|
|
2988
3051
|
|
|
2989
3052
|
let!(:post) do
|
|
2990
|
-
person.posts.create(title: "Testing")
|
|
3053
|
+
person.posts.create!(title: "Testing")
|
|
2991
3054
|
end
|
|
2992
3055
|
|
|
2993
3056
|
context "when the document exists" do
|
|
@@ -3026,11 +3089,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3026
3089
|
context "when the association is polymorphic" do
|
|
3027
3090
|
|
|
3028
3091
|
let(:movie) do
|
|
3029
|
-
Movie.create
|
|
3092
|
+
Movie.create!
|
|
3030
3093
|
end
|
|
3031
3094
|
|
|
3032
3095
|
let!(:rating) do
|
|
3033
|
-
movie.ratings.create(value: 1)
|
|
3096
|
+
movie.ratings.create!(value: 1)
|
|
3034
3097
|
end
|
|
3035
3098
|
|
|
3036
3099
|
context "when the document exists" do
|
|
@@ -3120,15 +3183,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3120
3183
|
describe "#max" do
|
|
3121
3184
|
|
|
3122
3185
|
let(:person) do
|
|
3123
|
-
Person.create
|
|
3186
|
+
Person.create!
|
|
3124
3187
|
end
|
|
3125
3188
|
|
|
3126
3189
|
let(:post_one) do
|
|
3127
|
-
Post.create(rating: 5)
|
|
3190
|
+
Post.create!(rating: 5)
|
|
3128
3191
|
end
|
|
3129
3192
|
|
|
3130
3193
|
let(:post_two) do
|
|
3131
|
-
Post.create(rating: 10)
|
|
3194
|
+
Post.create!(rating: 10)
|
|
3132
3195
|
end
|
|
3133
3196
|
|
|
3134
3197
|
before do
|
|
@@ -3149,15 +3212,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3149
3212
|
describe "#max_by" do
|
|
3150
3213
|
|
|
3151
3214
|
let(:person) do
|
|
3152
|
-
Person.create
|
|
3215
|
+
Person.create!
|
|
3153
3216
|
end
|
|
3154
3217
|
|
|
3155
3218
|
let(:post_one) do
|
|
3156
|
-
Post.create(rating: 5)
|
|
3219
|
+
Post.create!(rating: 5)
|
|
3157
3220
|
end
|
|
3158
3221
|
|
|
3159
3222
|
let(:post_two) do
|
|
3160
|
-
Post.create(rating: 10)
|
|
3223
|
+
Post.create!(rating: 10)
|
|
3161
3224
|
end
|
|
3162
3225
|
|
|
3163
3226
|
before do
|
|
@@ -3176,15 +3239,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3176
3239
|
describe "#method_missing" do
|
|
3177
3240
|
|
|
3178
3241
|
let!(:person) do
|
|
3179
|
-
Person.create
|
|
3242
|
+
Person.create!
|
|
3180
3243
|
end
|
|
3181
3244
|
|
|
3182
3245
|
let!(:post_one) do
|
|
3183
|
-
person.posts.create(title: "First", content: "Posting")
|
|
3246
|
+
person.posts.create!(title: "First", content: "Posting")
|
|
3184
3247
|
end
|
|
3185
3248
|
|
|
3186
3249
|
let!(:post_two) do
|
|
3187
|
-
person.posts.create(title: "Second", content: "Testing")
|
|
3250
|
+
person.posts.create!(title: "Second", content: "Testing")
|
|
3188
3251
|
end
|
|
3189
3252
|
|
|
3190
3253
|
context "when providing a single criteria" do
|
|
@@ -3251,15 +3314,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3251
3314
|
describe "#min" do
|
|
3252
3315
|
|
|
3253
3316
|
let(:person) do
|
|
3254
|
-
Person.create
|
|
3317
|
+
Person.create!
|
|
3255
3318
|
end
|
|
3256
3319
|
|
|
3257
3320
|
let(:post_one) do
|
|
3258
|
-
Post.create(rating: 5)
|
|
3321
|
+
Post.create!(rating: 5)
|
|
3259
3322
|
end
|
|
3260
3323
|
|
|
3261
3324
|
let(:post_two) do
|
|
3262
|
-
Post.create(rating: 10)
|
|
3325
|
+
Post.create!(rating: 10)
|
|
3263
3326
|
end
|
|
3264
3327
|
|
|
3265
3328
|
before do
|
|
@@ -3280,15 +3343,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3280
3343
|
describe "#min_by" do
|
|
3281
3344
|
|
|
3282
3345
|
let(:person) do
|
|
3283
|
-
Person.create
|
|
3346
|
+
Person.create!
|
|
3284
3347
|
end
|
|
3285
3348
|
|
|
3286
3349
|
let(:post_one) do
|
|
3287
|
-
Post.create(rating: 5)
|
|
3350
|
+
Post.create!(rating: 5)
|
|
3288
3351
|
end
|
|
3289
3352
|
|
|
3290
3353
|
let(:post_two) do
|
|
3291
|
-
Post.create(rating: 10)
|
|
3354
|
+
Post.create!(rating: 10)
|
|
3292
3355
|
end
|
|
3293
3356
|
|
|
3294
3357
|
before do
|
|
@@ -3309,15 +3372,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3309
3372
|
context "when the inverse has not been loaded" do
|
|
3310
3373
|
|
|
3311
3374
|
let(:person) do
|
|
3312
|
-
Person.create
|
|
3375
|
+
Person.create!
|
|
3313
3376
|
end
|
|
3314
3377
|
|
|
3315
3378
|
let!(:post_one) do
|
|
3316
|
-
person.posts.create(title: "One")
|
|
3379
|
+
person.posts.create!(title: "One")
|
|
3317
3380
|
end
|
|
3318
3381
|
|
|
3319
3382
|
let!(:post_two) do
|
|
3320
|
-
person.posts.create(title: "Two")
|
|
3383
|
+
person.posts.create!(title: "Two")
|
|
3321
3384
|
end
|
|
3322
3385
|
|
|
3323
3386
|
let(:from_db) do
|
|
@@ -3346,15 +3409,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3346
3409
|
context "when the association is not polymorphic" do
|
|
3347
3410
|
|
|
3348
3411
|
let(:person) do
|
|
3349
|
-
Person.create
|
|
3412
|
+
Person.create!
|
|
3350
3413
|
end
|
|
3351
3414
|
|
|
3352
3415
|
let!(:post_one) do
|
|
3353
|
-
person.posts.create(title: "One")
|
|
3416
|
+
person.posts.create!(title: "One")
|
|
3354
3417
|
end
|
|
3355
3418
|
|
|
3356
3419
|
let!(:post_two) do
|
|
3357
|
-
person.posts.create(title: "Two")
|
|
3420
|
+
person.posts.create!(title: "Two")
|
|
3358
3421
|
end
|
|
3359
3422
|
|
|
3360
3423
|
before do
|
|
@@ -3392,15 +3455,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3392
3455
|
context "when the association is polymorphic" do
|
|
3393
3456
|
|
|
3394
3457
|
let(:movie) do
|
|
3395
|
-
Movie.create(title: "Oldboy")
|
|
3458
|
+
Movie.create!(title: "Oldboy")
|
|
3396
3459
|
end
|
|
3397
3460
|
|
|
3398
3461
|
let!(:rating_one) do
|
|
3399
|
-
movie.ratings.create(value: 10)
|
|
3462
|
+
movie.ratings.create!(value: 10)
|
|
3400
3463
|
end
|
|
3401
3464
|
|
|
3402
3465
|
let!(:rating_two) do
|
|
3403
|
-
movie.ratings.create(value: 9)
|
|
3466
|
+
movie.ratings.create!(value: 9)
|
|
3404
3467
|
end
|
|
3405
3468
|
|
|
3406
3469
|
before do
|
|
@@ -3486,13 +3549,13 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3486
3549
|
describe "##{method}" do
|
|
3487
3550
|
|
|
3488
3551
|
let(:movie) do
|
|
3489
|
-
Movie.create
|
|
3552
|
+
Movie.create!
|
|
3490
3553
|
end
|
|
3491
3554
|
|
|
3492
3555
|
context "when documents have been persisted" do
|
|
3493
3556
|
|
|
3494
3557
|
let!(:rating) do
|
|
3495
|
-
movie.ratings.create(value: 1)
|
|
3558
|
+
movie.ratings.create!(value: 1)
|
|
3496
3559
|
end
|
|
3497
3560
|
|
|
3498
3561
|
it "returns 1" do
|
|
@@ -3504,7 +3567,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3504
3567
|
|
|
3505
3568
|
before do
|
|
3506
3569
|
movie.ratings.build(value: 1)
|
|
3507
|
-
movie.ratings.create(value: 2)
|
|
3570
|
+
movie.ratings.create!(value: 2)
|
|
3508
3571
|
end
|
|
3509
3572
|
|
|
3510
3573
|
it "returns the total number of documents" do
|
|
@@ -3519,15 +3582,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3519
3582
|
context "when the association has no default scope" do
|
|
3520
3583
|
|
|
3521
3584
|
let!(:person) do
|
|
3522
|
-
Person.create
|
|
3585
|
+
Person.create!
|
|
3523
3586
|
end
|
|
3524
3587
|
|
|
3525
3588
|
let!(:post_one) do
|
|
3526
|
-
person.posts.create(title: "first")
|
|
3589
|
+
person.posts.create!(title: "first")
|
|
3527
3590
|
end
|
|
3528
3591
|
|
|
3529
3592
|
let!(:post_two) do
|
|
3530
|
-
Post.create(title: "second")
|
|
3593
|
+
Post.create!(title: "second")
|
|
3531
3594
|
end
|
|
3532
3595
|
|
|
3533
3596
|
let(:unscoped) do
|
|
@@ -3542,15 +3605,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3542
3605
|
context "when the association has a default scope" do
|
|
3543
3606
|
|
|
3544
3607
|
let!(:church) do
|
|
3545
|
-
Church.create
|
|
3608
|
+
Church.create!
|
|
3546
3609
|
end
|
|
3547
3610
|
|
|
3548
3611
|
let!(:acolyte_one) do
|
|
3549
|
-
church.acolytes.create(name: "first")
|
|
3612
|
+
church.acolytes.create!(name: "first")
|
|
3550
3613
|
end
|
|
3551
3614
|
|
|
3552
3615
|
let!(:acolyte_two) do
|
|
3553
|
-
Acolyte.create(name: "second")
|
|
3616
|
+
Acolyte.create!(name: "second")
|
|
3554
3617
|
end
|
|
3555
3618
|
|
|
3556
3619
|
let(:unscoped) do
|
|
@@ -3570,19 +3633,19 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3570
3633
|
context "when the association has an order defined" do
|
|
3571
3634
|
|
|
3572
3635
|
let(:person) do
|
|
3573
|
-
Person.create
|
|
3636
|
+
Person.create!
|
|
3574
3637
|
end
|
|
3575
3638
|
|
|
3576
3639
|
let(:post_one) do
|
|
3577
|
-
OrderedPost.create(rating: 10, title: '1')
|
|
3640
|
+
OrderedPost.create!(rating: 10, title: '1')
|
|
3578
3641
|
end
|
|
3579
3642
|
|
|
3580
3643
|
let(:post_two) do
|
|
3581
|
-
OrderedPost.create(rating: 20, title: '2')
|
|
3644
|
+
OrderedPost.create!(rating: 20, title: '2')
|
|
3582
3645
|
end
|
|
3583
3646
|
|
|
3584
3647
|
let(:post_three) do
|
|
3585
|
-
OrderedPost.create(rating: 20, title: '3')
|
|
3648
|
+
OrderedPost.create!(rating: 20, title: '3')
|
|
3586
3649
|
end
|
|
3587
3650
|
|
|
3588
3651
|
before do
|
|
@@ -3596,7 +3659,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3596
3659
|
)
|
|
3597
3660
|
end
|
|
3598
3661
|
|
|
3599
|
-
it "chaining order
|
|
3662
|
+
it "chaining order criteria" do
|
|
3600
3663
|
expect(person.ordered_posts.order_by(:title.desc).to_a).to eq(
|
|
3601
3664
|
[post_three, post_two, post_one]
|
|
3602
3665
|
)
|
|
@@ -3606,15 +3669,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3606
3669
|
context "when reloading the association" do
|
|
3607
3670
|
|
|
3608
3671
|
let!(:person) do
|
|
3609
|
-
Person.create
|
|
3672
|
+
Person.create!
|
|
3610
3673
|
end
|
|
3611
3674
|
|
|
3612
3675
|
let!(:post_one) do
|
|
3613
|
-
Post.create(title: "one")
|
|
3676
|
+
Post.create!(title: "one")
|
|
3614
3677
|
end
|
|
3615
3678
|
|
|
3616
3679
|
let!(:post_two) do
|
|
3617
|
-
Post.create(title: "two")
|
|
3680
|
+
Post.create!(title: "two")
|
|
3618
3681
|
end
|
|
3619
3682
|
|
|
3620
3683
|
before do
|
|
@@ -3660,7 +3723,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3660
3723
|
context "when the parent is using integer ids" do
|
|
3661
3724
|
|
|
3662
3725
|
let(:jar) do
|
|
3663
|
-
Jar.create do |doc|
|
|
3726
|
+
Jar.create! do |doc|
|
|
3664
3727
|
doc._id = 1
|
|
3665
3728
|
end
|
|
3666
3729
|
end
|
|
@@ -3773,8 +3836,8 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3773
3836
|
|
|
3774
3837
|
before do
|
|
3775
3838
|
artist.albums << album
|
|
3776
|
-
album.save
|
|
3777
|
-
artist.save
|
|
3839
|
+
album.save!
|
|
3840
|
+
artist.save!
|
|
3778
3841
|
expect(artist).not_to receive(:after_add_album)
|
|
3779
3842
|
end
|
|
3780
3843
|
|
|
@@ -3938,15 +4001,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3938
4001
|
context "when executing a criteria call on an ordered association" do
|
|
3939
4002
|
|
|
3940
4003
|
let(:person) do
|
|
3941
|
-
Person.create
|
|
4004
|
+
Person.create!
|
|
3942
4005
|
end
|
|
3943
4006
|
|
|
3944
4007
|
let!(:post_one) do
|
|
3945
|
-
person.ordered_posts.create(rating: 1)
|
|
4008
|
+
person.ordered_posts.create!(rating: 1)
|
|
3946
4009
|
end
|
|
3947
4010
|
|
|
3948
4011
|
let!(:post_two) do
|
|
3949
|
-
person.ordered_posts.create(rating: 5)
|
|
4012
|
+
person.ordered_posts.create!(rating: 5)
|
|
3950
4013
|
end
|
|
3951
4014
|
|
|
3952
4015
|
let(:criteria) do
|
|
@@ -3961,11 +4024,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3961
4024
|
context "when accessing a scope named open" do
|
|
3962
4025
|
|
|
3963
4026
|
let(:person) do
|
|
3964
|
-
Person.create
|
|
4027
|
+
Person.create!
|
|
3965
4028
|
end
|
|
3966
4029
|
|
|
3967
4030
|
let!(:post) do
|
|
3968
|
-
person.posts.create(title: "open")
|
|
4031
|
+
person.posts.create!(title: "open")
|
|
3969
4032
|
end
|
|
3970
4033
|
|
|
3971
4034
|
it "returns the appropriate documents" do
|
|
@@ -3976,11 +4039,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3976
4039
|
context "when accessing a association named parent" do
|
|
3977
4040
|
|
|
3978
4041
|
let!(:parent) do
|
|
3979
|
-
Odd.create(name: "odd parent")
|
|
4042
|
+
Odd.create!(name: "odd parent")
|
|
3980
4043
|
end
|
|
3981
4044
|
|
|
3982
4045
|
let(:child) do
|
|
3983
|
-
Even.create(parent_id: parent.id, name: "original even child")
|
|
4046
|
+
Even.create!(parent_id: parent.id, name: "original even child")
|
|
3984
4047
|
end
|
|
3985
4048
|
|
|
3986
4049
|
it "updates the child after accessing the parent" do
|
|
@@ -4017,7 +4080,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
4017
4080
|
end
|
|
4018
4081
|
|
|
4019
4082
|
it 'saves the document correctly' do
|
|
4020
|
-
expect(agent.save).to be(true)
|
|
4083
|
+
expect(agent.save!).to be(true)
|
|
4021
4084
|
end
|
|
4022
4085
|
end
|
|
4023
4086
|
|
|
@@ -4033,8 +4096,8 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
4033
4096
|
|
|
4034
4097
|
before do
|
|
4035
4098
|
agent.same_name = band
|
|
4036
|
-
agent.save
|
|
4037
|
-
band.save
|
|
4099
|
+
agent.save!
|
|
4100
|
+
band.save!
|
|
4038
4101
|
band.reload
|
|
4039
4102
|
end
|
|
4040
4103
|
|