mongoid 7.3.4 → 7.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +17 -17
- data/README.md +3 -3
- data/lib/config/locales/en.yml +21 -20
- data/lib/mongoid/association/accessors.rb +0 -27
- data/lib/mongoid/association/bindable.rb +0 -21
- data/lib/mongoid/association/builders.rb +0 -9
- data/lib/mongoid/association/constrainable.rb +0 -3
- data/lib/mongoid/association/depending.rb +0 -7
- data/lib/mongoid/association/eager_loadable.rb +0 -3
- data/lib/mongoid/association/embedded/batchable.rb +29 -42
- 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 +19 -5
- data/lib/mongoid/atomic/paths/embedded/one.rb +0 -5
- data/lib/mongoid/atomic/paths/embedded.rb +0 -3
- data/lib/mongoid/atomic/paths/root.rb +0 -5
- data/lib/mongoid/atomic/paths.rb +0 -1
- data/lib/mongoid/atomic.rb +1 -42
- data/lib/mongoid/attributes/dynamic.rb +0 -17
- data/lib/mongoid/attributes/nested.rb +0 -5
- data/lib/mongoid/attributes/processing.rb +1 -18
- data/lib/mongoid/attributes/projector.rb +0 -1
- data/lib/mongoid/attributes/readonly.rb +0 -5
- data/lib/mongoid/attributes.rb +0 -33
- data/lib/mongoid/cacheable.rb +1 -6
- data/lib/mongoid/changeable.rb +3 -59
- data/lib/mongoid/clients/factory.rb +0 -7
- data/lib/mongoid/clients/options.rb +0 -5
- data/lib/mongoid/clients/sessions.rb +0 -7
- data/lib/mongoid/clients/storage_options.rb +0 -7
- data/lib/mongoid/clients/validators/storage.rb +0 -9
- data/lib/mongoid/clients/validators.rb +0 -1
- data/lib/mongoid/clients.rb +0 -9
- data/lib/mongoid/composable.rb +0 -7
- data/lib/mongoid/config/environment.rb +21 -6
- data/lib/mongoid/config/options.rb +0 -11
- data/lib/mongoid/config/validators/client.rb +0 -17
- data/lib/mongoid/config/validators/option.rb +0 -3
- data/lib/mongoid/config/validators.rb +0 -1
- data/lib/mongoid/config.rb +37 -29
- data/lib/mongoid/contextual/aggregable/memory.rb +14 -11
- data/lib/mongoid/contextual/aggregable/mongo.rb +15 -20
- data/lib/mongoid/contextual/aggregable/none.rb +65 -0
- data/lib/mongoid/contextual/aggregable.rb +17 -0
- data/lib/mongoid/contextual/atomic.rb +0 -25
- data/lib/mongoid/contextual/command.rb +0 -5
- data/lib/mongoid/contextual/geo_near.rb +1 -34
- data/lib/mongoid/contextual/map_reduce.rb +0 -31
- data/lib/mongoid/contextual/memory.rb +4 -59
- data/lib/mongoid/contextual/mongo.rb +132 -78
- data/lib/mongoid/contextual/none.rb +39 -28
- data/lib/mongoid/contextual/queryable.rb +0 -3
- data/lib/mongoid/contextual.rb +0 -5
- data/lib/mongoid/copyable.rb +0 -5
- data/lib/mongoid/criteria/findable.rb +0 -13
- data/lib/mongoid/criteria/includable.rb +0 -9
- data/lib/mongoid/criteria/inspectable.rb +0 -3
- data/lib/mongoid/criteria/marshalable.rb +0 -5
- data/lib/mongoid/criteria/modifiable.rb +0 -19
- data/lib/mongoid/criteria/options.rb +0 -3
- data/lib/mongoid/criteria/permission.rb +0 -1
- data/lib/mongoid/criteria/queryable/aggregable.rb +0 -13
- data/lib/mongoid/criteria/queryable/expandable.rb +0 -1
- data/lib/mongoid/criteria/queryable/extensions/array.rb +1 -26
- data/lib/mongoid/criteria/queryable/extensions/big_decimal.rb +0 -3
- data/lib/mongoid/criteria/queryable/extensions/boolean.rb +0 -3
- data/lib/mongoid/criteria/queryable/extensions/date.rb +0 -7
- data/lib/mongoid/criteria/queryable/extensions/date_time.rb +0 -5
- data/lib/mongoid/criteria/queryable/extensions/hash.rb +0 -25
- data/lib/mongoid/criteria/queryable/extensions/nil_class.rb +0 -13
- data/lib/mongoid/criteria/queryable/extensions/numeric.rb +0 -11
- data/lib/mongoid/criteria/queryable/extensions/object.rb +1 -28
- data/lib/mongoid/criteria/queryable/extensions/range.rb +38 -16
- data/lib/mongoid/criteria/queryable/extensions/regexp.rb +0 -9
- data/lib/mongoid/criteria/queryable/extensions/set.rb +0 -3
- data/lib/mongoid/criteria/queryable/extensions/string.rb +0 -17
- data/lib/mongoid/criteria/queryable/extensions/symbol.rb +0 -9
- data/lib/mongoid/criteria/queryable/extensions/time.rb +0 -7
- data/lib/mongoid/criteria/queryable/extensions/time_with_zone.rb +0 -7
- data/lib/mongoid/criteria/queryable/extensions.rb +0 -1
- data/lib/mongoid/criteria/queryable/key.rb +1 -14
- data/lib/mongoid/criteria/queryable/macroable.rb +0 -3
- data/lib/mongoid/criteria/queryable/mergeable.rb +1 -30
- data/lib/mongoid/criteria/queryable/optional.rb +0 -45
- data/lib/mongoid/criteria/queryable/options.rb +0 -19
- data/lib/mongoid/criteria/queryable/pipeline.rb +0 -13
- data/lib/mongoid/criteria/queryable/selectable.rb +20 -67
- data/lib/mongoid/criteria/queryable/selector.rb +0 -17
- data/lib/mongoid/criteria/queryable/smash.rb +0 -11
- data/lib/mongoid/criteria/queryable/storable.rb +7 -3
- 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 +67 -53
- data/lib/mongoid/validatable/associated.rb +0 -3
- data/lib/mongoid/validatable/format.rb +0 -1
- data/lib/mongoid/validatable/length.rb +0 -1
- data/lib/mongoid/validatable/localizable.rb +0 -3
- data/lib/mongoid/validatable/macros.rb +0 -7
- data/lib/mongoid/validatable/presence.rb +1 -8
- data/lib/mongoid/validatable/queryable.rb +0 -3
- data/lib/mongoid/validatable/uniqueness.rb +15 -30
- data/lib/mongoid/validatable.rb +1 -22
- data/lib/mongoid/version.rb +1 -2
- data/lib/mongoid.rb +0 -15
- data/lib/rails/generators/mongoid/config/config_generator.rb +0 -1
- data/lib/rails/generators/mongoid/config/templates/mongoid.yml +7 -2
- data/lib/rails/generators/mongoid/model/model_generator.rb +0 -1
- data/lib/rails/generators/mongoid_generator.rb +0 -1
- data/lib/rails/mongoid.rb +0 -3
- data/spec/config/mongoid_with_schema_map_uuid.yml +27 -0
- data/spec/integration/app_spec.rb +20 -15
- data/spec/integration/associations/belongs_to_spec.rb +0 -1
- data/spec/integration/associations/embedded_dirty_spec.rb +57 -0
- data/spec/integration/associations/embedded_spec.rb +0 -1
- data/spec/integration/associations/embeds_many_spec.rb +0 -1
- data/spec/integration/associations/embeds_one_spec.rb +0 -1
- data/spec/integration/associations/foreign_key_spec.rb +0 -1
- data/spec/integration/associations/foreign_key_spec_models.rb +0 -1
- data/spec/integration/associations/has_many_spec.rb +0 -1
- data/spec/integration/associations/has_one_spec.rb +0 -1
- data/spec/integration/associations/nested_attributes_assignment_spec.rb +0 -1
- data/spec/integration/associations/reverse_population_spec.rb +0 -1
- data/spec/integration/associations/reverse_population_spec_models.rb +0 -1
- data/spec/integration/associations/scope_option_spec.rb +101 -0
- data/spec/integration/atomic/modifiers_spec.rb +0 -1
- data/spec/integration/bson_regexp_raw_spec.rb +0 -1
- data/spec/integration/callbacks_models.rb +12 -0
- data/spec/integration/callbacks_spec.rb +18 -6
- data/spec/integration/contextual/empty_spec.rb +0 -1
- data/spec/integration/criteria/alias_query_spec.rb +161 -0
- data/spec/integration/criteria/date_field_spec.rb +0 -1
- data/spec/integration/criteria/default_scope_spec.rb +51 -0
- data/spec/integration/criteria/logical_spec.rb +30 -0
- data/spec/integration/criteria/range_spec.rb +265 -0
- data/spec/integration/criteria/time_with_zone_spec.rb +125 -15
- data/spec/integration/discriminator_key_spec.rb +0 -1
- data/spec/integration/discriminator_value_spec.rb +0 -1
- data/spec/integration/document_spec.rb +0 -1
- data/spec/integration/i18n_fallbacks_spec.rb +0 -1
- data/spec/integration/matcher_examples_spec.rb +0 -1
- data/spec/integration/matcher_operator_spec.rb +27 -3
- data/spec/integration/matcher_spec.rb +95 -1
- data/spec/integration/server_query_spec.rb +0 -1
- data/spec/integration/shardable_spec.rb +0 -1
- data/spec/integration/stringified_symbol_field_spec.rb +14 -1
- data/spec/lite_spec_helper.rb +9 -3
- 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 +405 -135
- data/spec/mongoid/association/embedded/embeds_many_models.rb +137 -1
- data/spec/mongoid/association/embedded/embeds_many_query_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_many_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one/binding_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one/buildable_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one/proxy_spec.rb +21 -22
- data/spec/mongoid/association/embedded/embeds_one_dnl_models.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one_models.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one_query_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one_spec.rb +0 -1
- data/spec/mongoid/association/macros_spec.rb +9 -10
- data/spec/mongoid/association/nested/many_spec.rb +0 -1
- data/spec/mongoid/association/nested/one_spec.rb +0 -1
- data/spec/mongoid/association/options_spec.rb +0 -1
- data/spec/mongoid/association/polymorphic_spec.rb +0 -1
- data/spec/mongoid/association/referenced/belongs_to/binding_spec.rb +0 -1
- data/spec/mongoid/association/referenced/belongs_to/buildable_spec.rb +55 -17
- data/spec/mongoid/association/referenced/belongs_to/eager_spec.rb +50 -15
- data/spec/mongoid/association/referenced/belongs_to/proxy_spec.rb +57 -53
- data/spec/mongoid/association/referenced/belongs_to_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/belongs_to_spec.rb +22 -2
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/binding_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/buildable_spec.rb +26 -2
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/eager_spec.rb +31 -3
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_persistence_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_spec.rb +187 -154
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_models.rb +18 -1
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_spec.rb +21 -1
- data/spec/mongoid/association/referenced/has_many/binding_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_many/buildable_spec.rb +21 -1
- data/spec/mongoid/association/referenced/has_many/eager_spec.rb +23 -7
- data/spec/mongoid/association/referenced/has_many/enumerable_spec.rb +59 -33
- data/spec/mongoid/association/referenced/has_many/proxy_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_many/proxy_spec.rb +241 -162
- data/spec/mongoid/association/referenced/has_many_models.rb +18 -1
- data/spec/mongoid/association/referenced/has_many_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_many_spec.rb +21 -1
- data/spec/mongoid/association/referenced/has_one/binding_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_one/buildable_spec.rb +51 -8
- data/spec/mongoid/association/referenced/has_one/eager_spec.rb +17 -2
- data/spec/mongoid/association/referenced/has_one/proxy_spec.rb +26 -27
- data/spec/mongoid/association/referenced/has_one_models.rb +18 -1
- data/spec/mongoid/association/referenced/has_one_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_one_spec.rb +21 -1
- data/spec/mongoid/association/reflections_spec.rb +0 -1
- data/spec/mongoid/association/syncable_spec.rb +31 -32
- data/spec/mongoid/association_spec.rb +0 -1
- data/spec/mongoid/atomic/modifiers_spec.rb +0 -1
- data/spec/mongoid/atomic/paths/embedded/many_spec.rb +0 -1
- data/spec/mongoid/atomic/paths/embedded/one_spec.rb +0 -1
- data/spec/mongoid/atomic/paths/root_spec.rb +0 -1
- data/spec/mongoid/atomic/paths_spec.rb +0 -1
- data/spec/mongoid/atomic_spec.rb +28 -7
- data/spec/mongoid/attributes/dynamic_spec.rb +0 -1
- data/spec/mongoid/attributes/nested_spec.rb +66 -67
- data/spec/mongoid/attributes/projector_spec.rb +5 -2
- data/spec/mongoid/attributes/readonly_spec.rb +22 -23
- data/spec/mongoid/attributes_spec.rb +32 -33
- data/spec/mongoid/cacheable_spec.rb +1 -2
- data/spec/mongoid/changeable_spec.rb +35 -36
- data/spec/mongoid/clients/factory_spec.rb +11 -13
- data/spec/mongoid/clients/options_spec.rb +4 -5
- data/spec/mongoid/clients/sessions_spec.rb +22 -23
- data/spec/mongoid/clients/transactions_spec.rb +49 -27
- data/spec/mongoid/clients_spec.rb +6 -7
- data/spec/mongoid/composable_spec.rb +0 -1
- data/spec/mongoid/config/environment_spec.rb +39 -2
- data/spec/mongoid/config/options_spec.rb +0 -1
- data/spec/mongoid/config_spec.rb +145 -1
- data/spec/mongoid/contextual/aggregable/memory_spec.rb +51 -12
- data/spec/mongoid/contextual/aggregable/mongo_spec.rb +120 -21
- data/spec/mongoid/contextual/aggregable/none_spec.rb +60 -0
- data/spec/mongoid/contextual/atomic_spec.rb +46 -47
- data/spec/mongoid/contextual/geo_near_spec.rb +17 -18
- data/spec/mongoid/contextual/map_reduce_spec.rb +2 -3
- data/spec/mongoid/contextual/memory_spec.rb +23 -24
- data/spec/mongoid/contextual/mongo_spec.rb +339 -77
- data/spec/mongoid/contextual/none_spec.rb +7 -82
- data/spec/mongoid/copyable_spec.rb +12 -13
- data/spec/mongoid/copyable_spec_models.rb +0 -1
- data/spec/mongoid/criteria/findable_spec.rb +23 -24
- data/spec/mongoid/criteria/inspectable_spec.rb +0 -1
- data/spec/mongoid/criteria/marshalable_spec.rb +0 -1
- data/spec/mongoid/criteria/modifiable_spec.rb +36 -37
- data/spec/mongoid/criteria/options_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/aggregable_spec.rb +1 -2
- data/spec/mongoid/criteria/queryable/expandable_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/array_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/big_decimal_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/bignum_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/boolean_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/date_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/date_time_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/fixnum_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/float_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/hash_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/integer_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/nil_class_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/numeric_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/object_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/range_spec.rb +237 -179
- data/spec/mongoid/criteria/queryable/extensions/regexp_raw_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/regexp_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/set_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/string_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/symbol_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/time_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/time_with_zone_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/key_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/mergeable_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/optional_spec.rb +1 -2
- data/spec/mongoid/criteria/queryable/options_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/pipeline_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/queryable_spec.rb +1 -2
- data/spec/mongoid/criteria/queryable/selectable_logical_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/selectable_shared_examples.rb +0 -1
- data/spec/mongoid/criteria/queryable/selectable_spec.rb +15 -16
- data/spec/mongoid/criteria/queryable/selectable_where_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/selector_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/smash_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/storable_spec.rb +37 -1
- data/spec/mongoid/criteria/scopable_spec.rb +127 -1
- data/spec/mongoid/criteria_projection_spec.rb +3 -4
- data/spec/mongoid/criteria_spec.rb +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 +11 -33
- data/spec/mongoid/equality_spec.rb +142 -41
- data/spec/mongoid/errors/ambiguous_relationship_spec.rb +0 -1
- data/spec/mongoid/errors/callback_spec.rb +0 -1
- data/spec/mongoid/errors/delete_restriction_spec.rb +0 -1
- data/spec/mongoid/errors/document_not_destroyed_spec.rb +0 -1
- data/spec/mongoid/errors/document_not_found_spec.rb +0 -1
- data/spec/mongoid/errors/eager_load_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_collection_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_config_file_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_config_option_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_field_option_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_field_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_find_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_includes_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_index_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_options_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_path_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_relation_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_scope_spec.rb +1 -2
- data/spec/mongoid/errors/invalid_set_polymorphic_relation_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_storage_options_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_time_spec.rb +0 -1
- data/spec/mongoid/errors/inverse_not_found_spec.rb +0 -1
- data/spec/mongoid/errors/mixed_client_configuration_spec.rb +0 -1
- data/spec/mongoid/errors/mixed_relations_spec.rb +0 -1
- data/spec/mongoid/errors/mongoid_error_spec.rb +1 -2
- data/spec/mongoid/errors/nested_attributes_metadata_not_found_spec.rb +0 -1
- data/spec/mongoid/errors/no_client_config_spec.rb +0 -1
- data/spec/mongoid/errors/no_client_database_spec.rb +0 -1
- data/spec/mongoid/errors/no_client_hosts_spec.rb +0 -1
- data/spec/mongoid/errors/no_clients_config_spec.rb +0 -1
- data/spec/mongoid/errors/no_environment_spec.rb +0 -1
- data/spec/mongoid/errors/no_map_reduce_output_spec.rb +0 -1
- data/spec/mongoid/errors/no_metadata_spec.rb +0 -1
- data/spec/mongoid/errors/no_parent_spec.rb +0 -1
- data/spec/mongoid/errors/readonly_attribute_spec.rb +0 -1
- data/spec/mongoid/errors/readonly_document_spec.rb +0 -1
- data/spec/mongoid/errors/scope_overwrite_spec.rb +0 -1
- data/spec/mongoid/errors/too_many_nested_attribute_records_spec.rb +0 -1
- data/spec/mongoid/errors/unknown_attribute_spec.rb +2 -3
- data/spec/mongoid/errors/unsaved_document_spec.rb +0 -1
- data/spec/mongoid/errors/unsupported_javascript_spec.rb +0 -1
- data/spec/mongoid/errors/validations_spec.rb +0 -1
- data/spec/mongoid/extensions/array_spec.rb +0 -1
- data/spec/mongoid/extensions/big_decimal_spec.rb +0 -1
- data/spec/mongoid/extensions/binary_spec.rb +0 -1
- data/spec/mongoid/extensions/boolean_spec.rb +0 -1
- data/spec/mongoid/extensions/date_class_mongoize_spec.rb +0 -1
- data/spec/mongoid/extensions/date_spec.rb +0 -1
- data/spec/mongoid/extensions/date_time_spec.rb +0 -1
- data/spec/mongoid/extensions/decimal128_spec.rb +0 -1
- data/spec/mongoid/extensions/false_class_spec.rb +0 -1
- data/spec/mongoid/extensions/float_spec.rb +0 -1
- data/spec/mongoid/extensions/hash_spec.rb +0 -1
- data/spec/mongoid/extensions/integer_spec.rb +0 -1
- data/spec/mongoid/extensions/module_spec.rb +0 -1
- data/spec/mongoid/extensions/nil_class_spec.rb +0 -1
- data/spec/mongoid/extensions/object_id_spec.rb +0 -1
- data/spec/mongoid/extensions/object_spec.rb +0 -1
- data/spec/mongoid/extensions/range_spec.rb +0 -1
- data/spec/mongoid/extensions/regexp_spec.rb +0 -1
- data/spec/mongoid/extensions/set_spec.rb +0 -1
- data/spec/mongoid/extensions/string_spec.rb +2 -3
- data/spec/mongoid/extensions/stringified_symbol_spec.rb +0 -1
- data/spec/mongoid/extensions/symbol_spec.rb +0 -1
- data/spec/mongoid/extensions/time_spec.rb +0 -1
- data/spec/mongoid/extensions/time_with_zone_spec.rb +0 -1
- data/spec/mongoid/extensions/true_class_spec.rb +0 -1
- data/spec/mongoid/extensions_spec.rb +14 -3
- data/spec/mongoid/factory_spec.rb +1 -1
- data/spec/mongoid/fields/foreign_key_spec.rb +0 -1
- data/spec/mongoid/fields/localized_spec.rb +0 -1
- data/spec/mongoid/fields/standard_spec.rb +0 -1
- data/spec/mongoid/fields_spec.rb +326 -31
- data/spec/mongoid/findable_spec.rb +21 -22
- data/spec/mongoid/indexable/specification_spec.rb +0 -1
- data/spec/mongoid/indexable_spec.rb +0 -1
- data/spec/mongoid/inspectable_spec.rb +0 -1
- data/spec/mongoid/interceptable_spec.rb +102 -95
- data/spec/mongoid/loggable_spec.rb +0 -1
- data/spec/mongoid/matcher/extract_attribute_spec.rb +5 -2
- data/spec/mongoid/persistable/creatable_spec.rb +2 -3
- data/spec/mongoid/persistable/deletable_spec.rb +18 -19
- data/spec/mongoid/persistable/destroyable_spec.rb +8 -9
- data/spec/mongoid/persistable/incrementable_spec.rb +8 -9
- data/spec/mongoid/persistable/logical_spec.rb +4 -5
- data/spec/mongoid/persistable/poppable_spec.rb +4 -5
- data/spec/mongoid/persistable/pullable_spec.rb +8 -9
- data/spec/mongoid/persistable/pushable_spec.rb +8 -9
- data/spec/mongoid/persistable/renamable_spec.rb +3 -4
- data/spec/mongoid/persistable/savable_spec.rb +15 -11
- data/spec/mongoid/persistable/settable_spec.rb +9 -10
- data/spec/mongoid/persistable/unsettable_spec.rb +4 -5
- data/spec/mongoid/persistable/updatable_spec.rb +41 -24
- data/spec/mongoid/persistable/upsertable_spec.rb +1 -2
- data/spec/mongoid/persistable_spec.rb +1 -2
- data/spec/mongoid/persistence_context_spec.rb +0 -1
- data/spec/mongoid/positional_spec.rb +0 -1
- data/spec/mongoid/query_cache_middleware_spec.rb +1 -2
- data/spec/mongoid/query_cache_spec.rb +32 -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 +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/cluster_config.rb +6 -1
- data/spec/shared/lib/mrss/constraints.rb +10 -17
- data/spec/shared/lib/mrss/docker_runner.rb +23 -3
- data/spec/shared/lib/mrss/eg_config_utils.rb +51 -0
- data/spec/shared/lib/mrss/event_subscriber.rb +15 -5
- data/spec/shared/lib/mrss/lite_constraints.rb +40 -1
- data/spec/shared/lib/mrss/session_registry.rb +69 -0
- data/spec/shared/lib/mrss/session_registry_legacy.rb +60 -0
- data/spec/shared/share/Dockerfile.erb +56 -54
- data/spec/shared/shlib/config.sh +27 -0
- data/spec/shared/shlib/distro.sh +2 -1
- data/spec/shared/shlib/server.sh +46 -21
- data/spec/shared/shlib/set_env.sh +43 -5
- data/spec/spec_helper.rb +12 -22
- data/spec/support/authorization.rb +0 -1
- data/spec/support/constraints.rb +0 -1
- data/spec/support/expectations.rb +0 -1
- data/spec/support/macros.rb +31 -1
- data/spec/support/models/account.rb +1 -2
- data/spec/support/models/acolyte.rb +0 -1
- data/spec/support/models/actor.rb +0 -1
- data/spec/support/models/actress.rb +0 -1
- data/spec/support/models/address.rb +0 -1
- data/spec/support/models/address_component.rb +0 -1
- data/spec/support/models/address_number.rb +0 -1
- data/spec/support/models/agency.rb +0 -1
- data/spec/support/models/agent.rb +0 -1
- data/spec/support/models/album.rb +0 -1
- data/spec/support/models/alert.rb +0 -1
- data/spec/support/models/animal.rb +0 -1
- data/spec/support/models/answer.rb +0 -1
- data/spec/support/models/appointment.rb +0 -1
- data/spec/support/models/armrest.rb +0 -1
- data/spec/support/models/array_field.rb +0 -1
- data/spec/support/models/article.rb +0 -1
- data/spec/support/models/artist.rb +2 -1
- data/spec/support/models/artwork.rb +0 -1
- data/spec/support/models/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 +1 -1
- data/spec/support/models/message.rb +0 -1
- data/spec/support/models/minim.rb +0 -1
- data/spec/support/models/mixed_drink.rb +0 -1
- data/spec/support/models/mop.rb +0 -1
- data/spec/support/models/movie.rb +0 -1
- data/spec/support/models/my_hash.rb +0 -1
- data/spec/support/models/name.rb +0 -1
- data/spec/support/models/name_only.rb +0 -1
- data/spec/support/models/node.rb +0 -1
- data/spec/support/models/note.rb +0 -1
- data/spec/support/models/nut.rb +0 -1
- data/spec/support/models/odd.rb +0 -1
- data/spec/support/models/order.rb +2 -1
- data/spec/support/models/ordered_post.rb +1 -2
- data/spec/support/models/ordered_preference.rb +0 -1
- data/spec/support/models/oscar.rb +0 -1
- data/spec/support/models/other_owner_object.rb +0 -1
- data/spec/support/models/override.rb +0 -1
- data/spec/support/models/ownable.rb +0 -1
- data/spec/support/models/owner.rb +0 -1
- data/spec/support/models/pack.rb +0 -1
- data/spec/support/models/page.rb +0 -1
- data/spec/support/models/page_question.rb +0 -1
- data/spec/support/models/palette.rb +0 -1
- data/spec/support/models/parent.rb +0 -1
- data/spec/support/models/parent_doc.rb +0 -1
- data/spec/support/models/passport.rb +5 -1
- data/spec/support/models/patient.rb +0 -1
- data/spec/support/models/pdf_writer.rb +0 -1
- data/spec/support/models/pencil.rb +0 -1
- data/spec/support/models/person.rb +1 -1
- data/spec/support/models/pet.rb +0 -1
- data/spec/support/models/pet_owner.rb +0 -1
- data/spec/support/models/phone.rb +2 -2
- data/spec/support/models/piano.rb +0 -1
- data/spec/support/models/pizza.rb +0 -1
- data/spec/support/models/player.rb +0 -1
- data/spec/support/models/post.rb +0 -1
- data/spec/support/models/post_genre.rb +0 -1
- data/spec/support/models/powerup.rb +0 -1
- data/spec/support/models/preference.rb +0 -1
- data/spec/support/models/princess.rb +0 -1
- data/spec/support/models/product.rb +0 -1
- data/spec/support/models/profile.rb +0 -1
- data/spec/support/models/pronunciation.rb +0 -1
- data/spec/support/models/pub.rb +0 -1
- data/spec/support/models/publication/encyclopedia.rb +0 -1
- data/spec/support/models/publication/review.rb +0 -1
- data/spec/support/models/publication.rb +0 -1
- data/spec/support/models/purchase.rb +0 -1
- data/spec/support/models/purchased_item.rb +10 -0
- data/spec/support/models/question.rb +0 -1
- data/spec/support/models/quiz.rb +0 -1
- data/spec/support/models/rating.rb +0 -1
- data/spec/support/models/record.rb +0 -1
- data/spec/support/models/registry.rb +0 -1
- data/spec/support/models/role.rb +0 -1
- data/spec/support/models/root_category.rb +0 -1
- data/spec/support/models/sandwich.rb +0 -1
- data/spec/support/models/scheduler.rb +0 -1
- data/spec/support/models/scribe.rb +0 -1
- data/spec/support/models/sealer.rb +0 -1
- data/spec/support/models/seat.rb +0 -1
- data/spec/support/models/seo.rb +0 -1
- data/spec/support/models/series.rb +0 -1
- data/spec/support/models/server.rb +0 -1
- data/spec/support/models/service.rb +0 -1
- data/spec/support/models/shape.rb +0 -1
- data/spec/support/models/shelf.rb +0 -1
- data/spec/support/models/shipment_address.rb +0 -1
- data/spec/support/models/shipping_container.rb +0 -1
- data/spec/support/models/shipping_pack.rb +0 -1
- data/spec/support/models/shirt.rb +0 -1
- data/spec/support/models/shop.rb +0 -1
- data/spec/support/models/short_agent.rb +0 -1
- data/spec/support/models/short_quiz.rb +0 -1
- data/spec/support/models/simple.rb +0 -1
- data/spec/support/models/slave.rb +0 -1
- data/spec/support/models/song.rb +0 -1
- data/spec/support/models/sound.rb +0 -1
- data/spec/support/models/spacer.rb +0 -1
- data/spec/support/models/square.rb +0 -1
- data/spec/support/models/staff.rb +0 -1
- data/spec/support/models/store_as_dup_test1.rb +0 -1
- data/spec/support/models/store_as_dup_test2.rb +0 -1
- data/spec/support/models/store_as_dup_test3.rb +0 -1
- data/spec/support/models/store_as_dup_test4.rb +0 -1
- data/spec/support/models/strategy.rb +0 -1
- data/spec/support/models/sub_item.rb +0 -1
- data/spec/support/models/subscription.rb +0 -1
- data/spec/support/models/survey.rb +0 -1
- data/spec/support/models/symptom.rb +0 -1
- data/spec/support/models/tag.rb +0 -1
- data/spec/support/models/target.rb +0 -1
- data/spec/support/models/template.rb +0 -1
- data/spec/support/models/thing.rb +0 -1
- data/spec/support/models/threadlocker.rb +0 -1
- data/spec/support/models/title.rb +0 -1
- data/spec/support/models/tool.rb +0 -1
- data/spec/support/models/topping.rb +0 -1
- data/spec/support/models/toy.rb +0 -1
- data/spec/support/models/track.rb +0 -1
- data/spec/support/models/translation.rb +0 -1
- data/spec/support/models/tree.rb +0 -1
- data/spec/support/models/truck.rb +0 -1
- data/spec/support/models/updatable.rb +0 -1
- data/spec/support/models/user.rb +0 -1
- data/spec/support/models/user_account.rb +0 -1
- data/spec/support/models/validation_callback.rb +0 -1
- data/spec/support/models/vehicle.rb +0 -1
- data/spec/support/models/version.rb +0 -1
- data/spec/support/models/vertex.rb +0 -1
- data/spec/support/models/vet_visit.rb +0 -1
- data/spec/support/models/video.rb +0 -1
- data/spec/support/models/video_game.rb +0 -1
- data/spec/support/models/washer.rb +0 -1
- data/spec/support/models/weapon.rb +0 -1
- data/spec/support/models/wiki_page.rb +0 -1
- data/spec/support/models/word.rb +0 -1
- data/spec/support/models/word_origin.rb +0 -1
- data/spec/support/models/writer.rb +0 -1
- data/spec/support/schema_maps/schema_map_aws.json +17 -0
- data/spec/support/schema_maps/schema_map_aws_key_alt_names.json +12 -0
- data/spec/support/schema_maps/schema_map_azure.json +17 -0
- data/spec/support/schema_maps/schema_map_azure_key_alt_names.json +12 -0
- data/spec/support/schema_maps/schema_map_gcp.json +17 -0
- data/spec/support/schema_maps/schema_map_gcp_key_alt_names.json +12 -0
- data/spec/support/schema_maps/schema_map_kmip.json +17 -0
- data/spec/support/schema_maps/schema_map_kmip_key_alt_names.json +12 -0
- data/spec/support/schema_maps/schema_map_local.json +18 -0
- data/spec/support/schema_maps/schema_map_local_key_alt_names.json +12 -0
- data/spec/support/shared/time.rb +0 -1
- data/spec/support/spec_config.rb +7 -1
- data.tar.gz.sig +0 -0
- metadata +630 -587
- 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
|
|
@@ -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,13 +2236,11 @@ 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
|
-
|
|
2219
|
-
person.posts.create(title: "Test")
|
|
2220
|
-
end
|
|
2242
|
+
let!(:post1) { person.posts.create!(title: "Testing") }
|
|
2243
|
+
let!(:post2) { person.posts.create!(title: "Test") }
|
|
2221
2244
|
|
|
2222
2245
|
it "removes the correct posts" do
|
|
2223
2246
|
person.posts.send(method, { title: "Testing" })
|
|
@@ -2233,17 +2256,22 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2233
2256
|
it "returns the number of documents deleted" do
|
|
2234
2257
|
expect(person.posts.send(method, { title: "Testing" })).to eq(1)
|
|
2235
2258
|
end
|
|
2259
|
+
|
|
2260
|
+
it "sets the association locally" do
|
|
2261
|
+
person.posts.send(method, { title: "Testing" })
|
|
2262
|
+
expect(person.posts).to eq([post2])
|
|
2263
|
+
end
|
|
2236
2264
|
end
|
|
2237
2265
|
|
|
2238
2266
|
context "when conditions are not provided" do
|
|
2239
2267
|
|
|
2240
2268
|
let(:person) do
|
|
2241
|
-
Person.create
|
|
2269
|
+
Person.create!
|
|
2242
2270
|
end
|
|
2243
2271
|
|
|
2244
2272
|
before do
|
|
2245
|
-
person.posts.create(title: "Testing")
|
|
2246
|
-
person.posts.create(title: "Test")
|
|
2273
|
+
person.posts.create!(title: "Testing")
|
|
2274
|
+
person.posts.create!(title: "Test")
|
|
2247
2275
|
end
|
|
2248
2276
|
|
|
2249
2277
|
it "removes the correct posts" do
|
|
@@ -2259,6 +2287,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2259
2287
|
it "returns the number of documents deleted" do
|
|
2260
2288
|
expect(person.posts.send(method)).to eq(2)
|
|
2261
2289
|
end
|
|
2290
|
+
|
|
2291
|
+
it "sets the association locally" do
|
|
2292
|
+
person.posts.send(method)
|
|
2293
|
+
expect(person.posts).to eq([])
|
|
2294
|
+
end
|
|
2262
2295
|
end
|
|
2263
2296
|
end
|
|
2264
2297
|
|
|
@@ -2267,13 +2300,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2267
2300
|
context "when conditions are provided" do
|
|
2268
2301
|
|
|
2269
2302
|
let(:movie) do
|
|
2270
|
-
Movie.create(title: "Bladerunner")
|
|
2303
|
+
Movie.create!(title: "Bladerunner")
|
|
2271
2304
|
end
|
|
2272
2305
|
|
|
2273
|
-
|
|
2274
|
-
|
|
2275
|
-
movie.ratings.create(value: 2)
|
|
2276
|
-
end
|
|
2306
|
+
let!(:rating1) { movie.ratings.create!(value: 1) }
|
|
2307
|
+
let!(:rating2) { movie.ratings.create!(value: 2) }
|
|
2277
2308
|
|
|
2278
2309
|
it "removes the correct ratings" do
|
|
2279
2310
|
movie.ratings.send(method, { value: 1 })
|
|
@@ -2288,17 +2319,22 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2288
2319
|
it "returns the number of documents deleted" do
|
|
2289
2320
|
expect(movie.ratings.send(method, { value: 1 })).to eq(1)
|
|
2290
2321
|
end
|
|
2322
|
+
|
|
2323
|
+
it "sets the association locally" do
|
|
2324
|
+
movie.ratings.send(method, { value: 1 })
|
|
2325
|
+
expect(movie.ratings).to eq([rating2])
|
|
2326
|
+
end
|
|
2291
2327
|
end
|
|
2292
2328
|
|
|
2293
2329
|
context "when conditions are not provided" do
|
|
2294
2330
|
|
|
2295
2331
|
let(:movie) do
|
|
2296
|
-
Movie.create(title: "Bladerunner")
|
|
2332
|
+
Movie.create!(title: "Bladerunner")
|
|
2297
2333
|
end
|
|
2298
2334
|
|
|
2299
2335
|
before do
|
|
2300
|
-
movie.ratings.create(value: 1)
|
|
2301
|
-
movie.ratings.create(value: 2)
|
|
2336
|
+
movie.ratings.create!(value: 1)
|
|
2337
|
+
movie.ratings.create!(value: 2)
|
|
2302
2338
|
end
|
|
2303
2339
|
|
|
2304
2340
|
it "removes the correct ratings" do
|
|
@@ -2314,6 +2350,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2314
2350
|
it "returns the number of documents deleted" do
|
|
2315
2351
|
expect(movie.ratings.send(method)).to eq(2)
|
|
2316
2352
|
end
|
|
2353
|
+
|
|
2354
|
+
it "sets the association locally" do
|
|
2355
|
+
movie.ratings.send(method)
|
|
2356
|
+
expect(movie.ratings).to eq([])
|
|
2357
|
+
end
|
|
2317
2358
|
end
|
|
2318
2359
|
end
|
|
2319
2360
|
end
|
|
@@ -2329,13 +2370,13 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2329
2370
|
describe "#exists?" do
|
|
2330
2371
|
|
|
2331
2372
|
let!(:person) do
|
|
2332
|
-
Person.create
|
|
2373
|
+
Person.create!
|
|
2333
2374
|
end
|
|
2334
2375
|
|
|
2335
2376
|
context "when documents exist in the database" do
|
|
2336
2377
|
|
|
2337
2378
|
before do
|
|
2338
|
-
person.posts.create
|
|
2379
|
+
person.posts.create!
|
|
2339
2380
|
end
|
|
2340
2381
|
|
|
2341
2382
|
it "returns true" do
|
|
@@ -2466,15 +2507,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2466
2507
|
context "when the association is not polymorphic" do
|
|
2467
2508
|
|
|
2468
2509
|
let(:person) do
|
|
2469
|
-
Person.create
|
|
2510
|
+
Person.create!
|
|
2470
2511
|
end
|
|
2471
2512
|
|
|
2472
2513
|
let!(:post_one) do
|
|
2473
|
-
person.posts.create(title: "Test")
|
|
2514
|
+
person.posts.create!(title: "Test")
|
|
2474
2515
|
end
|
|
2475
2516
|
|
|
2476
2517
|
let!(:post_two) do
|
|
2477
|
-
person.posts.create(title: "OMG I has associations")
|
|
2518
|
+
person.posts.create!(title: "OMG I has associations")
|
|
2478
2519
|
end
|
|
2479
2520
|
|
|
2480
2521
|
context "when providing an id" do
|
|
@@ -2493,7 +2534,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2493
2534
|
context "when the id matches but is not scoped to the association" do
|
|
2494
2535
|
|
|
2495
2536
|
let(:post) do
|
|
2496
|
-
Post.create(title: "Unscoped")
|
|
2537
|
+
Post.create!(title: "Unscoped")
|
|
2497
2538
|
end
|
|
2498
2539
|
|
|
2499
2540
|
it "raises an error" do
|
|
@@ -2592,15 +2633,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2592
2633
|
context "when the association is polymorphic" do
|
|
2593
2634
|
|
|
2594
2635
|
let(:movie) do
|
|
2595
|
-
Movie.create
|
|
2636
|
+
Movie.create!
|
|
2596
2637
|
end
|
|
2597
2638
|
|
|
2598
2639
|
let!(:rating_one) do
|
|
2599
|
-
movie.ratings.create(value: 1)
|
|
2640
|
+
movie.ratings.create!(value: 1)
|
|
2600
2641
|
end
|
|
2601
2642
|
|
|
2602
2643
|
let!(:rating_two) do
|
|
2603
|
-
movie.ratings.create(value: 5)
|
|
2644
|
+
movie.ratings.create!(value: 5)
|
|
2604
2645
|
end
|
|
2605
2646
|
|
|
2606
2647
|
context "when providing an id" do
|
|
@@ -2709,6 +2750,44 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2709
2750
|
end
|
|
2710
2751
|
end
|
|
2711
2752
|
end
|
|
2753
|
+
|
|
2754
|
+
context "with block" do
|
|
2755
|
+
let!(:author) do
|
|
2756
|
+
Person.create!(title: 'Person')
|
|
2757
|
+
end
|
|
2758
|
+
|
|
2759
|
+
let!(:post_one) do
|
|
2760
|
+
author.posts.create!(title: 'post one')
|
|
2761
|
+
end
|
|
2762
|
+
|
|
2763
|
+
let!(:post_two) do
|
|
2764
|
+
author.posts.create!(title: 'post two')
|
|
2765
|
+
end
|
|
2766
|
+
|
|
2767
|
+
it "finds one" do
|
|
2768
|
+
expect(
|
|
2769
|
+
author.posts.find do |post|
|
|
2770
|
+
post.title == 'post one'
|
|
2771
|
+
end
|
|
2772
|
+
).to be_a(Post)
|
|
2773
|
+
end
|
|
2774
|
+
|
|
2775
|
+
it "returns first match of multiple" do
|
|
2776
|
+
expect(
|
|
2777
|
+
author.posts.find do |post|
|
|
2778
|
+
['post one', 'post two'].include?(post.title)
|
|
2779
|
+
end
|
|
2780
|
+
).to eq(post_one)
|
|
2781
|
+
end
|
|
2782
|
+
|
|
2783
|
+
it "returns nil when not found" do
|
|
2784
|
+
expect(
|
|
2785
|
+
author.posts.find do |post|
|
|
2786
|
+
post.title == 'non exiting one'
|
|
2787
|
+
end
|
|
2788
|
+
).to be_nil
|
|
2789
|
+
end
|
|
2790
|
+
end
|
|
2712
2791
|
end
|
|
2713
2792
|
|
|
2714
2793
|
describe "#find_or_create_by" do
|
|
@@ -2716,11 +2795,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2716
2795
|
context "when the association is not polymorphic" do
|
|
2717
2796
|
|
|
2718
2797
|
let(:person) do
|
|
2719
|
-
Person.create
|
|
2798
|
+
Person.create!
|
|
2720
2799
|
end
|
|
2721
2800
|
|
|
2722
2801
|
let!(:post) do
|
|
2723
|
-
person.posts.create(title: "Testing")
|
|
2802
|
+
person.posts.create!(title: "Testing")
|
|
2724
2803
|
end
|
|
2725
2804
|
|
|
2726
2805
|
context "when the document exists" do
|
|
@@ -2789,11 +2868,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2789
2868
|
context "when the association is polymorphic" do
|
|
2790
2869
|
|
|
2791
2870
|
let(:movie) do
|
|
2792
|
-
Movie.create
|
|
2871
|
+
Movie.create!
|
|
2793
2872
|
end
|
|
2794
2873
|
|
|
2795
2874
|
let!(:rating) do
|
|
2796
|
-
movie.ratings.create(value: 1)
|
|
2875
|
+
movie.ratings.create!(value: 1)
|
|
2797
2876
|
end
|
|
2798
2877
|
|
|
2799
2878
|
context "when the document exists" do
|
|
@@ -2837,11 +2916,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2837
2916
|
context "when the association is not polymorphic" do
|
|
2838
2917
|
|
|
2839
2918
|
let(:person) do
|
|
2840
|
-
Person.create
|
|
2919
|
+
Person.create!
|
|
2841
2920
|
end
|
|
2842
2921
|
|
|
2843
2922
|
let!(:post) do
|
|
2844
|
-
person.posts.create(title: "Testing")
|
|
2923
|
+
person.posts.create!(title: "Testing")
|
|
2845
2924
|
end
|
|
2846
2925
|
|
|
2847
2926
|
context "when the document exists" do
|
|
@@ -2910,11 +2989,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2910
2989
|
context "when the association is polymorphic" do
|
|
2911
2990
|
|
|
2912
2991
|
let(:movie) do
|
|
2913
|
-
Movie.create
|
|
2992
|
+
Movie.create!
|
|
2914
2993
|
end
|
|
2915
2994
|
|
|
2916
2995
|
let!(:rating) do
|
|
2917
|
-
movie.ratings.create(value: 1)
|
|
2996
|
+
movie.ratings.create!(value: 1)
|
|
2918
2997
|
end
|
|
2919
2998
|
|
|
2920
2999
|
context "when the document exists" do
|
|
@@ -2967,11 +3046,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
2967
3046
|
context "when the association is not polymorphic" do
|
|
2968
3047
|
|
|
2969
3048
|
let(:person) do
|
|
2970
|
-
Person.create
|
|
3049
|
+
Person.create!
|
|
2971
3050
|
end
|
|
2972
3051
|
|
|
2973
3052
|
let!(:post) do
|
|
2974
|
-
person.posts.create(title: "Testing")
|
|
3053
|
+
person.posts.create!(title: "Testing")
|
|
2975
3054
|
end
|
|
2976
3055
|
|
|
2977
3056
|
context "when the document exists" do
|
|
@@ -3010,11 +3089,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3010
3089
|
context "when the association is polymorphic" do
|
|
3011
3090
|
|
|
3012
3091
|
let(:movie) do
|
|
3013
|
-
Movie.create
|
|
3092
|
+
Movie.create!
|
|
3014
3093
|
end
|
|
3015
3094
|
|
|
3016
3095
|
let!(:rating) do
|
|
3017
|
-
movie.ratings.create(value: 1)
|
|
3096
|
+
movie.ratings.create!(value: 1)
|
|
3018
3097
|
end
|
|
3019
3098
|
|
|
3020
3099
|
context "when the document exists" do
|
|
@@ -3104,15 +3183,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3104
3183
|
describe "#max" do
|
|
3105
3184
|
|
|
3106
3185
|
let(:person) do
|
|
3107
|
-
Person.create
|
|
3186
|
+
Person.create!
|
|
3108
3187
|
end
|
|
3109
3188
|
|
|
3110
3189
|
let(:post_one) do
|
|
3111
|
-
Post.create(rating: 5)
|
|
3190
|
+
Post.create!(rating: 5)
|
|
3112
3191
|
end
|
|
3113
3192
|
|
|
3114
3193
|
let(:post_two) do
|
|
3115
|
-
Post.create(rating: 10)
|
|
3194
|
+
Post.create!(rating: 10)
|
|
3116
3195
|
end
|
|
3117
3196
|
|
|
3118
3197
|
before do
|
|
@@ -3133,15 +3212,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3133
3212
|
describe "#max_by" do
|
|
3134
3213
|
|
|
3135
3214
|
let(:person) do
|
|
3136
|
-
Person.create
|
|
3215
|
+
Person.create!
|
|
3137
3216
|
end
|
|
3138
3217
|
|
|
3139
3218
|
let(:post_one) do
|
|
3140
|
-
Post.create(rating: 5)
|
|
3219
|
+
Post.create!(rating: 5)
|
|
3141
3220
|
end
|
|
3142
3221
|
|
|
3143
3222
|
let(:post_two) do
|
|
3144
|
-
Post.create(rating: 10)
|
|
3223
|
+
Post.create!(rating: 10)
|
|
3145
3224
|
end
|
|
3146
3225
|
|
|
3147
3226
|
before do
|
|
@@ -3160,15 +3239,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3160
3239
|
describe "#method_missing" do
|
|
3161
3240
|
|
|
3162
3241
|
let!(:person) do
|
|
3163
|
-
Person.create
|
|
3242
|
+
Person.create!
|
|
3164
3243
|
end
|
|
3165
3244
|
|
|
3166
3245
|
let!(:post_one) do
|
|
3167
|
-
person.posts.create(title: "First", content: "Posting")
|
|
3246
|
+
person.posts.create!(title: "First", content: "Posting")
|
|
3168
3247
|
end
|
|
3169
3248
|
|
|
3170
3249
|
let!(:post_two) do
|
|
3171
|
-
person.posts.create(title: "Second", content: "Testing")
|
|
3250
|
+
person.posts.create!(title: "Second", content: "Testing")
|
|
3172
3251
|
end
|
|
3173
3252
|
|
|
3174
3253
|
context "when providing a single criteria" do
|
|
@@ -3235,15 +3314,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3235
3314
|
describe "#min" do
|
|
3236
3315
|
|
|
3237
3316
|
let(:person) do
|
|
3238
|
-
Person.create
|
|
3317
|
+
Person.create!
|
|
3239
3318
|
end
|
|
3240
3319
|
|
|
3241
3320
|
let(:post_one) do
|
|
3242
|
-
Post.create(rating: 5)
|
|
3321
|
+
Post.create!(rating: 5)
|
|
3243
3322
|
end
|
|
3244
3323
|
|
|
3245
3324
|
let(:post_two) do
|
|
3246
|
-
Post.create(rating: 10)
|
|
3325
|
+
Post.create!(rating: 10)
|
|
3247
3326
|
end
|
|
3248
3327
|
|
|
3249
3328
|
before do
|
|
@@ -3264,15 +3343,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3264
3343
|
describe "#min_by" do
|
|
3265
3344
|
|
|
3266
3345
|
let(:person) do
|
|
3267
|
-
Person.create
|
|
3346
|
+
Person.create!
|
|
3268
3347
|
end
|
|
3269
3348
|
|
|
3270
3349
|
let(:post_one) do
|
|
3271
|
-
Post.create(rating: 5)
|
|
3350
|
+
Post.create!(rating: 5)
|
|
3272
3351
|
end
|
|
3273
3352
|
|
|
3274
3353
|
let(:post_two) do
|
|
3275
|
-
Post.create(rating: 10)
|
|
3354
|
+
Post.create!(rating: 10)
|
|
3276
3355
|
end
|
|
3277
3356
|
|
|
3278
3357
|
before do
|
|
@@ -3293,15 +3372,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3293
3372
|
context "when the inverse has not been loaded" do
|
|
3294
3373
|
|
|
3295
3374
|
let(:person) do
|
|
3296
|
-
Person.create
|
|
3375
|
+
Person.create!
|
|
3297
3376
|
end
|
|
3298
3377
|
|
|
3299
3378
|
let!(:post_one) do
|
|
3300
|
-
person.posts.create(title: "One")
|
|
3379
|
+
person.posts.create!(title: "One")
|
|
3301
3380
|
end
|
|
3302
3381
|
|
|
3303
3382
|
let!(:post_two) do
|
|
3304
|
-
person.posts.create(title: "Two")
|
|
3383
|
+
person.posts.create!(title: "Two")
|
|
3305
3384
|
end
|
|
3306
3385
|
|
|
3307
3386
|
let(:from_db) do
|
|
@@ -3330,15 +3409,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3330
3409
|
context "when the association is not polymorphic" do
|
|
3331
3410
|
|
|
3332
3411
|
let(:person) do
|
|
3333
|
-
Person.create
|
|
3412
|
+
Person.create!
|
|
3334
3413
|
end
|
|
3335
3414
|
|
|
3336
3415
|
let!(:post_one) do
|
|
3337
|
-
person.posts.create(title: "One")
|
|
3416
|
+
person.posts.create!(title: "One")
|
|
3338
3417
|
end
|
|
3339
3418
|
|
|
3340
3419
|
let!(:post_two) do
|
|
3341
|
-
person.posts.create(title: "Two")
|
|
3420
|
+
person.posts.create!(title: "Two")
|
|
3342
3421
|
end
|
|
3343
3422
|
|
|
3344
3423
|
before do
|
|
@@ -3376,15 +3455,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3376
3455
|
context "when the association is polymorphic" do
|
|
3377
3456
|
|
|
3378
3457
|
let(:movie) do
|
|
3379
|
-
Movie.create(title: "Oldboy")
|
|
3458
|
+
Movie.create!(title: "Oldboy")
|
|
3380
3459
|
end
|
|
3381
3460
|
|
|
3382
3461
|
let!(:rating_one) do
|
|
3383
|
-
movie.ratings.create(value: 10)
|
|
3462
|
+
movie.ratings.create!(value: 10)
|
|
3384
3463
|
end
|
|
3385
3464
|
|
|
3386
3465
|
let!(:rating_two) do
|
|
3387
|
-
movie.ratings.create(value: 9)
|
|
3466
|
+
movie.ratings.create!(value: 9)
|
|
3388
3467
|
end
|
|
3389
3468
|
|
|
3390
3469
|
before do
|
|
@@ -3470,13 +3549,13 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3470
3549
|
describe "##{method}" do
|
|
3471
3550
|
|
|
3472
3551
|
let(:movie) do
|
|
3473
|
-
Movie.create
|
|
3552
|
+
Movie.create!
|
|
3474
3553
|
end
|
|
3475
3554
|
|
|
3476
3555
|
context "when documents have been persisted" do
|
|
3477
3556
|
|
|
3478
3557
|
let!(:rating) do
|
|
3479
|
-
movie.ratings.create(value: 1)
|
|
3558
|
+
movie.ratings.create!(value: 1)
|
|
3480
3559
|
end
|
|
3481
3560
|
|
|
3482
3561
|
it "returns 1" do
|
|
@@ -3488,7 +3567,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3488
3567
|
|
|
3489
3568
|
before do
|
|
3490
3569
|
movie.ratings.build(value: 1)
|
|
3491
|
-
movie.ratings.create(value: 2)
|
|
3570
|
+
movie.ratings.create!(value: 2)
|
|
3492
3571
|
end
|
|
3493
3572
|
|
|
3494
3573
|
it "returns the total number of documents" do
|
|
@@ -3503,15 +3582,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3503
3582
|
context "when the association has no default scope" do
|
|
3504
3583
|
|
|
3505
3584
|
let!(:person) do
|
|
3506
|
-
Person.create
|
|
3585
|
+
Person.create!
|
|
3507
3586
|
end
|
|
3508
3587
|
|
|
3509
3588
|
let!(:post_one) do
|
|
3510
|
-
person.posts.create(title: "first")
|
|
3589
|
+
person.posts.create!(title: "first")
|
|
3511
3590
|
end
|
|
3512
3591
|
|
|
3513
3592
|
let!(:post_two) do
|
|
3514
|
-
Post.create(title: "second")
|
|
3593
|
+
Post.create!(title: "second")
|
|
3515
3594
|
end
|
|
3516
3595
|
|
|
3517
3596
|
let(:unscoped) do
|
|
@@ -3526,15 +3605,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3526
3605
|
context "when the association has a default scope" do
|
|
3527
3606
|
|
|
3528
3607
|
let!(:church) do
|
|
3529
|
-
Church.create
|
|
3608
|
+
Church.create!
|
|
3530
3609
|
end
|
|
3531
3610
|
|
|
3532
3611
|
let!(:acolyte_one) do
|
|
3533
|
-
church.acolytes.create(name: "first")
|
|
3612
|
+
church.acolytes.create!(name: "first")
|
|
3534
3613
|
end
|
|
3535
3614
|
|
|
3536
3615
|
let!(:acolyte_two) do
|
|
3537
|
-
Acolyte.create(name: "second")
|
|
3616
|
+
Acolyte.create!(name: "second")
|
|
3538
3617
|
end
|
|
3539
3618
|
|
|
3540
3619
|
let(:unscoped) do
|
|
@@ -3554,19 +3633,19 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3554
3633
|
context "when the association has an order defined" do
|
|
3555
3634
|
|
|
3556
3635
|
let(:person) do
|
|
3557
|
-
Person.create
|
|
3636
|
+
Person.create!
|
|
3558
3637
|
end
|
|
3559
3638
|
|
|
3560
3639
|
let(:post_one) do
|
|
3561
|
-
OrderedPost.create(rating: 10, title: '1')
|
|
3640
|
+
OrderedPost.create!(rating: 10, title: '1')
|
|
3562
3641
|
end
|
|
3563
3642
|
|
|
3564
3643
|
let(:post_two) do
|
|
3565
|
-
OrderedPost.create(rating: 20, title: '2')
|
|
3644
|
+
OrderedPost.create!(rating: 20, title: '2')
|
|
3566
3645
|
end
|
|
3567
3646
|
|
|
3568
3647
|
let(:post_three) do
|
|
3569
|
-
OrderedPost.create(rating: 20, title: '3')
|
|
3648
|
+
OrderedPost.create!(rating: 20, title: '3')
|
|
3570
3649
|
end
|
|
3571
3650
|
|
|
3572
3651
|
before do
|
|
@@ -3580,7 +3659,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3580
3659
|
)
|
|
3581
3660
|
end
|
|
3582
3661
|
|
|
3583
|
-
it "chaining order
|
|
3662
|
+
it "chaining order criteria" do
|
|
3584
3663
|
expect(person.ordered_posts.order_by(:title.desc).to_a).to eq(
|
|
3585
3664
|
[post_three, post_two, post_one]
|
|
3586
3665
|
)
|
|
@@ -3590,15 +3669,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3590
3669
|
context "when reloading the association" do
|
|
3591
3670
|
|
|
3592
3671
|
let!(:person) do
|
|
3593
|
-
Person.create
|
|
3672
|
+
Person.create!
|
|
3594
3673
|
end
|
|
3595
3674
|
|
|
3596
3675
|
let!(:post_one) do
|
|
3597
|
-
Post.create(title: "one")
|
|
3676
|
+
Post.create!(title: "one")
|
|
3598
3677
|
end
|
|
3599
3678
|
|
|
3600
3679
|
let!(:post_two) do
|
|
3601
|
-
Post.create(title: "two")
|
|
3680
|
+
Post.create!(title: "two")
|
|
3602
3681
|
end
|
|
3603
3682
|
|
|
3604
3683
|
before do
|
|
@@ -3644,7 +3723,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3644
3723
|
context "when the parent is using integer ids" do
|
|
3645
3724
|
|
|
3646
3725
|
let(:jar) do
|
|
3647
|
-
Jar.create do |doc|
|
|
3726
|
+
Jar.create! do |doc|
|
|
3648
3727
|
doc._id = 1
|
|
3649
3728
|
end
|
|
3650
3729
|
end
|
|
@@ -3757,8 +3836,8 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3757
3836
|
|
|
3758
3837
|
before do
|
|
3759
3838
|
artist.albums << album
|
|
3760
|
-
album.save
|
|
3761
|
-
artist.save
|
|
3839
|
+
album.save!
|
|
3840
|
+
artist.save!
|
|
3762
3841
|
expect(artist).not_to receive(:after_add_album)
|
|
3763
3842
|
end
|
|
3764
3843
|
|
|
@@ -3922,15 +4001,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3922
4001
|
context "when executing a criteria call on an ordered association" do
|
|
3923
4002
|
|
|
3924
4003
|
let(:person) do
|
|
3925
|
-
Person.create
|
|
4004
|
+
Person.create!
|
|
3926
4005
|
end
|
|
3927
4006
|
|
|
3928
4007
|
let!(:post_one) do
|
|
3929
|
-
person.ordered_posts.create(rating: 1)
|
|
4008
|
+
person.ordered_posts.create!(rating: 1)
|
|
3930
4009
|
end
|
|
3931
4010
|
|
|
3932
4011
|
let!(:post_two) do
|
|
3933
|
-
person.ordered_posts.create(rating: 5)
|
|
4012
|
+
person.ordered_posts.create!(rating: 5)
|
|
3934
4013
|
end
|
|
3935
4014
|
|
|
3936
4015
|
let(:criteria) do
|
|
@@ -3945,11 +4024,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3945
4024
|
context "when accessing a scope named open" do
|
|
3946
4025
|
|
|
3947
4026
|
let(:person) do
|
|
3948
|
-
Person.create
|
|
4027
|
+
Person.create!
|
|
3949
4028
|
end
|
|
3950
4029
|
|
|
3951
4030
|
let!(:post) do
|
|
3952
|
-
person.posts.create(title: "open")
|
|
4031
|
+
person.posts.create!(title: "open")
|
|
3953
4032
|
end
|
|
3954
4033
|
|
|
3955
4034
|
it "returns the appropriate documents" do
|
|
@@ -3960,11 +4039,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
3960
4039
|
context "when accessing a association named parent" do
|
|
3961
4040
|
|
|
3962
4041
|
let!(:parent) do
|
|
3963
|
-
Odd.create(name: "odd parent")
|
|
4042
|
+
Odd.create!(name: "odd parent")
|
|
3964
4043
|
end
|
|
3965
4044
|
|
|
3966
4045
|
let(:child) do
|
|
3967
|
-
Even.create(parent_id: parent.id, name: "original even child")
|
|
4046
|
+
Even.create!(parent_id: parent.id, name: "original even child")
|
|
3968
4047
|
end
|
|
3969
4048
|
|
|
3970
4049
|
it "updates the child after accessing the parent" do
|
|
@@ -4001,7 +4080,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
4001
4080
|
end
|
|
4002
4081
|
|
|
4003
4082
|
it 'saves the document correctly' do
|
|
4004
|
-
expect(agent.save).to be(true)
|
|
4083
|
+
expect(agent.save!).to be(true)
|
|
4005
4084
|
end
|
|
4006
4085
|
end
|
|
4007
4086
|
|
|
@@ -4017,8 +4096,8 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
|
|
|
4017
4096
|
|
|
4018
4097
|
before do
|
|
4019
4098
|
agent.same_name = band
|
|
4020
|
-
agent.save
|
|
4021
|
-
band.save
|
|
4099
|
+
agent.save!
|
|
4100
|
+
band.save!
|
|
4022
4101
|
band.reload
|
|
4023
4102
|
end
|
|
4024
4103
|
|