mongoid 7.3.5 → 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 +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 +12 -59
- 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 +20 -63
- 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 -24
- 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 +5 -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 +1 -8
- 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 +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/config/templates/mongoid.yml +2 -7
- 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 +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 +0 -1
- 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 -156
- data/spec/mongoid/association/embedded/embeds_many_models.rb +0 -122
- 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 -162
- 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 +225 -178
- 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 +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 +0 -1
- 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 +0 -1
- data/spec/mongoid/config/options_spec.rb +0 -1
- data/spec/mongoid/config_spec.rb +105 -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 +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 +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 +2 -1
- data/spec/shared/lib/mrss/docker_runner.rb +1 -1
- data/spec/shared/lib/mrss/lite_constraints.rb +8 -0
- data/spec/shared/share/Dockerfile.erb +25 -9
- data/spec/shared/shlib/distro.sh +2 -1
- data/spec/shared/shlib/server.sh +16 -4
- 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/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 +25 -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,11 +2236,13 @@ 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
|
-
|
|
2218
|
-
|
|
2242
|
+
before do
|
|
2243
|
+
person.posts.create!(title: "Testing")
|
|
2244
|
+
person.posts.create!(title: "Test")
|
|
2245
|
+
end
|
|
2219
2246
|
|
|
2220
2247
|
it "removes the correct posts" do
|
|
2221
2248
|
person.posts.send(method, { title: "Testing" })
|
|
@@ -2231,22 +2258,17 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2231
2258
|
it "returns the number of documents deleted" do
|
|
2232
2259
|
expect(person.posts.send(method, { title: "Testing" })).to eq(1)
|
|
2233
2260
|
end
|
|
2234
|
-
|
|
2235
|
-
it "sets the association locally" do
|
|
2236
|
-
person.posts.send(method, { title: "Testing" })
|
|
2237
|
-
expect(person.posts).to eq([post2])
|
|
2238
|
-
end
|
|
2239
2261
|
end
|
|
2240
2262
|
|
|
2241
2263
|
context "when conditions are not provided" do
|
|
2242
2264
|
|
|
2243
2265
|
let(:person) do
|
|
2244
|
-
Person.create
|
|
2266
|
+
Person.create!
|
|
2245
2267
|
end
|
|
2246
2268
|
|
|
2247
2269
|
before do
|
|
2248
|
-
person.posts.create(title: "Testing")
|
|
2249
|
-
person.posts.create(title: "Test")
|
|
2270
|
+
person.posts.create!(title: "Testing")
|
|
2271
|
+
person.posts.create!(title: "Test")
|
|
2250
2272
|
end
|
|
2251
2273
|
|
|
2252
2274
|
it "removes the correct posts" do
|
|
@@ -2262,11 +2284,6 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2262
2284
|
it "returns the number of documents deleted" do
|
|
2263
2285
|
expect(person.posts.send(method)).to eq(2)
|
|
2264
2286
|
end
|
|
2265
|
-
|
|
2266
|
-
it "sets the association locally" do
|
|
2267
|
-
person.posts.send(method)
|
|
2268
|
-
expect(person.posts).to eq([])
|
|
2269
|
-
end
|
|
2270
2287
|
end
|
|
2271
2288
|
end
|
|
2272
2289
|
|
|
@@ -2275,11 +2292,13 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2275
2292
|
context "when conditions are provided" do
|
|
2276
2293
|
|
|
2277
2294
|
let(:movie) do
|
|
2278
|
-
Movie.create(title: "Bladerunner")
|
|
2295
|
+
Movie.create!(title: "Bladerunner")
|
|
2279
2296
|
end
|
|
2280
2297
|
|
|
2281
|
-
|
|
2282
|
-
|
|
2298
|
+
before do
|
|
2299
|
+
movie.ratings.create!(value: 1)
|
|
2300
|
+
movie.ratings.create!(value: 2)
|
|
2301
|
+
end
|
|
2283
2302
|
|
|
2284
2303
|
it "removes the correct ratings" do
|
|
2285
2304
|
movie.ratings.send(method, { value: 1 })
|
|
@@ -2294,22 +2313,17 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2294
2313
|
it "returns the number of documents deleted" do
|
|
2295
2314
|
expect(movie.ratings.send(method, { value: 1 })).to eq(1)
|
|
2296
2315
|
end
|
|
2297
|
-
|
|
2298
|
-
it "sets the association locally" do
|
|
2299
|
-
movie.ratings.send(method, { value: 1 })
|
|
2300
|
-
expect(movie.ratings).to eq([rating2])
|
|
2301
|
-
end
|
|
2302
2316
|
end
|
|
2303
2317
|
|
|
2304
2318
|
context "when conditions are not provided" do
|
|
2305
2319
|
|
|
2306
2320
|
let(:movie) do
|
|
2307
|
-
Movie.create(title: "Bladerunner")
|
|
2321
|
+
Movie.create!(title: "Bladerunner")
|
|
2308
2322
|
end
|
|
2309
2323
|
|
|
2310
2324
|
before do
|
|
2311
|
-
movie.ratings.create(value: 1)
|
|
2312
|
-
movie.ratings.create(value: 2)
|
|
2325
|
+
movie.ratings.create!(value: 1)
|
|
2326
|
+
movie.ratings.create!(value: 2)
|
|
2313
2327
|
end
|
|
2314
2328
|
|
|
2315
2329
|
it "removes the correct ratings" do
|
|
@@ -2325,11 +2339,6 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2325
2339
|
it "returns the number of documents deleted" do
|
|
2326
2340
|
expect(movie.ratings.send(method)).to eq(2)
|
|
2327
2341
|
end
|
|
2328
|
-
|
|
2329
|
-
it "sets the association locally" do
|
|
2330
|
-
movie.ratings.send(method)
|
|
2331
|
-
expect(movie.ratings).to eq([])
|
|
2332
|
-
end
|
|
2333
2342
|
end
|
|
2334
2343
|
end
|
|
2335
2344
|
end
|
|
@@ -2345,13 +2354,13 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2345
2354
|
describe "#exists?" do
|
|
2346
2355
|
|
|
2347
2356
|
let!(:person) do
|
|
2348
|
-
Person.create
|
|
2357
|
+
Person.create!
|
|
2349
2358
|
end
|
|
2350
2359
|
|
|
2351
2360
|
context "when documents exist in the database" do
|
|
2352
2361
|
|
|
2353
2362
|
before do
|
|
2354
|
-
person.posts.create
|
|
2363
|
+
person.posts.create!
|
|
2355
2364
|
end
|
|
2356
2365
|
|
|
2357
2366
|
it "returns true" do
|
|
@@ -2482,15 +2491,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2482
2491
|
context "when the association is not polymorphic" do
|
|
2483
2492
|
|
|
2484
2493
|
let(:person) do
|
|
2485
|
-
Person.create
|
|
2494
|
+
Person.create!
|
|
2486
2495
|
end
|
|
2487
2496
|
|
|
2488
2497
|
let!(:post_one) do
|
|
2489
|
-
person.posts.create(title: "Test")
|
|
2498
|
+
person.posts.create!(title: "Test")
|
|
2490
2499
|
end
|
|
2491
2500
|
|
|
2492
2501
|
let!(:post_two) do
|
|
2493
|
-
person.posts.create(title: "OMG I has associations")
|
|
2502
|
+
person.posts.create!(title: "OMG I has associations")
|
|
2494
2503
|
end
|
|
2495
2504
|
|
|
2496
2505
|
context "when providing an id" do
|
|
@@ -2509,7 +2518,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2509
2518
|
context "when the id matches but is not scoped to the association" do
|
|
2510
2519
|
|
|
2511
2520
|
let(:post) do
|
|
2512
|
-
Post.create(title: "Unscoped")
|
|
2521
|
+
Post.create!(title: "Unscoped")
|
|
2513
2522
|
end
|
|
2514
2523
|
|
|
2515
2524
|
it "raises an error" do
|
|
@@ -2608,15 +2617,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2608
2617
|
context "when the association is polymorphic" do
|
|
2609
2618
|
|
|
2610
2619
|
let(:movie) do
|
|
2611
|
-
Movie.create
|
|
2620
|
+
Movie.create!
|
|
2612
2621
|
end
|
|
2613
2622
|
|
|
2614
2623
|
let!(:rating_one) do
|
|
2615
|
-
movie.ratings.create(value: 1)
|
|
2624
|
+
movie.ratings.create!(value: 1)
|
|
2616
2625
|
end
|
|
2617
2626
|
|
|
2618
2627
|
let!(:rating_two) do
|
|
2619
|
-
movie.ratings.create(value: 5)
|
|
2628
|
+
movie.ratings.create!(value: 5)
|
|
2620
2629
|
end
|
|
2621
2630
|
|
|
2622
2631
|
context "when providing an id" do
|
|
@@ -2725,6 +2734,44 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2725
2734
|
end
|
|
2726
2735
|
end
|
|
2727
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
|
|
2728
2775
|
end
|
|
2729
2776
|
|
|
2730
2777
|
describe "#find_or_create_by" do
|
|
@@ -2732,11 +2779,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2732
2779
|
context "when the association is not polymorphic" do
|
|
2733
2780
|
|
|
2734
2781
|
let(:person) do
|
|
2735
|
-
Person.create
|
|
2782
|
+
Person.create!
|
|
2736
2783
|
end
|
|
2737
2784
|
|
|
2738
2785
|
let!(:post) do
|
|
2739
|
-
person.posts.create(title: "Testing")
|
|
2786
|
+
person.posts.create!(title: "Testing")
|
|
2740
2787
|
end
|
|
2741
2788
|
|
|
2742
2789
|
context "when the document exists" do
|
|
@@ -2805,11 +2852,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2805
2852
|
context "when the association is polymorphic" do
|
|
2806
2853
|
|
|
2807
2854
|
let(:movie) do
|
|
2808
|
-
Movie.create
|
|
2855
|
+
Movie.create!
|
|
2809
2856
|
end
|
|
2810
2857
|
|
|
2811
2858
|
let!(:rating) do
|
|
2812
|
-
movie.ratings.create(value: 1)
|
|
2859
|
+
movie.ratings.create!(value: 1)
|
|
2813
2860
|
end
|
|
2814
2861
|
|
|
2815
2862
|
context "when the document exists" do
|
|
@@ -2853,11 +2900,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2853
2900
|
context "when the association is not polymorphic" do
|
|
2854
2901
|
|
|
2855
2902
|
let(:person) do
|
|
2856
|
-
Person.create
|
|
2903
|
+
Person.create!
|
|
2857
2904
|
end
|
|
2858
2905
|
|
|
2859
2906
|
let!(:post) do
|
|
2860
|
-
person.posts.create(title: "Testing")
|
|
2907
|
+
person.posts.create!(title: "Testing")
|
|
2861
2908
|
end
|
|
2862
2909
|
|
|
2863
2910
|
context "when the document exists" do
|
|
@@ -2926,11 +2973,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2926
2973
|
context "when the association is polymorphic" do
|
|
2927
2974
|
|
|
2928
2975
|
let(:movie) do
|
|
2929
|
-
Movie.create
|
|
2976
|
+
Movie.create!
|
|
2930
2977
|
end
|
|
2931
2978
|
|
|
2932
2979
|
let!(:rating) do
|
|
2933
|
-
movie.ratings.create(value: 1)
|
|
2980
|
+
movie.ratings.create!(value: 1)
|
|
2934
2981
|
end
|
|
2935
2982
|
|
|
2936
2983
|
context "when the document exists" do
|
|
@@ -2983,11 +3030,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2983
3030
|
context "when the association is not polymorphic" do
|
|
2984
3031
|
|
|
2985
3032
|
let(:person) do
|
|
2986
|
-
Person.create
|
|
3033
|
+
Person.create!
|
|
2987
3034
|
end
|
|
2988
3035
|
|
|
2989
3036
|
let!(:post) do
|
|
2990
|
-
person.posts.create(title: "Testing")
|
|
3037
|
+
person.posts.create!(title: "Testing")
|
|
2991
3038
|
end
|
|
2992
3039
|
|
|
2993
3040
|
context "when the document exists" do
|
|
@@ -3026,11 +3073,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3026
3073
|
context "when the association is polymorphic" do
|
|
3027
3074
|
|
|
3028
3075
|
let(:movie) do
|
|
3029
|
-
Movie.create
|
|
3076
|
+
Movie.create!
|
|
3030
3077
|
end
|
|
3031
3078
|
|
|
3032
3079
|
let!(:rating) do
|
|
3033
|
-
movie.ratings.create(value: 1)
|
|
3080
|
+
movie.ratings.create!(value: 1)
|
|
3034
3081
|
end
|
|
3035
3082
|
|
|
3036
3083
|
context "when the document exists" do
|
|
@@ -3120,15 +3167,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3120
3167
|
describe "#max" do
|
|
3121
3168
|
|
|
3122
3169
|
let(:person) do
|
|
3123
|
-
Person.create
|
|
3170
|
+
Person.create!
|
|
3124
3171
|
end
|
|
3125
3172
|
|
|
3126
3173
|
let(:post_one) do
|
|
3127
|
-
Post.create(rating: 5)
|
|
3174
|
+
Post.create!(rating: 5)
|
|
3128
3175
|
end
|
|
3129
3176
|
|
|
3130
3177
|
let(:post_two) do
|
|
3131
|
-
Post.create(rating: 10)
|
|
3178
|
+
Post.create!(rating: 10)
|
|
3132
3179
|
end
|
|
3133
3180
|
|
|
3134
3181
|
before do
|
|
@@ -3149,15 +3196,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3149
3196
|
describe "#max_by" do
|
|
3150
3197
|
|
|
3151
3198
|
let(:person) do
|
|
3152
|
-
Person.create
|
|
3199
|
+
Person.create!
|
|
3153
3200
|
end
|
|
3154
3201
|
|
|
3155
3202
|
let(:post_one) do
|
|
3156
|
-
Post.create(rating: 5)
|
|
3203
|
+
Post.create!(rating: 5)
|
|
3157
3204
|
end
|
|
3158
3205
|
|
|
3159
3206
|
let(:post_two) do
|
|
3160
|
-
Post.create(rating: 10)
|
|
3207
|
+
Post.create!(rating: 10)
|
|
3161
3208
|
end
|
|
3162
3209
|
|
|
3163
3210
|
before do
|
|
@@ -3176,15 +3223,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3176
3223
|
describe "#method_missing" do
|
|
3177
3224
|
|
|
3178
3225
|
let!(:person) do
|
|
3179
|
-
Person.create
|
|
3226
|
+
Person.create!
|
|
3180
3227
|
end
|
|
3181
3228
|
|
|
3182
3229
|
let!(:post_one) do
|
|
3183
|
-
person.posts.create(title: "First", content: "Posting")
|
|
3230
|
+
person.posts.create!(title: "First", content: "Posting")
|
|
3184
3231
|
end
|
|
3185
3232
|
|
|
3186
3233
|
let!(:post_two) do
|
|
3187
|
-
person.posts.create(title: "Second", content: "Testing")
|
|
3234
|
+
person.posts.create!(title: "Second", content: "Testing")
|
|
3188
3235
|
end
|
|
3189
3236
|
|
|
3190
3237
|
context "when providing a single criteria" do
|
|
@@ -3251,15 +3298,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3251
3298
|
describe "#min" do
|
|
3252
3299
|
|
|
3253
3300
|
let(:person) do
|
|
3254
|
-
Person.create
|
|
3301
|
+
Person.create!
|
|
3255
3302
|
end
|
|
3256
3303
|
|
|
3257
3304
|
let(:post_one) do
|
|
3258
|
-
Post.create(rating: 5)
|
|
3305
|
+
Post.create!(rating: 5)
|
|
3259
3306
|
end
|
|
3260
3307
|
|
|
3261
3308
|
let(:post_two) do
|
|
3262
|
-
Post.create(rating: 10)
|
|
3309
|
+
Post.create!(rating: 10)
|
|
3263
3310
|
end
|
|
3264
3311
|
|
|
3265
3312
|
before do
|
|
@@ -3280,15 +3327,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3280
3327
|
describe "#min_by" do
|
|
3281
3328
|
|
|
3282
3329
|
let(:person) do
|
|
3283
|
-
Person.create
|
|
3330
|
+
Person.create!
|
|
3284
3331
|
end
|
|
3285
3332
|
|
|
3286
3333
|
let(:post_one) do
|
|
3287
|
-
Post.create(rating: 5)
|
|
3334
|
+
Post.create!(rating: 5)
|
|
3288
3335
|
end
|
|
3289
3336
|
|
|
3290
3337
|
let(:post_two) do
|
|
3291
|
-
Post.create(rating: 10)
|
|
3338
|
+
Post.create!(rating: 10)
|
|
3292
3339
|
end
|
|
3293
3340
|
|
|
3294
3341
|
before do
|
|
@@ -3309,15 +3356,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3309
3356
|
context "when the inverse has not been loaded" do
|
|
3310
3357
|
|
|
3311
3358
|
let(:person) do
|
|
3312
|
-
Person.create
|
|
3359
|
+
Person.create!
|
|
3313
3360
|
end
|
|
3314
3361
|
|
|
3315
3362
|
let!(:post_one) do
|
|
3316
|
-
person.posts.create(title: "One")
|
|
3363
|
+
person.posts.create!(title: "One")
|
|
3317
3364
|
end
|
|
3318
3365
|
|
|
3319
3366
|
let!(:post_two) do
|
|
3320
|
-
person.posts.create(title: "Two")
|
|
3367
|
+
person.posts.create!(title: "Two")
|
|
3321
3368
|
end
|
|
3322
3369
|
|
|
3323
3370
|
let(:from_db) do
|
|
@@ -3346,15 +3393,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3346
3393
|
context "when the association is not polymorphic" do
|
|
3347
3394
|
|
|
3348
3395
|
let(:person) do
|
|
3349
|
-
Person.create
|
|
3396
|
+
Person.create!
|
|
3350
3397
|
end
|
|
3351
3398
|
|
|
3352
3399
|
let!(:post_one) do
|
|
3353
|
-
person.posts.create(title: "One")
|
|
3400
|
+
person.posts.create!(title: "One")
|
|
3354
3401
|
end
|
|
3355
3402
|
|
|
3356
3403
|
let!(:post_two) do
|
|
3357
|
-
person.posts.create(title: "Two")
|
|
3404
|
+
person.posts.create!(title: "Two")
|
|
3358
3405
|
end
|
|
3359
3406
|
|
|
3360
3407
|
before do
|
|
@@ -3392,15 +3439,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3392
3439
|
context "when the association is polymorphic" do
|
|
3393
3440
|
|
|
3394
3441
|
let(:movie) do
|
|
3395
|
-
Movie.create(title: "Oldboy")
|
|
3442
|
+
Movie.create!(title: "Oldboy")
|
|
3396
3443
|
end
|
|
3397
3444
|
|
|
3398
3445
|
let!(:rating_one) do
|
|
3399
|
-
movie.ratings.create(value: 10)
|
|
3446
|
+
movie.ratings.create!(value: 10)
|
|
3400
3447
|
end
|
|
3401
3448
|
|
|
3402
3449
|
let!(:rating_two) do
|
|
3403
|
-
movie.ratings.create(value: 9)
|
|
3450
|
+
movie.ratings.create!(value: 9)
|
|
3404
3451
|
end
|
|
3405
3452
|
|
|
3406
3453
|
before do
|
|
@@ -3486,13 +3533,13 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3486
3533
|
describe "##{method}" do
|
|
3487
3534
|
|
|
3488
3535
|
let(:movie) do
|
|
3489
|
-
Movie.create
|
|
3536
|
+
Movie.create!
|
|
3490
3537
|
end
|
|
3491
3538
|
|
|
3492
3539
|
context "when documents have been persisted" do
|
|
3493
3540
|
|
|
3494
3541
|
let!(:rating) do
|
|
3495
|
-
movie.ratings.create(value: 1)
|
|
3542
|
+
movie.ratings.create!(value: 1)
|
|
3496
3543
|
end
|
|
3497
3544
|
|
|
3498
3545
|
it "returns 1" do
|
|
@@ -3504,7 +3551,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3504
3551
|
|
|
3505
3552
|
before do
|
|
3506
3553
|
movie.ratings.build(value: 1)
|
|
3507
|
-
movie.ratings.create(value: 2)
|
|
3554
|
+
movie.ratings.create!(value: 2)
|
|
3508
3555
|
end
|
|
3509
3556
|
|
|
3510
3557
|
it "returns the total number of documents" do
|
|
@@ -3519,15 +3566,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3519
3566
|
context "when the association has no default scope" do
|
|
3520
3567
|
|
|
3521
3568
|
let!(:person) do
|
|
3522
|
-
Person.create
|
|
3569
|
+
Person.create!
|
|
3523
3570
|
end
|
|
3524
3571
|
|
|
3525
3572
|
let!(:post_one) do
|
|
3526
|
-
person.posts.create(title: "first")
|
|
3573
|
+
person.posts.create!(title: "first")
|
|
3527
3574
|
end
|
|
3528
3575
|
|
|
3529
3576
|
let!(:post_two) do
|
|
3530
|
-
Post.create(title: "second")
|
|
3577
|
+
Post.create!(title: "second")
|
|
3531
3578
|
end
|
|
3532
3579
|
|
|
3533
3580
|
let(:unscoped) do
|
|
@@ -3542,15 +3589,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3542
3589
|
context "when the association has a default scope" do
|
|
3543
3590
|
|
|
3544
3591
|
let!(:church) do
|
|
3545
|
-
Church.create
|
|
3592
|
+
Church.create!
|
|
3546
3593
|
end
|
|
3547
3594
|
|
|
3548
3595
|
let!(:acolyte_one) do
|
|
3549
|
-
church.acolytes.create(name: "first")
|
|
3596
|
+
church.acolytes.create!(name: "first")
|
|
3550
3597
|
end
|
|
3551
3598
|
|
|
3552
3599
|
let!(:acolyte_two) do
|
|
3553
|
-
Acolyte.create(name: "second")
|
|
3600
|
+
Acolyte.create!(name: "second")
|
|
3554
3601
|
end
|
|
3555
3602
|
|
|
3556
3603
|
let(:unscoped) do
|
|
@@ -3570,19 +3617,19 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3570
3617
|
context "when the association has an order defined" do
|
|
3571
3618
|
|
|
3572
3619
|
let(:person) do
|
|
3573
|
-
Person.create
|
|
3620
|
+
Person.create!
|
|
3574
3621
|
end
|
|
3575
3622
|
|
|
3576
3623
|
let(:post_one) do
|
|
3577
|
-
OrderedPost.create(rating: 10, title: '1')
|
|
3624
|
+
OrderedPost.create!(rating: 10, title: '1')
|
|
3578
3625
|
end
|
|
3579
3626
|
|
|
3580
3627
|
let(:post_two) do
|
|
3581
|
-
OrderedPost.create(rating: 20, title: '2')
|
|
3628
|
+
OrderedPost.create!(rating: 20, title: '2')
|
|
3582
3629
|
end
|
|
3583
3630
|
|
|
3584
3631
|
let(:post_three) do
|
|
3585
|
-
OrderedPost.create(rating: 20, title: '3')
|
|
3632
|
+
OrderedPost.create!(rating: 20, title: '3')
|
|
3586
3633
|
end
|
|
3587
3634
|
|
|
3588
3635
|
before do
|
|
@@ -3596,7 +3643,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3596
3643
|
)
|
|
3597
3644
|
end
|
|
3598
3645
|
|
|
3599
|
-
it "chaining order
|
|
3646
|
+
it "chaining order criteria" do
|
|
3600
3647
|
expect(person.ordered_posts.order_by(:title.desc).to_a).to eq(
|
|
3601
3648
|
[post_three, post_two, post_one]
|
|
3602
3649
|
)
|
|
@@ -3606,15 +3653,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3606
3653
|
context "when reloading the association" do
|
|
3607
3654
|
|
|
3608
3655
|
let!(:person) do
|
|
3609
|
-
Person.create
|
|
3656
|
+
Person.create!
|
|
3610
3657
|
end
|
|
3611
3658
|
|
|
3612
3659
|
let!(:post_one) do
|
|
3613
|
-
Post.create(title: "one")
|
|
3660
|
+
Post.create!(title: "one")
|
|
3614
3661
|
end
|
|
3615
3662
|
|
|
3616
3663
|
let!(:post_two) do
|
|
3617
|
-
Post.create(title: "two")
|
|
3664
|
+
Post.create!(title: "two")
|
|
3618
3665
|
end
|
|
3619
3666
|
|
|
3620
3667
|
before do
|
|
@@ -3660,7 +3707,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3660
3707
|
context "when the parent is using integer ids" do
|
|
3661
3708
|
|
|
3662
3709
|
let(:jar) do
|
|
3663
|
-
Jar.create do |doc|
|
|
3710
|
+
Jar.create! do |doc|
|
|
3664
3711
|
doc._id = 1
|
|
3665
3712
|
end
|
|
3666
3713
|
end
|
|
@@ -3773,8 +3820,8 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3773
3820
|
|
|
3774
3821
|
before do
|
|
3775
3822
|
artist.albums << album
|
|
3776
|
-
album.save
|
|
3777
|
-
artist.save
|
|
3823
|
+
album.save!
|
|
3824
|
+
artist.save!
|
|
3778
3825
|
expect(artist).not_to receive(:after_add_album)
|
|
3779
3826
|
end
|
|
3780
3827
|
|
|
@@ -3938,15 +3985,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3938
3985
|
context "when executing a criteria call on an ordered association" do
|
|
3939
3986
|
|
|
3940
3987
|
let(:person) do
|
|
3941
|
-
Person.create
|
|
3988
|
+
Person.create!
|
|
3942
3989
|
end
|
|
3943
3990
|
|
|
3944
3991
|
let!(:post_one) do
|
|
3945
|
-
person.ordered_posts.create(rating: 1)
|
|
3992
|
+
person.ordered_posts.create!(rating: 1)
|
|
3946
3993
|
end
|
|
3947
3994
|
|
|
3948
3995
|
let!(:post_two) do
|
|
3949
|
-
person.ordered_posts.create(rating: 5)
|
|
3996
|
+
person.ordered_posts.create!(rating: 5)
|
|
3950
3997
|
end
|
|
3951
3998
|
|
|
3952
3999
|
let(:criteria) do
|
|
@@ -3961,11 +4008,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3961
4008
|
context "when accessing a scope named open" do
|
|
3962
4009
|
|
|
3963
4010
|
let(:person) do
|
|
3964
|
-
Person.create
|
|
4011
|
+
Person.create!
|
|
3965
4012
|
end
|
|
3966
4013
|
|
|
3967
4014
|
let!(:post) do
|
|
3968
|
-
person.posts.create(title: "open")
|
|
4015
|
+
person.posts.create!(title: "open")
|
|
3969
4016
|
end
|
|
3970
4017
|
|
|
3971
4018
|
it "returns the appropriate documents" do
|
|
@@ -3976,11 +4023,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3976
4023
|
context "when accessing a association named parent" do
|
|
3977
4024
|
|
|
3978
4025
|
let!(:parent) do
|
|
3979
|
-
Odd.create(name: "odd parent")
|
|
4026
|
+
Odd.create!(name: "odd parent")
|
|
3980
4027
|
end
|
|
3981
4028
|
|
|
3982
4029
|
let(:child) do
|
|
3983
|
-
Even.create(parent_id: parent.id, name: "original even child")
|
|
4030
|
+
Even.create!(parent_id: parent.id, name: "original even child")
|
|
3984
4031
|
end
|
|
3985
4032
|
|
|
3986
4033
|
it "updates the child after accessing the parent" do
|
|
@@ -4017,7 +4064,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
4017
4064
|
end
|
|
4018
4065
|
|
|
4019
4066
|
it 'saves the document correctly' do
|
|
4020
|
-
expect(agent.save).to be(true)
|
|
4067
|
+
expect(agent.save!).to be(true)
|
|
4021
4068
|
end
|
|
4022
4069
|
end
|
|
4023
4070
|
|
|
@@ -4033,8 +4080,8 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
4033
4080
|
|
|
4034
4081
|
before do
|
|
4035
4082
|
agent.same_name = band
|
|
4036
|
-
agent.save
|
|
4037
|
-
band.save
|
|
4083
|
+
agent.save!
|
|
4084
|
+
band.save!
|
|
4038
4085
|
band.reload
|
|
4039
4086
|
end
|
|
4040
4087
|
|