mongoid 7.0.13 → 7.1.0.rc0
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.tar.gz.sig +0 -0
- data/CHANGELOG.md +7 -7
- data/LICENSE +1 -1
- data/README.md +24 -18
- data/Rakefile +7 -45
- data/lib/config/locales/en.yml +56 -47
- data/lib/mongoid.rb +8 -1
- data/lib/mongoid/association.rb +9 -6
- data/lib/mongoid/association/accessors.rb +95 -52
- data/lib/mongoid/association/bindable.rb +7 -5
- data/lib/mongoid/association/builders.rb +4 -3
- data/lib/mongoid/association/constrainable.rb +4 -2
- data/lib/mongoid/association/depending.rb +5 -2
- data/lib/mongoid/association/eager_loadable.rb +2 -0
- data/lib/mongoid/association/embedded.rb +3 -0
- data/lib/mongoid/association/embedded/batchable.rb +4 -2
- data/lib/mongoid/association/embedded/cyclic.rb +8 -6
- data/lib/mongoid/association/embedded/embedded_in.rb +6 -3
- data/lib/mongoid/association/embedded/embedded_in/binding.rb +4 -1
- data/lib/mongoid/association/embedded/embedded_in/buildable.rb +8 -2
- data/lib/mongoid/association/embedded/embedded_in/proxy.rb +15 -12
- data/lib/mongoid/association/embedded/embeds_many.rb +8 -6
- data/lib/mongoid/association/embedded/embeds_many/binding.rb +5 -2
- data/lib/mongoid/association/embedded/embeds_many/buildable.rb +9 -3
- data/lib/mongoid/association/embedded/embeds_many/proxy.rb +41 -38
- data/lib/mongoid/association/embedded/embeds_one.rb +8 -6
- data/lib/mongoid/association/embedded/embeds_one/binding.rb +5 -2
- data/lib/mongoid/association/embedded/embeds_one/buildable.rb +10 -4
- data/lib/mongoid/association/embedded/embeds_one/proxy.rb +17 -14
- data/lib/mongoid/association/macros.rb +38 -36
- data/lib/mongoid/association/many.rb +11 -9
- data/lib/mongoid/association/marshalable.rb +3 -1
- data/lib/mongoid/association/nested.rb +4 -1
- data/lib/mongoid/association/nested/many.rb +17 -15
- data/lib/mongoid/association/nested/nested_buildable.rb +6 -3
- data/lib/mongoid/association/nested/one.rb +11 -9
- data/lib/mongoid/association/one.rb +3 -1
- data/lib/mongoid/association/options.rb +9 -6
- data/lib/mongoid/association/proxy.rb +12 -10
- data/lib/mongoid/association/referenced.rb +3 -0
- data/lib/mongoid/association/referenced/auto_save.rb +4 -1
- data/lib/mongoid/association/referenced/belongs_to.rb +6 -3
- data/lib/mongoid/association/referenced/belongs_to/binding.rb +3 -1
- data/lib/mongoid/association/referenced/belongs_to/buildable.rb +6 -3
- data/lib/mongoid/association/referenced/belongs_to/eager.rb +2 -0
- data/lib/mongoid/association/referenced/belongs_to/proxy.rb +16 -14
- data/lib/mongoid/association/referenced/counter_cache.rb +2 -0
- data/lib/mongoid/association/referenced/eager.rb +9 -7
- data/lib/mongoid/association/referenced/has_and_belongs_to_many.rb +13 -6
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/binding.rb +12 -6
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/buildable.rb +5 -2
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/eager.rb +2 -0
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/proxy.rb +25 -18
- data/lib/mongoid/association/referenced/has_many.rb +7 -4
- data/lib/mongoid/association/referenced/has_many/binding.rb +3 -1
- data/lib/mongoid/association/referenced/has_many/buildable.rb +5 -2
- data/lib/mongoid/association/referenced/has_many/eager.rb +2 -0
- data/lib/mongoid/association/referenced/has_many/enumerable.rb +30 -3
- data/lib/mongoid/association/referenced/has_many/proxy.rb +43 -41
- data/lib/mongoid/association/referenced/has_one.rb +5 -2
- data/lib/mongoid/association/referenced/has_one/binding.rb +4 -2
- data/lib/mongoid/association/referenced/has_one/buildable.rb +8 -1
- data/lib/mongoid/association/referenced/has_one/eager.rb +2 -0
- data/lib/mongoid/association/referenced/has_one/nested_builder.rb +11 -9
- data/lib/mongoid/association/referenced/has_one/proxy.rb +17 -15
- data/lib/mongoid/association/referenced/syncable.rb +7 -5
- data/lib/mongoid/association/reflections.rb +7 -5
- data/lib/mongoid/association/relatable.rb +17 -14
- data/lib/mongoid/atomic.rb +5 -13
- data/lib/mongoid/atomic/modifiers.rb +24 -1
- data/lib/mongoid/atomic/paths.rb +2 -0
- data/lib/mongoid/atomic/paths/embedded.rb +2 -0
- data/lib/mongoid/atomic/paths/embedded/many.rb +4 -2
- data/lib/mongoid/atomic/paths/embedded/one.rb +4 -2
- data/lib/mongoid/atomic/paths/root.rb +4 -2
- data/lib/mongoid/attributes.rb +35 -49
- data/lib/mongoid/attributes/dynamic.rb +2 -0
- data/lib/mongoid/attributes/nested.rb +7 -5
- data/lib/mongoid/attributes/processing.rb +8 -6
- data/lib/mongoid/attributes/readonly.rb +3 -1
- data/lib/mongoid/cacheable.rb +3 -1
- data/lib/mongoid/changeable.rb +3 -1
- data/lib/mongoid/clients.rb +2 -0
- data/lib/mongoid/clients/factory.rb +1 -0
- data/lib/mongoid/clients/options.rb +2 -0
- data/lib/mongoid/clients/sessions.rb +7 -20
- data/lib/mongoid/clients/storage_options.rb +2 -0
- data/lib/mongoid/clients/validators.rb +2 -0
- data/lib/mongoid/clients/validators/storage.rb +2 -0
- data/lib/mongoid/composable.rb +4 -2
- data/lib/mongoid/config.rb +15 -2
- data/lib/mongoid/config/environment.rb +2 -0
- data/lib/mongoid/config/options.rb +17 -12
- data/lib/mongoid/config/validators.rb +2 -0
- data/lib/mongoid/config/validators/client.rb +2 -0
- data/lib/mongoid/config/validators/option.rb +2 -0
- data/lib/mongoid/contextual.rb +2 -0
- data/lib/mongoid/contextual/aggregable/memory.rb +3 -1
- data/lib/mongoid/contextual/aggregable/mongo.rb +3 -1
- data/lib/mongoid/contextual/atomic.rb +24 -6
- data/lib/mongoid/contextual/command.rb +2 -0
- data/lib/mongoid/contextual/geo_near.rb +2 -1
- data/lib/mongoid/contextual/map_reduce.rb +2 -0
- data/lib/mongoid/contextual/memory.rb +4 -2
- data/lib/mongoid/contextual/mongo.rb +4 -0
- data/lib/mongoid/contextual/none.rb +2 -0
- data/lib/mongoid/contextual/queryable.rb +2 -0
- data/lib/mongoid/copyable.rb +3 -1
- data/lib/mongoid/criteria.rb +3 -7
- data/lib/mongoid/criteria/findable.rb +11 -1
- data/lib/mongoid/criteria/includable.rb +8 -6
- data/lib/mongoid/criteria/inspectable.rb +2 -0
- data/lib/mongoid/criteria/marshalable.rb +2 -0
- data/lib/mongoid/criteria/modifiable.rb +3 -2
- data/lib/mongoid/criteria/options.rb +2 -0
- data/lib/mongoid/criteria/permission.rb +2 -0
- data/lib/mongoid/criteria/queryable.rb +7 -2
- data/lib/mongoid/criteria/queryable/aggregable.rb +2 -0
- data/lib/mongoid/criteria/queryable/expandable.rb +93 -0
- data/lib/mongoid/criteria/queryable/extensions.rb +2 -0
- data/lib/mongoid/criteria/queryable/extensions/array.rb +3 -1
- data/lib/mongoid/criteria/queryable/extensions/big_decimal.rb +3 -1
- data/lib/mongoid/criteria/queryable/extensions/boolean.rb +2 -0
- data/lib/mongoid/criteria/queryable/extensions/date.rb +3 -1
- data/lib/mongoid/criteria/queryable/extensions/date_time.rb +5 -6
- data/lib/mongoid/criteria/queryable/extensions/hash.rb +3 -1
- data/lib/mongoid/criteria/queryable/extensions/nil_class.rb +3 -1
- data/lib/mongoid/criteria/queryable/extensions/numeric.rb +4 -2
- data/lib/mongoid/criteria/queryable/extensions/object.rb +3 -1
- data/lib/mongoid/criteria/queryable/extensions/range.rb +3 -1
- data/lib/mongoid/criteria/queryable/extensions/regexp.rb +7 -5
- data/lib/mongoid/criteria/queryable/extensions/set.rb +3 -1
- data/lib/mongoid/criteria/queryable/extensions/string.rb +3 -1
- data/lib/mongoid/criteria/queryable/extensions/symbol.rb +3 -1
- data/lib/mongoid/criteria/queryable/extensions/time.rb +3 -1
- data/lib/mongoid/criteria/queryable/extensions/time_with_zone.rb +3 -13
- data/lib/mongoid/criteria/queryable/key.rb +34 -6
- data/lib/mongoid/criteria/queryable/macroable.rb +3 -1
- data/lib/mongoid/criteria/queryable/mergeable.rb +86 -11
- data/lib/mongoid/criteria/queryable/optional.rb +5 -3
- data/lib/mongoid/criteria/queryable/options.rb +2 -0
- data/lib/mongoid/criteria/queryable/pipeline.rb +2 -0
- data/lib/mongoid/criteria/queryable/selectable.rb +264 -87
- data/lib/mongoid/criteria/queryable/selector.rb +38 -5
- data/lib/mongoid/criteria/queryable/smash.rb +2 -0
- data/lib/mongoid/criteria/queryable/storable.rb +228 -0
- data/lib/mongoid/criteria/scopable.rb +2 -0
- data/lib/mongoid/document.rb +4 -3
- data/lib/mongoid/equality.rb +3 -2
- data/lib/mongoid/errors.rb +3 -0
- data/lib/mongoid/errors/ambiguous_relationship.rb +4 -2
- data/lib/mongoid/errors/callback.rb +2 -0
- data/lib/mongoid/errors/criteria_argument_required.rb +19 -0
- data/lib/mongoid/errors/delete_restriction.rb +3 -2
- data/lib/mongoid/errors/document_not_destroyed.rb +2 -0
- data/lib/mongoid/errors/document_not_found.rb +2 -0
- data/lib/mongoid/errors/eager_load.rb +4 -2
- data/lib/mongoid/errors/in_memory_collation_not_supported.rb +2 -0
- data/lib/mongoid/errors/invalid_collection.rb +2 -0
- data/lib/mongoid/errors/invalid_config_option.rb +2 -0
- data/lib/mongoid/errors/invalid_dependent_strategy.rb +2 -0
- data/lib/mongoid/errors/invalid_field.rb +2 -0
- data/lib/mongoid/errors/invalid_field_option.rb +2 -0
- data/lib/mongoid/errors/invalid_find.rb +2 -0
- data/lib/mongoid/errors/invalid_includes.rb +2 -0
- data/lib/mongoid/errors/invalid_index.rb +2 -0
- data/lib/mongoid/errors/invalid_options.rb +4 -2
- data/lib/mongoid/errors/invalid_path.rb +2 -0
- data/lib/mongoid/errors/invalid_persistence_option.rb +2 -0
- data/lib/mongoid/errors/invalid_relation.rb +4 -2
- data/lib/mongoid/errors/invalid_relation_option.rb +4 -2
- data/lib/mongoid/errors/invalid_scope.rb +2 -0
- data/lib/mongoid/errors/invalid_session_use.rb +2 -0
- data/lib/mongoid/errors/invalid_set_polymorphic_relation.rb +6 -4
- data/lib/mongoid/errors/invalid_storage_options.rb +2 -0
- data/lib/mongoid/errors/invalid_storage_parent.rb +2 -0
- data/lib/mongoid/errors/invalid_time.rb +2 -0
- data/lib/mongoid/errors/invalid_value.rb +2 -0
- data/lib/mongoid/errors/inverse_not_found.rb +3 -1
- data/lib/mongoid/errors/mixed_client_configuration.rb +2 -0
- data/lib/mongoid/errors/mixed_relations.rb +2 -0
- data/lib/mongoid/errors/mongoid_error.rb +2 -0
- data/lib/mongoid/errors/nested_attributes_metadata_not_found.rb +3 -1
- data/lib/mongoid/errors/no_client_config.rb +2 -0
- data/lib/mongoid/errors/no_client_database.rb +2 -0
- data/lib/mongoid/errors/no_client_hosts.rb +2 -0
- data/lib/mongoid/errors/no_clients_config.rb +2 -0
- data/lib/mongoid/errors/no_default_client.rb +2 -0
- data/lib/mongoid/errors/no_environment.rb +2 -0
- data/lib/mongoid/errors/no_map_reduce_output.rb +2 -0
- data/lib/mongoid/errors/no_metadata.rb +2 -0
- data/lib/mongoid/errors/no_parent.rb +2 -0
- data/lib/mongoid/errors/readonly_attribute.rb +2 -0
- data/lib/mongoid/errors/readonly_document.rb +2 -0
- data/lib/mongoid/errors/scope_overwrite.rb +2 -0
- data/lib/mongoid/errors/too_many_nested_attribute_records.rb +3 -0
- data/lib/mongoid/errors/unknown_attribute.rb +2 -0
- data/lib/mongoid/errors/unknown_model.rb +2 -0
- data/lib/mongoid/errors/unsaved_document.rb +2 -0
- data/lib/mongoid/errors/unsupported_javascript.rb +2 -0
- data/lib/mongoid/errors/validations.rb +2 -0
- data/lib/mongoid/evolvable.rb +3 -1
- data/lib/mongoid/extensions.rb +2 -0
- data/lib/mongoid/extensions/array.rb +23 -6
- data/lib/mongoid/extensions/big_decimal.rb +2 -0
- data/lib/mongoid/extensions/boolean.rb +2 -0
- data/lib/mongoid/extensions/date.rb +13 -3
- data/lib/mongoid/extensions/date_time.rb +4 -3
- data/lib/mongoid/extensions/decimal128.rb +2 -0
- data/lib/mongoid/extensions/false_class.rb +2 -0
- data/lib/mongoid/extensions/float.rb +5 -3
- data/lib/mongoid/extensions/hash.rb +49 -11
- data/lib/mongoid/extensions/integer.rb +5 -3
- data/lib/mongoid/extensions/module.rb +2 -0
- data/lib/mongoid/extensions/nil_class.rb +2 -0
- data/lib/mongoid/extensions/object.rb +16 -4
- data/lib/mongoid/extensions/object_id.rb +2 -0
- data/lib/mongoid/extensions/range.rb +2 -0
- data/lib/mongoid/extensions/regexp.rb +3 -1
- data/lib/mongoid/extensions/set.rb +2 -0
- data/lib/mongoid/extensions/string.rb +18 -9
- data/lib/mongoid/extensions/symbol.rb +2 -0
- data/lib/mongoid/extensions/time.rb +14 -0
- data/lib/mongoid/extensions/time_with_zone.rb +14 -0
- data/lib/mongoid/extensions/true_class.rb +2 -0
- data/lib/mongoid/factory.rb +28 -5
- data/lib/mongoid/fields.rb +4 -3
- data/lib/mongoid/fields/foreign_key.rb +3 -1
- data/lib/mongoid/fields/localized.rb +2 -0
- data/lib/mongoid/fields/standard.rb +4 -2
- data/lib/mongoid/fields/validators.rb +2 -0
- data/lib/mongoid/fields/validators/macro.rb +13 -2
- data/lib/mongoid/findable.rb +6 -2
- data/lib/mongoid/indexable.rb +3 -1
- data/lib/mongoid/indexable/specification.rb +3 -1
- data/lib/mongoid/indexable/validators/options.rb +2 -0
- data/lib/mongoid/inspectable.rb +3 -1
- data/lib/mongoid/interceptable.rb +5 -5
- data/lib/mongoid/loggable.rb +13 -7
- data/lib/mongoid/matchable.rb +2 -0
- data/lib/mongoid/matchable/all.rb +2 -0
- data/lib/mongoid/matchable/and.rb +2 -0
- data/lib/mongoid/matchable/default.rb +2 -0
- data/lib/mongoid/matchable/elem_match.rb +2 -0
- data/lib/mongoid/matchable/eq.rb +1 -0
- data/lib/mongoid/matchable/exists.rb +2 -0
- data/lib/mongoid/matchable/gt.rb +2 -0
- data/lib/mongoid/matchable/gte.rb +2 -0
- data/lib/mongoid/matchable/in.rb +2 -0
- data/lib/mongoid/matchable/lt.rb +2 -0
- data/lib/mongoid/matchable/lte.rb +2 -0
- data/lib/mongoid/matchable/ne.rb +2 -0
- data/lib/mongoid/matchable/nin.rb +2 -0
- data/lib/mongoid/matchable/nor.rb +2 -1
- data/lib/mongoid/matchable/or.rb +2 -0
- data/lib/mongoid/matchable/regexp.rb +5 -2
- data/lib/mongoid/matchable/size.rb +2 -0
- data/lib/mongoid/persistable.rb +133 -15
- data/lib/mongoid/persistable/creatable.rb +3 -1
- data/lib/mongoid/persistable/deletable.rb +3 -1
- data/lib/mongoid/persistable/destroyable.rb +3 -1
- data/lib/mongoid/persistable/incrementable.rb +6 -2
- data/lib/mongoid/persistable/logical.rb +4 -1
- data/lib/mongoid/persistable/poppable.rb +3 -1
- data/lib/mongoid/persistable/pullable.rb +3 -1
- data/lib/mongoid/persistable/pushable.rb +5 -12
- data/lib/mongoid/persistable/renamable.rb +10 -3
- data/lib/mongoid/persistable/savable.rb +3 -1
- data/lib/mongoid/persistable/settable.rb +3 -1
- data/lib/mongoid/persistable/unsettable.rb +8 -3
- data/lib/mongoid/persistable/updatable.rb +3 -1
- data/lib/mongoid/persistable/upsertable.rb +3 -1
- data/lib/mongoid/persistence_context.rb +27 -15
- data/lib/mongoid/positional.rb +2 -0
- data/lib/mongoid/query_cache.rb +26 -69
- data/lib/mongoid/railtie.rb +3 -1
- data/lib/mongoid/railties/controller_runtime.rb +4 -1
- data/lib/mongoid/railties/database.rake +2 -0
- data/lib/mongoid/reloadable.rb +4 -2
- data/lib/mongoid/scopable.rb +2 -1
- data/lib/mongoid/selectable.rb +3 -1
- data/lib/mongoid/serializable.rb +13 -11
- data/lib/mongoid/shardable.rb +3 -1
- data/lib/mongoid/stateful.rb +3 -1
- data/lib/mongoid/tasks/database.rake +2 -0
- data/lib/mongoid/tasks/database.rb +2 -0
- data/lib/mongoid/threaded.rb +2 -0
- data/lib/mongoid/threaded/lifecycle.rb +2 -0
- data/lib/mongoid/timestamps.rb +3 -1
- data/lib/mongoid/timestamps/created.rb +3 -1
- data/lib/mongoid/timestamps/created/short.rb +2 -0
- data/lib/mongoid/timestamps/short.rb +2 -0
- data/lib/mongoid/timestamps/timeless.rb +3 -1
- data/lib/mongoid/timestamps/updated.rb +3 -1
- data/lib/mongoid/timestamps/updated/short.rb +2 -0
- data/lib/mongoid/touchable.rb +20 -12
- data/lib/mongoid/traversable.rb +4 -2
- data/lib/mongoid/validatable.rb +7 -5
- data/lib/mongoid/validatable/associated.rb +4 -2
- data/lib/mongoid/validatable/format.rb +2 -0
- data/lib/mongoid/validatable/length.rb +2 -0
- data/lib/mongoid/validatable/localizable.rb +2 -0
- data/lib/mongoid/validatable/macros.rb +2 -0
- data/lib/mongoid/validatable/presence.rb +4 -2
- data/lib/mongoid/validatable/queryable.rb +2 -0
- data/lib/mongoid/validatable/uniqueness.rb +5 -3
- data/lib/mongoid/version.rb +2 -1
- data/lib/rails/generators/mongoid/config/config_generator.rb +3 -8
- data/lib/rails/generators/mongoid/config/templates/mongoid.yml +12 -6
- data/lib/rails/generators/mongoid/model/model_generator.rb +3 -1
- data/lib/rails/generators/mongoid/model/templates/model.rb.tt +1 -1
- data/lib/rails/generators/mongoid_generator.rb +2 -0
- data/lib/rails/mongoid.rb +4 -2
- data/lib/support/ruby_version.rb +3 -0
- data/spec/app/models/account.rb +3 -0
- data/spec/app/models/acolyte.rb +3 -0
- data/spec/app/models/actor.rb +3 -0
- data/spec/app/models/actress.rb +3 -0
- data/spec/app/models/address.rb +3 -0
- data/spec/app/models/address_component.rb +3 -0
- data/spec/app/models/address_number.rb +3 -0
- data/spec/app/models/agency.rb +3 -0
- data/spec/app/models/agent.rb +3 -0
- data/spec/app/models/album.rb +3 -0
- data/spec/app/models/alert.rb +3 -0
- data/spec/app/models/animal.rb +3 -0
- data/spec/app/models/answer.rb +3 -0
- data/spec/app/models/appointment.rb +3 -0
- data/spec/app/models/array_field.rb +1 -0
- data/spec/app/models/article.rb +3 -0
- data/spec/app/models/artist.rb +3 -0
- data/spec/app/models/artwork.rb +3 -0
- data/spec/app/models/audio.rb +3 -0
- data/spec/app/models/augmentation.rb +3 -0
- data/spec/app/models/author.rb +3 -0
- data/spec/app/models/baby.rb +3 -0
- data/spec/app/models/band.rb +3 -0
- data/spec/app/models/bar.rb +3 -0
- data/spec/app/models/basic.rb +3 -0
- data/spec/app/models/bed.rb +3 -0
- data/spec/app/models/big_palette.rb +3 -0
- data/spec/app/models/birthday.rb +3 -0
- data/spec/app/models/bomb.rb +3 -0
- data/spec/app/models/book.rb +3 -0
- data/spec/app/models/breed.rb +3 -0
- data/spec/app/models/browser.rb +3 -0
- data/spec/app/models/building.rb +3 -0
- data/spec/app/models/building_address.rb +3 -0
- data/spec/app/models/bus.rb +3 -0
- data/spec/app/models/business.rb +3 -0
- data/spec/app/models/callback_test.rb +3 -0
- data/spec/app/models/canvas.rb +3 -0
- data/spec/app/models/car.rb +3 -0
- data/spec/app/models/cat.rb +3 -0
- data/spec/app/models/category.rb +3 -0
- data/spec/app/models/child.rb +3 -0
- data/spec/app/models/child_doc.rb +3 -0
- data/spec/app/models/church.rb +3 -0
- data/spec/app/models/circle.rb +3 -0
- data/spec/app/models/circuit.rb +3 -0
- data/spec/app/models/circus.rb +3 -0
- data/spec/app/models/code.rb +3 -0
- data/spec/app/models/comment.rb +3 -0
- data/spec/app/models/company.rb +3 -0
- data/spec/app/models/consumption_period.rb +3 -0
- data/spec/app/models/contextable_item.rb +3 -0
- data/spec/app/models/contractor.rb +3 -0
- data/spec/app/models/cookie.rb +3 -0
- data/spec/app/models/country_code.rb +3 -0
- data/spec/app/models/courier_job.rb +3 -0
- data/spec/app/models/definition.rb +3 -0
- data/spec/app/models/description.rb +3 -0
- data/spec/app/models/dictionary.rb +3 -0
- data/spec/app/models/division.rb +3 -0
- data/spec/app/models/doctor.rb +3 -0
- data/spec/app/models/dog.rb +3 -0
- data/spec/app/models/dokument.rb +3 -0
- data/spec/app/models/draft.rb +3 -0
- data/spec/app/models/dragon.rb +3 -0
- data/spec/app/models/driver.rb +3 -0
- data/spec/app/models/drug.rb +3 -0
- data/spec/app/models/dungeon.rb +3 -0
- data/spec/app/models/edit.rb +3 -0
- data/spec/app/models/email.rb +3 -0
- data/spec/app/models/employer.rb +3 -0
- data/spec/app/models/entry.rb +3 -0
- data/spec/app/models/eraser.rb +3 -0
- data/spec/app/models/even.rb +3 -0
- data/spec/app/models/event.rb +3 -0
- data/spec/app/models/exhibition.rb +3 -0
- data/spec/app/models/exhibitor.rb +3 -0
- data/spec/app/models/explosion.rb +3 -0
- data/spec/app/models/eye.rb +3 -0
- data/spec/app/models/eye_bowl.rb +3 -0
- data/spec/app/models/face.rb +3 -0
- data/spec/app/models/favorite.rb +3 -0
- data/spec/app/models/filesystem.rb +3 -0
- data/spec/app/models/fire_hydrant.rb +3 -0
- data/spec/app/models/firefox.rb +3 -0
- data/spec/app/models/fish.rb +3 -0
- data/spec/app/models/folder.rb +3 -0
- data/spec/app/models/folder_item.rb +3 -0
- data/spec/app/models/fruits.rb +3 -0
- data/spec/app/models/game.rb +3 -0
- data/spec/app/models/ghost.rb +3 -0
- data/spec/app/models/home.rb +3 -0
- data/spec/app/models/house.rb +3 -0
- data/spec/app/models/html_writer.rb +3 -0
- data/spec/app/models/id_key.rb +3 -0
- data/spec/app/models/image.rb +3 -0
- data/spec/app/models/implant.rb +3 -0
- data/spec/app/models/item.rb +3 -0
- data/spec/app/models/jar.rb +3 -0
- data/spec/app/models/kaleidoscope.rb +3 -0
- data/spec/app/models/kangaroo.rb +4 -1
- data/spec/app/models/label.rb +3 -0
- data/spec/app/models/language.rb +3 -0
- data/spec/app/models/lat_lng.rb +3 -0
- data/spec/app/models/league.rb +3 -0
- data/spec/app/models/learner.rb +3 -0
- data/spec/app/models/line_item.rb +3 -0
- data/spec/app/models/location.rb +3 -0
- data/spec/app/models/login.rb +3 -0
- data/spec/app/models/manufacturer.rb +3 -0
- data/spec/app/models/meat.rb +3 -0
- data/spec/app/models/membership.rb +3 -0
- data/spec/app/models/message.rb +3 -0
- data/spec/app/models/minim.rb +1 -1
- data/spec/app/models/mixed_drink.rb +3 -0
- data/spec/app/models/movie.rb +3 -0
- data/spec/app/models/my_hash.rb +3 -0
- data/spec/app/models/name.rb +3 -0
- data/spec/app/models/name_only.rb +9 -0
- data/spec/app/models/node.rb +3 -0
- data/spec/app/models/note.rb +3 -0
- data/spec/app/models/odd.rb +3 -0
- data/spec/app/models/ordered_post.rb +3 -0
- data/spec/app/models/ordered_preference.rb +3 -0
- data/spec/app/models/oscar.rb +3 -0
- data/spec/app/models/other_owner_object.rb +3 -0
- data/spec/app/models/override.rb +3 -0
- data/spec/app/models/ownable.rb +3 -0
- data/spec/app/models/owner.rb +3 -0
- data/spec/app/models/pack.rb +3 -0
- data/spec/app/models/page.rb +3 -0
- data/spec/app/models/page_question.rb +3 -0
- data/spec/app/models/palette.rb +3 -0
- data/spec/app/models/parent.rb +3 -0
- data/spec/app/models/parent_doc.rb +3 -0
- data/spec/app/models/passport.rb +3 -0
- data/spec/app/models/patient.rb +3 -0
- data/spec/app/models/pdf_writer.rb +3 -0
- data/spec/app/models/pencil.rb +3 -0
- data/spec/app/models/person.rb +3 -0
- data/spec/app/models/pet.rb +3 -0
- data/spec/app/models/pet_owner.rb +3 -0
- data/spec/app/models/phone.rb +3 -0
- data/spec/app/models/pizza.rb +3 -0
- data/spec/app/models/player.rb +3 -0
- data/spec/app/models/post.rb +3 -0
- data/spec/app/models/post_genre.rb +3 -0
- data/spec/app/models/powerup.rb +3 -0
- data/spec/app/models/preference.rb +3 -0
- data/spec/app/models/princess.rb +3 -0
- data/spec/app/models/product.rb +3 -0
- data/spec/app/models/profile.rb +3 -0
- data/spec/app/models/pronunciation.rb +3 -0
- data/spec/app/models/pub.rb +3 -0
- data/spec/app/models/purchase.rb +3 -0
- data/spec/app/models/question.rb +3 -0
- data/spec/app/models/quiz.rb +3 -0
- data/spec/app/models/rating.rb +3 -0
- data/spec/app/models/record.rb +3 -0
- data/spec/app/models/registry.rb +3 -0
- data/spec/app/models/role.rb +3 -0
- data/spec/app/models/root_category.rb +3 -0
- data/spec/app/models/sandwich.rb +3 -0
- data/spec/app/models/scheduler.rb +3 -0
- data/spec/app/models/seo.rb +3 -0
- data/spec/app/models/series.rb +3 -0
- data/spec/app/models/server.rb +3 -0
- data/spec/app/models/service.rb +3 -0
- data/spec/app/models/shape.rb +3 -0
- data/spec/app/models/shelf.rb +3 -0
- data/spec/app/models/shipment_address.rb +3 -0
- data/spec/app/models/shipping_container.rb +3 -0
- data/spec/app/models/shipping_pack.rb +3 -0
- data/spec/app/models/shop.rb +3 -0
- data/spec/app/models/short_agent.rb +3 -0
- data/spec/app/models/short_quiz.rb +3 -0
- data/spec/app/models/simple.rb +3 -0
- data/spec/app/models/slave.rb +3 -0
- data/spec/app/models/song.rb +3 -0
- data/spec/app/models/sound.rb +3 -0
- data/spec/app/models/square.rb +3 -0
- data/spec/app/models/staff.rb +3 -0
- data/spec/app/models/store_as_dup_test1.rb +3 -0
- data/spec/app/models/store_as_dup_test2.rb +3 -0
- data/spec/app/models/store_as_dup_test3.rb +1 -0
- data/spec/app/models/store_as_dup_test4.rb +1 -0
- data/spec/app/models/strategy.rb +3 -0
- data/spec/app/models/sub_item.rb +3 -0
- data/spec/app/models/subscription.rb +3 -0
- data/spec/app/models/survey.rb +3 -0
- data/spec/app/models/symptom.rb +3 -0
- data/spec/app/models/tag.rb +3 -0
- data/spec/app/models/target.rb +3 -0
- data/spec/app/models/template.rb +3 -0
- data/spec/app/models/thing.rb +3 -0
- data/spec/app/models/title.rb +3 -0
- data/spec/app/models/tool.rb +3 -0
- data/spec/app/models/topping.rb +3 -0
- data/spec/app/models/track.rb +3 -0
- data/spec/app/models/translation.rb +3 -0
- data/spec/app/models/tree.rb +3 -0
- data/spec/app/models/truck.rb +3 -0
- data/spec/app/models/updatable.rb +1 -0
- data/spec/app/models/user.rb +3 -0
- data/spec/app/models/user_account.rb +3 -0
- data/spec/app/models/validation_callback.rb +3 -0
- data/spec/app/models/vehicle.rb +3 -0
- data/spec/app/models/version.rb +3 -0
- data/spec/app/models/vertex.rb +4 -1
- data/spec/app/models/vet_visit.rb +3 -0
- data/spec/app/models/video.rb +3 -0
- data/spec/app/models/video_game.rb +3 -0
- data/spec/app/models/weapon.rb +3 -0
- data/spec/app/models/wiki_page.rb +3 -0
- data/spec/app/models/word.rb +3 -0
- data/spec/app/models/word_origin.rb +3 -0
- data/spec/app/models/writer.rb +3 -0
- data/spec/config/mongoid.yml +1 -0
- data/spec/integration/associations/belongs_to_spec.rb +3 -0
- data/spec/integration/associations/embedded_spec.rb +0 -55
- data/spec/integration/associations/foreign_key_spec.rb +99 -0
- data/spec/integration/associations/foreign_key_spec_models.rb +65 -0
- data/spec/integration/associations/reverse_population_spec.rb +35 -0
- data/spec/integration/associations/reverse_population_spec_models.rb +37 -0
- data/spec/integration/criteria/default_scope_spec.rb +21 -0
- data/spec/integration/criteria/logical_spec.rb +81 -0
- data/spec/integration/i18n_fallbacks_spec.rb +90 -0
- data/spec/lite_spec_helper.rb +11 -18
- data/spec/mongoid/association/accessors_spec.rb +3 -0
- data/spec/mongoid/association/auto_save_spec.rb +3 -0
- data/spec/mongoid/association/builders_spec.rb +3 -0
- data/spec/mongoid/association/constrainable_spec.rb +3 -0
- data/spec/mongoid/association/counter_cache_spec.rb +3 -0
- data/spec/mongoid/association/depending_spec.rb +3 -0
- data/spec/mongoid/association/eager_spec.rb +3 -0
- data/spec/mongoid/association/embedded/cyclic_spec.rb +3 -0
- data/spec/mongoid/association/embedded/dirty_spec.rb +3 -0
- data/spec/mongoid/association/embedded/embedded_in/binding_spec.rb +3 -0
- data/spec/mongoid/association/embedded/embedded_in/buildable_spec.rb +3 -0
- data/spec/mongoid/association/embedded/embedded_in/proxy_spec.rb +3 -50
- data/spec/mongoid/association/embedded/embedded_in_spec.rb +4 -1
- data/spec/mongoid/association/embedded/embeds_many/binding_spec.rb +3 -0
- data/spec/mongoid/association/embedded/embeds_many/buildable_spec.rb +3 -0
- data/spec/mongoid/association/embedded/embeds_many/proxy_spec.rb +3 -0
- data/spec/mongoid/association/embedded/embeds_many_models.rb +0 -19
- data/spec/mongoid/association/embedded/embeds_many_query_spec.rb +52 -0
- data/spec/mongoid/association/embedded/embeds_many_spec.rb +4 -11
- data/spec/mongoid/association/embedded/embeds_one/binding_spec.rb +3 -0
- data/spec/mongoid/association/embedded/embeds_one/buildable_spec.rb +3 -0
- data/spec/mongoid/association/embedded/embeds_one/proxy_spec.rb +3 -0
- data/spec/mongoid/association/embedded/embeds_one_dnl_models.rb +3 -0
- data/spec/mongoid/association/embedded/embeds_one_models.rb +3 -0
- data/spec/mongoid/association/embedded/embeds_one_query_spec.rb +29 -0
- data/spec/mongoid/association/embedded/embeds_one_spec.rb +6 -1
- data/spec/mongoid/association/macros_spec.rb +3 -0
- data/spec/mongoid/association/nested/many_spec.rb +3 -0
- data/spec/mongoid/association/nested/one_spec.rb +3 -0
- data/spec/mongoid/association/options_spec.rb +3 -0
- data/spec/mongoid/association/polymorphic_spec.rb +3 -0
- data/spec/mongoid/association/referenced/belongs_to/binding_spec.rb +3 -0
- data/spec/mongoid/association/referenced/belongs_to/buildable_spec.rb +3 -0
- data/spec/mongoid/association/referenced/belongs_to/eager_spec.rb +12 -0
- data/spec/mongoid/association/referenced/belongs_to/proxy_spec.rb +3 -0
- data/spec/mongoid/association/referenced/belongs_to_query_spec.rb +38 -0
- data/spec/mongoid/association/referenced/belongs_to_spec.rb +3 -0
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/binding_spec.rb +3 -0
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/buildable_spec.rb +3 -0
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/eager_spec.rb +16 -0
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_persistence_spec.rb +26 -5
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_spec.rb +38 -154
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_models.rb +26 -2
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_query_spec.rb +40 -0
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_spec.rb +26 -2
- data/spec/mongoid/association/referenced/has_many/binding_spec.rb +3 -0
- data/spec/mongoid/association/referenced/has_many/buildable_spec.rb +3 -0
- data/spec/mongoid/association/referenced/has_many/eager_spec.rb +18 -3
- data/spec/mongoid/association/referenced/has_many/enumerable_spec.rb +71 -146
- data/spec/mongoid/association/referenced/has_many/proxy_query_spec.rb +1 -0
- data/spec/mongoid/association/referenced/has_many/proxy_spec.rb +4 -2
- data/spec/mongoid/association/referenced/has_many_models.rb +3 -0
- data/spec/mongoid/association/referenced/has_many_query_spec.rb +38 -0
- data/spec/mongoid/association/referenced/has_many_spec.rb +3 -0
- data/spec/mongoid/association/referenced/has_one/binding_spec.rb +3 -0
- data/spec/mongoid/association/referenced/has_one/buildable_spec.rb +3 -0
- data/spec/mongoid/association/referenced/has_one/eager_spec.rb +18 -3
- data/spec/mongoid/association/referenced/has_one/proxy_spec.rb +3 -0
- data/spec/mongoid/association/referenced/has_one_models.rb +3 -0
- data/spec/mongoid/association/referenced/has_one_query_spec.rb +38 -0
- data/spec/mongoid/association/referenced/has_one_spec.rb +3 -0
- data/spec/mongoid/association/reflections_spec.rb +3 -0
- data/spec/mongoid/association/syncable_spec.rb +3 -0
- data/spec/mongoid/association_spec.rb +3 -0
- data/spec/mongoid/atomic/modifiers_spec.rb +3 -0
- data/spec/mongoid/atomic/paths/embedded/many_spec.rb +3 -0
- data/spec/mongoid/atomic/paths/embedded/one_spec.rb +3 -0
- data/spec/mongoid/atomic/paths/root_spec.rb +3 -0
- data/spec/mongoid/atomic/paths_spec.rb +3 -41
- data/spec/mongoid/atomic_spec.rb +3 -0
- data/spec/mongoid/attributes/nested_spec.rb +3 -0
- data/spec/mongoid/attributes/readonly_spec.rb +3 -0
- data/spec/mongoid/attributes_spec.rb +10 -260
- data/spec/mongoid/cacheable_spec.rb +3 -0
- data/spec/mongoid/changeable_spec.rb +3 -0
- data/spec/mongoid/clients/factory_spec.rb +38 -20
- data/spec/mongoid/clients/options_spec.rb +24 -13
- data/spec/mongoid/clients/sessions_spec.rb +7 -8
- data/spec/mongoid/clients/transactions_spec.rb +14 -23
- data/spec/mongoid/clients_spec.rb +5 -2
- data/spec/mongoid/composable_spec.rb +3 -0
- data/spec/mongoid/config/environment_spec.rb +3 -0
- data/spec/mongoid/config/options_spec.rb +23 -3
- data/spec/mongoid/config_spec.rb +39 -0
- data/spec/mongoid/contextual/aggregable/memory_spec.rb +3 -0
- data/spec/mongoid/contextual/aggregable/mongo_spec.rb +3 -0
- data/spec/mongoid/contextual/atomic_spec.rb +113 -37
- data/spec/mongoid/contextual/geo_near_spec.rb +5 -11
- data/spec/mongoid/contextual/map_reduce_spec.rb +8 -20
- data/spec/mongoid/contextual/memory_spec.rb +3 -0
- data/spec/mongoid/contextual/mongo_spec.rb +58 -76
- data/spec/mongoid/contextual/none_spec.rb +3 -0
- data/spec/mongoid/copyable_spec.rb +3 -0
- data/spec/mongoid/copyable_spec_models.rb +3 -0
- data/spec/mongoid/criteria/findable_spec.rb +58 -0
- data/spec/mongoid/criteria/inspectable_spec.rb +3 -0
- data/spec/mongoid/criteria/marshalable_spec.rb +3 -0
- data/spec/mongoid/criteria/modifiable_spec.rb +7 -3
- data/spec/mongoid/criteria/options_spec.rb +3 -0
- data/spec/mongoid/criteria/queryable/aggregable_spec.rb +3 -0
- data/spec/mongoid/criteria/queryable/expandable_spec.rb +135 -0
- data/spec/mongoid/criteria/queryable/extensions/array_spec.rb +3 -0
- data/spec/mongoid/criteria/queryable/extensions/big_decimal_spec.rb +3 -0
- data/spec/mongoid/criteria/queryable/extensions/bignum_spec.rb +3 -0
- data/spec/mongoid/criteria/queryable/extensions/boolean_spec.rb +3 -0
- data/spec/mongoid/criteria/queryable/extensions/date_spec.rb +3 -0
- data/spec/mongoid/criteria/queryable/extensions/date_time_spec.rb +36 -17
- data/spec/mongoid/criteria/queryable/extensions/fixnum_spec.rb +3 -0
- data/spec/mongoid/criteria/queryable/extensions/float_spec.rb +3 -0
- data/spec/mongoid/criteria/queryable/extensions/hash_spec.rb +3 -0
- data/spec/mongoid/criteria/queryable/extensions/integer_spec.rb +3 -0
- data/spec/mongoid/criteria/queryable/extensions/nil_class_spec.rb +3 -0
- data/spec/mongoid/criteria/queryable/extensions/object_spec.rb +3 -0
- data/spec/mongoid/criteria/queryable/extensions/range_spec.rb +3 -0
- data/spec/mongoid/criteria/queryable/extensions/regexp_raw_spec.rb +3 -0
- data/spec/mongoid/criteria/queryable/extensions/regexp_spec.rb +10 -7
- data/spec/mongoid/criteria/queryable/extensions/set_spec.rb +3 -0
- data/spec/mongoid/criteria/queryable/extensions/string_spec.rb +4 -1
- data/spec/mongoid/criteria/queryable/extensions/symbol_spec.rb +3 -0
- data/spec/mongoid/criteria/queryable/extensions/time_spec.rb +31 -35
- data/spec/mongoid/criteria/queryable/extensions/time_with_zone_spec.rb +4 -28
- data/spec/mongoid/criteria/queryable/key_spec.rb +3 -0
- data/spec/mongoid/criteria/queryable/mergeable_spec.rb +3 -0
- data/spec/mongoid/criteria/queryable/optional_spec.rb +3 -0
- data/spec/mongoid/criteria/queryable/options_spec.rb +3 -0
- data/spec/mongoid/criteria/queryable/pipeline_spec.rb +3 -0
- data/spec/mongoid/criteria/queryable/queryable_spec.rb +3 -0
- data/spec/mongoid/criteria/queryable/selectable_logical_spec.rb +564 -156
- data/spec/mongoid/criteria/queryable/selectable_spec.rb +950 -2165
- data/spec/mongoid/criteria/queryable/selector_spec.rb +3 -0
- data/spec/mongoid/criteria/queryable/smash_spec.rb +3 -0
- data/spec/mongoid/criteria/queryable/storable_spec.rb +112 -0
- data/spec/mongoid/criteria/scopable_spec.rb +3 -0
- data/spec/mongoid/criteria_spec.rb +39 -4
- data/spec/mongoid/document_fields_spec.rb +0 -29
- data/spec/mongoid/document_query_spec.rb +39 -0
- data/spec/mongoid/document_spec.rb +3 -0
- data/spec/mongoid/equality_spec.rb +3 -0
- data/spec/mongoid/errors/ambiguous_relationship_spec.rb +6 -3
- data/spec/mongoid/errors/callback_spec.rb +3 -0
- data/spec/mongoid/errors/delete_restriction_spec.rb +3 -0
- data/spec/mongoid/errors/document_not_destroyed_spec.rb +3 -0
- data/spec/mongoid/errors/document_not_found_spec.rb +3 -0
- data/spec/mongoid/errors/eager_load_spec.rb +3 -0
- data/spec/mongoid/errors/invalid_collection_spec.rb +3 -0
- data/spec/mongoid/errors/invalid_config_option_spec.rb +3 -0
- data/spec/mongoid/errors/invalid_field_option_spec.rb +3 -0
- data/spec/mongoid/errors/invalid_field_spec.rb +3 -0
- data/spec/mongoid/errors/invalid_find_spec.rb +3 -0
- data/spec/mongoid/errors/invalid_includes_spec.rb +3 -0
- data/spec/mongoid/errors/invalid_index_spec.rb +3 -0
- data/spec/mongoid/errors/invalid_options_spec.rb +5 -2
- data/spec/mongoid/errors/invalid_path_spec.rb +3 -0
- data/spec/mongoid/errors/invalid_relation_spec.rb +5 -2
- data/spec/mongoid/errors/invalid_scope_spec.rb +3 -0
- data/spec/mongoid/errors/invalid_set_polymorphic_relation_spec.rb +3 -0
- data/spec/mongoid/errors/invalid_storage_options_spec.rb +3 -0
- data/spec/mongoid/errors/invalid_time_spec.rb +3 -0
- data/spec/mongoid/errors/inverse_not_found_spec.rb +4 -1
- data/spec/mongoid/errors/mixed_client_configuration_spec.rb +3 -0
- data/spec/mongoid/errors/mixed_relations_spec.rb +3 -0
- data/spec/mongoid/errors/mongoid_error_spec.rb +3 -0
- data/spec/mongoid/errors/nested_attributes_metadata_not_found_spec.rb +6 -3
- data/spec/mongoid/errors/no_client_config_spec.rb +3 -0
- data/spec/mongoid/errors/no_client_database_spec.rb +3 -0
- data/spec/mongoid/errors/no_client_hosts_spec.rb +3 -0
- data/spec/mongoid/errors/no_clients_config_spec.rb +3 -0
- data/spec/mongoid/errors/no_environment_spec.rb +3 -0
- data/spec/mongoid/errors/no_map_reduce_output_spec.rb +3 -0
- data/spec/mongoid/errors/no_metadata_spec.rb +5 -2
- data/spec/mongoid/errors/no_parent_spec.rb +4 -1
- data/spec/mongoid/errors/readonly_attribute_spec.rb +3 -0
- data/spec/mongoid/errors/readonly_document_spec.rb +3 -0
- data/spec/mongoid/errors/scope_overwrite_spec.rb +3 -0
- data/spec/mongoid/errors/too_many_nested_attribute_records_spec.rb +3 -0
- data/spec/mongoid/errors/unknown_attribute_spec.rb +3 -0
- data/spec/mongoid/errors/unsaved_document_spec.rb +4 -1
- data/spec/mongoid/errors/unsupported_javascript_spec.rb +3 -0
- data/spec/mongoid/errors/validations_spec.rb +3 -0
- data/spec/mongoid/extensions/array_spec.rb +26 -43
- data/spec/mongoid/extensions/big_decimal_spec.rb +3 -0
- data/spec/mongoid/extensions/binary_spec.rb +3 -0
- data/spec/mongoid/extensions/boolean_spec.rb +3 -0
- data/spec/mongoid/extensions/date_class_mongoize_spec.rb +336 -0
- data/spec/mongoid/extensions/date_spec.rb +9 -160
- data/spec/mongoid/extensions/date_time_spec.rb +18 -60
- data/spec/mongoid/extensions/decimal128_spec.rb +3 -0
- data/spec/mongoid/extensions/false_class_spec.rb +3 -0
- data/spec/mongoid/extensions/float_spec.rb +18 -3
- data/spec/mongoid/extensions/hash_spec.rb +106 -0
- data/spec/mongoid/extensions/integer_spec.rb +15 -2
- data/spec/mongoid/extensions/module_spec.rb +3 -0
- data/spec/mongoid/extensions/nil_class_spec.rb +3 -0
- data/spec/mongoid/extensions/object_id_spec.rb +3 -0
- data/spec/mongoid/extensions/object_spec.rb +14 -24
- data/spec/mongoid/extensions/range_spec.rb +3 -0
- data/spec/mongoid/extensions/regexp_spec.rb +3 -0
- data/spec/mongoid/extensions/set_spec.rb +3 -0
- data/spec/mongoid/extensions/string_spec.rb +60 -26
- data/spec/mongoid/extensions/symbol_spec.rb +3 -0
- data/spec/mongoid/extensions/time_spec.rb +30 -0
- data/spec/mongoid/extensions/time_with_zone_spec.rb +34 -0
- data/spec/mongoid/extensions/true_class_spec.rb +3 -0
- data/spec/mongoid/extensions_spec.rb +3 -0
- data/spec/mongoid/factory_spec.rb +29 -2
- data/spec/mongoid/fields/foreign_key_spec.rb +3 -0
- data/spec/mongoid/fields/localized_spec.rb +3 -0
- data/spec/mongoid/fields/standard_spec.rb +3 -0
- data/spec/mongoid/fields_spec.rb +18 -0
- data/spec/mongoid/findable_spec.rb +3 -0
- data/spec/mongoid/indexable/specification_spec.rb +3 -0
- data/spec/mongoid/indexable_spec.rb +7 -6
- data/spec/mongoid/inspectable_spec.rb +3 -0
- data/spec/mongoid/interceptable_spec.rb +3 -0
- data/spec/mongoid/loggable_spec.rb +3 -0
- data/spec/mongoid/matchable/all_spec.rb +3 -0
- data/spec/mongoid/matchable/and_spec.rb +3 -0
- data/spec/mongoid/matchable/default_spec.rb +4 -1
- data/spec/mongoid/matchable/elem_match_spec.rb +3 -0
- data/spec/mongoid/matchable/eq_spec.rb +1 -0
- data/spec/mongoid/matchable/exists_spec.rb +3 -0
- data/spec/mongoid/matchable/gt_spec.rb +3 -0
- data/spec/mongoid/matchable/gte_spec.rb +3 -0
- data/spec/mongoid/matchable/in_spec.rb +3 -0
- data/spec/mongoid/matchable/lt_spec.rb +3 -0
- data/spec/mongoid/matchable/lte_spec.rb +3 -0
- data/spec/mongoid/matchable/ne_spec.rb +3 -0
- data/spec/mongoid/matchable/nin_spec.rb +3 -0
- data/spec/mongoid/matchable/nor_spec.rb +1 -0
- data/spec/mongoid/matchable/or_spec.rb +3 -0
- data/spec/mongoid/matchable/regexp_spec.rb +5 -2
- data/spec/mongoid/matchable/size_spec.rb +3 -0
- data/spec/mongoid/matchable_spec.rb +5 -2
- data/spec/mongoid/persistable/creatable_spec.rb +3 -0
- data/spec/mongoid/persistable/deletable_spec.rb +3 -0
- data/spec/mongoid/persistable/destroyable_spec.rb +3 -0
- data/spec/mongoid/persistable/incrementable_spec.rb +17 -0
- data/spec/mongoid/persistable/logical_spec.rb +17 -0
- data/spec/mongoid/persistable/poppable_spec.rb +17 -0
- data/spec/mongoid/persistable/pullable_spec.rb +31 -0
- data/spec/mongoid/persistable/pushable_spec.rb +32 -55
- data/spec/mongoid/persistable/renamable_spec.rb +17 -0
- data/spec/mongoid/persistable/savable_spec.rb +7 -4
- data/spec/mongoid/persistable/settable_spec.rb +17 -30
- data/spec/mongoid/persistable/unsettable_spec.rb +17 -0
- data/spec/mongoid/persistable/updatable_spec.rb +3 -0
- data/spec/mongoid/persistable/upsertable_spec.rb +3 -0
- data/spec/mongoid/persistable_spec.rb +85 -8
- data/spec/mongoid/persistence_context_spec.rb +3 -0
- data/spec/mongoid/positional_spec.rb +3 -0
- data/spec/mongoid/query_cache_middleware_spec.rb +48 -0
- data/spec/mongoid/query_cache_spec.rb +12 -121
- data/spec/mongoid/relations/proxy_spec.rb +4 -1
- data/spec/mongoid/reloadable_spec.rb +3 -0
- data/spec/mongoid/scopable_spec.rb +4 -2
- data/spec/mongoid/selectable_spec.rb +3 -0
- data/spec/mongoid/serializable_spec.rb +3 -0
- data/spec/mongoid/shardable_spec.rb +3 -0
- data/spec/mongoid/stateful_spec.rb +3 -0
- data/spec/mongoid/tasks/database_rake_spec.rb +16 -13
- data/spec/mongoid/tasks/database_spec.rb +4 -1
- data/spec/mongoid/threaded_spec.rb +3 -0
- data/spec/mongoid/timestamps/created/short_spec.rb +3 -0
- data/spec/mongoid/timestamps/created_spec.rb +3 -0
- data/spec/mongoid/timestamps/timeless_spec.rb +3 -0
- data/spec/mongoid/timestamps/updated/short_spec.rb +3 -0
- data/spec/mongoid/timestamps/updated_spec.rb +3 -0
- data/spec/mongoid/timestamps_spec.rb +3 -0
- data/spec/mongoid/touchable_spec.rb +49 -3
- data/spec/mongoid/traversable_spec.rb +3 -0
- data/spec/mongoid/validatable/associated_spec.rb +3 -0
- data/spec/mongoid/validatable/format_spec.rb +3 -0
- data/spec/mongoid/validatable/length_spec.rb +3 -0
- data/spec/mongoid/validatable/numericality_spec.rb +3 -0
- data/spec/mongoid/validatable/presence_spec.rb +3 -0
- data/spec/mongoid/validatable/uniqueness_spec.rb +3 -0
- data/spec/mongoid/validatable_spec.rb +3 -0
- data/spec/mongoid_spec.rb +3 -0
- data/spec/rails/controller_extension/controller_runtime_spec.rb +4 -1
- data/spec/rails/mongoid_spec.rb +5 -2
- data/spec/spec_helper.rb +50 -15
- data/spec/support/authorization.rb +3 -0
- data/spec/support/cluster_config.rb +3 -3
- data/spec/support/constraints.rb +211 -17
- data/spec/support/expectations.rb +3 -0
- data/spec/support/macros.rb +1 -0
- data/spec/support/shared/time.rb +54 -0
- data/spec/support/spec_config.rb +7 -20
- metadata +508 -515
- metadata.gz.sig +2 -1
- data/lib/mongoid/criteria/queryable/forwardable.rb +0 -65
- data/spec/app/models/customer.rb +0 -11
- data/spec/app/models/customer_address.rb +0 -12
- data/spec/app/models/delegating_patient.rb +0 -16
- data/spec/integration/app_spec.rb +0 -341
- data/spec/integration/callbacks_models.rb +0 -49
- data/spec/integration/callbacks_spec.rb +0 -216
- data/spec/integration/criteria/date_field_spec.rb +0 -41
- data/spec/integration/document_spec.rb +0 -22
- data/spec/mongoid/criteria/queryable/forwardable_spec.rb +0 -87
- data/spec/mongoid/document_persistence_context_spec.rb +0 -33
- data/spec/shared/LICENSE +0 -20
- data/spec/shared/bin/get-mongodb-download-url +0 -17
- data/spec/shared/lib/mrss/child_process_helper.rb +0 -80
- data/spec/shared/lib/mrss/cluster_config.rb +0 -221
- data/spec/shared/lib/mrss/constraints.rb +0 -354
- data/spec/shared/lib/mrss/docker_runner.rb +0 -265
- data/spec/shared/lib/mrss/lite_constraints.rb +0 -191
- data/spec/shared/lib/mrss/server_version_registry.rb +0 -115
- data/spec/shared/lib/mrss/spec_organizer.rb +0 -162
- data/spec/shared/lib/mrss/utils.rb +0 -15
- data/spec/shared/share/Dockerfile.erb +0 -231
- data/spec/shared/shlib/distro.sh +0 -73
- data/spec/shared/shlib/server.sh +0 -290
- data/spec/shared/shlib/set_env.sh +0 -128
- data/spec/support/session_registry.rb +0 -50
data/lib/mongoid.rb
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
# encoding: utf-8
|
|
3
|
+
|
|
2
4
|
require "support/ruby_version"
|
|
3
5
|
|
|
4
6
|
require "delegate"
|
|
@@ -50,6 +52,11 @@ module Mongoid
|
|
|
50
52
|
# @example Set up configuration options.
|
|
51
53
|
# Mongoid.configure do |config|
|
|
52
54
|
# config.connect_to("mongoid_test")
|
|
55
|
+
#
|
|
56
|
+
# config.clients.default = {
|
|
57
|
+
# hosts: ["localhost:27017"],
|
|
58
|
+
# database: "mongoid_test",
|
|
59
|
+
# }
|
|
53
60
|
# end
|
|
54
61
|
#
|
|
55
62
|
# @return [ Config ] The configuration object.
|
|
@@ -102,5 +109,5 @@ module Mongoid
|
|
|
102
109
|
# Mongoid.database = Mongo::Connection.new.db("test")
|
|
103
110
|
#
|
|
104
111
|
# @since 1.0.0
|
|
105
|
-
delegate(*(Config.public_instance_methods(false) - [ :logger=, :logger ]
|
|
112
|
+
delegate(*(Config.public_instance_methods(false) - [ :logger=, :logger ] << { to: Config }))
|
|
106
113
|
end
|
data/lib/mongoid/association.rb
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
# encoding: utf-8
|
|
3
|
+
|
|
1
4
|
require 'mongoid/association/accessors'
|
|
2
5
|
require 'mongoid/association/builders'
|
|
3
6
|
require 'mongoid/association/bindable'
|
|
@@ -63,7 +66,7 @@ module Mongoid
|
|
|
63
66
|
@embedded ||= (cyclic ? _parent.present? : self.class.embedded?)
|
|
64
67
|
end
|
|
65
68
|
|
|
66
|
-
# Determine if the document is part of an embeds_many
|
|
69
|
+
# Determine if the document is part of an embeds_many association.
|
|
67
70
|
#
|
|
68
71
|
# @example Is the document in an embeds many?
|
|
69
72
|
# address.embedded_many?
|
|
@@ -75,7 +78,7 @@ module Mongoid
|
|
|
75
78
|
_association && _association.is_a?(Association::Embedded::EmbedsMany)
|
|
76
79
|
end
|
|
77
80
|
|
|
78
|
-
# Determine if the document is part of an embeds_one
|
|
81
|
+
# Determine if the document is part of an embeds_one association.
|
|
79
82
|
#
|
|
80
83
|
# @example Is the document in an embeds one?
|
|
81
84
|
# address.embedded_one?
|
|
@@ -103,7 +106,7 @@ module Mongoid
|
|
|
103
106
|
_association.name
|
|
104
107
|
end
|
|
105
108
|
|
|
106
|
-
# Determine if the document is part of an references_many
|
|
109
|
+
# Determine if the document is part of an references_many association.
|
|
107
110
|
#
|
|
108
111
|
# @example Is the document in a references many?
|
|
109
112
|
# post.referenced_many?
|
|
@@ -115,7 +118,7 @@ module Mongoid
|
|
|
115
118
|
_association && _association.is_a?(Association::Referenced::HasMany)
|
|
116
119
|
end
|
|
117
120
|
|
|
118
|
-
# Determine if the document is part of an references_one
|
|
121
|
+
# Determine if the document is part of an references_one association.
|
|
119
122
|
#
|
|
120
123
|
# @example Is the document in a references one?
|
|
121
124
|
# address.referenced_one?
|
|
@@ -127,10 +130,10 @@ module Mongoid
|
|
|
127
130
|
_association && _association.is_a?(Association::Referenced::HasOne)
|
|
128
131
|
end
|
|
129
132
|
|
|
130
|
-
# Convenience method for iterating through the loaded
|
|
133
|
+
# Convenience method for iterating through the loaded associations and
|
|
131
134
|
# reloading them.
|
|
132
135
|
#
|
|
133
|
-
# @example Reload the
|
|
136
|
+
# @example Reload the associations.
|
|
134
137
|
# document.reload_relations
|
|
135
138
|
#
|
|
136
139
|
# @return [ Hash ] The association metadata.
|
|
@@ -1,55 +1,63 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
# encoding: utf-8
|
|
3
|
+
|
|
2
4
|
module Mongoid
|
|
3
5
|
module Association
|
|
4
6
|
|
|
5
|
-
# This module contains all the
|
|
7
|
+
# This module contains all the behavior related to accessing associations
|
|
6
8
|
# through the getters and setters, and how to delegate to builders to
|
|
7
9
|
# create new ones.
|
|
8
10
|
module Accessors
|
|
9
11
|
extend ActiveSupport::Concern
|
|
10
12
|
|
|
11
|
-
# Builds the related document and creates the
|
|
12
|
-
# document is nil, then sets the
|
|
13
|
+
# Builds the related document and creates the association unless the
|
|
14
|
+
# document is nil, then sets the association on this document.
|
|
13
15
|
#
|
|
14
|
-
# @example Build the
|
|
16
|
+
# @example Build the association.
|
|
15
17
|
# person.__build__(:addresses, { :_id => 1 }, association)
|
|
16
18
|
#
|
|
17
|
-
# @param [ String, Symbol ] name The name of the
|
|
19
|
+
# @param [ String, Symbol ] name The name of the association.
|
|
18
20
|
# @param [ Hash, BSON::ObjectId ] object The id or attributes to use.
|
|
19
21
|
# @param [ Association ] association The association metadata.
|
|
22
|
+
# @param [ Hash ] selected_fields Fields which were retrieved via #only.
|
|
23
|
+
# If selected_fields is specified, fields not listed in it will not be
|
|
24
|
+
# accessible in the built document.
|
|
20
25
|
#
|
|
21
|
-
# @return [ Proxy ] The
|
|
26
|
+
# @return [ Proxy ] The association.
|
|
22
27
|
#
|
|
23
28
|
# @since 2.0.0.rc.1
|
|
24
|
-
def __build__(name, object, association)
|
|
25
|
-
relation = create_relation(object, association)
|
|
29
|
+
def __build__(name, object, association, selected_fields = nil)
|
|
30
|
+
relation = create_relation(object, association, selected_fields)
|
|
26
31
|
set_relation(name, relation)
|
|
27
32
|
end
|
|
28
33
|
|
|
29
|
-
# Create
|
|
34
|
+
# Create an association from an object and association metadata.
|
|
30
35
|
#
|
|
31
|
-
# @example Create the
|
|
36
|
+
# @example Create the association.
|
|
32
37
|
# person.create_relation(document, association)
|
|
33
38
|
#
|
|
34
|
-
# @param [ Document, Array<Document> ] object The
|
|
39
|
+
# @param [ Document, Array<Document> ] object The association target.
|
|
35
40
|
# @param [ Association ] association The association metadata.
|
|
41
|
+
# @param [ Hash ] selected_fields Fields which were retrieved via #only.
|
|
42
|
+
# If selected_fields is specified, fields not listed in it will not be
|
|
43
|
+
# accessible in the created association document.
|
|
36
44
|
#
|
|
37
|
-
# @return [ Proxy ] The
|
|
45
|
+
# @return [ Proxy ] The association.
|
|
38
46
|
#
|
|
39
47
|
# @since 2.0.0.rc.1
|
|
40
|
-
def create_relation(object, association)
|
|
48
|
+
def create_relation(object, association, selected_fields = nil)
|
|
41
49
|
type = @attributes[association.inverse_type]
|
|
42
|
-
target = association.build(self, object, type)
|
|
50
|
+
target = association.build(self, object, type, selected_fields)
|
|
43
51
|
target ? association.create_relation(self, target) : nil
|
|
44
52
|
end
|
|
45
53
|
|
|
46
|
-
# Resets the criteria inside the
|
|
47
|
-
#
|
|
54
|
+
# Resets the criteria inside the association proxy. Used by many-to-many
|
|
55
|
+
# associations to keep the underlying ids array in sync.
|
|
48
56
|
#
|
|
49
|
-
# @example Reset the
|
|
57
|
+
# @example Reset the association criteria.
|
|
50
58
|
# person.reset_relation_criteria(:preferences)
|
|
51
59
|
#
|
|
52
|
-
# @param [ Symbol ] name The name of the
|
|
60
|
+
# @param [ Symbol ] name The name of the association.
|
|
53
61
|
#
|
|
54
62
|
# @since 3.0.14
|
|
55
63
|
def reset_relation_criteria(name)
|
|
@@ -58,16 +66,16 @@ module Mongoid
|
|
|
58
66
|
end
|
|
59
67
|
end
|
|
60
68
|
|
|
61
|
-
# Set the supplied
|
|
69
|
+
# Set the supplied association to an instance variable on the class with the
|
|
62
70
|
# provided name. Used as a helper just for code cleanliness.
|
|
63
71
|
#
|
|
64
72
|
# @example Set the proxy on the document.
|
|
65
73
|
# person.set(:addresses, addresses)
|
|
66
74
|
#
|
|
67
|
-
# @param [ String, Symbol ] name The name of the
|
|
68
|
-
# @param [ Proxy ] relation The
|
|
75
|
+
# @param [ String, Symbol ] name The name of the association.
|
|
76
|
+
# @param [ Proxy ] relation The association to set.
|
|
69
77
|
#
|
|
70
|
-
# @return [ Proxy ] The
|
|
78
|
+
# @return [ Proxy ] The association.
|
|
71
79
|
#
|
|
72
80
|
# @since 2.0.0.rc.1
|
|
73
81
|
def set_relation(name, relation)
|
|
@@ -76,20 +84,20 @@ module Mongoid
|
|
|
76
84
|
|
|
77
85
|
private
|
|
78
86
|
|
|
79
|
-
# Get the
|
|
87
|
+
# Get the association. Extracted out from the getter method to avoid
|
|
80
88
|
# infinite recursion when overriding the getter.
|
|
81
89
|
#
|
|
82
90
|
# @api private
|
|
83
91
|
#
|
|
84
|
-
# @example Get the
|
|
92
|
+
# @example Get the association.
|
|
85
93
|
# document.get_relation(:name, association)
|
|
86
94
|
#
|
|
87
|
-
# @param [ Symbol ] name The name of the
|
|
95
|
+
# @param [ Symbol ] name The name of the association.
|
|
88
96
|
# @param [ Association ] association The association metadata.
|
|
89
|
-
# @param [ Object ] object The object used to build the
|
|
90
|
-
# @param [ true, false ] reload If the
|
|
97
|
+
# @param [ Object ] object The object used to build the association.
|
|
98
|
+
# @param [ true, false ] reload If the association is to be reloaded.
|
|
91
99
|
#
|
|
92
|
-
# @return [ Proxy ] The
|
|
100
|
+
# @return [ Proxy ] The association.
|
|
93
101
|
#
|
|
94
102
|
# @since 3.0.16
|
|
95
103
|
def get_relation(name, association, object, reload = false)
|
|
@@ -101,13 +109,48 @@ module Mongoid
|
|
|
101
109
|
if object && needs_no_database_query?(object, association)
|
|
102
110
|
__build__(name, object, association)
|
|
103
111
|
else
|
|
104
|
-
|
|
112
|
+
selected_fields = _mongoid_filter_selected_fields(association.key)
|
|
113
|
+
__build__(name, attributes[association.key], association, selected_fields)
|
|
105
114
|
end
|
|
106
115
|
end
|
|
107
116
|
end
|
|
108
117
|
end
|
|
109
118
|
end
|
|
110
119
|
|
|
120
|
+
# Returns a subset of __selected_fields attribute applicable to the
|
|
121
|
+
# (embedded) association with the given key, or nil if no projection
|
|
122
|
+
# is to be performed.
|
|
123
|
+
#
|
|
124
|
+
# For example, if __selected_fields is {'a' => 1, 'b.c' => 2, 'b.c.f' => 3},
|
|
125
|
+
# and assoc_key is 'b', return value would be {'c' => 2, 'c.f' => 3}.
|
|
126
|
+
#
|
|
127
|
+
# @param [ String ] assoc_key
|
|
128
|
+
#
|
|
129
|
+
# @return [ Hash | nil ]
|
|
130
|
+
#
|
|
131
|
+
# @api private
|
|
132
|
+
def _mongoid_filter_selected_fields(assoc_key)
|
|
133
|
+
return nil unless __selected_fields
|
|
134
|
+
filtered = {}
|
|
135
|
+
__selected_fields.each do |k, v|
|
|
136
|
+
bits = k.split('.')
|
|
137
|
+
if bits.first == assoc_key
|
|
138
|
+
bits.shift
|
|
139
|
+
filtered[bits.join('.')] = v
|
|
140
|
+
end
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
# Positional projection is specified as "foo.$". In this case the
|
|
144
|
+
# document that the $ is referring to should be retrieved with all
|
|
145
|
+
# fields. See https://docs.mongodb.com/manual/reference/operator/projection/positional/
|
|
146
|
+
# and https://jira.mongodb.org/browse/MONGOID-4769.
|
|
147
|
+
if filtered.keys == %w($)
|
|
148
|
+
filtered = nil
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
filtered
|
|
152
|
+
end
|
|
153
|
+
|
|
111
154
|
def needs_no_database_query?(object, association)
|
|
112
155
|
object.is_a?(Document) && !object.embedded? &&
|
|
113
156
|
object._id == attributes[association.key]
|
|
@@ -157,12 +200,12 @@ module Mongoid
|
|
|
157
200
|
[args.first || {}, args.size > 1 ? args[1] : {}]
|
|
158
201
|
end
|
|
159
202
|
|
|
160
|
-
# Adds the existence check for
|
|
203
|
+
# Adds the existence check for associations.
|
|
161
204
|
#
|
|
162
205
|
# @example Add the existence check.
|
|
163
206
|
# Person.define_existence_check!(association)
|
|
164
207
|
#
|
|
165
|
-
# @example Check if
|
|
208
|
+
# @example Check if an association exists.
|
|
166
209
|
# person = Person.new
|
|
167
210
|
# person.has_game?
|
|
168
211
|
# person.game?
|
|
@@ -184,14 +227,14 @@ module Mongoid
|
|
|
184
227
|
end
|
|
185
228
|
end
|
|
186
229
|
|
|
187
|
-
# Defines the getter for the
|
|
188
|
-
# return the instance variable for the
|
|
230
|
+
# Defines the getter for the association. Nothing too special here: just
|
|
231
|
+
# return the instance variable for the association if it exists or build
|
|
189
232
|
# the thing.
|
|
190
233
|
#
|
|
191
|
-
# @example Set up the getter for the
|
|
234
|
+
# @example Set up the getter for the association.
|
|
192
235
|
# Person.define_getter!(association)
|
|
193
236
|
#
|
|
194
|
-
# @param [ Association ] association The association metadata for the
|
|
237
|
+
# @param [ Association ] association The association metadata for the association.
|
|
195
238
|
#
|
|
196
239
|
# @return [ Class ] The class being set up.
|
|
197
240
|
#
|
|
@@ -209,13 +252,13 @@ module Mongoid
|
|
|
209
252
|
end
|
|
210
253
|
end
|
|
211
254
|
|
|
212
|
-
# Defines the getter for the ids of documents in the
|
|
213
|
-
# be specify only for referenced many
|
|
255
|
+
# Defines the getter for the ids of documents in the association. Should
|
|
256
|
+
# be specify only for referenced many associations.
|
|
214
257
|
#
|
|
215
|
-
# @example Set up the ids getter for the
|
|
258
|
+
# @example Set up the ids getter for the association.
|
|
216
259
|
# Person.define_ids_getter!(association)
|
|
217
260
|
#
|
|
218
|
-
# @param [ Association ] association The association metadata for the
|
|
261
|
+
# @param [ Association ] association The association metadata for the association.
|
|
219
262
|
#
|
|
220
263
|
# @return [ Class ] The class being set up.
|
|
221
264
|
def self.define_ids_getter!(association)
|
|
@@ -227,15 +270,15 @@ module Mongoid
|
|
|
227
270
|
end
|
|
228
271
|
end
|
|
229
272
|
|
|
230
|
-
# Defines the setter for the
|
|
273
|
+
# Defines the setter for the association. This does a few things based on
|
|
231
274
|
# some conditions. If there is an existing association, a target
|
|
232
|
-
# substitution will take place, otherwise a new
|
|
275
|
+
# substitution will take place, otherwise a new association will be
|
|
233
276
|
# created with the supplied target.
|
|
234
277
|
#
|
|
235
|
-
# @example Set up the setter for the
|
|
278
|
+
# @example Set up the setter for the association.
|
|
236
279
|
# Person.define_setter!(association)
|
|
237
280
|
#
|
|
238
|
-
# @param [ Association ] association The association metadata for the
|
|
281
|
+
# @param [ Association ] association The association metadata for the association.
|
|
239
282
|
#
|
|
240
283
|
# @return [ Class ] The class being set up.
|
|
241
284
|
#
|
|
@@ -261,15 +304,15 @@ module Mongoid
|
|
|
261
304
|
end
|
|
262
305
|
|
|
263
306
|
# Defines the setter method that allows you to set documents
|
|
264
|
-
# in this
|
|
265
|
-
# documents with given ids and invokes regular
|
|
307
|
+
# in this association by their ids. The defined setter, finds
|
|
308
|
+
# documents with given ids and invokes regular association setter
|
|
266
309
|
# with found documents. Ids setters should be defined only for
|
|
267
|
-
# referenced many
|
|
310
|
+
# referenced many associations.
|
|
268
311
|
#
|
|
269
|
-
# @example Set up the id_setter for the
|
|
312
|
+
# @example Set up the id_setter for the association.
|
|
270
313
|
# Person.define_ids_setter!(association)
|
|
271
314
|
#
|
|
272
|
-
# @param [ Association ] association The association for the
|
|
315
|
+
# @param [ Association ] association The association for the association.
|
|
273
316
|
#
|
|
274
317
|
# @return [ Class ] The class being set up.
|
|
275
318
|
def self.define_ids_setter!(association)
|
|
@@ -281,13 +324,13 @@ module Mongoid
|
|
|
281
324
|
end
|
|
282
325
|
end
|
|
283
326
|
|
|
284
|
-
# Defines a builder method for an embeds_one
|
|
327
|
+
# Defines a builder method for an embeds_one association. This is
|
|
285
328
|
# defined as #build_name.
|
|
286
329
|
#
|
|
287
330
|
# @example
|
|
288
331
|
# Person.define_builder!(association)
|
|
289
332
|
#
|
|
290
|
-
# @param [ Association ] association The association for the
|
|
333
|
+
# @param [ Association ] association The association for the association.
|
|
291
334
|
#
|
|
292
335
|
# @return [ Class ] The class being set up.
|
|
293
336
|
#
|
|
@@ -307,14 +350,14 @@ module Mongoid
|
|
|
307
350
|
end
|
|
308
351
|
end
|
|
309
352
|
|
|
310
|
-
# Defines a creator method for an embeds_one
|
|
353
|
+
# Defines a creator method for an embeds_one association. This is
|
|
311
354
|
# defined as #create_name. After the object is built it will
|
|
312
355
|
# immediately save.
|
|
313
356
|
#
|
|
314
357
|
# @example
|
|
315
358
|
# Person.define_creator!(association)
|
|
316
359
|
#
|
|
317
|
-
# @param [ Association ] association The association for the
|
|
360
|
+
# @param [ Association ] association The association for the association.
|
|
318
361
|
#
|
|
319
362
|
# @return [ Class ] The class being set up.
|
|
320
363
|
#
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
# encoding: utf-8
|
|
3
|
+
|
|
2
4
|
module Mongoid
|
|
3
5
|
module Association
|
|
4
6
|
|
|
5
|
-
# Superclass for all objects that bind
|
|
7
|
+
# Superclass for all objects that bind associations together.
|
|
6
8
|
module Bindable
|
|
7
9
|
include Threaded::Lifecycle
|
|
8
10
|
|
|
@@ -84,7 +86,7 @@ module Mongoid
|
|
|
84
86
|
end
|
|
85
87
|
|
|
86
88
|
# Set the type of the related document on the foreign type field, used
|
|
87
|
-
# when
|
|
89
|
+
# when associations are polymorphic.
|
|
88
90
|
#
|
|
89
91
|
# @api private
|
|
90
92
|
#
|
|
@@ -102,7 +104,7 @@ module Mongoid
|
|
|
102
104
|
end
|
|
103
105
|
|
|
104
106
|
# Set the type of the related document on the foreign type field, used
|
|
105
|
-
# when
|
|
107
|
+
# when associations are polymorphic.
|
|
106
108
|
#
|
|
107
109
|
# @api private
|
|
108
110
|
#
|
|
@@ -137,7 +139,7 @@ module Mongoid
|
|
|
137
139
|
end
|
|
138
140
|
end
|
|
139
141
|
|
|
140
|
-
# Bind the provided document with the base from the parent
|
|
142
|
+
# Bind the provided document with the base from the parent association.
|
|
141
143
|
#
|
|
142
144
|
# @api private
|
|
143
145
|
#
|
|
@@ -177,7 +179,7 @@ module Mongoid
|
|
|
177
179
|
end
|
|
178
180
|
end
|
|
179
181
|
|
|
180
|
-
# Bind the provided document with the base from the parent
|
|
182
|
+
# Bind the provided document with the base from the parent association.
|
|
181
183
|
#
|
|
182
184
|
# @api private
|
|
183
185
|
#
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
# encoding: utf-8
|
|
2
3
|
|
|
3
4
|
module Mongoid
|
|
4
5
|
module Association
|
|
5
6
|
|
|
6
7
|
# This module is responsible for defining the build and create methods used
|
|
7
|
-
# in one to one
|
|
8
|
+
# in one to one associations.
|
|
8
9
|
#
|
|
9
10
|
# @example Methods that get created.
|
|
10
11
|
#
|
|
@@ -43,7 +44,7 @@ module Mongoid
|
|
|
43
44
|
# @example
|
|
44
45
|
# Person.define_builder!(association)
|
|
45
46
|
#
|
|
46
|
-
# @param [ Association ] association The association metadata for the
|
|
47
|
+
# @param [ Association ] association The association metadata for the association.
|
|
47
48
|
#
|
|
48
49
|
# @return [ Class ] The class being set up.
|
|
49
50
|
#
|
|
@@ -68,7 +69,7 @@ module Mongoid
|
|
|
68
69
|
# @example
|
|
69
70
|
# Person.define_creator!(association)
|
|
70
71
|
#
|
|
71
|
-
# @param [ Association ] association The association metadata for the
|
|
72
|
+
# @param [ Association ] association The association metadata for the association.
|
|
72
73
|
#
|
|
73
74
|
# @return [ Class ] The class being set up.
|
|
74
75
|
#
|