mongoid 7.3.2 → 7.4.0
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 +2 -2
- data/lib/config/locales/en.yml +30 -16
- 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 +11 -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 +11 -63
- 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 +2 -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 +27 -44
- 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 +13 -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 +7 -27
- 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 +42 -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 +22 -69
- 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 +11 -7
- 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 +3 -53
- 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 +25 -0
- 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 +25 -0
- 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 +2 -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 +3 -28
- data/lib/mongoid/positional.rb +0 -5
- data/lib/mongoid/query_cache.rb +11 -34
- 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 +1 -6
- 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 +10 -7
- data/lib/mongoid/traversable.rb +64 -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/integration/app_spec.rb +0 -1
- data/spec/integration/associations/belongs_to_spec.rb +0 -1
- data/spec/integration/associations/embedded_dirty_spec.rb +29 -0
- data/spec/integration/associations/embedded_spec.rb +0 -1
- data/spec/integration/associations/embeds_many_spec.rb +139 -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 +141 -0
- 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 +16 -3
- data/spec/lite_spec_helper.rb +8 -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 +16 -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 +20 -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 +303 -125
- data/spec/mongoid/association/referenced/has_many/proxy_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_many/proxy_spec.rb +227 -164
- data/spec/mongoid/association/referenced/has_many_models.rb +35 -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 +6 -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 +9 -4
- data/spec/mongoid/clients/options_spec.rb +15 -10
- 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 +86 -9
- data/spec/mongoid/config/options_spec.rb +0 -1
- data/spec/mongoid/config_spec.rb +194 -17
- 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 +109 -71
- data/spec/mongoid/contextual/geo_near_spec.rb +18 -19
- 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 +11 -12
- 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 +546 -186
- 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 +32 -34
- 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 +31 -0
- 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 +0 -1
- 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 +43 -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 +56 -10
- data/spec/mongoid/relations/proxy_spec.rb +6 -7
- data/spec/mongoid/reloadable_spec.rb +209 -23
- data/spec/mongoid/scopable_spec.rb +65 -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 +33 -20
- data/spec/mongoid/touchable_spec_models.rb +2 -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/cluster_config.rb +6 -1
- data/spec/shared/lib/mrss/constraints.rb +23 -5
- data/spec/shared/lib/mrss/docker_runner.rb +1 -1
- data/spec/shared/lib/mrss/event_subscriber.rb +200 -0
- data/spec/shared/lib/mrss/lite_constraints.rb +8 -0
- data/spec/shared/lib/mrss/server_version_registry.rb +17 -12
- data/spec/shared/lib/mrss/session_registry.rb +69 -0
- data/spec/shared/lib/mrss/session_registry_legacy.rb +60 -0
- data/spec/shared/share/Dockerfile.erb +27 -10
- data/spec/shared/shlib/distro.sh +2 -1
- data/spec/shared/shlib/server.sh +85 -23
- data/spec/shared/shlib/set_env.sh +6 -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 +22 -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/audible_sound.rb +3 -0
- 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 +0 -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/shared/time.rb +0 -1
- data/spec/support/spec_config.rb +3 -1
- data.tar.gz.sig +0 -0
- metadata +642 -610
- metadata.gz.sig +0 -0
- data/lib/support/ruby_version.rb +0 -29
- data/spec/support/session_registry.rb +0 -50
|
@@ -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
|
|
@@ -1568,12 +1593,12 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
1568
1593
|
end
|
|
1569
1594
|
|
|
1570
1595
|
context 'when association is not loaded' do
|
|
1571
|
-
|
|
1572
|
-
|
|
1573
|
-
|
|
1574
|
-
end
|
|
1596
|
+
before do
|
|
1597
|
+
movie.ratings._loaded?.should be false
|
|
1598
|
+
end
|
|
1575
1599
|
|
|
1576
|
-
|
|
1600
|
+
it 'does not query the database because it knows about the added models' do
|
|
1601
|
+
expect_no_queries do
|
|
1577
1602
|
movie.ratings.any?.should be true
|
|
1578
1603
|
end
|
|
1579
1604
|
end
|
|
@@ -1581,7 +1606,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
1581
1606
|
|
|
1582
1607
|
context 'when association is loaded' do
|
|
1583
1608
|
it 'does not query database' do
|
|
1584
|
-
|
|
1609
|
+
expect_no_queries do
|
|
1585
1610
|
movie.ratings.any?.should be true
|
|
1586
1611
|
end
|
|
1587
1612
|
|
|
@@ -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,12 +2236,12 @@ 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
|
before do
|
|
2218
|
-
person.posts.create(title: "Testing")
|
|
2219
|
-
person.posts.create(title: "Test")
|
|
2243
|
+
person.posts.create!(title: "Testing")
|
|
2244
|
+
person.posts.create!(title: "Test")
|
|
2220
2245
|
end
|
|
2221
2246
|
|
|
2222
2247
|
it "removes the correct posts" do
|
|
@@ -2238,12 +2263,12 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2238
2263
|
context "when conditions are not provided" do
|
|
2239
2264
|
|
|
2240
2265
|
let(:person) do
|
|
2241
|
-
Person.create
|
|
2266
|
+
Person.create!
|
|
2242
2267
|
end
|
|
2243
2268
|
|
|
2244
2269
|
before do
|
|
2245
|
-
person.posts.create(title: "Testing")
|
|
2246
|
-
person.posts.create(title: "Test")
|
|
2270
|
+
person.posts.create!(title: "Testing")
|
|
2271
|
+
person.posts.create!(title: "Test")
|
|
2247
2272
|
end
|
|
2248
2273
|
|
|
2249
2274
|
it "removes the correct posts" do
|
|
@@ -2267,12 +2292,12 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2267
2292
|
context "when conditions are provided" do
|
|
2268
2293
|
|
|
2269
2294
|
let(:movie) do
|
|
2270
|
-
Movie.create(title: "Bladerunner")
|
|
2295
|
+
Movie.create!(title: "Bladerunner")
|
|
2271
2296
|
end
|
|
2272
2297
|
|
|
2273
2298
|
before do
|
|
2274
|
-
movie.ratings.create(value: 1)
|
|
2275
|
-
movie.ratings.create(value: 2)
|
|
2299
|
+
movie.ratings.create!(value: 1)
|
|
2300
|
+
movie.ratings.create!(value: 2)
|
|
2276
2301
|
end
|
|
2277
2302
|
|
|
2278
2303
|
it "removes the correct ratings" do
|
|
@@ -2293,12 +2318,12 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2293
2318
|
context "when conditions are not provided" do
|
|
2294
2319
|
|
|
2295
2320
|
let(:movie) do
|
|
2296
|
-
Movie.create(title: "Bladerunner")
|
|
2321
|
+
Movie.create!(title: "Bladerunner")
|
|
2297
2322
|
end
|
|
2298
2323
|
|
|
2299
2324
|
before do
|
|
2300
|
-
movie.ratings.create(value: 1)
|
|
2301
|
-
movie.ratings.create(value: 2)
|
|
2325
|
+
movie.ratings.create!(value: 1)
|
|
2326
|
+
movie.ratings.create!(value: 2)
|
|
2302
2327
|
end
|
|
2303
2328
|
|
|
2304
2329
|
it "removes the correct ratings" do
|
|
@@ -2329,13 +2354,13 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2329
2354
|
describe "#exists?" do
|
|
2330
2355
|
|
|
2331
2356
|
let!(:person) do
|
|
2332
|
-
Person.create
|
|
2357
|
+
Person.create!
|
|
2333
2358
|
end
|
|
2334
2359
|
|
|
2335
2360
|
context "when documents exist in the database" do
|
|
2336
2361
|
|
|
2337
2362
|
before do
|
|
2338
|
-
person.posts.create
|
|
2363
|
+
person.posts.create!
|
|
2339
2364
|
end
|
|
2340
2365
|
|
|
2341
2366
|
it "returns true" do
|
|
@@ -2466,15 +2491,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2466
2491
|
context "when the association is not polymorphic" do
|
|
2467
2492
|
|
|
2468
2493
|
let(:person) do
|
|
2469
|
-
Person.create
|
|
2494
|
+
Person.create!
|
|
2470
2495
|
end
|
|
2471
2496
|
|
|
2472
2497
|
let!(:post_one) do
|
|
2473
|
-
person.posts.create(title: "Test")
|
|
2498
|
+
person.posts.create!(title: "Test")
|
|
2474
2499
|
end
|
|
2475
2500
|
|
|
2476
2501
|
let!(:post_two) do
|
|
2477
|
-
person.posts.create(title: "OMG I has associations")
|
|
2502
|
+
person.posts.create!(title: "OMG I has associations")
|
|
2478
2503
|
end
|
|
2479
2504
|
|
|
2480
2505
|
context "when providing an id" do
|
|
@@ -2493,7 +2518,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2493
2518
|
context "when the id matches but is not scoped to the association" do
|
|
2494
2519
|
|
|
2495
2520
|
let(:post) do
|
|
2496
|
-
Post.create(title: "Unscoped")
|
|
2521
|
+
Post.create!(title: "Unscoped")
|
|
2497
2522
|
end
|
|
2498
2523
|
|
|
2499
2524
|
it "raises an error" do
|
|
@@ -2592,15 +2617,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2592
2617
|
context "when the association is polymorphic" do
|
|
2593
2618
|
|
|
2594
2619
|
let(:movie) do
|
|
2595
|
-
Movie.create
|
|
2620
|
+
Movie.create!
|
|
2596
2621
|
end
|
|
2597
2622
|
|
|
2598
2623
|
let!(:rating_one) do
|
|
2599
|
-
movie.ratings.create(value: 1)
|
|
2624
|
+
movie.ratings.create!(value: 1)
|
|
2600
2625
|
end
|
|
2601
2626
|
|
|
2602
2627
|
let!(:rating_two) do
|
|
2603
|
-
movie.ratings.create(value: 5)
|
|
2628
|
+
movie.ratings.create!(value: 5)
|
|
2604
2629
|
end
|
|
2605
2630
|
|
|
2606
2631
|
context "when providing an id" do
|
|
@@ -2709,6 +2734,44 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2709
2734
|
end
|
|
2710
2735
|
end
|
|
2711
2736
|
end
|
|
2737
|
+
|
|
2738
|
+
context "with block" do
|
|
2739
|
+
let!(:author) do
|
|
2740
|
+
Person.create!(title: 'Person')
|
|
2741
|
+
end
|
|
2742
|
+
|
|
2743
|
+
let!(:post_one) do
|
|
2744
|
+
author.posts.create!(title: 'post one')
|
|
2745
|
+
end
|
|
2746
|
+
|
|
2747
|
+
let!(:post_two) do
|
|
2748
|
+
author.posts.create!(title: 'post two')
|
|
2749
|
+
end
|
|
2750
|
+
|
|
2751
|
+
it "finds one" do
|
|
2752
|
+
expect(
|
|
2753
|
+
author.posts.find do |post|
|
|
2754
|
+
post.title == 'post one'
|
|
2755
|
+
end
|
|
2756
|
+
).to be_a(Post)
|
|
2757
|
+
end
|
|
2758
|
+
|
|
2759
|
+
it "returns first match of multiple" do
|
|
2760
|
+
expect(
|
|
2761
|
+
author.posts.find do |post|
|
|
2762
|
+
['post one', 'post two'].include?(post.title)
|
|
2763
|
+
end
|
|
2764
|
+
).to eq(post_one)
|
|
2765
|
+
end
|
|
2766
|
+
|
|
2767
|
+
it "returns nil when not found" do
|
|
2768
|
+
expect(
|
|
2769
|
+
author.posts.find do |post|
|
|
2770
|
+
post.title == 'non exiting one'
|
|
2771
|
+
end
|
|
2772
|
+
).to be_nil
|
|
2773
|
+
end
|
|
2774
|
+
end
|
|
2712
2775
|
end
|
|
2713
2776
|
|
|
2714
2777
|
describe "#find_or_create_by" do
|
|
@@ -2716,11 +2779,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2716
2779
|
context "when the association is not polymorphic" do
|
|
2717
2780
|
|
|
2718
2781
|
let(:person) do
|
|
2719
|
-
Person.create
|
|
2782
|
+
Person.create!
|
|
2720
2783
|
end
|
|
2721
2784
|
|
|
2722
2785
|
let!(:post) do
|
|
2723
|
-
person.posts.create(title: "Testing")
|
|
2786
|
+
person.posts.create!(title: "Testing")
|
|
2724
2787
|
end
|
|
2725
2788
|
|
|
2726
2789
|
context "when the document exists" do
|
|
@@ -2789,11 +2852,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2789
2852
|
context "when the association is polymorphic" do
|
|
2790
2853
|
|
|
2791
2854
|
let(:movie) do
|
|
2792
|
-
Movie.create
|
|
2855
|
+
Movie.create!
|
|
2793
2856
|
end
|
|
2794
2857
|
|
|
2795
2858
|
let!(:rating) do
|
|
2796
|
-
movie.ratings.create(value: 1)
|
|
2859
|
+
movie.ratings.create!(value: 1)
|
|
2797
2860
|
end
|
|
2798
2861
|
|
|
2799
2862
|
context "when the document exists" do
|
|
@@ -2837,11 +2900,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2837
2900
|
context "when the association is not polymorphic" do
|
|
2838
2901
|
|
|
2839
2902
|
let(:person) do
|
|
2840
|
-
Person.create
|
|
2903
|
+
Person.create!
|
|
2841
2904
|
end
|
|
2842
2905
|
|
|
2843
2906
|
let!(:post) do
|
|
2844
|
-
person.posts.create(title: "Testing")
|
|
2907
|
+
person.posts.create!(title: "Testing")
|
|
2845
2908
|
end
|
|
2846
2909
|
|
|
2847
2910
|
context "when the document exists" do
|
|
@@ -2910,11 +2973,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2910
2973
|
context "when the association is polymorphic" do
|
|
2911
2974
|
|
|
2912
2975
|
let(:movie) do
|
|
2913
|
-
Movie.create
|
|
2976
|
+
Movie.create!
|
|
2914
2977
|
end
|
|
2915
2978
|
|
|
2916
2979
|
let!(:rating) do
|
|
2917
|
-
movie.ratings.create(value: 1)
|
|
2980
|
+
movie.ratings.create!(value: 1)
|
|
2918
2981
|
end
|
|
2919
2982
|
|
|
2920
2983
|
context "when the document exists" do
|
|
@@ -2967,11 +3030,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2967
3030
|
context "when the association is not polymorphic" do
|
|
2968
3031
|
|
|
2969
3032
|
let(:person) do
|
|
2970
|
-
Person.create
|
|
3033
|
+
Person.create!
|
|
2971
3034
|
end
|
|
2972
3035
|
|
|
2973
3036
|
let!(:post) do
|
|
2974
|
-
person.posts.create(title: "Testing")
|
|
3037
|
+
person.posts.create!(title: "Testing")
|
|
2975
3038
|
end
|
|
2976
3039
|
|
|
2977
3040
|
context "when the document exists" do
|
|
@@ -3010,11 +3073,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3010
3073
|
context "when the association is polymorphic" do
|
|
3011
3074
|
|
|
3012
3075
|
let(:movie) do
|
|
3013
|
-
Movie.create
|
|
3076
|
+
Movie.create!
|
|
3014
3077
|
end
|
|
3015
3078
|
|
|
3016
3079
|
let!(:rating) do
|
|
3017
|
-
movie.ratings.create(value: 1)
|
|
3080
|
+
movie.ratings.create!(value: 1)
|
|
3018
3081
|
end
|
|
3019
3082
|
|
|
3020
3083
|
context "when the document exists" do
|
|
@@ -3104,15 +3167,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3104
3167
|
describe "#max" do
|
|
3105
3168
|
|
|
3106
3169
|
let(:person) do
|
|
3107
|
-
Person.create
|
|
3170
|
+
Person.create!
|
|
3108
3171
|
end
|
|
3109
3172
|
|
|
3110
3173
|
let(:post_one) do
|
|
3111
|
-
Post.create(rating: 5)
|
|
3174
|
+
Post.create!(rating: 5)
|
|
3112
3175
|
end
|
|
3113
3176
|
|
|
3114
3177
|
let(:post_two) do
|
|
3115
|
-
Post.create(rating: 10)
|
|
3178
|
+
Post.create!(rating: 10)
|
|
3116
3179
|
end
|
|
3117
3180
|
|
|
3118
3181
|
before do
|
|
@@ -3133,15 +3196,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3133
3196
|
describe "#max_by" do
|
|
3134
3197
|
|
|
3135
3198
|
let(:person) do
|
|
3136
|
-
Person.create
|
|
3199
|
+
Person.create!
|
|
3137
3200
|
end
|
|
3138
3201
|
|
|
3139
3202
|
let(:post_one) do
|
|
3140
|
-
Post.create(rating: 5)
|
|
3203
|
+
Post.create!(rating: 5)
|
|
3141
3204
|
end
|
|
3142
3205
|
|
|
3143
3206
|
let(:post_two) do
|
|
3144
|
-
Post.create(rating: 10)
|
|
3207
|
+
Post.create!(rating: 10)
|
|
3145
3208
|
end
|
|
3146
3209
|
|
|
3147
3210
|
before do
|
|
@@ -3160,15 +3223,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3160
3223
|
describe "#method_missing" do
|
|
3161
3224
|
|
|
3162
3225
|
let!(:person) do
|
|
3163
|
-
Person.create
|
|
3226
|
+
Person.create!
|
|
3164
3227
|
end
|
|
3165
3228
|
|
|
3166
3229
|
let!(:post_one) do
|
|
3167
|
-
person.posts.create(title: "First", content: "Posting")
|
|
3230
|
+
person.posts.create!(title: "First", content: "Posting")
|
|
3168
3231
|
end
|
|
3169
3232
|
|
|
3170
3233
|
let!(:post_two) do
|
|
3171
|
-
person.posts.create(title: "Second", content: "Testing")
|
|
3234
|
+
person.posts.create!(title: "Second", content: "Testing")
|
|
3172
3235
|
end
|
|
3173
3236
|
|
|
3174
3237
|
context "when providing a single criteria" do
|
|
@@ -3235,15 +3298,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3235
3298
|
describe "#min" do
|
|
3236
3299
|
|
|
3237
3300
|
let(:person) do
|
|
3238
|
-
Person.create
|
|
3301
|
+
Person.create!
|
|
3239
3302
|
end
|
|
3240
3303
|
|
|
3241
3304
|
let(:post_one) do
|
|
3242
|
-
Post.create(rating: 5)
|
|
3305
|
+
Post.create!(rating: 5)
|
|
3243
3306
|
end
|
|
3244
3307
|
|
|
3245
3308
|
let(:post_two) do
|
|
3246
|
-
Post.create(rating: 10)
|
|
3309
|
+
Post.create!(rating: 10)
|
|
3247
3310
|
end
|
|
3248
3311
|
|
|
3249
3312
|
before do
|
|
@@ -3264,15 +3327,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3264
3327
|
describe "#min_by" do
|
|
3265
3328
|
|
|
3266
3329
|
let(:person) do
|
|
3267
|
-
Person.create
|
|
3330
|
+
Person.create!
|
|
3268
3331
|
end
|
|
3269
3332
|
|
|
3270
3333
|
let(:post_one) do
|
|
3271
|
-
Post.create(rating: 5)
|
|
3334
|
+
Post.create!(rating: 5)
|
|
3272
3335
|
end
|
|
3273
3336
|
|
|
3274
3337
|
let(:post_two) do
|
|
3275
|
-
Post.create(rating: 10)
|
|
3338
|
+
Post.create!(rating: 10)
|
|
3276
3339
|
end
|
|
3277
3340
|
|
|
3278
3341
|
before do
|
|
@@ -3293,15 +3356,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3293
3356
|
context "when the inverse has not been loaded" do
|
|
3294
3357
|
|
|
3295
3358
|
let(:person) do
|
|
3296
|
-
Person.create
|
|
3359
|
+
Person.create!
|
|
3297
3360
|
end
|
|
3298
3361
|
|
|
3299
3362
|
let!(:post_one) do
|
|
3300
|
-
person.posts.create(title: "One")
|
|
3363
|
+
person.posts.create!(title: "One")
|
|
3301
3364
|
end
|
|
3302
3365
|
|
|
3303
3366
|
let!(:post_two) do
|
|
3304
|
-
person.posts.create(title: "Two")
|
|
3367
|
+
person.posts.create!(title: "Two")
|
|
3305
3368
|
end
|
|
3306
3369
|
|
|
3307
3370
|
let(:from_db) do
|
|
@@ -3330,15 +3393,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3330
3393
|
context "when the association is not polymorphic" do
|
|
3331
3394
|
|
|
3332
3395
|
let(:person) do
|
|
3333
|
-
Person.create
|
|
3396
|
+
Person.create!
|
|
3334
3397
|
end
|
|
3335
3398
|
|
|
3336
3399
|
let!(:post_one) do
|
|
3337
|
-
person.posts.create(title: "One")
|
|
3400
|
+
person.posts.create!(title: "One")
|
|
3338
3401
|
end
|
|
3339
3402
|
|
|
3340
3403
|
let!(:post_two) do
|
|
3341
|
-
person.posts.create(title: "Two")
|
|
3404
|
+
person.posts.create!(title: "Two")
|
|
3342
3405
|
end
|
|
3343
3406
|
|
|
3344
3407
|
before do
|
|
@@ -3376,15 +3439,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3376
3439
|
context "when the association is polymorphic" do
|
|
3377
3440
|
|
|
3378
3441
|
let(:movie) do
|
|
3379
|
-
Movie.create(title: "Oldboy")
|
|
3442
|
+
Movie.create!(title: "Oldboy")
|
|
3380
3443
|
end
|
|
3381
3444
|
|
|
3382
3445
|
let!(:rating_one) do
|
|
3383
|
-
movie.ratings.create(value: 10)
|
|
3446
|
+
movie.ratings.create!(value: 10)
|
|
3384
3447
|
end
|
|
3385
3448
|
|
|
3386
3449
|
let!(:rating_two) do
|
|
3387
|
-
movie.ratings.create(value: 9)
|
|
3450
|
+
movie.ratings.create!(value: 9)
|
|
3388
3451
|
end
|
|
3389
3452
|
|
|
3390
3453
|
before do
|
|
@@ -3470,13 +3533,13 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3470
3533
|
describe "##{method}" do
|
|
3471
3534
|
|
|
3472
3535
|
let(:movie) do
|
|
3473
|
-
Movie.create
|
|
3536
|
+
Movie.create!
|
|
3474
3537
|
end
|
|
3475
3538
|
|
|
3476
3539
|
context "when documents have been persisted" do
|
|
3477
3540
|
|
|
3478
3541
|
let!(:rating) do
|
|
3479
|
-
movie.ratings.create(value: 1)
|
|
3542
|
+
movie.ratings.create!(value: 1)
|
|
3480
3543
|
end
|
|
3481
3544
|
|
|
3482
3545
|
it "returns 1" do
|
|
@@ -3488,7 +3551,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3488
3551
|
|
|
3489
3552
|
before do
|
|
3490
3553
|
movie.ratings.build(value: 1)
|
|
3491
|
-
movie.ratings.create(value: 2)
|
|
3554
|
+
movie.ratings.create!(value: 2)
|
|
3492
3555
|
end
|
|
3493
3556
|
|
|
3494
3557
|
it "returns the total number of documents" do
|
|
@@ -3503,15 +3566,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3503
3566
|
context "when the association has no default scope" do
|
|
3504
3567
|
|
|
3505
3568
|
let!(:person) do
|
|
3506
|
-
Person.create
|
|
3569
|
+
Person.create!
|
|
3507
3570
|
end
|
|
3508
3571
|
|
|
3509
3572
|
let!(:post_one) do
|
|
3510
|
-
person.posts.create(title: "first")
|
|
3573
|
+
person.posts.create!(title: "first")
|
|
3511
3574
|
end
|
|
3512
3575
|
|
|
3513
3576
|
let!(:post_two) do
|
|
3514
|
-
Post.create(title: "second")
|
|
3577
|
+
Post.create!(title: "second")
|
|
3515
3578
|
end
|
|
3516
3579
|
|
|
3517
3580
|
let(:unscoped) do
|
|
@@ -3526,15 +3589,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3526
3589
|
context "when the association has a default scope" do
|
|
3527
3590
|
|
|
3528
3591
|
let!(:church) do
|
|
3529
|
-
Church.create
|
|
3592
|
+
Church.create!
|
|
3530
3593
|
end
|
|
3531
3594
|
|
|
3532
3595
|
let!(:acolyte_one) do
|
|
3533
|
-
church.acolytes.create(name: "first")
|
|
3596
|
+
church.acolytes.create!(name: "first")
|
|
3534
3597
|
end
|
|
3535
3598
|
|
|
3536
3599
|
let!(:acolyte_two) do
|
|
3537
|
-
Acolyte.create(name: "second")
|
|
3600
|
+
Acolyte.create!(name: "second")
|
|
3538
3601
|
end
|
|
3539
3602
|
|
|
3540
3603
|
let(:unscoped) do
|
|
@@ -3554,19 +3617,19 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3554
3617
|
context "when the association has an order defined" do
|
|
3555
3618
|
|
|
3556
3619
|
let(:person) do
|
|
3557
|
-
Person.create
|
|
3620
|
+
Person.create!
|
|
3558
3621
|
end
|
|
3559
3622
|
|
|
3560
3623
|
let(:post_one) do
|
|
3561
|
-
OrderedPost.create(rating: 10, title: '1')
|
|
3624
|
+
OrderedPost.create!(rating: 10, title: '1')
|
|
3562
3625
|
end
|
|
3563
3626
|
|
|
3564
3627
|
let(:post_two) do
|
|
3565
|
-
OrderedPost.create(rating: 20, title: '2')
|
|
3628
|
+
OrderedPost.create!(rating: 20, title: '2')
|
|
3566
3629
|
end
|
|
3567
3630
|
|
|
3568
3631
|
let(:post_three) do
|
|
3569
|
-
OrderedPost.create(rating: 20, title: '3')
|
|
3632
|
+
OrderedPost.create!(rating: 20, title: '3')
|
|
3570
3633
|
end
|
|
3571
3634
|
|
|
3572
3635
|
before do
|
|
@@ -3580,7 +3643,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3580
3643
|
)
|
|
3581
3644
|
end
|
|
3582
3645
|
|
|
3583
|
-
it "chaining order
|
|
3646
|
+
it "chaining order criteria" do
|
|
3584
3647
|
expect(person.ordered_posts.order_by(:title.desc).to_a).to eq(
|
|
3585
3648
|
[post_three, post_two, post_one]
|
|
3586
3649
|
)
|
|
@@ -3590,15 +3653,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3590
3653
|
context "when reloading the association" do
|
|
3591
3654
|
|
|
3592
3655
|
let!(:person) do
|
|
3593
|
-
Person.create
|
|
3656
|
+
Person.create!
|
|
3594
3657
|
end
|
|
3595
3658
|
|
|
3596
3659
|
let!(:post_one) do
|
|
3597
|
-
Post.create(title: "one")
|
|
3660
|
+
Post.create!(title: "one")
|
|
3598
3661
|
end
|
|
3599
3662
|
|
|
3600
3663
|
let!(:post_two) do
|
|
3601
|
-
Post.create(title: "two")
|
|
3664
|
+
Post.create!(title: "two")
|
|
3602
3665
|
end
|
|
3603
3666
|
|
|
3604
3667
|
before do
|
|
@@ -3644,7 +3707,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3644
3707
|
context "when the parent is using integer ids" do
|
|
3645
3708
|
|
|
3646
3709
|
let(:jar) do
|
|
3647
|
-
Jar.create do |doc|
|
|
3710
|
+
Jar.create! do |doc|
|
|
3648
3711
|
doc._id = 1
|
|
3649
3712
|
end
|
|
3650
3713
|
end
|
|
@@ -3757,8 +3820,8 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3757
3820
|
|
|
3758
3821
|
before do
|
|
3759
3822
|
artist.albums << album
|
|
3760
|
-
album.save
|
|
3761
|
-
artist.save
|
|
3823
|
+
album.save!
|
|
3824
|
+
artist.save!
|
|
3762
3825
|
expect(artist).not_to receive(:after_add_album)
|
|
3763
3826
|
end
|
|
3764
3827
|
|
|
@@ -3922,15 +3985,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3922
3985
|
context "when executing a criteria call on an ordered association" do
|
|
3923
3986
|
|
|
3924
3987
|
let(:person) do
|
|
3925
|
-
Person.create
|
|
3988
|
+
Person.create!
|
|
3926
3989
|
end
|
|
3927
3990
|
|
|
3928
3991
|
let!(:post_one) do
|
|
3929
|
-
person.ordered_posts.create(rating: 1)
|
|
3992
|
+
person.ordered_posts.create!(rating: 1)
|
|
3930
3993
|
end
|
|
3931
3994
|
|
|
3932
3995
|
let!(:post_two) do
|
|
3933
|
-
person.ordered_posts.create(rating: 5)
|
|
3996
|
+
person.ordered_posts.create!(rating: 5)
|
|
3934
3997
|
end
|
|
3935
3998
|
|
|
3936
3999
|
let(:criteria) do
|
|
@@ -3945,11 +4008,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3945
4008
|
context "when accessing a scope named open" do
|
|
3946
4009
|
|
|
3947
4010
|
let(:person) do
|
|
3948
|
-
Person.create
|
|
4011
|
+
Person.create!
|
|
3949
4012
|
end
|
|
3950
4013
|
|
|
3951
4014
|
let!(:post) do
|
|
3952
|
-
person.posts.create(title: "open")
|
|
4015
|
+
person.posts.create!(title: "open")
|
|
3953
4016
|
end
|
|
3954
4017
|
|
|
3955
4018
|
it "returns the appropriate documents" do
|
|
@@ -3960,11 +4023,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3960
4023
|
context "when accessing a association named parent" do
|
|
3961
4024
|
|
|
3962
4025
|
let!(:parent) do
|
|
3963
|
-
Odd.create(name: "odd parent")
|
|
4026
|
+
Odd.create!(name: "odd parent")
|
|
3964
4027
|
end
|
|
3965
4028
|
|
|
3966
4029
|
let(:child) do
|
|
3967
|
-
Even.create(parent_id: parent.id, name: "original even child")
|
|
4030
|
+
Even.create!(parent_id: parent.id, name: "original even child")
|
|
3968
4031
|
end
|
|
3969
4032
|
|
|
3970
4033
|
it "updates the child after accessing the parent" do
|
|
@@ -4001,7 +4064,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
4001
4064
|
end
|
|
4002
4065
|
|
|
4003
4066
|
it 'saves the document correctly' do
|
|
4004
|
-
expect(agent.save).to be(true)
|
|
4067
|
+
expect(agent.save!).to be(true)
|
|
4005
4068
|
end
|
|
4006
4069
|
end
|
|
4007
4070
|
|
|
@@ -4017,8 +4080,8 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
4017
4080
|
|
|
4018
4081
|
before do
|
|
4019
4082
|
agent.same_name = band
|
|
4020
|
-
agent.save
|
|
4021
|
-
band.save
|
|
4083
|
+
agent.save!
|
|
4084
|
+
band.save!
|
|
4022
4085
|
band.reload
|
|
4023
4086
|
end
|
|
4024
4087
|
|