mongoid 7.3.2 → 7.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +17 -17
- data/README.md +2 -2
- data/lib/config/locales/en.yml +30 -16
- data/lib/mongoid/association/accessors.rb +0 -27
- data/lib/mongoid/association/bindable.rb +0 -21
- data/lib/mongoid/association/builders.rb +0 -9
- data/lib/mongoid/association/constrainable.rb +0 -3
- data/lib/mongoid/association/depending.rb +0 -7
- data/lib/mongoid/association/eager_loadable.rb +0 -3
- data/lib/mongoid/association/embedded/batchable.rb +11 -39
- data/lib/mongoid/association/embedded/cyclic.rb +2 -11
- data/lib/mongoid/association/embedded/embedded_in/binding.rb +0 -7
- data/lib/mongoid/association/embedded/embedded_in/buildable.rb +0 -3
- data/lib/mongoid/association/embedded/embedded_in/proxy.rb +0 -13
- data/lib/mongoid/association/embedded/embedded_in.rb +0 -23
- data/lib/mongoid/association/embedded/embeds_many/binding.rb +0 -7
- data/lib/mongoid/association/embedded/embeds_many/buildable.rb +0 -3
- data/lib/mongoid/association/embedded/embeds_many/proxy.rb +31 -44
- data/lib/mongoid/association/embedded/embeds_many.rb +0 -31
- data/lib/mongoid/association/embedded/embeds_one/binding.rb +0 -7
- data/lib/mongoid/association/embedded/embeds_one/buildable.rb +0 -3
- data/lib/mongoid/association/embedded/embeds_one/proxy.rb +26 -14
- data/lib/mongoid/association/embedded/embeds_one.rb +0 -27
- data/lib/mongoid/association/embedded.rb +0 -1
- data/lib/mongoid/association/macros.rb +6 -5
- data/lib/mongoid/association/many.rb +0 -17
- data/lib/mongoid/association/marshalable.rb +0 -5
- data/lib/mongoid/association/nested/many.rb +0 -11
- data/lib/mongoid/association/nested/nested_buildable.rb +0 -9
- data/lib/mongoid/association/nested/one.rb +1 -16
- data/lib/mongoid/association/nested.rb +0 -3
- data/lib/mongoid/association/one.rb +1 -10
- data/lib/mongoid/association/options.rb +0 -33
- data/lib/mongoid/association/proxy.rb +0 -21
- data/lib/mongoid/association/referenced/auto_save.rb +0 -9
- data/lib/mongoid/association/referenced/belongs_to/binding.rb +0 -7
- data/lib/mongoid/association/referenced/belongs_to/buildable.rb +4 -5
- data/lib/mongoid/association/referenced/belongs_to/eager.rb +0 -1
- data/lib/mongoid/association/referenced/belongs_to/proxy.rb +0 -13
- data/lib/mongoid/association/referenced/belongs_to.rb +9 -34
- data/lib/mongoid/association/referenced/counter_cache.rb +2 -15
- data/lib/mongoid/association/referenced/eager.rb +3 -24
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/binding.rb +0 -5
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/buildable.rb +0 -3
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/eager.rb +0 -1
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/proxy.rb +12 -39
- data/lib/mongoid/association/referenced/has_and_belongs_to_many.rb +11 -38
- data/lib/mongoid/association/referenced/has_many/binding.rb +0 -5
- data/lib/mongoid/association/referenced/has_many/buildable.rb +0 -3
- data/lib/mongoid/association/referenced/has_many/eager.rb +0 -1
- data/lib/mongoid/association/referenced/has_many/enumerable.rb +11 -63
- data/lib/mongoid/association/referenced/has_many/proxy.rb +18 -61
- data/lib/mongoid/association/referenced/has_many.rb +12 -39
- data/lib/mongoid/association/referenced/has_one/binding.rb +0 -7
- data/lib/mongoid/association/referenced/has_one/buildable.rb +3 -4
- data/lib/mongoid/association/referenced/has_one/eager.rb +0 -1
- data/lib/mongoid/association/referenced/has_one/nested_builder.rb +0 -15
- data/lib/mongoid/association/referenced/has_one/proxy.rb +0 -9
- data/lib/mongoid/association/referenced/has_one.rb +9 -32
- data/lib/mongoid/association/referenced/syncable.rb +0 -17
- data/lib/mongoid/association/referenced.rb +0 -1
- data/lib/mongoid/association/reflections.rb +0 -1
- data/lib/mongoid/association/relatable.rb +2 -61
- data/lib/mongoid/association.rb +0 -17
- data/lib/mongoid/atomic/modifiers.rb +4 -51
- data/lib/mongoid/atomic/paths/embedded/many.rb +0 -5
- data/lib/mongoid/atomic/paths/embedded/one.rb +0 -5
- data/lib/mongoid/atomic/paths/embedded.rb +0 -3
- data/lib/mongoid/atomic/paths/root.rb +0 -5
- data/lib/mongoid/atomic/paths.rb +0 -1
- data/lib/mongoid/atomic.rb +27 -44
- data/lib/mongoid/attributes/dynamic.rb +0 -17
- data/lib/mongoid/attributes/nested.rb +0 -5
- data/lib/mongoid/attributes/processing.rb +1 -18
- data/lib/mongoid/attributes/projector.rb +0 -1
- data/lib/mongoid/attributes/readonly.rb +0 -5
- data/lib/mongoid/attributes.rb +0 -33
- data/lib/mongoid/cacheable.rb +1 -6
- data/lib/mongoid/changeable.rb +3 -59
- data/lib/mongoid/clients/factory.rb +0 -7
- data/lib/mongoid/clients/options.rb +0 -5
- data/lib/mongoid/clients/sessions.rb +0 -7
- data/lib/mongoid/clients/storage_options.rb +0 -7
- data/lib/mongoid/clients/validators/storage.rb +0 -9
- data/lib/mongoid/clients/validators.rb +0 -1
- data/lib/mongoid/clients.rb +0 -9
- data/lib/mongoid/composable.rb +0 -7
- data/lib/mongoid/config/environment.rb +13 -6
- data/lib/mongoid/config/options.rb +0 -11
- data/lib/mongoid/config/validators/client.rb +0 -17
- data/lib/mongoid/config/validators/option.rb +0 -3
- data/lib/mongoid/config/validators.rb +0 -1
- data/lib/mongoid/config.rb +37 -29
- data/lib/mongoid/contextual/aggregable/memory.rb +14 -11
- data/lib/mongoid/contextual/aggregable/mongo.rb +15 -20
- data/lib/mongoid/contextual/aggregable/none.rb +65 -0
- data/lib/mongoid/contextual/aggregable.rb +17 -0
- data/lib/mongoid/contextual/atomic.rb +7 -27
- data/lib/mongoid/contextual/command.rb +0 -5
- data/lib/mongoid/contextual/geo_near.rb +1 -34
- data/lib/mongoid/contextual/map_reduce.rb +0 -31
- data/lib/mongoid/contextual/memory.rb +4 -59
- data/lib/mongoid/contextual/mongo.rb +132 -78
- data/lib/mongoid/contextual/none.rb +42 -28
- data/lib/mongoid/contextual/queryable.rb +0 -3
- data/lib/mongoid/contextual.rb +0 -5
- data/lib/mongoid/copyable.rb +0 -5
- data/lib/mongoid/criteria/findable.rb +0 -13
- data/lib/mongoid/criteria/includable.rb +0 -9
- data/lib/mongoid/criteria/inspectable.rb +0 -3
- data/lib/mongoid/criteria/marshalable.rb +0 -5
- data/lib/mongoid/criteria/modifiable.rb +0 -19
- data/lib/mongoid/criteria/options.rb +0 -3
- data/lib/mongoid/criteria/permission.rb +0 -1
- data/lib/mongoid/criteria/queryable/aggregable.rb +0 -13
- data/lib/mongoid/criteria/queryable/expandable.rb +0 -1
- data/lib/mongoid/criteria/queryable/extensions/array.rb +1 -26
- data/lib/mongoid/criteria/queryable/extensions/big_decimal.rb +0 -3
- data/lib/mongoid/criteria/queryable/extensions/boolean.rb +0 -3
- data/lib/mongoid/criteria/queryable/extensions/date.rb +0 -7
- data/lib/mongoid/criteria/queryable/extensions/date_time.rb +0 -5
- data/lib/mongoid/criteria/queryable/extensions/hash.rb +0 -25
- data/lib/mongoid/criteria/queryable/extensions/nil_class.rb +0 -13
- data/lib/mongoid/criteria/queryable/extensions/numeric.rb +0 -11
- data/lib/mongoid/criteria/queryable/extensions/object.rb +1 -28
- data/lib/mongoid/criteria/queryable/extensions/range.rb +38 -16
- data/lib/mongoid/criteria/queryable/extensions/regexp.rb +0 -9
- data/lib/mongoid/criteria/queryable/extensions/set.rb +0 -3
- data/lib/mongoid/criteria/queryable/extensions/string.rb +0 -17
- data/lib/mongoid/criteria/queryable/extensions/symbol.rb +0 -9
- data/lib/mongoid/criteria/queryable/extensions/time.rb +0 -7
- data/lib/mongoid/criteria/queryable/extensions/time_with_zone.rb +0 -7
- data/lib/mongoid/criteria/queryable/extensions.rb +0 -1
- data/lib/mongoid/criteria/queryable/key.rb +1 -14
- data/lib/mongoid/criteria/queryable/macroable.rb +0 -3
- data/lib/mongoid/criteria/queryable/mergeable.rb +1 -30
- data/lib/mongoid/criteria/queryable/optional.rb +0 -45
- data/lib/mongoid/criteria/queryable/options.rb +0 -19
- data/lib/mongoid/criteria/queryable/pipeline.rb +0 -13
- data/lib/mongoid/criteria/queryable/selectable.rb +22 -69
- data/lib/mongoid/criteria/queryable/selector.rb +0 -17
- data/lib/mongoid/criteria/queryable/smash.rb +0 -11
- data/lib/mongoid/criteria/queryable/storable.rb +11 -7
- data/lib/mongoid/criteria/queryable.rb +0 -7
- data/lib/mongoid/criteria/scopable.rb +25 -19
- data/lib/mongoid/criteria.rb +0 -57
- data/lib/mongoid/document.rb +3 -53
- data/lib/mongoid/equality.rb +26 -10
- data/lib/mongoid/errors/ambiguous_relationship.rb +2 -5
- data/lib/mongoid/errors/callback.rb +0 -3
- data/lib/mongoid/errors/criteria_argument_required.rb +0 -1
- data/lib/mongoid/errors/delete_restriction.rb +0 -3
- data/lib/mongoid/errors/document_not_destroyed.rb +2 -7
- data/lib/mongoid/errors/document_not_found.rb +0 -9
- data/lib/mongoid/errors/eager_load.rb +0 -3
- data/lib/mongoid/errors/empty_config_file.rb +25 -0
- data/lib/mongoid/errors/in_memory_collation_not_supported.rb +0 -3
- data/lib/mongoid/errors/invalid_collection.rb +0 -1
- data/lib/mongoid/errors/invalid_config_file.rb +25 -0
- data/lib/mongoid/errors/invalid_config_option.rb +0 -3
- data/lib/mongoid/errors/invalid_dependent_strategy.rb +0 -3
- data/lib/mongoid/errors/invalid_discriminator_key_target.rb +0 -1
- data/lib/mongoid/errors/invalid_elem_match_operator.rb +0 -1
- data/lib/mongoid/errors/invalid_estimated_count_criteria.rb +0 -1
- data/lib/mongoid/errors/invalid_expression_operator.rb +0 -1
- data/lib/mongoid/errors/invalid_field.rb +0 -5
- data/lib/mongoid/errors/invalid_field_operator.rb +0 -1
- data/lib/mongoid/errors/invalid_field_option.rb +0 -3
- data/lib/mongoid/errors/invalid_find.rb +0 -3
- data/lib/mongoid/errors/invalid_includes.rb +0 -3
- data/lib/mongoid/errors/invalid_index.rb +0 -3
- data/lib/mongoid/errors/invalid_options.rb +0 -3
- data/lib/mongoid/errors/invalid_path.rb +0 -3
- data/lib/mongoid/errors/invalid_persistence_option.rb +0 -5
- data/lib/mongoid/errors/invalid_query.rb +0 -1
- data/lib/mongoid/errors/invalid_relation.rb +0 -7
- data/lib/mongoid/errors/invalid_relation_option.rb +0 -3
- data/lib/mongoid/errors/invalid_scope.rb +0 -3
- data/lib/mongoid/errors/invalid_session_use.rb +1 -6
- data/lib/mongoid/errors/invalid_set_polymorphic_relation.rb +0 -1
- data/lib/mongoid/errors/invalid_storage_options.rb +0 -3
- data/lib/mongoid/errors/invalid_storage_parent.rb +0 -3
- data/lib/mongoid/errors/invalid_time.rb +0 -3
- data/lib/mongoid/errors/invalid_value.rb +0 -1
- data/lib/mongoid/errors/inverse_not_found.rb +0 -3
- data/lib/mongoid/errors/mixed_client_configuration.rb +0 -3
- data/lib/mongoid/errors/mixed_relations.rb +0 -3
- data/lib/mongoid/errors/mongoid_error.rb +0 -9
- data/lib/mongoid/errors/nested_attributes_metadata_not_found.rb +0 -3
- data/lib/mongoid/errors/no_client_config.rb +0 -3
- data/lib/mongoid/errors/no_client_database.rb +0 -3
- data/lib/mongoid/errors/no_client_hosts.rb +0 -3
- data/lib/mongoid/errors/no_clients_config.rb +0 -3
- data/lib/mongoid/errors/no_default_client.rb +0 -3
- data/lib/mongoid/errors/no_environment.rb +0 -3
- data/lib/mongoid/errors/no_map_reduce_output.rb +0 -3
- data/lib/mongoid/errors/no_metadata.rb +0 -3
- data/lib/mongoid/errors/no_parent.rb +0 -3
- data/lib/mongoid/errors/readonly_attribute.rb +0 -3
- data/lib/mongoid/errors/readonly_document.rb +1 -6
- data/lib/mongoid/errors/scope_overwrite.rb +0 -1
- data/lib/mongoid/errors/too_many_nested_attribute_records.rb +0 -1
- data/lib/mongoid/errors/unknown_attribute.rb +0 -3
- data/lib/mongoid/errors/unknown_model.rb +0 -3
- data/lib/mongoid/errors/unsaved_document.rb +1 -2
- data/lib/mongoid/errors/unsupported_javascript.rb +0 -3
- data/lib/mongoid/errors/validations.rb +0 -1
- data/lib/mongoid/errors.rb +2 -1
- data/lib/mongoid/evolvable.rb +0 -3
- data/lib/mongoid/extensions/array.rb +3 -29
- data/lib/mongoid/extensions/big_decimal.rb +0 -11
- data/lib/mongoid/extensions/boolean.rb +0 -3
- data/lib/mongoid/extensions/date.rb +0 -9
- data/lib/mongoid/extensions/date_time.rb +0 -9
- data/lib/mongoid/extensions/decimal128.rb +0 -5
- data/lib/mongoid/extensions/false_class.rb +1 -6
- data/lib/mongoid/extensions/float.rb +0 -7
- data/lib/mongoid/extensions/hash.rb +0 -27
- data/lib/mongoid/extensions/integer.rb +0 -9
- data/lib/mongoid/extensions/module.rb +0 -3
- data/lib/mongoid/extensions/nil_class.rb +0 -5
- data/lib/mongoid/extensions/object.rb +1 -40
- data/lib/mongoid/extensions/object_id.rb +0 -7
- data/lib/mongoid/extensions/range.rb +0 -11
- data/lib/mongoid/extensions/regexp.rb +0 -3
- data/lib/mongoid/extensions/set.rb +0 -7
- data/lib/mongoid/extensions/string.rb +1 -30
- data/lib/mongoid/extensions/symbol.rb +0 -7
- data/lib/mongoid/extensions/time.rb +0 -11
- data/lib/mongoid/extensions/time_with_zone.rb +13 -9
- data/lib/mongoid/extensions/true_class.rb +1 -6
- data/lib/mongoid/extensions.rb +15 -3
- data/lib/mongoid/factory.rb +1 -2
- data/lib/mongoid/fields/foreign_key.rb +0 -21
- data/lib/mongoid/fields/localized.rb +0 -11
- data/lib/mongoid/fields/standard.rb +0 -33
- data/lib/mongoid/fields/validators/macro.rb +0 -9
- data/lib/mongoid/fields/validators.rb +0 -1
- data/lib/mongoid/fields.rb +64 -57
- data/lib/mongoid/findable.rb +0 -5
- data/lib/mongoid/indexable/specification.rb +0 -15
- data/lib/mongoid/indexable/validators/options.rb +0 -7
- data/lib/mongoid/indexable.rb +1 -18
- data/lib/mongoid/inspectable.rb +1 -10
- data/lib/mongoid/interceptable.rb +0 -25
- data/lib/mongoid/loggable.rb +0 -9
- data/lib/mongoid/matchable.rb +0 -5
- data/lib/mongoid/matcher/eq_impl.rb +37 -2
- data/lib/mongoid/matcher/eq_impl_with_regexp.rb +6 -1
- data/lib/mongoid/persistable/creatable.rb +1 -20
- data/lib/mongoid/persistable/deletable.rb +0 -17
- data/lib/mongoid/persistable/destroyable.rb +0 -7
- data/lib/mongoid/persistable/incrementable.rb +0 -5
- data/lib/mongoid/persistable/logical.rb +0 -5
- data/lib/mongoid/persistable/poppable.rb +0 -5
- data/lib/mongoid/persistable/pullable.rb +0 -7
- data/lib/mongoid/persistable/pushable.rb +0 -7
- data/lib/mongoid/persistable/renamable.rb +0 -5
- data/lib/mongoid/persistable/savable.rb +0 -7
- data/lib/mongoid/persistable/settable.rb +0 -5
- data/lib/mongoid/persistable/unsettable.rb +0 -5
- data/lib/mongoid/persistable/updatable.rb +2 -17
- data/lib/mongoid/persistable/upsertable.rb +0 -7
- data/lib/mongoid/persistable.rb +0 -23
- data/lib/mongoid/persistence_context.rb +3 -28
- data/lib/mongoid/positional.rb +0 -5
- data/lib/mongoid/query_cache.rb +11 -34
- data/lib/mongoid/railtie.rb +0 -15
- data/lib/mongoid/railties/controller_runtime.rb +0 -1
- data/lib/mongoid/reloadable.rb +4 -16
- data/lib/mongoid/scopable.rb +6 -34
- data/lib/mongoid/selectable.rb +0 -9
- data/lib/mongoid/serializable.rb +0 -15
- data/lib/mongoid/shardable.rb +0 -7
- data/lib/mongoid/stateful.rb +0 -9
- data/lib/mongoid/stringified_symbol.rb +2 -3
- data/lib/mongoid/tasks/database.rb +1 -6
- data/lib/mongoid/threaded/lifecycle.rb +0 -21
- data/lib/mongoid/threaded.rb +0 -55
- data/lib/mongoid/timestamps/created/short.rb +0 -1
- data/lib/mongoid/timestamps/created.rb +0 -1
- data/lib/mongoid/timestamps/short.rb +0 -1
- data/lib/mongoid/timestamps/timeless.rb +0 -7
- data/lib/mongoid/timestamps/updated/short.rb +0 -1
- data/lib/mongoid/timestamps/updated.rb +0 -3
- data/lib/mongoid/timestamps.rb +0 -1
- data/lib/mongoid/touchable.rb +10 -7
- data/lib/mongoid/traversable.rb +64 -53
- data/lib/mongoid/validatable/associated.rb +0 -3
- data/lib/mongoid/validatable/format.rb +0 -1
- data/lib/mongoid/validatable/length.rb +0 -1
- data/lib/mongoid/validatable/localizable.rb +0 -3
- data/lib/mongoid/validatable/macros.rb +0 -7
- data/lib/mongoid/validatable/presence.rb +1 -8
- data/lib/mongoid/validatable/queryable.rb +0 -3
- data/lib/mongoid/validatable/uniqueness.rb +15 -30
- data/lib/mongoid/validatable.rb +1 -22
- data/lib/mongoid/version.rb +1 -2
- data/lib/mongoid.rb +0 -15
- data/lib/rails/generators/mongoid/config/config_generator.rb +0 -1
- data/lib/rails/generators/mongoid/model/model_generator.rb +0 -1
- data/lib/rails/generators/mongoid_generator.rb +0 -1
- data/lib/rails/mongoid.rb +0 -3
- data/spec/integration/app_spec.rb +0 -1
- data/spec/integration/associations/belongs_to_spec.rb +0 -1
- data/spec/integration/associations/embedded_dirty_spec.rb +29 -0
- data/spec/integration/associations/embedded_spec.rb +0 -1
- data/spec/integration/associations/embeds_many_spec.rb +139 -1
- data/spec/integration/associations/embeds_one_spec.rb +0 -1
- data/spec/integration/associations/foreign_key_spec.rb +0 -1
- data/spec/integration/associations/foreign_key_spec_models.rb +0 -1
- data/spec/integration/associations/has_many_spec.rb +0 -1
- data/spec/integration/associations/has_one_spec.rb +0 -1
- data/spec/integration/associations/nested_attributes_assignment_spec.rb +0 -1
- data/spec/integration/associations/reverse_population_spec.rb +0 -1
- data/spec/integration/associations/reverse_population_spec_models.rb +0 -1
- data/spec/integration/associations/scope_option_spec.rb +101 -0
- data/spec/integration/atomic/modifiers_spec.rb +0 -1
- data/spec/integration/bson_regexp_raw_spec.rb +0 -1
- data/spec/integration/callbacks_models.rb +12 -0
- data/spec/integration/callbacks_spec.rb +18 -6
- data/spec/integration/contextual/empty_spec.rb +141 -0
- data/spec/integration/criteria/alias_query_spec.rb +161 -0
- data/spec/integration/criteria/date_field_spec.rb +0 -1
- data/spec/integration/criteria/default_scope_spec.rb +51 -0
- data/spec/integration/criteria/logical_spec.rb +30 -0
- data/spec/integration/criteria/range_spec.rb +265 -0
- data/spec/integration/criteria/time_with_zone_spec.rb +125 -15
- data/spec/integration/discriminator_key_spec.rb +0 -1
- data/spec/integration/discriminator_value_spec.rb +0 -1
- data/spec/integration/document_spec.rb +0 -1
- data/spec/integration/i18n_fallbacks_spec.rb +0 -1
- data/spec/integration/matcher_examples_spec.rb +0 -1
- data/spec/integration/matcher_operator_spec.rb +27 -3
- data/spec/integration/matcher_spec.rb +95 -1
- data/spec/integration/server_query_spec.rb +0 -1
- data/spec/integration/shardable_spec.rb +0 -1
- data/spec/integration/stringified_symbol_field_spec.rb +16 -3
- data/spec/lite_spec_helper.rb +8 -2
- data/spec/mongoid/association/accessors_spec.rb +44 -15
- data/spec/mongoid/association/auto_save_spec.rb +72 -34
- data/spec/mongoid/association/builders_spec.rb +1 -2
- data/spec/mongoid/association/constrainable_spec.rb +0 -1
- data/spec/mongoid/association/counter_cache_spec.rb +32 -33
- data/spec/mongoid/association/depending_spec.rb +12 -13
- data/spec/mongoid/association/eager_spec.rb +4 -5
- data/spec/mongoid/association/embedded/cyclic_spec.rb +2 -3
- data/spec/mongoid/association/embedded/dirty_spec.rb +2 -3
- data/spec/mongoid/association/embedded/embedded_in/binding_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embedded_in/buildable_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embedded_in/proxy_spec.rb +13 -14
- data/spec/mongoid/association/embedded/embedded_in_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_many/binding_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_many/buildable_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_many/proxy_spec.rb +384 -135
- data/spec/mongoid/association/embedded/embeds_many_models.rb +16 -1
- data/spec/mongoid/association/embedded/embeds_many_query_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_many_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one/binding_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one/buildable_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one/proxy_spec.rb +21 -22
- data/spec/mongoid/association/embedded/embeds_one_dnl_models.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one_models.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one_query_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one_spec.rb +0 -1
- data/spec/mongoid/association/macros_spec.rb +9 -10
- data/spec/mongoid/association/nested/many_spec.rb +0 -1
- data/spec/mongoid/association/nested/one_spec.rb +0 -1
- data/spec/mongoid/association/options_spec.rb +0 -1
- data/spec/mongoid/association/polymorphic_spec.rb +0 -1
- data/spec/mongoid/association/referenced/belongs_to/binding_spec.rb +0 -1
- data/spec/mongoid/association/referenced/belongs_to/buildable_spec.rb +55 -17
- data/spec/mongoid/association/referenced/belongs_to/eager_spec.rb +50 -15
- data/spec/mongoid/association/referenced/belongs_to/proxy_spec.rb +57 -53
- data/spec/mongoid/association/referenced/belongs_to_query_spec.rb +20 -1
- data/spec/mongoid/association/referenced/belongs_to_spec.rb +22 -2
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/binding_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/buildable_spec.rb +26 -2
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/eager_spec.rb +31 -3
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_persistence_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_spec.rb +179 -154
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_models.rb +18 -1
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_spec.rb +21 -1
- data/spec/mongoid/association/referenced/has_many/binding_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_many/buildable_spec.rb +21 -1
- data/spec/mongoid/association/referenced/has_many/eager_spec.rb +23 -7
- data/spec/mongoid/association/referenced/has_many/enumerable_spec.rb +303 -125
- data/spec/mongoid/association/referenced/has_many/proxy_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_many/proxy_spec.rb +227 -164
- data/spec/mongoid/association/referenced/has_many_models.rb +35 -1
- data/spec/mongoid/association/referenced/has_many_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_many_spec.rb +21 -1
- data/spec/mongoid/association/referenced/has_one/binding_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_one/buildable_spec.rb +51 -8
- data/spec/mongoid/association/referenced/has_one/eager_spec.rb +17 -2
- data/spec/mongoid/association/referenced/has_one/proxy_spec.rb +26 -27
- data/spec/mongoid/association/referenced/has_one_models.rb +18 -1
- data/spec/mongoid/association/referenced/has_one_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_one_spec.rb +21 -1
- data/spec/mongoid/association/reflections_spec.rb +0 -1
- data/spec/mongoid/association/syncable_spec.rb +31 -32
- data/spec/mongoid/association_spec.rb +0 -1
- data/spec/mongoid/atomic/modifiers_spec.rb +0 -1
- data/spec/mongoid/atomic/paths/embedded/many_spec.rb +0 -1
- data/spec/mongoid/atomic/paths/embedded/one_spec.rb +0 -1
- data/spec/mongoid/atomic/paths/root_spec.rb +0 -1
- data/spec/mongoid/atomic/paths_spec.rb +0 -1
- data/spec/mongoid/atomic_spec.rb +6 -7
- data/spec/mongoid/attributes/dynamic_spec.rb +0 -1
- data/spec/mongoid/attributes/nested_spec.rb +66 -67
- data/spec/mongoid/attributes/projector_spec.rb +5 -2
- data/spec/mongoid/attributes/readonly_spec.rb +22 -23
- data/spec/mongoid/attributes_spec.rb +32 -33
- data/spec/mongoid/cacheable_spec.rb +1 -2
- data/spec/mongoid/changeable_spec.rb +35 -36
- data/spec/mongoid/clients/factory_spec.rb +9 -4
- data/spec/mongoid/clients/options_spec.rb +15 -10
- data/spec/mongoid/clients/sessions_spec.rb +22 -23
- data/spec/mongoid/clients/transactions_spec.rb +49 -27
- data/spec/mongoid/clients_spec.rb +6 -7
- data/spec/mongoid/composable_spec.rb +0 -1
- data/spec/mongoid/config/environment_spec.rb +86 -9
- data/spec/mongoid/config/options_spec.rb +0 -1
- data/spec/mongoid/config_spec.rb +194 -17
- data/spec/mongoid/contextual/aggregable/memory_spec.rb +51 -12
- data/spec/mongoid/contextual/aggregable/mongo_spec.rb +120 -21
- data/spec/mongoid/contextual/aggregable/none_spec.rb +60 -0
- data/spec/mongoid/contextual/atomic_spec.rb +109 -71
- data/spec/mongoid/contextual/geo_near_spec.rb +18 -19
- data/spec/mongoid/contextual/map_reduce_spec.rb +2 -3
- data/spec/mongoid/contextual/memory_spec.rb +23 -24
- data/spec/mongoid/contextual/mongo_spec.rb +339 -77
- data/spec/mongoid/contextual/none_spec.rb +7 -82
- data/spec/mongoid/copyable_spec.rb +11 -12
- data/spec/mongoid/copyable_spec_models.rb +0 -1
- data/spec/mongoid/criteria/findable_spec.rb +23 -24
- data/spec/mongoid/criteria/inspectable_spec.rb +0 -1
- data/spec/mongoid/criteria/marshalable_spec.rb +0 -1
- data/spec/mongoid/criteria/modifiable_spec.rb +36 -37
- data/spec/mongoid/criteria/options_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/aggregable_spec.rb +1 -2
- data/spec/mongoid/criteria/queryable/expandable_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/array_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/big_decimal_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/bignum_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/boolean_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/date_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/date_time_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/fixnum_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/float_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/hash_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/integer_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/nil_class_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/numeric_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/object_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/range_spec.rb +237 -179
- data/spec/mongoid/criteria/queryable/extensions/regexp_raw_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/regexp_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/set_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/string_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/symbol_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/time_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/time_with_zone_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/key_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/mergeable_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/optional_spec.rb +1 -2
- data/spec/mongoid/criteria/queryable/options_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/pipeline_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/queryable_spec.rb +1 -2
- data/spec/mongoid/criteria/queryable/selectable_logical_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/selectable_shared_examples.rb +0 -1
- data/spec/mongoid/criteria/queryable/selectable_spec.rb +15 -16
- data/spec/mongoid/criteria/queryable/selectable_where_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/selector_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/smash_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/storable_spec.rb +37 -1
- data/spec/mongoid/criteria/scopable_spec.rb +127 -1
- data/spec/mongoid/criteria_projection_spec.rb +3 -4
- data/spec/mongoid/criteria_spec.rb +546 -186
- data/spec/mongoid/document_fields_spec.rb +0 -1
- data/spec/mongoid/document_persistence_context_spec.rb +0 -1
- data/spec/mongoid/document_query_spec.rb +0 -1
- data/spec/mongoid/document_spec.rb +32 -34
- data/spec/mongoid/equality_spec.rb +142 -41
- data/spec/mongoid/errors/ambiguous_relationship_spec.rb +0 -1
- data/spec/mongoid/errors/callback_spec.rb +0 -1
- data/spec/mongoid/errors/delete_restriction_spec.rb +0 -1
- data/spec/mongoid/errors/document_not_destroyed_spec.rb +0 -1
- data/spec/mongoid/errors/document_not_found_spec.rb +0 -1
- data/spec/mongoid/errors/eager_load_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_collection_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_config_file_spec.rb +31 -0
- data/spec/mongoid/errors/invalid_config_option_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_field_option_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_field_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_find_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_includes_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_index_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_options_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_path_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_relation_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_scope_spec.rb +1 -2
- data/spec/mongoid/errors/invalid_set_polymorphic_relation_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_storage_options_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_time_spec.rb +0 -1
- data/spec/mongoid/errors/inverse_not_found_spec.rb +0 -1
- data/spec/mongoid/errors/mixed_client_configuration_spec.rb +0 -1
- data/spec/mongoid/errors/mixed_relations_spec.rb +0 -1
- data/spec/mongoid/errors/mongoid_error_spec.rb +0 -1
- data/spec/mongoid/errors/nested_attributes_metadata_not_found_spec.rb +0 -1
- data/spec/mongoid/errors/no_client_config_spec.rb +0 -1
- data/spec/mongoid/errors/no_client_database_spec.rb +0 -1
- data/spec/mongoid/errors/no_client_hosts_spec.rb +0 -1
- data/spec/mongoid/errors/no_clients_config_spec.rb +0 -1
- data/spec/mongoid/errors/no_environment_spec.rb +0 -1
- data/spec/mongoid/errors/no_map_reduce_output_spec.rb +0 -1
- data/spec/mongoid/errors/no_metadata_spec.rb +0 -1
- data/spec/mongoid/errors/no_parent_spec.rb +0 -1
- data/spec/mongoid/errors/readonly_attribute_spec.rb +0 -1
- data/spec/mongoid/errors/readonly_document_spec.rb +0 -1
- data/spec/mongoid/errors/scope_overwrite_spec.rb +0 -1
- data/spec/mongoid/errors/too_many_nested_attribute_records_spec.rb +0 -1
- data/spec/mongoid/errors/unknown_attribute_spec.rb +2 -3
- data/spec/mongoid/errors/unsaved_document_spec.rb +0 -1
- data/spec/mongoid/errors/unsupported_javascript_spec.rb +0 -1
- data/spec/mongoid/errors/validations_spec.rb +0 -1
- data/spec/mongoid/extensions/array_spec.rb +0 -1
- data/spec/mongoid/extensions/big_decimal_spec.rb +0 -1
- data/spec/mongoid/extensions/binary_spec.rb +0 -1
- data/spec/mongoid/extensions/boolean_spec.rb +0 -1
- data/spec/mongoid/extensions/date_class_mongoize_spec.rb +0 -1
- data/spec/mongoid/extensions/date_spec.rb +0 -1
- data/spec/mongoid/extensions/date_time_spec.rb +0 -1
- data/spec/mongoid/extensions/decimal128_spec.rb +0 -1
- data/spec/mongoid/extensions/false_class_spec.rb +0 -1
- data/spec/mongoid/extensions/float_spec.rb +0 -1
- data/spec/mongoid/extensions/hash_spec.rb +0 -1
- data/spec/mongoid/extensions/integer_spec.rb +0 -1
- data/spec/mongoid/extensions/module_spec.rb +0 -1
- data/spec/mongoid/extensions/nil_class_spec.rb +0 -1
- data/spec/mongoid/extensions/object_id_spec.rb +0 -1
- data/spec/mongoid/extensions/object_spec.rb +0 -1
- data/spec/mongoid/extensions/range_spec.rb +0 -1
- data/spec/mongoid/extensions/regexp_spec.rb +0 -1
- data/spec/mongoid/extensions/set_spec.rb +0 -1
- data/spec/mongoid/extensions/string_spec.rb +2 -3
- data/spec/mongoid/extensions/stringified_symbol_spec.rb +0 -1
- data/spec/mongoid/extensions/symbol_spec.rb +0 -1
- data/spec/mongoid/extensions/time_spec.rb +0 -1
- data/spec/mongoid/extensions/time_with_zone_spec.rb +0 -1
- data/spec/mongoid/extensions/true_class_spec.rb +0 -1
- data/spec/mongoid/extensions_spec.rb +14 -3
- data/spec/mongoid/factory_spec.rb +1 -1
- data/spec/mongoid/fields/foreign_key_spec.rb +0 -1
- data/spec/mongoid/fields/localized_spec.rb +0 -1
- data/spec/mongoid/fields/standard_spec.rb +0 -1
- data/spec/mongoid/fields_spec.rb +326 -31
- data/spec/mongoid/findable_spec.rb +21 -22
- data/spec/mongoid/indexable/specification_spec.rb +0 -1
- data/spec/mongoid/indexable_spec.rb +0 -1
- data/spec/mongoid/inspectable_spec.rb +0 -1
- data/spec/mongoid/interceptable_spec.rb +102 -95
- data/spec/mongoid/loggable_spec.rb +0 -1
- data/spec/mongoid/matcher/extract_attribute_spec.rb +5 -2
- data/spec/mongoid/persistable/creatable_spec.rb +2 -3
- data/spec/mongoid/persistable/deletable_spec.rb +18 -19
- data/spec/mongoid/persistable/destroyable_spec.rb +8 -9
- data/spec/mongoid/persistable/incrementable_spec.rb +8 -9
- data/spec/mongoid/persistable/logical_spec.rb +4 -5
- data/spec/mongoid/persistable/poppable_spec.rb +4 -5
- data/spec/mongoid/persistable/pullable_spec.rb +8 -9
- data/spec/mongoid/persistable/pushable_spec.rb +8 -9
- data/spec/mongoid/persistable/renamable_spec.rb +3 -4
- data/spec/mongoid/persistable/savable_spec.rb +15 -11
- data/spec/mongoid/persistable/settable_spec.rb +9 -10
- data/spec/mongoid/persistable/unsettable_spec.rb +4 -5
- data/spec/mongoid/persistable/updatable_spec.rb +43 -24
- data/spec/mongoid/persistable/upsertable_spec.rb +1 -2
- data/spec/mongoid/persistable_spec.rb +1 -2
- data/spec/mongoid/persistence_context_spec.rb +0 -1
- data/spec/mongoid/positional_spec.rb +0 -1
- data/spec/mongoid/query_cache_middleware_spec.rb +1 -2
- data/spec/mongoid/query_cache_spec.rb +56 -10
- data/spec/mongoid/relations/proxy_spec.rb +6 -7
- data/spec/mongoid/reloadable_spec.rb +209 -23
- data/spec/mongoid/scopable_spec.rb +65 -22
- data/spec/mongoid/selectable_spec.rb +6 -7
- data/spec/mongoid/serializable_spec.rb +9 -10
- data/spec/mongoid/shardable_spec.rb +2 -3
- data/spec/mongoid/stateful_spec.rb +1 -2
- data/spec/mongoid/tasks/database_rake_spec.rb +0 -1
- data/spec/mongoid/tasks/database_spec.rb +0 -1
- data/spec/mongoid/threaded_spec.rb +2 -3
- data/spec/mongoid/timestamps/created/short_spec.rb +1 -2
- data/spec/mongoid/timestamps/created_spec.rb +1 -2
- data/spec/mongoid/timestamps/timeless_spec.rb +2 -3
- data/spec/mongoid/timestamps/updated/short_spec.rb +3 -4
- data/spec/mongoid/timestamps/updated_spec.rb +3 -4
- data/spec/mongoid/timestamps_spec.rb +6 -7
- data/spec/mongoid/touchable_spec.rb +33 -20
- data/spec/mongoid/touchable_spec_models.rb +2 -1
- data/spec/mongoid/traversable_spec.rb +65 -2
- data/spec/mongoid/validatable/associated_spec.rb +0 -1
- data/spec/mongoid/validatable/format_spec.rb +0 -1
- data/spec/mongoid/validatable/length_spec.rb +0 -1
- data/spec/mongoid/validatable/numericality_spec.rb +0 -1
- data/spec/mongoid/validatable/presence_spec.rb +26 -23
- data/spec/mongoid/validatable/uniqueness_spec.rb +67 -68
- data/spec/mongoid/validatable_spec.rb +2 -3
- data/spec/mongoid_spec.rb +0 -1
- data/spec/rails/controller_extension/controller_runtime_spec.rb +0 -1
- data/spec/rails/mongoid_spec.rb +0 -1
- data/spec/shared/lib/mrss/cluster_config.rb +6 -1
- data/spec/shared/lib/mrss/constraints.rb +23 -5
- data/spec/shared/lib/mrss/docker_runner.rb +1 -1
- data/spec/shared/lib/mrss/event_subscriber.rb +200 -0
- data/spec/shared/lib/mrss/lite_constraints.rb +8 -0
- data/spec/shared/lib/mrss/server_version_registry.rb +17 -12
- data/spec/shared/lib/mrss/session_registry.rb +69 -0
- data/spec/shared/lib/mrss/session_registry_legacy.rb +60 -0
- data/spec/shared/share/Dockerfile.erb +27 -10
- data/spec/shared/shlib/distro.sh +2 -1
- data/spec/shared/shlib/server.sh +85 -23
- data/spec/shared/shlib/set_env.sh +6 -5
- data/spec/spec_helper.rb +12 -22
- data/spec/support/authorization.rb +0 -1
- data/spec/support/constraints.rb +0 -1
- data/spec/support/expectations.rb +0 -1
- data/spec/support/macros.rb +22 -1
- data/spec/support/models/account.rb +1 -2
- data/spec/support/models/acolyte.rb +0 -1
- data/spec/support/models/actor.rb +0 -1
- data/spec/support/models/actress.rb +0 -1
- data/spec/support/models/address.rb +0 -1
- data/spec/support/models/address_component.rb +0 -1
- data/spec/support/models/address_number.rb +0 -1
- data/spec/support/models/agency.rb +0 -1
- data/spec/support/models/agent.rb +0 -1
- data/spec/support/models/album.rb +0 -1
- data/spec/support/models/alert.rb +0 -1
- data/spec/support/models/animal.rb +0 -1
- data/spec/support/models/answer.rb +0 -1
- data/spec/support/models/appointment.rb +0 -1
- data/spec/support/models/armrest.rb +0 -1
- data/spec/support/models/array_field.rb +0 -1
- data/spec/support/models/article.rb +0 -1
- data/spec/support/models/artist.rb +2 -1
- data/spec/support/models/artwork.rb +0 -1
- data/spec/support/models/audible_sound.rb +3 -0
- data/spec/support/models/audio.rb +0 -1
- data/spec/support/models/augmentation.rb +0 -1
- data/spec/support/models/author.rb +0 -1
- data/spec/support/models/baby.rb +0 -1
- data/spec/support/models/band.rb +4 -1
- data/spec/support/models/bar.rb +0 -1
- data/spec/support/models/basic.rb +0 -1
- data/spec/support/models/bed.rb +0 -1
- data/spec/support/models/big_palette.rb +0 -1
- data/spec/support/models/birthday.rb +0 -1
- data/spec/support/models/bolt.rb +0 -1
- data/spec/support/models/bomb.rb +0 -1
- data/spec/support/models/book.rb +0 -1
- data/spec/support/models/breed.rb +0 -1
- data/spec/support/models/browser.rb +0 -1
- data/spec/support/models/building.rb +0 -1
- data/spec/support/models/building_address.rb +0 -1
- data/spec/support/models/bus.rb +0 -1
- data/spec/support/models/business.rb +0 -1
- data/spec/support/models/callback_test.rb +0 -1
- data/spec/support/models/canvas.rb +0 -1
- data/spec/support/models/car.rb +0 -1
- data/spec/support/models/cat.rb +0 -1
- data/spec/support/models/category.rb +0 -1
- data/spec/support/models/child.rb +0 -1
- data/spec/support/models/child_doc.rb +3 -4
- data/spec/support/models/church.rb +0 -1
- data/spec/support/models/circle.rb +0 -1
- data/spec/support/models/circuit.rb +0 -1
- data/spec/support/models/circus.rb +0 -1
- data/spec/support/models/code.rb +0 -1
- data/spec/support/models/coding/pull_request.rb +0 -1
- data/spec/support/models/coding.rb +0 -1
- data/spec/support/models/comment.rb +0 -1
- data/spec/support/models/company.rb +0 -1
- data/spec/support/models/consumption_period.rb +0 -1
- data/spec/support/models/contextable_item.rb +0 -1
- data/spec/support/models/contractor.rb +0 -1
- data/spec/support/models/cookie.rb +0 -1
- data/spec/support/models/country_code.rb +2 -1
- data/spec/support/models/courier_job.rb +0 -1
- data/spec/support/models/crate.rb +0 -1
- data/spec/support/models/customer.rb +0 -1
- data/spec/support/models/customer_address.rb +0 -1
- data/spec/support/models/deed.rb +0 -1
- data/spec/support/models/definition.rb +0 -1
- data/spec/support/models/delegating_patient.rb +0 -1
- data/spec/support/models/description.rb +0 -1
- data/spec/support/models/dictionary.rb +0 -1
- data/spec/support/models/division.rb +0 -1
- data/spec/support/models/doctor.rb +0 -1
- data/spec/support/models/dog.rb +0 -1
- data/spec/support/models/dokument.rb +0 -1
- data/spec/support/models/draft.rb +0 -1
- data/spec/support/models/dragon.rb +0 -1
- data/spec/support/models/driver.rb +0 -1
- data/spec/support/models/drug.rb +0 -1
- data/spec/support/models/dungeon.rb +0 -1
- data/spec/support/models/edit.rb +0 -1
- data/spec/support/models/email.rb +0 -1
- data/spec/support/models/employer.rb +0 -1
- data/spec/support/models/entry.rb +0 -1
- data/spec/support/models/eraser.rb +0 -1
- data/spec/support/models/even.rb +0 -1
- data/spec/support/models/event.rb +0 -1
- data/spec/support/models/exhibition.rb +0 -1
- data/spec/support/models/exhibitor.rb +0 -1
- data/spec/support/models/explosion.rb +0 -1
- data/spec/support/models/eye.rb +0 -1
- data/spec/support/models/eye_bowl.rb +0 -1
- data/spec/support/models/face.rb +0 -1
- data/spec/support/models/favorite.rb +0 -1
- data/spec/support/models/filesystem.rb +0 -1
- data/spec/support/models/fire_hydrant.rb +0 -1
- data/spec/support/models/firefox.rb +0 -1
- data/spec/support/models/fish.rb +0 -1
- data/spec/support/models/folder.rb +0 -1
- data/spec/support/models/folder_item.rb +0 -1
- data/spec/support/models/fruits.rb +0 -1
- data/spec/support/models/game.rb +0 -1
- data/spec/support/models/ghost.rb +0 -1
- data/spec/support/models/guitar.rb +0 -1
- data/spec/support/models/hole.rb +0 -1
- data/spec/support/models/home.rb +0 -1
- data/spec/support/models/house.rb +0 -1
- data/spec/support/models/html_writer.rb +0 -1
- data/spec/support/models/id_key.rb +0 -1
- data/spec/support/models/idnodef.rb +0 -1
- data/spec/support/models/image.rb +0 -1
- data/spec/support/models/implant.rb +0 -1
- data/spec/support/models/instrument.rb +0 -1
- data/spec/support/models/item.rb +0 -1
- data/spec/support/models/jar.rb +0 -1
- data/spec/support/models/kaleidoscope.rb +0 -1
- data/spec/support/models/kangaroo.rb +0 -1
- data/spec/support/models/label.rb +2 -2
- data/spec/support/models/language.rb +0 -1
- data/spec/support/models/lat_lng.rb +0 -1
- data/spec/support/models/league.rb +0 -1
- data/spec/support/models/learner.rb +0 -1
- data/spec/support/models/line_item.rb +0 -1
- data/spec/support/models/location.rb +0 -1
- data/spec/support/models/login.rb +0 -1
- data/spec/support/models/manufacturer.rb +0 -1
- data/spec/support/models/meat.rb +0 -1
- data/spec/support/models/membership.rb +0 -1
- data/spec/support/models/message.rb +0 -1
- data/spec/support/models/minim.rb +0 -1
- data/spec/support/models/mixed_drink.rb +0 -1
- data/spec/support/models/mop.rb +0 -1
- data/spec/support/models/movie.rb +0 -1
- data/spec/support/models/my_hash.rb +0 -1
- data/spec/support/models/name.rb +0 -1
- data/spec/support/models/name_only.rb +0 -1
- data/spec/support/models/node.rb +0 -1
- data/spec/support/models/note.rb +0 -1
- data/spec/support/models/nut.rb +0 -1
- data/spec/support/models/odd.rb +0 -1
- data/spec/support/models/order.rb +2 -1
- data/spec/support/models/ordered_post.rb +1 -2
- data/spec/support/models/ordered_preference.rb +0 -1
- data/spec/support/models/oscar.rb +0 -1
- data/spec/support/models/other_owner_object.rb +0 -1
- data/spec/support/models/override.rb +0 -1
- data/spec/support/models/ownable.rb +0 -1
- data/spec/support/models/owner.rb +0 -1
- data/spec/support/models/pack.rb +0 -1
- data/spec/support/models/page.rb +0 -1
- data/spec/support/models/page_question.rb +0 -1
- data/spec/support/models/palette.rb +0 -1
- data/spec/support/models/parent.rb +0 -1
- data/spec/support/models/parent_doc.rb +0 -1
- data/spec/support/models/passport.rb +5 -1
- data/spec/support/models/patient.rb +0 -1
- data/spec/support/models/pdf_writer.rb +0 -1
- data/spec/support/models/pencil.rb +0 -1
- data/spec/support/models/person.rb +1 -1
- data/spec/support/models/pet.rb +0 -1
- data/spec/support/models/pet_owner.rb +0 -1
- data/spec/support/models/phone.rb +2 -2
- data/spec/support/models/piano.rb +0 -1
- data/spec/support/models/pizza.rb +0 -1
- data/spec/support/models/player.rb +0 -1
- data/spec/support/models/post.rb +0 -1
- data/spec/support/models/post_genre.rb +0 -1
- data/spec/support/models/powerup.rb +0 -1
- data/spec/support/models/preference.rb +0 -1
- data/spec/support/models/princess.rb +0 -1
- data/spec/support/models/product.rb +0 -1
- data/spec/support/models/profile.rb +0 -1
- data/spec/support/models/pronunciation.rb +0 -1
- data/spec/support/models/pub.rb +0 -1
- data/spec/support/models/publication/encyclopedia.rb +0 -1
- data/spec/support/models/publication/review.rb +0 -1
- data/spec/support/models/publication.rb +0 -1
- data/spec/support/models/purchase.rb +0 -1
- data/spec/support/models/purchased_item.rb +10 -0
- data/spec/support/models/question.rb +0 -1
- data/spec/support/models/quiz.rb +0 -1
- data/spec/support/models/rating.rb +0 -1
- data/spec/support/models/record.rb +0 -1
- data/spec/support/models/registry.rb +0 -1
- data/spec/support/models/role.rb +0 -1
- data/spec/support/models/root_category.rb +0 -1
- data/spec/support/models/sandwich.rb +0 -1
- data/spec/support/models/scheduler.rb +0 -1
- data/spec/support/models/scribe.rb +0 -1
- data/spec/support/models/sealer.rb +0 -1
- data/spec/support/models/seat.rb +0 -1
- data/spec/support/models/seo.rb +0 -1
- data/spec/support/models/series.rb +0 -1
- data/spec/support/models/server.rb +0 -1
- data/spec/support/models/service.rb +0 -1
- data/spec/support/models/shape.rb +0 -1
- data/spec/support/models/shelf.rb +0 -1
- data/spec/support/models/shipment_address.rb +0 -1
- data/spec/support/models/shipping_container.rb +0 -1
- data/spec/support/models/shipping_pack.rb +0 -1
- data/spec/support/models/shirt.rb +0 -1
- data/spec/support/models/shop.rb +0 -1
- data/spec/support/models/short_agent.rb +0 -1
- data/spec/support/models/short_quiz.rb +0 -1
- data/spec/support/models/simple.rb +0 -1
- data/spec/support/models/slave.rb +0 -1
- data/spec/support/models/song.rb +0 -1
- data/spec/support/models/sound.rb +0 -1
- data/spec/support/models/spacer.rb +0 -1
- data/spec/support/models/square.rb +0 -1
- data/spec/support/models/staff.rb +0 -1
- data/spec/support/models/store_as_dup_test1.rb +0 -1
- data/spec/support/models/store_as_dup_test2.rb +0 -1
- data/spec/support/models/store_as_dup_test3.rb +0 -1
- data/spec/support/models/store_as_dup_test4.rb +0 -1
- data/spec/support/models/strategy.rb +0 -1
- data/spec/support/models/sub_item.rb +0 -1
- data/spec/support/models/subscription.rb +0 -1
- data/spec/support/models/survey.rb +0 -1
- data/spec/support/models/symptom.rb +0 -1
- data/spec/support/models/tag.rb +0 -1
- data/spec/support/models/target.rb +0 -1
- data/spec/support/models/template.rb +0 -1
- data/spec/support/models/thing.rb +0 -1
- data/spec/support/models/threadlocker.rb +0 -1
- data/spec/support/models/title.rb +0 -1
- data/spec/support/models/tool.rb +0 -1
- data/spec/support/models/topping.rb +0 -1
- data/spec/support/models/toy.rb +0 -1
- data/spec/support/models/track.rb +0 -1
- data/spec/support/models/translation.rb +0 -1
- data/spec/support/models/tree.rb +0 -1
- data/spec/support/models/truck.rb +0 -1
- data/spec/support/models/updatable.rb +0 -1
- data/spec/support/models/user.rb +0 -1
- data/spec/support/models/user_account.rb +0 -1
- data/spec/support/models/validation_callback.rb +0 -1
- data/spec/support/models/vehicle.rb +0 -1
- data/spec/support/models/version.rb +0 -1
- data/spec/support/models/vertex.rb +0 -1
- data/spec/support/models/vet_visit.rb +0 -1
- data/spec/support/models/video.rb +0 -1
- data/spec/support/models/video_game.rb +0 -1
- data/spec/support/models/washer.rb +0 -1
- data/spec/support/models/weapon.rb +0 -1
- data/spec/support/models/wiki_page.rb +0 -1
- data/spec/support/models/word.rb +0 -1
- data/spec/support/models/word_origin.rb +0 -1
- data/spec/support/models/writer.rb +0 -1
- data/spec/support/shared/time.rb +0 -1
- data/spec/support/spec_config.rb +3 -1
- data.tar.gz.sig +0 -0
- metadata +642 -610
- metadata.gz.sig +0 -0
- data/lib/support/ruby_version.rb +0 -29
- data/spec/support/session_registry.rb +0 -50
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
require "spec_helper"
|
|
5
4
|
|
|
@@ -27,7 +26,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
27
26
|
context "when the inverse_of is nil" do
|
|
28
27
|
|
|
29
28
|
let!(:article) do
|
|
30
|
-
Article.create
|
|
29
|
+
Article.create!
|
|
31
30
|
end
|
|
32
31
|
|
|
33
32
|
context "when the child document is new" do
|
|
@@ -48,7 +47,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
48
47
|
context "when the child document is not new" do
|
|
49
48
|
|
|
50
49
|
let(:preference) do
|
|
51
|
-
Preference.create
|
|
50
|
+
Preference.create!
|
|
52
51
|
end
|
|
53
52
|
|
|
54
53
|
it "does not persist the child document" do
|
|
@@ -80,7 +79,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
80
79
|
context "when the parent is not a new record" do
|
|
81
80
|
|
|
82
81
|
let(:person) do
|
|
83
|
-
Person.create
|
|
82
|
+
Person.create!
|
|
84
83
|
end
|
|
85
84
|
|
|
86
85
|
let!(:preference) do
|
|
@@ -124,11 +123,11 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
124
123
|
context "when appending in a parent create block" do
|
|
125
124
|
|
|
126
125
|
let!(:preference) do
|
|
127
|
-
Preference.create(name: "testing")
|
|
126
|
+
Preference.create!(name: "testing")
|
|
128
127
|
end
|
|
129
128
|
|
|
130
129
|
let!(:person) do
|
|
131
|
-
Person.create do |doc|
|
|
130
|
+
Person.create! do |doc|
|
|
132
131
|
doc.preferences << preference
|
|
133
132
|
end
|
|
134
133
|
end
|
|
@@ -213,7 +212,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
213
212
|
context "when the child is already persisted" do
|
|
214
213
|
|
|
215
214
|
let!(:persisted) do
|
|
216
|
-
Preference.create(name: "testy")
|
|
215
|
+
Preference.create!(name: "testy")
|
|
217
216
|
end
|
|
218
217
|
|
|
219
218
|
let(:preference) do
|
|
@@ -222,7 +221,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
222
221
|
|
|
223
222
|
before do
|
|
224
223
|
person.preferences.send(method, preference)
|
|
225
|
-
person.save
|
|
224
|
+
person.save!
|
|
226
225
|
end
|
|
227
226
|
|
|
228
227
|
it "adds the documents to the relation" do
|
|
@@ -253,7 +252,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
253
252
|
context "when setting via the associated ids" do
|
|
254
253
|
|
|
255
254
|
let!(:persisted) do
|
|
256
|
-
Preference.create(name: "testy")
|
|
255
|
+
Preference.create!(name: "testy")
|
|
257
256
|
end
|
|
258
257
|
|
|
259
258
|
let(:preference) do
|
|
@@ -265,7 +264,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
265
264
|
end
|
|
266
265
|
|
|
267
266
|
before do
|
|
268
|
-
person.save
|
|
267
|
+
person.save!
|
|
269
268
|
end
|
|
270
269
|
|
|
271
270
|
it "adds the documents to the relation" do
|
|
@@ -293,7 +292,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
293
292
|
context "when the parent is not a new record" do
|
|
294
293
|
|
|
295
294
|
let(:person) do
|
|
296
|
-
Person.create
|
|
295
|
+
Person.create!
|
|
297
296
|
end
|
|
298
297
|
|
|
299
298
|
let(:preference) do
|
|
@@ -375,11 +374,11 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
375
374
|
context "when both sides have been persisted" do
|
|
376
375
|
|
|
377
376
|
let(:person) do
|
|
378
|
-
Person.create
|
|
377
|
+
Person.create!
|
|
379
378
|
end
|
|
380
379
|
|
|
381
380
|
let(:event) do
|
|
382
|
-
Event.create
|
|
381
|
+
Event.create!
|
|
383
382
|
end
|
|
384
383
|
|
|
385
384
|
before do
|
|
@@ -428,15 +427,15 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
428
427
|
context "when the relation also includes a has_many relation" do
|
|
429
428
|
|
|
430
429
|
let(:artwork) do
|
|
431
|
-
Artwork.create
|
|
430
|
+
Artwork.create!
|
|
432
431
|
end
|
|
433
432
|
|
|
434
433
|
let(:exhibition) do
|
|
435
|
-
Exhibition.create
|
|
434
|
+
Exhibition.create!
|
|
436
435
|
end
|
|
437
436
|
|
|
438
437
|
let(:exhibitor) do
|
|
439
|
-
Exhibitor.create(exhibition: exhibition)
|
|
438
|
+
Exhibitor.create!(exhibition: exhibition)
|
|
440
439
|
end
|
|
441
440
|
|
|
442
441
|
before do
|
|
@@ -451,11 +450,11 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
451
450
|
context "when the relation is self referencing" do
|
|
452
451
|
|
|
453
452
|
let(:tag_one) do
|
|
454
|
-
Tag.create(text: "one")
|
|
453
|
+
Tag.create!(text: "one")
|
|
455
454
|
end
|
|
456
455
|
|
|
457
456
|
let(:tag_two) do
|
|
458
|
-
Tag.create(text: "two")
|
|
457
|
+
Tag.create!(text: "two")
|
|
459
458
|
end
|
|
460
459
|
|
|
461
460
|
before do
|
|
@@ -564,7 +563,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
564
563
|
end
|
|
565
564
|
|
|
566
565
|
let(:preference) do
|
|
567
|
-
Preference.create(name: "one")
|
|
566
|
+
Preference.create!(name: "one")
|
|
568
567
|
end
|
|
569
568
|
|
|
570
569
|
before do
|
|
@@ -585,7 +584,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
585
584
|
context "when the document is persisted" do
|
|
586
585
|
|
|
587
586
|
before do
|
|
588
|
-
person.save
|
|
587
|
+
person.save!
|
|
589
588
|
end
|
|
590
589
|
|
|
591
590
|
it "does not add the duplicates" do
|
|
@@ -656,7 +655,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
656
655
|
end
|
|
657
656
|
|
|
658
657
|
let!(:preference) do
|
|
659
|
-
Preference.create
|
|
658
|
+
Preference.create!
|
|
660
659
|
end
|
|
661
660
|
|
|
662
661
|
before do
|
|
@@ -703,7 +702,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
703
702
|
context "when the parent is not a new record" do
|
|
704
703
|
|
|
705
704
|
let(:person) do
|
|
706
|
-
Person.create
|
|
705
|
+
Person.create!
|
|
707
706
|
end
|
|
708
707
|
|
|
709
708
|
let(:preference) do
|
|
@@ -787,7 +786,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
787
786
|
expect(person.preferences).to eq([ another_preference ])
|
|
788
787
|
end
|
|
789
788
|
|
|
790
|
-
it "persists the relation between
|
|
789
|
+
it "persists the relation between another_preference and person" do
|
|
791
790
|
expect(another_preference.people).to eq([ person ])
|
|
792
791
|
end
|
|
793
792
|
|
|
@@ -799,7 +798,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
799
798
|
context "and person is saved" do
|
|
800
799
|
|
|
801
800
|
before do
|
|
802
|
-
person.save
|
|
801
|
+
person.save!
|
|
803
802
|
person.reload
|
|
804
803
|
another_preference.reload
|
|
805
804
|
end
|
|
@@ -808,7 +807,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
808
807
|
expect(person.preferences).to eq([ another_preference ])
|
|
809
808
|
end
|
|
810
809
|
|
|
811
|
-
it "persists the relation between
|
|
810
|
+
it "persists the relation between another_preference and person" do
|
|
812
811
|
expect(another_preference.people).to eq([ person ])
|
|
813
812
|
end
|
|
814
813
|
|
|
@@ -823,11 +822,11 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
823
822
|
|
|
824
823
|
describe "when self-referencing" do
|
|
825
824
|
let!(:parent) do
|
|
826
|
-
Vertex.create
|
|
825
|
+
Vertex.create!
|
|
827
826
|
end
|
|
828
827
|
|
|
829
828
|
let!(:child) do
|
|
830
|
-
Vertex.create(parents: [parent])
|
|
829
|
+
Vertex.create!(parents: [parent])
|
|
831
830
|
end
|
|
832
831
|
|
|
833
832
|
before do
|
|
@@ -964,7 +963,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
964
963
|
context "when the relation has been loaded" do
|
|
965
964
|
|
|
966
965
|
let(:person) do
|
|
967
|
-
Person.create
|
|
966
|
+
Person.create!
|
|
968
967
|
end
|
|
969
968
|
|
|
970
969
|
let(:preference) do
|
|
@@ -1004,7 +1003,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1004
1003
|
end
|
|
1005
1004
|
|
|
1006
1005
|
let(:person) do
|
|
1007
|
-
Person.create
|
|
1006
|
+
Person.create!.tap do |p|
|
|
1008
1007
|
p.preferences = [ preference ]
|
|
1009
1008
|
end
|
|
1010
1009
|
end
|
|
@@ -1074,7 +1073,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1074
1073
|
context "when the parent is not a new record" do
|
|
1075
1074
|
|
|
1076
1075
|
let(:person) do
|
|
1077
|
-
Person.create
|
|
1076
|
+
Person.create!
|
|
1078
1077
|
end
|
|
1079
1078
|
|
|
1080
1079
|
let!(:preference) do
|
|
@@ -1112,7 +1111,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1112
1111
|
context "when saving the target" do
|
|
1113
1112
|
|
|
1114
1113
|
before do
|
|
1115
|
-
preference.save
|
|
1114
|
+
preference.save!
|
|
1116
1115
|
end
|
|
1117
1116
|
|
|
1118
1117
|
it "persists the parent keys" do
|
|
@@ -1131,13 +1130,13 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1131
1130
|
context "when the parent has been persisted" do
|
|
1132
1131
|
|
|
1133
1132
|
let!(:person) do
|
|
1134
|
-
Person.create
|
|
1133
|
+
Person.create!
|
|
1135
1134
|
end
|
|
1136
1135
|
|
|
1137
1136
|
context "when the children are persisted" do
|
|
1138
1137
|
|
|
1139
1138
|
let!(:preference) do
|
|
1140
|
-
person.preferences.create(name: "settings")
|
|
1139
|
+
person.preferences.create!(name: "settings")
|
|
1141
1140
|
end
|
|
1142
1141
|
|
|
1143
1142
|
let!(:relation) do
|
|
@@ -1309,7 +1308,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1309
1308
|
context "when the parent is not a new record" do
|
|
1310
1309
|
|
|
1311
1310
|
let(:person) do
|
|
1312
|
-
Person.create
|
|
1311
|
+
Person.create!
|
|
1313
1312
|
end
|
|
1314
1313
|
|
|
1315
1314
|
let!(:preference) do
|
|
@@ -1353,11 +1352,11 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1353
1352
|
context "when appending in a parent create block" do
|
|
1354
1353
|
|
|
1355
1354
|
let!(:preference) do
|
|
1356
|
-
Preference.create(name: "testing")
|
|
1355
|
+
Preference.create!(name: "testing")
|
|
1357
1356
|
end
|
|
1358
1357
|
|
|
1359
1358
|
let!(:person) do
|
|
1360
|
-
Person.create do |doc|
|
|
1359
|
+
Person.create! do |doc|
|
|
1361
1360
|
doc.preferences.concat([ preference ])
|
|
1362
1361
|
end
|
|
1363
1362
|
end
|
|
@@ -1442,7 +1441,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1442
1441
|
context "when the child is already persisted" do
|
|
1443
1442
|
|
|
1444
1443
|
let!(:persisted) do
|
|
1445
|
-
Preference.create(name: "testy")
|
|
1444
|
+
Preference.create!(name: "testy")
|
|
1446
1445
|
end
|
|
1447
1446
|
|
|
1448
1447
|
let(:preference) do
|
|
@@ -1451,7 +1450,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1451
1450
|
|
|
1452
1451
|
before do
|
|
1453
1452
|
person.preferences.concat([ preference ])
|
|
1454
|
-
person.save
|
|
1453
|
+
person.save!
|
|
1455
1454
|
end
|
|
1456
1455
|
|
|
1457
1456
|
it "adds the documents to the relation" do
|
|
@@ -1482,7 +1481,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1482
1481
|
context "when setting via the associated ids" do
|
|
1483
1482
|
|
|
1484
1483
|
let!(:persisted) do
|
|
1485
|
-
Preference.create(name: "testy")
|
|
1484
|
+
Preference.create!(name: "testy")
|
|
1486
1485
|
end
|
|
1487
1486
|
|
|
1488
1487
|
let(:preference) do
|
|
@@ -1494,7 +1493,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1494
1493
|
end
|
|
1495
1494
|
|
|
1496
1495
|
before do
|
|
1497
|
-
person.save
|
|
1496
|
+
person.save!
|
|
1498
1497
|
end
|
|
1499
1498
|
|
|
1500
1499
|
it "adds the documents to the relation" do
|
|
@@ -1522,7 +1521,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1522
1521
|
context "when the parent is not a new record" do
|
|
1523
1522
|
|
|
1524
1523
|
let(:person) do
|
|
1525
|
-
Person.create
|
|
1524
|
+
Person.create!
|
|
1526
1525
|
end
|
|
1527
1526
|
|
|
1528
1527
|
let(:preference) do
|
|
@@ -1604,11 +1603,11 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1604
1603
|
context "when both sides have been persisted" do
|
|
1605
1604
|
|
|
1606
1605
|
let(:person) do
|
|
1607
|
-
Person.create
|
|
1606
|
+
Person.create!
|
|
1608
1607
|
end
|
|
1609
1608
|
|
|
1610
1609
|
let(:event) do
|
|
1611
|
-
Event.create
|
|
1610
|
+
Event.create!
|
|
1612
1611
|
end
|
|
1613
1612
|
|
|
1614
1613
|
before do
|
|
@@ -1657,15 +1656,15 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1657
1656
|
context "when the relation also includes a has_many relation" do
|
|
1658
1657
|
|
|
1659
1658
|
let(:artwork) do
|
|
1660
|
-
Artwork.create
|
|
1659
|
+
Artwork.create!
|
|
1661
1660
|
end
|
|
1662
1661
|
|
|
1663
1662
|
let(:exhibition) do
|
|
1664
|
-
Exhibition.create
|
|
1663
|
+
Exhibition.create!
|
|
1665
1664
|
end
|
|
1666
1665
|
|
|
1667
1666
|
let(:exhibitor) do
|
|
1668
|
-
Exhibitor.create(exhibition: exhibition)
|
|
1667
|
+
Exhibitor.create!(exhibition: exhibition)
|
|
1669
1668
|
end
|
|
1670
1669
|
|
|
1671
1670
|
before do
|
|
@@ -1680,11 +1679,11 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1680
1679
|
context "when the relation is self referencing" do
|
|
1681
1680
|
|
|
1682
1681
|
let(:tag_one) do
|
|
1683
|
-
Tag.create(text: "one")
|
|
1682
|
+
Tag.create!(text: "one")
|
|
1684
1683
|
end
|
|
1685
1684
|
|
|
1686
1685
|
let(:tag_two) do
|
|
1687
|
-
Tag.create(text: "two")
|
|
1686
|
+
Tag.create!(text: "two")
|
|
1688
1687
|
end
|
|
1689
1688
|
|
|
1690
1689
|
before do
|
|
@@ -1735,7 +1734,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1735
1734
|
describe "#count" do
|
|
1736
1735
|
|
|
1737
1736
|
let(:person) do
|
|
1738
|
-
Person.create
|
|
1737
|
+
Person.create!
|
|
1739
1738
|
end
|
|
1740
1739
|
|
|
1741
1740
|
context "when nothing exists on the relation" do
|
|
@@ -1760,7 +1759,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1760
1759
|
describe "#any?" do
|
|
1761
1760
|
|
|
1762
1761
|
let(:person) do
|
|
1763
|
-
Person.create
|
|
1762
|
+
Person.create!
|
|
1764
1763
|
end
|
|
1765
1764
|
|
|
1766
1765
|
context "when nothing exists on the relation" do
|
|
@@ -1797,7 +1796,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1797
1796
|
context "when documents have been persisted" do
|
|
1798
1797
|
|
|
1799
1798
|
let!(:preference) do
|
|
1800
|
-
person.preferences.create(name: "setting")
|
|
1799
|
+
person.preferences.create!(name: "setting")
|
|
1801
1800
|
end
|
|
1802
1801
|
|
|
1803
1802
|
it "returns the number of persisted documents" do
|
|
@@ -1808,12 +1807,12 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1808
1807
|
context "when appending to a loaded relation" do
|
|
1809
1808
|
|
|
1810
1809
|
let!(:preference) do
|
|
1811
|
-
person.preferences.create(name: "setting")
|
|
1810
|
+
person.preferences.create!(name: "setting")
|
|
1812
1811
|
end
|
|
1813
1812
|
|
|
1814
1813
|
before do
|
|
1815
1814
|
person.preferences.count
|
|
1816
|
-
person.preferences << Preference.create(name: "two")
|
|
1815
|
+
person.preferences << Preference.create!(name: "two")
|
|
1817
1816
|
end
|
|
1818
1817
|
|
|
1819
1818
|
it "returns the number of persisted documents" do
|
|
@@ -1837,7 +1836,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1837
1836
|
context "when the documents are part of the relation" do
|
|
1838
1837
|
|
|
1839
1838
|
before do
|
|
1840
|
-
Preference.create(person_ids: [ person.id ])
|
|
1839
|
+
Preference.create!(person_ids: [ person.id ])
|
|
1841
1840
|
end
|
|
1842
1841
|
|
|
1843
1842
|
it "returns the count from the db" do
|
|
@@ -1848,7 +1847,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1848
1847
|
context "when the documents are not part of the relation" do
|
|
1849
1848
|
|
|
1850
1849
|
before do
|
|
1851
|
-
Preference.create
|
|
1850
|
+
Preference.create!
|
|
1852
1851
|
end
|
|
1853
1852
|
|
|
1854
1853
|
it "returns the count from the db" do
|
|
@@ -1862,7 +1861,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1862
1861
|
context "when documents have been persisted" do
|
|
1863
1862
|
|
|
1864
1863
|
let!(:house) do
|
|
1865
|
-
person.houses.create(name: "Wayne Manor")
|
|
1864
|
+
person.houses.create!(name: "Wayne Manor")
|
|
1866
1865
|
end
|
|
1867
1866
|
|
|
1868
1867
|
it "returns the number of persisted documents" do
|
|
@@ -1886,7 +1885,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1886
1885
|
describe "#any?" do
|
|
1887
1886
|
|
|
1888
1887
|
let(:sandwich) do
|
|
1889
|
-
Sandwich.create
|
|
1888
|
+
Sandwich.create!
|
|
1890
1889
|
end
|
|
1891
1890
|
|
|
1892
1891
|
context "when nothing exists on the relation" do
|
|
@@ -1954,7 +1953,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1954
1953
|
context "when documents have been persisted" do
|
|
1955
1954
|
|
|
1956
1955
|
let!(:meat) do
|
|
1957
|
-
sandwich.meats.create
|
|
1956
|
+
sandwich.meats.create!
|
|
1958
1957
|
end
|
|
1959
1958
|
|
|
1960
1959
|
it "returns true" do
|
|
@@ -1975,7 +1974,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1975
1974
|
|
|
1976
1975
|
context "when new documents exist in the database" do
|
|
1977
1976
|
before do
|
|
1978
|
-
Meat.create(sandwiches: [sandwich])
|
|
1977
|
+
Meat.create!(sandwiches: [sandwich])
|
|
1979
1978
|
end
|
|
1980
1979
|
|
|
1981
1980
|
it "returns true" do
|
|
@@ -1993,15 +1992,15 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1993
1992
|
context "when using string keys" do
|
|
1994
1993
|
|
|
1995
1994
|
let(:agent) do
|
|
1996
|
-
Agent.create(number: "007")
|
|
1995
|
+
Agent.create!(number: "007")
|
|
1997
1996
|
end
|
|
1998
1997
|
|
|
1999
1998
|
before do
|
|
2000
|
-
agent.accounts.
|
|
1999
|
+
agent.accounts.send(method, name: "test again")
|
|
2001
2000
|
end
|
|
2002
2001
|
|
|
2003
2002
|
it "does not convert the string key to an object id" do
|
|
2004
|
-
expect(agent.account_ids).to eq([ "
|
|
2003
|
+
expect(agent.account_ids).to eq([ "test-again" ])
|
|
2005
2004
|
end
|
|
2006
2005
|
end
|
|
2007
2006
|
|
|
@@ -2073,7 +2072,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
2073
2072
|
context "when validation fails" do
|
|
2074
2073
|
|
|
2075
2074
|
let(:person) do
|
|
2076
|
-
Person.create
|
|
2075
|
+
Person.create!
|
|
2077
2076
|
end
|
|
2078
2077
|
|
|
2079
2078
|
context "when the relation is not polymorphic" do
|
|
@@ -2090,15 +2089,15 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
2090
2089
|
describe "#delete" do
|
|
2091
2090
|
|
|
2092
2091
|
let(:person) do
|
|
2093
|
-
Person.create
|
|
2092
|
+
Person.create!
|
|
2094
2093
|
end
|
|
2095
2094
|
|
|
2096
2095
|
let(:preference_one) do
|
|
2097
|
-
Preference.create(name: "Testing")
|
|
2096
|
+
Preference.create!(name: "Testing")
|
|
2098
2097
|
end
|
|
2099
2098
|
|
|
2100
2099
|
let(:preference_two) do
|
|
2101
|
-
Preference.create(name: "Test")
|
|
2100
|
+
Preference.create!(name: "Test")
|
|
2102
2101
|
end
|
|
2103
2102
|
|
|
2104
2103
|
before do
|
|
@@ -2173,7 +2172,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
2173
2172
|
context "when :inverse_of is set" do
|
|
2174
2173
|
|
|
2175
2174
|
let(:event) do
|
|
2176
|
-
Event.create
|
|
2175
|
+
Event.create!
|
|
2177
2176
|
end
|
|
2178
2177
|
|
|
2179
2178
|
before do
|
|
@@ -2189,11 +2188,11 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
2189
2188
|
context "when the relationships are self referencing" do
|
|
2190
2189
|
|
|
2191
2190
|
let(:tag_one) do
|
|
2192
|
-
Tag.create(text: "one")
|
|
2191
|
+
Tag.create!(text: "one")
|
|
2193
2192
|
end
|
|
2194
2193
|
|
|
2195
2194
|
let(:tag_two) do
|
|
2196
|
-
Tag.create(text: "two")
|
|
2195
|
+
Tag.create!(text: "two")
|
|
2197
2196
|
end
|
|
2198
2197
|
|
|
2199
2198
|
before do
|
|
@@ -2362,15 +2361,15 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
2362
2361
|
context "when conditions are provided" do
|
|
2363
2362
|
|
|
2364
2363
|
let(:person) do
|
|
2365
|
-
Person.create
|
|
2364
|
+
Person.create!
|
|
2366
2365
|
end
|
|
2367
2366
|
|
|
2368
2367
|
let!(:preference_one) do
|
|
2369
|
-
person.preferences.create(name: "Testing")
|
|
2368
|
+
person.preferences.create!(name: "Testing")
|
|
2370
2369
|
end
|
|
2371
2370
|
|
|
2372
2371
|
let!(:preference_two) do
|
|
2373
|
-
person.preferences.create(name: "Test")
|
|
2372
|
+
person.preferences.create!(name: "Test")
|
|
2374
2373
|
end
|
|
2375
2374
|
|
|
2376
2375
|
let!(:deleted) do
|
|
@@ -2400,9 +2399,9 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
2400
2399
|
context "when conditions are not provided" do
|
|
2401
2400
|
|
|
2402
2401
|
let(:person) do
|
|
2403
|
-
Person.create
|
|
2404
|
-
person.preferences.create(name: "Testing")
|
|
2405
|
-
person.preferences.create(name: "Test")
|
|
2402
|
+
Person.create!.tap do |person|
|
|
2403
|
+
person.preferences.create!(name: "Testing")
|
|
2404
|
+
person.preferences.create!(name: "Test")
|
|
2406
2405
|
end
|
|
2407
2406
|
end
|
|
2408
2407
|
|
|
@@ -2436,13 +2435,13 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
2436
2435
|
describe "#exists?" do
|
|
2437
2436
|
|
|
2438
2437
|
let!(:person) do
|
|
2439
|
-
Person.create
|
|
2438
|
+
Person.create!
|
|
2440
2439
|
end
|
|
2441
2440
|
|
|
2442
2441
|
context "when documents exist in the database" do
|
|
2443
2442
|
|
|
2444
2443
|
before do
|
|
2445
|
-
person.preferences.create
|
|
2444
|
+
person.preferences.create!
|
|
2446
2445
|
end
|
|
2447
2446
|
|
|
2448
2447
|
it "returns true" do
|
|
@@ -2467,23 +2466,23 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
2467
2466
|
context "when the relation is not polymorphic" do
|
|
2468
2467
|
|
|
2469
2468
|
let(:person) do
|
|
2470
|
-
Person.create
|
|
2469
|
+
Person.create!
|
|
2471
2470
|
end
|
|
2472
2471
|
|
|
2473
2472
|
let!(:preference_one) do
|
|
2474
|
-
person.preferences.create(name: "Test")
|
|
2473
|
+
person.preferences.create!(name: "Test")
|
|
2475
2474
|
end
|
|
2476
2475
|
|
|
2477
2476
|
let!(:preference_two) do
|
|
2478
|
-
person.preferences.create(name: "OMG I has relations")
|
|
2477
|
+
person.preferences.create!(name: "OMG I has relations")
|
|
2479
2478
|
end
|
|
2480
2479
|
|
|
2481
2480
|
let!(:unrelated_pref) do
|
|
2482
|
-
Preference.create(name: "orphan annie")
|
|
2481
|
+
Preference.create!(name: "orphan annie")
|
|
2483
2482
|
end
|
|
2484
2483
|
|
|
2485
2484
|
let!(:unrelated_pref_two) do
|
|
2486
|
-
Preference.create(name: "orphan two")
|
|
2485
|
+
Preference.create!(name: "orphan two")
|
|
2487
2486
|
end
|
|
2488
2487
|
|
|
2489
2488
|
context "when providing an id" do
|
|
@@ -2561,7 +2560,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
2561
2560
|
end
|
|
2562
2561
|
end
|
|
2563
2562
|
|
|
2564
|
-
context "when the ids
|
|
2563
|
+
context "when the ids match unreferenced documents" do
|
|
2565
2564
|
|
|
2566
2565
|
let(:preferences) do
|
|
2567
2566
|
person.preferences.find(
|
|
@@ -2619,11 +2618,11 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
2619
2618
|
context "when the relation is not polymorphic" do
|
|
2620
2619
|
|
|
2621
2620
|
let(:person) do
|
|
2622
|
-
Person.create
|
|
2621
|
+
Person.create!
|
|
2623
2622
|
end
|
|
2624
2623
|
|
|
2625
2624
|
let!(:preference) do
|
|
2626
|
-
person.preferences.create(name: "Testing")
|
|
2625
|
+
person.preferences.create!(name: "Testing")
|
|
2627
2626
|
end
|
|
2628
2627
|
|
|
2629
2628
|
context "when the document exists" do
|
|
@@ -2659,11 +2658,11 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
2659
2658
|
context "when the relation is not polymorphic" do
|
|
2660
2659
|
|
|
2661
2660
|
let(:person) do
|
|
2662
|
-
Person.create
|
|
2661
|
+
Person.create!
|
|
2663
2662
|
end
|
|
2664
2663
|
|
|
2665
2664
|
let!(:preference) do
|
|
2666
|
-
person.preferences.create(name: "Testing")
|
|
2665
|
+
person.preferences.create!(name: "Testing")
|
|
2667
2666
|
end
|
|
2668
2667
|
|
|
2669
2668
|
context "when the document exists" do
|
|
@@ -2708,11 +2707,11 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
2708
2707
|
context "when the relation is not polymorphic" do
|
|
2709
2708
|
|
|
2710
2709
|
let(:person) do
|
|
2711
|
-
Person.create
|
|
2710
|
+
Person.create!
|
|
2712
2711
|
end
|
|
2713
2712
|
|
|
2714
2713
|
let!(:preference) do
|
|
2715
|
-
person.preferences.create(name: "Testing")
|
|
2714
|
+
person.preferences.create!(name: "Testing")
|
|
2716
2715
|
end
|
|
2717
2716
|
|
|
2718
2717
|
context "when the document exists" do
|
|
@@ -2746,15 +2745,15 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
2746
2745
|
describe "#max" do
|
|
2747
2746
|
|
|
2748
2747
|
let(:person) do
|
|
2749
|
-
Person.create
|
|
2748
|
+
Person.create!
|
|
2750
2749
|
end
|
|
2751
2750
|
|
|
2752
2751
|
let(:preference_one) do
|
|
2753
|
-
Preference.create(ranking: 5)
|
|
2752
|
+
Preference.create!(ranking: 5)
|
|
2754
2753
|
end
|
|
2755
2754
|
|
|
2756
2755
|
let(:preference_two) do
|
|
2757
|
-
Preference.create(ranking: 10)
|
|
2756
|
+
Preference.create!(ranking: 10)
|
|
2758
2757
|
end
|
|
2759
2758
|
|
|
2760
2759
|
before do
|
|
@@ -2775,15 +2774,15 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
2775
2774
|
describe "#max_by" do
|
|
2776
2775
|
|
|
2777
2776
|
let(:person) do
|
|
2778
|
-
Person.create
|
|
2777
|
+
Person.create!
|
|
2779
2778
|
end
|
|
2780
2779
|
|
|
2781
2780
|
let(:preference_one) do
|
|
2782
|
-
Preference.create(ranking: 5)
|
|
2781
|
+
Preference.create!(ranking: 5)
|
|
2783
2782
|
end
|
|
2784
2783
|
|
|
2785
2784
|
let(:preference_two) do
|
|
2786
|
-
Preference.create(ranking: 10)
|
|
2785
|
+
Preference.create!(ranking: 10)
|
|
2787
2786
|
end
|
|
2788
2787
|
|
|
2789
2788
|
before do
|
|
@@ -2802,19 +2801,19 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
2802
2801
|
describe "#method_missing" do
|
|
2803
2802
|
|
|
2804
2803
|
let!(:person) do
|
|
2805
|
-
Person.create
|
|
2804
|
+
Person.create!
|
|
2806
2805
|
end
|
|
2807
2806
|
|
|
2808
2807
|
let!(:preference_one) do
|
|
2809
|
-
person.preferences.create(name: "First", value: "Posting")
|
|
2808
|
+
person.preferences.create!(name: "First", value: "Posting")
|
|
2810
2809
|
end
|
|
2811
2810
|
|
|
2812
2811
|
let!(:preference_two) do
|
|
2813
|
-
person.preferences.create(name: "Second", value: "Testing")
|
|
2812
|
+
person.preferences.create!(name: "Second", value: "Testing")
|
|
2814
2813
|
end
|
|
2815
2814
|
|
|
2816
2815
|
let!(:unrelated) do
|
|
2817
|
-
Preference.create(name: "Third")
|
|
2816
|
+
Preference.create!(name: "Third")
|
|
2818
2817
|
end
|
|
2819
2818
|
|
|
2820
2819
|
context "when providing a single criteria" do
|
|
@@ -2889,7 +2888,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
2889
2888
|
context "when the inverse relation is not defined" do
|
|
2890
2889
|
|
|
2891
2890
|
let!(:house) do
|
|
2892
|
-
person.houses.create(name: "Wayne Manor")
|
|
2891
|
+
person.houses.create!(name: "Wayne Manor")
|
|
2893
2892
|
end
|
|
2894
2893
|
|
|
2895
2894
|
it "returns the distinct values for the fields" do
|
|
@@ -2903,15 +2902,15 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
2903
2902
|
describe "#min" do
|
|
2904
2903
|
|
|
2905
2904
|
let(:person) do
|
|
2906
|
-
Person.create
|
|
2905
|
+
Person.create!
|
|
2907
2906
|
end
|
|
2908
2907
|
|
|
2909
2908
|
let(:preference_one) do
|
|
2910
|
-
Preference.create(ranking: 5)
|
|
2909
|
+
Preference.create!(ranking: 5)
|
|
2911
2910
|
end
|
|
2912
2911
|
|
|
2913
2912
|
let(:preference_two) do
|
|
2914
|
-
Preference.create(ranking: 10)
|
|
2913
|
+
Preference.create!(ranking: 10)
|
|
2915
2914
|
end
|
|
2916
2915
|
|
|
2917
2916
|
before do
|
|
@@ -2932,15 +2931,15 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
2932
2931
|
describe "#min_by" do
|
|
2933
2932
|
|
|
2934
2933
|
let(:person) do
|
|
2935
|
-
Person.create
|
|
2934
|
+
Person.create!
|
|
2936
2935
|
end
|
|
2937
2936
|
|
|
2938
2937
|
let(:preference_one) do
|
|
2939
|
-
Preference.create(ranking: 5)
|
|
2938
|
+
Preference.create!(ranking: 5)
|
|
2940
2939
|
end
|
|
2941
2940
|
|
|
2942
2941
|
let(:preference_two) do
|
|
2943
|
-
Preference.create(ranking: 10)
|
|
2942
|
+
Preference.create!(ranking: 10)
|
|
2944
2943
|
end
|
|
2945
2944
|
|
|
2946
2945
|
before do
|
|
@@ -2966,15 +2965,15 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
2966
2965
|
describe "#nullify_all" do
|
|
2967
2966
|
|
|
2968
2967
|
let(:person) do
|
|
2969
|
-
Person.create
|
|
2968
|
+
Person.create!
|
|
2970
2969
|
end
|
|
2971
2970
|
|
|
2972
2971
|
let!(:preference_one) do
|
|
2973
|
-
person.preferences.create(name: "One")
|
|
2972
|
+
person.preferences.create!(name: "One")
|
|
2974
2973
|
end
|
|
2975
2974
|
|
|
2976
2975
|
let!(:preference_two) do
|
|
2977
|
-
person.preferences.create(name: "Two")
|
|
2976
|
+
person.preferences.create!(name: "Two")
|
|
2978
2977
|
end
|
|
2979
2978
|
|
|
2980
2979
|
before do
|
|
@@ -3095,13 +3094,13 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
3095
3094
|
describe "##{method}" do
|
|
3096
3095
|
|
|
3097
3096
|
let(:person) do
|
|
3098
|
-
Person.create
|
|
3097
|
+
Person.create!
|
|
3099
3098
|
end
|
|
3100
3099
|
|
|
3101
3100
|
context "when documents have been persisted" do
|
|
3102
3101
|
|
|
3103
3102
|
let!(:preference) do
|
|
3104
|
-
person.preferences.create(name: "Testing")
|
|
3103
|
+
person.preferences.create!(name: "Testing")
|
|
3105
3104
|
end
|
|
3106
3105
|
|
|
3107
3106
|
it "returns the number of documents" do
|
|
@@ -3113,7 +3112,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
3113
3112
|
|
|
3114
3113
|
before do
|
|
3115
3114
|
person.preferences.build(name: "Test")
|
|
3116
|
-
person.preferences.create(name: "Test 2")
|
|
3115
|
+
person.preferences.create!(name: "Test 2")
|
|
3117
3116
|
end
|
|
3118
3117
|
|
|
3119
3118
|
it "returns the total number of documents" do
|
|
@@ -3128,15 +3127,15 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
3128
3127
|
context "when the relation has no default scope" do
|
|
3129
3128
|
|
|
3130
3129
|
let!(:person) do
|
|
3131
|
-
Person.create
|
|
3130
|
+
Person.create!
|
|
3132
3131
|
end
|
|
3133
3132
|
|
|
3134
3133
|
let!(:preference_one) do
|
|
3135
|
-
person.preferences.create(name: "first")
|
|
3134
|
+
person.preferences.create!(name: "first")
|
|
3136
3135
|
end
|
|
3137
3136
|
|
|
3138
3137
|
let!(:preference_two) do
|
|
3139
|
-
Preference.create(name: "second")
|
|
3138
|
+
Preference.create!(name: "second")
|
|
3140
3139
|
end
|
|
3141
3140
|
|
|
3142
3141
|
let(:unscoped) do
|
|
@@ -3151,15 +3150,15 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
3151
3150
|
context "when the relation has a default scope" do
|
|
3152
3151
|
|
|
3153
3152
|
let!(:person) do
|
|
3154
|
-
Person.create
|
|
3153
|
+
Person.create!
|
|
3155
3154
|
end
|
|
3156
3155
|
|
|
3157
3156
|
let!(:house_one) do
|
|
3158
|
-
person.houses.create(name: "first")
|
|
3157
|
+
person.houses.create!(name: "first")
|
|
3159
3158
|
end
|
|
3160
3159
|
|
|
3161
3160
|
let!(:house_two) do
|
|
3162
|
-
House.create(name: "second")
|
|
3161
|
+
House.create!(name: "second")
|
|
3163
3162
|
end
|
|
3164
3163
|
|
|
3165
3164
|
let(:unscoped) do
|
|
@@ -3195,10 +3194,10 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
3195
3194
|
end
|
|
3196
3195
|
|
|
3197
3196
|
before do
|
|
3198
|
-
person.update_attributes(
|
|
3197
|
+
person.update_attributes!(
|
|
3199
3198
|
houses: [ wife_house, exwife_house, girlfriend_house ]
|
|
3200
3199
|
)
|
|
3201
|
-
person.update_attributes(house_ids: [ girlfriend_house.id ])
|
|
3200
|
+
person.update_attributes!(house_ids: [ girlfriend_house.id ])
|
|
3202
3201
|
end
|
|
3203
3202
|
|
|
3204
3203
|
context "when reloading" do
|
|
@@ -3245,7 +3244,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
3245
3244
|
end
|
|
3246
3245
|
|
|
3247
3246
|
let!(:business) do
|
|
3248
|
-
Business.create(name: "serious", owners: [ user ])
|
|
3247
|
+
Business.create!(name: "serious", owners: [ user ])
|
|
3249
3248
|
end
|
|
3250
3249
|
|
|
3251
3250
|
before do
|
|
@@ -3288,11 +3287,11 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
3288
3287
|
context "when the documents are persisted" do
|
|
3289
3288
|
|
|
3290
3289
|
let(:user) do
|
|
3291
|
-
User.create(name: "tst")
|
|
3290
|
+
User.create!(name: "tst")
|
|
3292
3291
|
end
|
|
3293
3292
|
|
|
3294
3293
|
let(:business) do
|
|
3295
|
-
Business.create(name: "srs", owners: [ user ])
|
|
3294
|
+
Business.create!(name: "srs", owners: [ user ])
|
|
3296
3295
|
end
|
|
3297
3296
|
|
|
3298
3297
|
before do
|
|
@@ -3336,11 +3335,11 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
3336
3335
|
context "when binding the relation multiple times" do
|
|
3337
3336
|
|
|
3338
3337
|
let(:person) do
|
|
3339
|
-
Person.create
|
|
3338
|
+
Person.create!
|
|
3340
3339
|
end
|
|
3341
3340
|
|
|
3342
3341
|
let(:preference) do
|
|
3343
|
-
person.preferences.create(name: "testing")
|
|
3342
|
+
person.preferences.create!(name: "testing")
|
|
3344
3343
|
end
|
|
3345
3344
|
|
|
3346
3345
|
before do
|
|
@@ -3359,19 +3358,19 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
3359
3358
|
context "when the association has order criteria" do
|
|
3360
3359
|
|
|
3361
3360
|
let(:person) do
|
|
3362
|
-
Person.create
|
|
3361
|
+
Person.create!
|
|
3363
3362
|
end
|
|
3364
3363
|
|
|
3365
3364
|
let(:preference_one) do
|
|
3366
|
-
OrderedPreference.create(name: 'preference-1', value: 10)
|
|
3365
|
+
OrderedPreference.create!(name: 'preference-1', value: 10)
|
|
3367
3366
|
end
|
|
3368
3367
|
|
|
3369
3368
|
let(:preference_two) do
|
|
3370
|
-
OrderedPreference.create(name: 'preference-2', value: 20)
|
|
3369
|
+
OrderedPreference.create!(name: 'preference-2', value: 20)
|
|
3371
3370
|
end
|
|
3372
3371
|
|
|
3373
3372
|
let(:preference_three) do
|
|
3374
|
-
OrderedPreference.create(name: 'preference-3', value: 20)
|
|
3373
|
+
OrderedPreference.create!(name: 'preference-3', value: 20)
|
|
3375
3374
|
end
|
|
3376
3375
|
|
|
3377
3376
|
before do
|
|
@@ -3395,7 +3394,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
3395
3394
|
context "when the parent is not a new record and freshly loaded" do
|
|
3396
3395
|
|
|
3397
3396
|
let(:person) do
|
|
3398
|
-
Person.create
|
|
3397
|
+
Person.create!
|
|
3399
3398
|
end
|
|
3400
3399
|
|
|
3401
3400
|
let(:preference) do
|
|
@@ -3404,7 +3403,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
3404
3403
|
|
|
3405
3404
|
before do
|
|
3406
3405
|
person.preferences = [ preference ]
|
|
3407
|
-
person.save
|
|
3406
|
+
person.save!
|
|
3408
3407
|
person.reload
|
|
3409
3408
|
person.preferences = nil
|
|
3410
3409
|
end
|
|
@@ -3427,15 +3426,15 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
3427
3426
|
context "when reloading the relation" do
|
|
3428
3427
|
|
|
3429
3428
|
let!(:person) do
|
|
3430
|
-
Person.create
|
|
3429
|
+
Person.create!
|
|
3431
3430
|
end
|
|
3432
3431
|
|
|
3433
3432
|
let!(:preference_one) do
|
|
3434
|
-
Preference.create(name: "one")
|
|
3433
|
+
Preference.create!(name: "one")
|
|
3435
3434
|
end
|
|
3436
3435
|
|
|
3437
3436
|
let!(:preference_two) do
|
|
3438
|
-
Preference.create(name: "two")
|
|
3437
|
+
Preference.create!(name: "two")
|
|
3439
3438
|
end
|
|
3440
3439
|
|
|
3441
3440
|
before do
|
|
@@ -3479,7 +3478,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
3479
3478
|
context "when the document is new" do
|
|
3480
3479
|
|
|
3481
3480
|
let!(:person) do
|
|
3482
|
-
Person.create(preference_names: "one, two")
|
|
3481
|
+
Person.create!(preference_names: "one, two")
|
|
3483
3482
|
end
|
|
3484
3483
|
|
|
3485
3484
|
let(:preference_one) do
|
|
@@ -3515,23 +3514,23 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
3515
3514
|
end
|
|
3516
3515
|
|
|
3517
3516
|
let(:preference_one) do
|
|
3518
|
-
Preference.create(name: "one")
|
|
3517
|
+
Preference.create!(name: "one")
|
|
3519
3518
|
end
|
|
3520
3519
|
|
|
3521
3520
|
let(:preference_two) do
|
|
3522
|
-
Preference.create(name: "two")
|
|
3521
|
+
Preference.create!(name: "two")
|
|
3523
3522
|
end
|
|
3524
3523
|
|
|
3525
3524
|
before do
|
|
3526
3525
|
person.preference_ids = [ preference_one.id, preference_two.id ]
|
|
3527
|
-
person.save
|
|
3526
|
+
person.save!
|
|
3528
3527
|
end
|
|
3529
3528
|
|
|
3530
3529
|
context "and the order is changed" do
|
|
3531
3530
|
|
|
3532
3531
|
before do
|
|
3533
3532
|
person.preference_ids = [ preference_two.id, preference_one.id ]
|
|
3534
|
-
person.save
|
|
3533
|
+
person.save!
|
|
3535
3534
|
end
|
|
3536
3535
|
|
|
3537
3536
|
let(:reloaded) do
|
|
@@ -3548,13 +3547,13 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
3548
3547
|
context "and the order is changed and an element is added" do
|
|
3549
3548
|
|
|
3550
3549
|
let(:preference_three) do
|
|
3551
|
-
Preference.create(name: "three")
|
|
3550
|
+
Preference.create!(name: "three")
|
|
3552
3551
|
end
|
|
3553
3552
|
|
|
3554
3553
|
before do
|
|
3555
3554
|
person.preference_ids =
|
|
3556
3555
|
[ preference_two.id, preference_one.id, preference_three.id ]
|
|
3557
|
-
person.save
|
|
3556
|
+
person.save!
|
|
3558
3557
|
end
|
|
3559
3558
|
|
|
3560
3559
|
let(:reloaded) do
|
|
@@ -3571,16 +3570,16 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
3571
3570
|
context "and the order is changed and an element is removed" do
|
|
3572
3571
|
|
|
3573
3572
|
let(:preference_three) do
|
|
3574
|
-
Preference.create(name: "three")
|
|
3573
|
+
Preference.create!(name: "three")
|
|
3575
3574
|
end
|
|
3576
3575
|
|
|
3577
3576
|
before do
|
|
3578
3577
|
person.preference_ids =
|
|
3579
3578
|
[ preference_one.id, preference_two.id, preference_three.id ]
|
|
3580
|
-
person.save
|
|
3579
|
+
person.save!
|
|
3581
3580
|
person.preference_ids =
|
|
3582
3581
|
[ preference_three.id, preference_two.id ]
|
|
3583
|
-
person.save
|
|
3582
|
+
person.save!
|
|
3584
3583
|
end
|
|
3585
3584
|
|
|
3586
3585
|
let(:reloaded) do
|
|
@@ -3630,15 +3629,15 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
3630
3629
|
context "when the relation exists" do
|
|
3631
3630
|
|
|
3632
3631
|
let!(:person) do
|
|
3633
|
-
Person.create
|
|
3632
|
+
Person.create!
|
|
3634
3633
|
end
|
|
3635
3634
|
|
|
3636
3635
|
let!(:pref_one) do
|
|
3637
|
-
person.preferences.create
|
|
3636
|
+
person.preferences.create!
|
|
3638
3637
|
end
|
|
3639
3638
|
|
|
3640
3639
|
let!(:pref_two) do
|
|
3641
|
-
Preference.create
|
|
3640
|
+
Preference.create!
|
|
3642
3641
|
end
|
|
3643
3642
|
|
|
3644
3643
|
before do
|
|
@@ -3654,15 +3653,19 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
3654
3653
|
context "when using a different primary key" do
|
|
3655
3654
|
|
|
3656
3655
|
let(:dog) do
|
|
3657
|
-
Dog.create(name: 'Doggie')
|
|
3656
|
+
Dog.create!(name: 'Doggie')
|
|
3658
3657
|
end
|
|
3659
3658
|
|
|
3660
3659
|
let(:cat) do
|
|
3661
|
-
Cat.create(name: 'Kitty')
|
|
3660
|
+
Cat.create!(name: 'Kitty')
|
|
3661
|
+
end
|
|
3662
|
+
|
|
3663
|
+
let(:another_cat) do
|
|
3664
|
+
Cat.create!(name: 'Kitten')
|
|
3662
3665
|
end
|
|
3663
3666
|
|
|
3664
3667
|
let(:fire_hydrant) do
|
|
3665
|
-
FireHydrant.create(location: '221B Baker Street')
|
|
3668
|
+
FireHydrant.create!(location: '221B Baker Street')
|
|
3666
3669
|
end
|
|
3667
3670
|
|
|
3668
3671
|
context "when adding to a one-way many to many" do
|
|
@@ -3676,6 +3679,28 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
3676
3679
|
end
|
|
3677
3680
|
end
|
|
3678
3681
|
|
|
3682
|
+
context "when adding multiple documents to a one-way many to many" do
|
|
3683
|
+
|
|
3684
|
+
before do
|
|
3685
|
+
fire_hydrant.cats.push([cat, another_cat])
|
|
3686
|
+
end
|
|
3687
|
+
|
|
3688
|
+
it "adds the pk values to the fk set" do
|
|
3689
|
+
expect(fire_hydrant.cat_ids).to eq([cat.name, another_cat.name])
|
|
3690
|
+
end
|
|
3691
|
+
end
|
|
3692
|
+
|
|
3693
|
+
context "when adding a new document to a one-way many to many" do
|
|
3694
|
+
|
|
3695
|
+
before do
|
|
3696
|
+
fire_hydrant.cats.build name: 'Kitten'
|
|
3697
|
+
end
|
|
3698
|
+
|
|
3699
|
+
it "adds the pk values to the fk set" do
|
|
3700
|
+
expect(fire_hydrant.cat_ids).to eq(['Kitten'])
|
|
3701
|
+
end
|
|
3702
|
+
end
|
|
3703
|
+
|
|
3679
3704
|
context "when adding to a two-way many to many" do
|
|
3680
3705
|
|
|
3681
3706
|
before do
|
|
@@ -3732,10 +3757,10 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
3732
3757
|
end
|
|
3733
3758
|
|
|
3734
3759
|
it "should assign relation from both sides" do
|
|
3735
|
-
p1 = Project.create name: 'Foo'
|
|
3736
|
-
p2 = Project.create name: 'Bar'
|
|
3737
|
-
d1 = Distributor.create name: 'Rock'
|
|
3738
|
-
d2 = Distributor.create name: 'Soul'
|
|
3760
|
+
p1 = Project.create! name: 'Foo'
|
|
3761
|
+
p2 = Project.create! name: 'Bar'
|
|
3762
|
+
d1 = Distributor.create! name: 'Rock'
|
|
3763
|
+
d2 = Distributor.create! name: 'Soul'
|
|
3739
3764
|
|
|
3740
3765
|
p1.distributors << d1
|
|
3741
3766
|
expect(p1.d_ids).to match_array([d1.id])
|