mongoid 3.1.6 → 4.0.2
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
- data/CHANGELOG.md +479 -8
- data/README.md +10 -7
- data/lib/config/locales/en.yml +34 -20
- data/lib/mongoid.rb +10 -76
- data/lib/mongoid/atomic.rb +3 -14
- data/lib/mongoid/atomic/paths/embedded.rb +0 -30
- data/lib/mongoid/atomic/paths/embedded/many.rb +1 -1
- data/lib/mongoid/atomic/paths/embedded/one.rb +1 -1
- data/lib/mongoid/atomic/paths/root.rb +0 -13
- data/lib/mongoid/attributes.rb +65 -101
- data/lib/mongoid/attributes/dynamic.rb +154 -0
- data/lib/mongoid/attributes/nested.rb +82 -0
- data/lib/mongoid/attributes/processing.rb +13 -66
- data/lib/mongoid/{dirty.rb → changeable.rb} +32 -2
- data/lib/mongoid/composable.rb +105 -0
- data/lib/mongoid/config.rb +3 -9
- data/lib/mongoid/config/options.rb +1 -1
- data/lib/mongoid/contextual.rb +2 -0
- data/lib/mongoid/contextual/aggregable/memory.rb +2 -2
- data/lib/mongoid/contextual/aggregable/mongo.rb +7 -9
- data/lib/mongoid/contextual/atomic.rb +53 -53
- data/lib/mongoid/contextual/geo_near.rb +1 -1
- data/lib/mongoid/contextual/map_reduce.rb +4 -2
- data/lib/mongoid/contextual/memory.rb +23 -11
- data/lib/mongoid/contextual/mongo.rb +75 -57
- data/lib/mongoid/contextual/none.rb +90 -0
- data/lib/mongoid/contextual/text_search.rb +178 -0
- data/lib/mongoid/copyable.rb +2 -3
- data/lib/mongoid/criteria.rb +39 -34
- data/lib/mongoid/criteria/#findable.rb# +141 -0
- data/lib/mongoid/{criterion → criteria}/findable.rb +7 -47
- data/lib/mongoid/{criterion/inspection.rb → criteria/inspectable.rb} +2 -2
- data/lib/mongoid/{criterion → criteria}/marshalable.rb +3 -1
- data/lib/mongoid/{criterion → criteria}/modifiable.rb +28 -8
- data/lib/mongoid/criteria/permission.rb +70 -0
- data/lib/mongoid/{criterion/scoping.rb → criteria/scopable.rb} +2 -2
- data/lib/mongoid/document.rb +39 -24
- data/lib/mongoid/errors.rb +4 -1
- data/lib/mongoid/errors/document_not_destroyed.rb +25 -0
- data/lib/mongoid/errors/document_not_found.rb +2 -1
- data/lib/mongoid/errors/invalid_storage_options.rb +1 -1
- data/lib/mongoid/errors/invalid_storage_parent.rb +26 -0
- data/lib/mongoid/errors/invalid_value.rb +16 -0
- data/lib/mongoid/errors/mongoid_error.rb +1 -1
- data/lib/mongoid/errors/readonly_document.rb +24 -0
- data/lib/mongoid/extensions.rb +15 -7
- data/lib/mongoid/extensions/array.rb +3 -3
- data/lib/mongoid/extensions/big_decimal.rb +1 -1
- data/lib/mongoid/extensions/boolean.rb +15 -17
- data/lib/mongoid/extensions/date.rb +1 -1
- data/lib/mongoid/extensions/date_time.rb +3 -3
- data/lib/mongoid/extensions/float.rb +2 -1
- data/lib/mongoid/extensions/hash.rb +3 -3
- data/lib/mongoid/extensions/integer.rb +1 -1
- data/lib/mongoid/extensions/object.rb +7 -7
- data/lib/mongoid/extensions/object_id.rb +5 -5
- data/lib/mongoid/extensions/range.rb +9 -3
- data/lib/mongoid/extensions/regexp.rb +1 -1
- data/lib/mongoid/extensions/set.rb +1 -1
- data/lib/mongoid/extensions/string.rb +6 -18
- data/lib/mongoid/extensions/symbol.rb +1 -1
- data/lib/mongoid/extensions/time.rb +3 -3
- data/lib/mongoid/extensions/time_with_zone.rb +1 -1
- data/lib/mongoid/factory.rb +8 -6
- data/lib/mongoid/fields.rb +41 -8
- data/lib/mongoid/fields/foreign_key.rb +3 -3
- data/lib/mongoid/fields/localized.rb +1 -1
- data/lib/mongoid/fields/standard.rb +5 -17
- data/lib/mongoid/fields/validators/macro.rb +15 -5
- data/lib/mongoid/{finders.rb → findable.rb} +35 -7
- data/lib/mongoid/{indexes.rb → indexable.rb} +50 -55
- data/lib/mongoid/indexable/specification.rb +104 -0
- data/lib/mongoid/{indexes → indexable}/validators/options.rb +2 -1
- data/lib/mongoid/{inspection.rb → inspectable.rb} +15 -11
- data/lib/mongoid/{callbacks.rb → interceptable.rb} +30 -62
- data/lib/mongoid/log_subscriber.rb +55 -0
- data/lib/mongoid/matchable.rb +152 -0
- data/lib/mongoid/{matchers → matchable}/all.rb +1 -1
- data/lib/mongoid/{matchers → matchable}/and.rb +2 -2
- data/lib/mongoid/{matchers → matchable}/default.rb +1 -1
- data/lib/mongoid/{matchers → matchable}/exists.rb +1 -1
- data/lib/mongoid/{matchers → matchable}/gt.rb +1 -1
- data/lib/mongoid/{matchers → matchable}/gte.rb +1 -1
- data/lib/mongoid/{matchers → matchable}/in.rb +2 -2
- data/lib/mongoid/{matchers → matchable}/lt.rb +1 -1
- data/lib/mongoid/{matchers → matchable}/lte.rb +1 -1
- data/lib/mongoid/{matchers → matchable}/ne.rb +2 -2
- data/lib/mongoid/{matchers → matchable}/nin.rb +3 -2
- data/lib/mongoid/{matchers → matchable}/or.rb +2 -2
- data/lib/mongoid/{matchers → matchable}/size.rb +1 -1
- data/lib/mongoid/persistable.rb +216 -0
- data/lib/mongoid/persistable/creatable.rb +189 -0
- data/lib/mongoid/persistable/deletable.rb +149 -0
- data/lib/mongoid/persistable/destroyable.rb +60 -0
- data/lib/mongoid/persistable/incrementable.rb +36 -0
- data/lib/mongoid/persistable/logical.rb +38 -0
- data/lib/mongoid/persistable/poppable.rb +39 -0
- data/lib/mongoid/persistable/pullable.rb +55 -0
- data/lib/mongoid/persistable/pushable.rb +62 -0
- data/lib/mongoid/persistable/renamable.rb +35 -0
- data/lib/mongoid/persistable/savable.rb +52 -0
- data/lib/mongoid/persistable/settable.rb +33 -0
- data/lib/mongoid/persistable/unsettable.rb +36 -0
- data/lib/mongoid/persistable/updatable.rb +153 -0
- data/lib/mongoid/persistable/upsertable.rb +55 -0
- data/lib/mongoid/positional.rb +71 -0
- data/lib/mongoid/query_cache.rb +255 -0
- data/lib/mongoid/railtie.rb +34 -60
- data/lib/mongoid/railties/database.rake +9 -25
- data/lib/mongoid/relations.rb +11 -25
- data/lib/mongoid/relations/accessors.rb +15 -51
- data/lib/mongoid/relations/auto_save.rb +15 -36
- data/lib/mongoid/relations/binding.rb +2 -25
- data/lib/mongoid/relations/bindings/embedded/in.rb +1 -1
- data/lib/mongoid/relations/bindings/embedded/many.rb +1 -3
- data/lib/mongoid/relations/bindings/referenced/in.rb +3 -8
- data/lib/mongoid/relations/bindings/referenced/many_to_many.rb +4 -2
- data/lib/mongoid/relations/builder.rb +1 -1
- data/lib/mongoid/relations/builders.rb +2 -2
- data/lib/mongoid/relations/builders/embedded/one.rb +1 -1
- data/lib/mongoid/relations/builders/nested_attributes/many.rb +10 -13
- data/lib/mongoid/relations/builders/nested_attributes/one.rb +5 -6
- data/lib/mongoid/relations/builders/referenced/in.rb +1 -1
- data/lib/mongoid/relations/builders/referenced/many.rb +1 -2
- data/lib/mongoid/relations/builders/referenced/many_to_many.rb +1 -2
- data/lib/mongoid/relations/builders/referenced/one.rb +1 -1
- data/lib/mongoid/relations/cascading.rb +3 -5
- data/lib/mongoid/relations/constraint.rb +1 -1
- data/lib/mongoid/relations/conversions.rb +1 -1
- data/lib/mongoid/relations/counter_cache.rb +39 -15
- data/lib/mongoid/relations/eager.rb +46 -0
- data/lib/mongoid/relations/eager/base.rb +149 -0
- data/lib/mongoid/relations/eager/belongs_to.rb +31 -0
- data/lib/mongoid/relations/eager/has_and_belongs_to_many.rb +47 -0
- data/lib/mongoid/relations/eager/has_many.rb +38 -0
- data/lib/mongoid/relations/eager/has_one.rb +30 -0
- data/lib/mongoid/relations/embedded/batchable.rb +4 -5
- data/lib/mongoid/relations/embedded/in.rb +4 -4
- data/lib/mongoid/relations/embedded/many.rb +14 -32
- data/lib/mongoid/relations/embedded/one.rb +1 -1
- data/lib/mongoid/relations/macros.rb +3 -4
- data/lib/mongoid/relations/many.rb +51 -31
- data/lib/mongoid/relations/marshalable.rb +3 -3
- data/lib/mongoid/relations/metadata.rb +14 -79
- data/lib/mongoid/relations/nested_builder.rb +2 -2
- data/lib/mongoid/relations/one.rb +1 -1
- data/lib/mongoid/relations/options.rb +1 -0
- data/lib/mongoid/relations/polymorphic.rb +0 -1
- data/lib/mongoid/relations/proxy.rb +21 -41
- data/lib/mongoid/relations/referenced/in.rb +4 -20
- data/lib/mongoid/relations/referenced/many.rb +22 -35
- data/lib/mongoid/relations/referenced/many_to_many.rb +19 -42
- data/lib/mongoid/relations/referenced/one.rb +6 -25
- data/lib/mongoid/relations/synchronization.rb +4 -4
- data/lib/mongoid/relations/targets/enumerable.rb +10 -10
- data/lib/mongoid/relations/touchable.rb +34 -1
- data/lib/mongoid/{reloading.rb → reloadable.rb} +7 -5
- data/lib/mongoid/{scoping.rb → scopable.rb} +36 -36
- data/lib/mongoid/selectable.rb +59 -0
- data/lib/mongoid/{serialization.rb → serializable.rb} +11 -2
- data/lib/mongoid/sessions.rb +37 -345
- data/lib/mongoid/sessions/factory.rb +2 -0
- data/lib/mongoid/sessions/options.rb +185 -0
- data/lib/mongoid/sessions/storage_options.rb +140 -0
- data/lib/mongoid/sessions/thread_options.rb +19 -0
- data/lib/mongoid/sessions/validators/storage.rb +16 -3
- data/lib/mongoid/{sharding.rb → shardable.rb} +5 -1
- data/lib/mongoid/{state.rb → stateful.rb} +13 -1
- data/lib/mongoid/support/query_counter.rb +23 -0
- data/lib/mongoid/tasks/database.rake +31 -0
- data/lib/mongoid/tasks/database.rb +107 -0
- data/lib/mongoid/threaded.rb +26 -172
- data/lib/mongoid/threaded/lifecycle.rb +0 -28
- data/lib/mongoid/timestamps/updated/short.rb +2 -2
- data/lib/mongoid/{hierarchy.rb → traversable.rb} +15 -7
- data/lib/mongoid/{validations.rb → validatable.rb} +23 -10
- data/lib/mongoid/{validations → validatable}/associated.rb +4 -2
- data/lib/mongoid/{validations → validatable}/format.rb +1 -1
- data/lib/mongoid/{validations → validatable}/length.rb +1 -1
- data/lib/mongoid/{validations → validatable}/localizable.rb +1 -1
- data/lib/mongoid/{validations → validatable}/macros.rb +4 -3
- data/lib/mongoid/{validations → validatable}/presence.rb +1 -1
- data/lib/mongoid/{validations → validatable}/queryable.rb +1 -2
- data/lib/mongoid/{validations → validatable}/uniqueness.rb +25 -21
- data/lib/mongoid/version.rb +1 -1
- data/lib/rails/generators/mongoid/config/templates/mongoid.yml +46 -25
- data/lib/rails/generators/mongoid/model/model_generator.rb +0 -1
- data/lib/rails/generators/mongoid/model/templates/model.rb.tt +0 -3
- data/lib/rails/generators/mongoid_generator.rb +3 -40
- data/lib/rails/mongoid.rb +0 -122
- data/lib/support/ruby_version.rb +1 -1
- data/spec/app/models/account.rb +2 -6
- data/spec/app/models/acolyte.rb +2 -1
- data/spec/app/models/actor.rb +0 -1
- data/spec/app/models/address.rb +8 -3
- data/spec/app/models/animal.rb +1 -1
- data/spec/app/models/appointment.rb +3 -3
- data/spec/app/models/article.rb +1 -4
- data/spec/app/models/audio.rb +5 -0
- data/spec/app/models/author.rb +0 -2
- data/spec/app/models/band.rb +3 -2
- data/spec/app/models/bar.rb +1 -0
- data/spec/app/models/book.rb +1 -0
- data/spec/app/models/building.rb +0 -2
- data/spec/app/models/building_address.rb +0 -2
- data/spec/app/models/bus.rb +1 -1
- data/spec/app/models/canvas.rb +1 -1
- data/spec/app/models/contextable_item.rb +5 -0
- data/spec/app/models/contractor.rb +0 -2
- data/spec/app/models/country_code.rb +1 -1
- data/spec/app/models/definition.rb +2 -2
- data/spec/app/models/dog.rb +1 -1
- data/spec/app/models/draft.rb +9 -0
- data/spec/app/models/dragon.rb +4 -0
- data/spec/app/models/drug.rb +1 -3
- data/spec/app/models/dungeon.rb +4 -0
- data/spec/app/models/edit.rb +5 -0
- data/spec/app/models/even.rb +7 -0
- data/spec/app/models/event.rb +1 -1
- data/spec/app/models/filesystem.rb +1 -0
- data/spec/app/models/fish.rb +0 -1
- data/spec/app/models/fruits.rb +6 -0
- data/spec/app/models/game.rb +0 -2
- data/spec/app/models/house.rb +1 -3
- data/spec/app/models/id_key.rb +6 -0
- data/spec/app/models/item.rb +1 -5
- data/spec/app/models/jar.rb +1 -1
- data/spec/app/models/label.rb +4 -4
- data/spec/app/models/line_item.rb +1 -1
- data/spec/app/models/login.rb +1 -1
- data/spec/app/models/message.rb +8 -0
- data/spec/app/models/movie.rb +1 -0
- data/spec/app/models/name.rb +3 -3
- data/spec/app/models/note.rb +3 -1
- data/spec/app/models/odd.rb +7 -0
- data/spec/app/models/oscar.rb +1 -1
- data/spec/app/models/parent_doc.rb +1 -1
- data/spec/app/models/person.rb +16 -10
- data/spec/app/models/phone.rb +1 -3
- data/spec/app/models/player.rb +3 -3
- data/spec/app/models/post.rb +5 -3
- data/spec/app/models/preference.rb +1 -1
- data/spec/app/models/quiz.rb +0 -3
- data/spec/app/models/record.rb +10 -5
- data/spec/app/models/registry.rb +1 -1
- data/spec/app/models/server.rb +1 -1
- data/spec/app/models/service.rb +3 -3
- data/spec/app/models/sound.rb +5 -0
- data/spec/app/models/symptom.rb +1 -1
- data/spec/app/models/template.rb +1 -1
- data/spec/app/models/title.rb +0 -1
- data/spec/app/models/track.rb +5 -5
- data/spec/app/models/tree.rb +3 -3
- data/spec/app/models/video.rb +1 -5
- data/spec/app/models/wiki_page.rb +2 -5
- data/spec/app/models/word.rb +3 -0
- data/spec/app/models/word_origin.rb +1 -1
- data/spec/config/mongoid.yml +7 -8
- data/spec/helpers.rb +18 -0
- data/spec/mongoid/#atomic_spec.rb# +365 -0
- data/spec/mongoid/atomic/modifiers_spec.rb +22 -22
- data/spec/mongoid/atomic/paths/embedded/many_spec.rb +8 -49
- data/spec/mongoid/atomic/paths/embedded/one_spec.rb +7 -49
- data/spec/mongoid/atomic/paths/root_spec.rb +3 -61
- data/spec/mongoid/atomic/paths_spec.rb +19 -19
- data/spec/mongoid/atomic_spec.rb +19 -19
- data/spec/mongoid/{nested_attributes_spec.rb → attributes/nested_spec.rb} +474 -592
- data/spec/mongoid/attributes/readonly_spec.rb +58 -18
- data/spec/mongoid/attributes_spec.rb +349 -434
- data/spec/mongoid/{dirty_spec.rb → changeable_spec.rb} +203 -153
- data/spec/mongoid/{components_spec.rb → composable_spec.rb} +3 -3
- data/spec/mongoid/config/environment_spec.rb +3 -3
- data/spec/mongoid/config/options_spec.rb +6 -6
- data/spec/mongoid/config_spec.rb +24 -48
- data/spec/mongoid/contextual/aggregable/memory_spec.rb +12 -12
- data/spec/mongoid/contextual/aggregable/mongo_spec.rb +78 -38
- data/spec/mongoid/contextual/atomic_spec.rb +60 -56
- data/spec/mongoid/contextual/find_and_modify_spec.rb +14 -14
- data/spec/mongoid/contextual/geo_near_spec.rb +22 -22
- data/spec/mongoid/contextual/map_reduce_spec.rb +27 -27
- data/spec/mongoid/contextual/memory_spec.rb +156 -94
- data/spec/mongoid/contextual/mongo_spec.rb +238 -150
- data/spec/mongoid/contextual/none_spec.rb +127 -0
- data/spec/mongoid/contextual/text_search_spec.rb +209 -0
- data/spec/mongoid/copyable_spec.rb +56 -68
- data/spec/mongoid/criteria/findable_spec.rb +991 -0
- data/spec/mongoid/{criterion/inspection_spec.rb → criteria/inspectable_spec.rb} +5 -5
- data/spec/mongoid/{criterion → criteria}/marshalable_spec.rb +2 -2
- data/spec/mongoid/criteria/modifiable_spec.rb +1252 -0
- data/spec/mongoid/{criterion/scoping_spec.rb → criteria/scopable_spec.rb} +37 -37
- data/spec/mongoid/criteria_spec.rb +715 -2421
- data/spec/mongoid/document_spec.rb +171 -121
- data/spec/mongoid/equality_spec.rb +22 -22
- data/spec/mongoid/errors/ambiguous_relationship_spec.rb +3 -3
- data/spec/mongoid/errors/callback_spec.rb +3 -3
- data/spec/mongoid/errors/delete_restriction_spec.rb +3 -3
- data/spec/mongoid/errors/document_not_destroyed_spec.rb +33 -0
- data/spec/mongoid/errors/document_not_found_spec.rb +11 -11
- data/spec/mongoid/errors/eager_load_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_collection_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_config_option_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_field_option_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_field_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_find_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_includes_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_index_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_options_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_path_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_scope_spec.rb +5 -5
- data/spec/mongoid/errors/invalid_set_polymorphic_relation_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_storage_options_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_time_spec.rb +3 -3
- data/spec/mongoid/errors/inverse_not_found_spec.rb +3 -3
- data/spec/mongoid/errors/mixed_relations_spec.rb +3 -3
- data/spec/mongoid/errors/mixed_session_configuration_spec.rb +3 -3
- data/spec/mongoid/errors/mongoid_error_spec.rb +8 -8
- data/spec/mongoid/errors/nested_attributes_metadata_not_found_spec.rb +3 -3
- data/spec/mongoid/errors/no_environment_spec.rb +3 -3
- data/spec/mongoid/errors/no_map_reduce_output_spec.rb +3 -3
- data/spec/mongoid/errors/no_metadata_spec.rb +3 -3
- data/spec/mongoid/errors/no_parent_spec.rb +3 -3
- data/spec/mongoid/errors/no_session_config_spec.rb +3 -3
- data/spec/mongoid/errors/no_session_database_spec.rb +3 -3
- data/spec/mongoid/errors/no_session_hosts_spec.rb +3 -3
- data/spec/mongoid/errors/no_sessions_config_spec.rb +3 -3
- data/spec/mongoid/errors/readonly_attribute_spec.rb +3 -3
- data/spec/mongoid/errors/readonly_document_spec.rb +29 -0
- data/spec/mongoid/errors/scope_overwrite_spec.rb +3 -3
- data/spec/mongoid/errors/too_many_nested_attribute_records_spec.rb +3 -3
- data/spec/mongoid/errors/unknown_attribute_spec.rb +5 -5
- data/spec/mongoid/errors/unsaved_document_spec.rb +3 -3
- data/spec/mongoid/errors/unsupported_javascript_spec.rb +3 -3
- data/spec/mongoid/errors/validations_spec.rb +7 -7
- data/spec/mongoid/extensions/array_spec.rb +61 -61
- data/spec/mongoid/extensions/big_decimal_spec.rb +11 -11
- data/spec/mongoid/extensions/binary_spec.rb +12 -12
- data/spec/mongoid/extensions/boolean_spec.rb +18 -18
- data/spec/mongoid/extensions/date_spec.rb +13 -13
- data/spec/mongoid/extensions/date_time_spec.rb +8 -8
- data/spec/mongoid/extensions/false_class_spec.rb +5 -5
- data/spec/mongoid/extensions/float_spec.rb +29 -15
- data/spec/mongoid/extensions/hash_spec.rb +29 -29
- data/spec/mongoid/extensions/integer_spec.rb +15 -15
- data/spec/mongoid/extensions/module_spec.rb +2 -2
- data/spec/mongoid/extensions/nil_class_spec.rb +1 -1
- data/spec/mongoid/extensions/object_id_spec.rb +134 -134
- data/spec/mongoid/extensions/object_spec.rb +26 -26
- data/spec/mongoid/extensions/range_spec.rb +61 -12
- data/spec/mongoid/extensions/regexp_spec.rb +4 -4
- data/spec/mongoid/extensions/set_spec.rb +4 -4
- data/spec/mongoid/extensions/string_spec.rb +35 -46
- data/spec/mongoid/extensions/symbol_spec.rb +9 -9
- data/spec/mongoid/extensions/time_spec.rb +49 -49
- data/spec/mongoid/extensions/time_with_zone_spec.rb +34 -34
- data/spec/mongoid/extensions/true_class_spec.rb +5 -5
- data/spec/mongoid/extensions_spec.rb +29 -0
- data/spec/mongoid/factory_spec.rb +15 -15
- data/spec/mongoid/fields/foreign_key_spec.rb +73 -66
- data/spec/mongoid/fields/internal/foreign_keys/array_spec.rb +15 -15
- data/spec/mongoid/fields/internal/foreign_keys/object_spec.rb +22 -22
- data/spec/mongoid/fields/localized_spec.rb +38 -23
- data/spec/mongoid/fields/standard_spec.rb +12 -12
- data/spec/mongoid/fields_spec.rb +263 -217
- data/spec/mongoid/findable_spec.rb +509 -0
- data/spec/mongoid/indexable/specification_spec.rb +102 -0
- data/spec/mongoid/{indexes_spec.rb → indexable_spec.rb} +171 -51
- data/spec/mongoid/{inspection_spec.rb → inspectable_spec.rb} +6 -14
- data/spec/mongoid/{callbacks_spec.rb → interceptable_spec.rb} +117 -116
- data/spec/mongoid/log_subscriber_spec.rb +75 -0
- data/spec/mongoid/loggable_spec.rb +1 -1
- data/spec/mongoid/{matchers → matchable}/all_spec.rb +4 -4
- data/spec/mongoid/{matchers → matchable}/and_spec.rb +11 -11
- data/spec/mongoid/{matchers → matchable}/default_spec.rb +15 -15
- data/spec/mongoid/{matchers → matchable}/exists_spec.rb +5 -5
- data/spec/mongoid/{matchers → matchable}/gt_spec.rb +9 -8
- data/spec/mongoid/{matchers → matchable}/gte_spec.rb +7 -7
- data/spec/mongoid/matchable/in_spec.rb +49 -0
- data/spec/mongoid/{matchers → matchable}/lt_spec.rb +7 -7
- data/spec/mongoid/{matchers → matchable}/lte_spec.rb +7 -7
- data/spec/mongoid/matchable/ne_spec.rb +46 -0
- data/spec/mongoid/matchable/nin_spec.rb +48 -0
- data/spec/mongoid/{matchers → matchable}/or_spec.rb +6 -6
- data/spec/mongoid/{matchers → matchable}/size_spec.rb +3 -3
- data/spec/mongoid/{matchers_spec.rb → matchable_spec.rb} +41 -41
- data/spec/mongoid/persistable/creatable_spec.rb +553 -0
- data/spec/mongoid/persistable/deletable_spec.rb +218 -0
- data/spec/mongoid/persistable/destroyable_spec.rb +192 -0
- data/spec/mongoid/persistable/incrementable_spec.rb +173 -0
- data/spec/mongoid/persistable/logical_spec.rb +143 -0
- data/spec/mongoid/persistable/poppable_spec.rb +115 -0
- data/spec/mongoid/persistable/pullable_spec.rb +228 -0
- data/spec/mongoid/persistable/pushable_spec.rb +258 -0
- data/spec/mongoid/persistable/renamable_spec.rb +135 -0
- data/spec/mongoid/persistable/savable_spec.rb +498 -0
- data/spec/mongoid/persistable/settable_spec.rb +162 -0
- data/spec/mongoid/persistable/unsettable_spec.rb +155 -0
- data/spec/mongoid/persistable/updatable_spec.rb +558 -0
- data/spec/mongoid/persistable/upsertable_spec.rb +106 -0
- data/spec/mongoid/persistable_spec.rb +206 -0
- data/spec/mongoid/{atomic/positionable_spec.rb → positional_spec.rb} +14 -19
- data/spec/mongoid/query_cache_spec.rb +263 -0
- data/spec/mongoid/railties/document_spec.rb +2 -2
- data/spec/mongoid/relations/accessors_spec.rb +53 -145
- data/spec/mongoid/relations/auto_save_spec.rb +37 -17
- data/spec/mongoid/relations/bindings/embedded/in_spec.rb +12 -12
- data/spec/mongoid/relations/bindings/embedded/many_spec.rb +3 -3
- data/spec/mongoid/relations/bindings/embedded/one_spec.rb +5 -5
- data/spec/mongoid/relations/bindings/referenced/in_spec.rb +26 -26
- data/spec/mongoid/relations/bindings/referenced/many_spec.rb +10 -10
- data/spec/mongoid/relations/bindings/referenced/many_to_many_spec.rb +19 -19
- data/spec/mongoid/relations/bindings/referenced/one_spec.rb +12 -12
- data/spec/mongoid/relations/builders/embedded/in_spec.rb +4 -4
- data/spec/mongoid/relations/builders/embedded/many_spec.rb +18 -18
- data/spec/mongoid/relations/builders/embedded/one_spec.rb +11 -11
- data/spec/mongoid/relations/builders/nested_attributes/many_spec.rb +12 -13
- data/spec/mongoid/relations/builders/nested_attributes/one_spec.rb +14 -14
- data/spec/mongoid/relations/builders/referenced/in_spec.rb +24 -35
- data/spec/mongoid/relations/builders/referenced/many_spec.rb +15 -15
- data/spec/mongoid/relations/builders/referenced/many_to_many_spec.rb +18 -18
- data/spec/mongoid/relations/builders/referenced/one_spec.rb +12 -25
- data/spec/mongoid/relations/builders_spec.rb +21 -21
- data/spec/mongoid/relations/cascading/delete_spec.rb +9 -9
- data/spec/mongoid/relations/cascading/destroy_spec.rb +6 -6
- data/spec/mongoid/relations/cascading/nullify_spec.rb +4 -4
- data/spec/mongoid/relations/cascading/restrict_spec.rb +7 -7
- data/spec/mongoid/relations/cascading_spec.rb +16 -16
- data/spec/mongoid/relations/constraint_spec.rb +8 -7
- data/spec/mongoid/relations/conversions_spec.rb +16 -14
- data/spec/mongoid/relations/counter_cache_spec.rb +85 -0
- data/spec/mongoid/relations/cyclic_spec.rb +18 -18
- data/spec/mongoid/relations/eager/belongs_to_spec.rb +154 -0
- data/spec/mongoid/relations/eager/has_and_belongs_to_many_spec.rb +117 -0
- data/spec/mongoid/relations/eager/has_many_spec.rb +207 -0
- data/spec/mongoid/relations/eager/has_one_spec.rb +163 -0
- data/spec/mongoid/relations/eager_spec.rb +228 -0
- data/spec/mongoid/relations/embedded/dirty_spec.rb +8 -8
- data/spec/mongoid/relations/embedded/in_spec.rb +56 -57
- data/spec/mongoid/relations/embedded/many_spec.rb +467 -372
- data/spec/mongoid/relations/embedded/one_spec.rb +108 -141
- data/spec/mongoid/relations/macros_spec.rb +108 -102
- data/spec/mongoid/relations/metadata_spec.rb +180 -255
- data/spec/mongoid/relations/options_spec.rb +1 -1
- data/spec/mongoid/relations/polymorphic_spec.rb +13 -17
- data/spec/mongoid/relations/proxy_spec.rb +2 -2
- data/spec/mongoid/relations/referenced/in_spec.rb +128 -303
- data/spec/mongoid/relations/referenced/many_spec.rb +587 -527
- data/spec/mongoid/relations/referenced/many_to_many_spec.rb +401 -424
- data/spec/mongoid/relations/referenced/one_spec.rb +149 -264
- data/spec/mongoid/relations/reflections_spec.rb +6 -6
- data/spec/mongoid/relations/synchronization_spec.rb +46 -50
- data/spec/mongoid/relations/targets/enumerable_spec.rb +118 -118
- data/spec/mongoid/relations/touchable_spec.rb +333 -0
- data/spec/mongoid/relations_spec.rb +16 -15
- data/spec/mongoid/{reloading_spec.rb → reloadable_spec.rb} +38 -55
- data/spec/mongoid/{scoping_spec.rb → scopable_spec.rb} +89 -164
- data/spec/mongoid/selectable_spec.rb +134 -0
- data/spec/mongoid/{serialization_spec.rb → serializable_spec.rb} +129 -82
- data/spec/mongoid/sessions/factory_spec.rb +49 -28
- data/spec/mongoid/sessions/mongo_uri_spec.rb +7 -7
- data/spec/mongoid/sessions/options_spec.rb +108 -0
- data/spec/mongoid/sessions_spec.rb +319 -178
- data/spec/mongoid/{sharding_spec.rb → shardable_spec.rb} +8 -8
- data/spec/mongoid/{state_spec.rb → stateful_spec.rb} +36 -11
- data/spec/mongoid/tasks/database_rake_spec.rb +285 -0
- data/spec/mongoid/tasks/database_spec.rb +160 -0
- data/spec/mongoid/threaded_spec.rb +17 -70
- data/spec/mongoid/timestamps/created/short_spec.rb +6 -6
- data/spec/mongoid/timestamps/created_spec.rb +5 -5
- data/spec/mongoid/timestamps/timeless_spec.rb +6 -6
- data/spec/mongoid/timestamps/updated/short_spec.rb +11 -11
- data/spec/mongoid/timestamps/updated_spec.rb +9 -13
- data/spec/mongoid/timestamps_spec.rb +9 -13
- data/spec/mongoid/{hierarchy_spec.rb → traversable_spec.rb} +19 -19
- data/spec/mongoid/{validations → validatable}/associated_spec.rb +45 -22
- data/spec/mongoid/{validations → validatable}/format_spec.rb +6 -6
- data/spec/mongoid/{validations → validatable}/length_spec.rb +14 -14
- data/spec/mongoid/{validations → validatable}/numericality_spec.rb +1 -1
- data/spec/mongoid/{validations → validatable}/presence_spec.rb +37 -44
- data/spec/mongoid/{validations → validatable}/uniqueness_spec.rb +184 -192
- data/spec/mongoid/{validations_spec.rb → validatable_spec.rb} +28 -28
- data/spec/mongoid_spec.rb +8 -8
- data/spec/rails/mongoid_spec.rb +19 -335
- data/spec/spec_helper.rb +31 -13
- metadata +303 -283
- data/lib/mongoid/atomic/positionable.rb +0 -73
- data/lib/mongoid/components.rb +0 -92
- data/lib/mongoid/config/inflections.rb +0 -6
- data/lib/mongoid/contextual/eager.rb +0 -158
- data/lib/mongoid/errors/versioning_not_on_root.rb +0 -23
- data/lib/mongoid/identity_map.rb +0 -163
- data/lib/mongoid/json.rb +0 -16
- data/lib/mongoid/matchers.rb +0 -32
- data/lib/mongoid/matchers/strategies.rb +0 -97
- data/lib/mongoid/multi_parameter_attributes.rb +0 -105
- data/lib/mongoid/nested_attributes.rb +0 -78
- data/lib/mongoid/observer.rb +0 -192
- data/lib/mongoid/paranoia.rb +0 -136
- data/lib/mongoid/persistence.rb +0 -357
- data/lib/mongoid/persistence/atomic.rb +0 -231
- data/lib/mongoid/persistence/atomic/add_to_set.rb +0 -47
- data/lib/mongoid/persistence/atomic/bit.rb +0 -35
- data/lib/mongoid/persistence/atomic/inc.rb +0 -45
- data/lib/mongoid/persistence/atomic/operation.rb +0 -154
- data/lib/mongoid/persistence/atomic/pop.rb +0 -32
- data/lib/mongoid/persistence/atomic/pull.rb +0 -32
- data/lib/mongoid/persistence/atomic/pull_all.rb +0 -32
- data/lib/mongoid/persistence/atomic/push.rb +0 -25
- data/lib/mongoid/persistence/atomic/push_all.rb +0 -25
- data/lib/mongoid/persistence/atomic/rename.rb +0 -30
- data/lib/mongoid/persistence/atomic/sets.rb +0 -28
- data/lib/mongoid/persistence/atomic/unset.rb +0 -27
- data/lib/mongoid/persistence/deletion.rb +0 -31
- data/lib/mongoid/persistence/insertion.rb +0 -38
- data/lib/mongoid/persistence/modification.rb +0 -35
- data/lib/mongoid/persistence/operations.rb +0 -214
- data/lib/mongoid/persistence/operations/embedded/insert.rb +0 -46
- data/lib/mongoid/persistence/operations/embedded/remove.rb +0 -43
- data/lib/mongoid/persistence/operations/insert.rb +0 -34
- data/lib/mongoid/persistence/operations/remove.rb +0 -33
- data/lib/mongoid/persistence/operations/update.rb +0 -59
- data/lib/mongoid/persistence/operations/upsert.rb +0 -28
- data/lib/mongoid/persistence/upsertion.rb +0 -31
- data/lib/mongoid/unit_of_work.rb +0 -61
- data/lib/mongoid/versioning.rb +0 -217
- data/lib/rack/mongoid.rb +0 -2
- data/lib/rack/mongoid/middleware/identity_map.rb +0 -39
- data/lib/rails/generators/mongoid/observer/observer_generator.rb +0 -17
- data/lib/rails/generators/mongoid/observer/templates/observer.rb.tt +0 -4
- data/spec/app/models/actor_observer.rb +0 -15
- data/spec/app/models/callback_recorder.rb +0 -25
- data/spec/app/models/paranoid_phone.rb +0 -25
- data/spec/app/models/paranoid_post.rb +0 -36
- data/spec/app/models/phone_observer.rb +0 -6
- data/spec/mongoid/attributes/processing_spec.rb +0 -149
- data/spec/mongoid/criterion/destructive_spec.rb +0 -101
- data/spec/mongoid/criterion/modifiable_spec.rb +0 -409
- data/spec/mongoid/criterion/modification_spec.rb +0 -402
- data/spec/mongoid/errors/versioning_not_on_root_spec.rb +0 -29
- data/spec/mongoid/finders_spec.rb +0 -321
- data/spec/mongoid/identity_map_spec.rb +0 -564
- data/spec/mongoid/json_spec.rb +0 -33
- data/spec/mongoid/matchers/in_spec.rb +0 -25
- data/spec/mongoid/matchers/ne_spec.rb +0 -25
- data/spec/mongoid/matchers/nin_spec.rb +0 -25
- data/spec/mongoid/multi_parameter_attributes_spec.rb +0 -128
- data/spec/mongoid/observer_spec.rb +0 -290
- data/spec/mongoid/paranoia_spec.rb +0 -759
- data/spec/mongoid/persistence/atomic/add_to_set_spec.rb +0 -262
- data/spec/mongoid/persistence/atomic/bit_spec.rb +0 -88
- data/spec/mongoid/persistence/atomic/inc_spec.rb +0 -133
- data/spec/mongoid/persistence/atomic/pop_spec.rb +0 -111
- data/spec/mongoid/persistence/atomic/pull_all_spec.rb +0 -77
- data/spec/mongoid/persistence/atomic/pull_spec.rb +0 -80
- data/spec/mongoid/persistence/atomic/push_all_spec.rb +0 -77
- data/spec/mongoid/persistence/atomic/push_spec.rb +0 -77
- data/spec/mongoid/persistence/atomic/rename_spec.rb +0 -42
- data/spec/mongoid/persistence/atomic/sets_spec.rb +0 -154
- data/spec/mongoid/persistence/atomic/unset_spec.rb +0 -65
- data/spec/mongoid/persistence/atomic_spec.rb +0 -216
- data/spec/mongoid/persistence/operations/embedded/insert_spec.rb +0 -191
- data/spec/mongoid/persistence/operations/embedded/remove_spec.rb +0 -8
- data/spec/mongoid/persistence/operations/insert_spec.rb +0 -149
- data/spec/mongoid/persistence/operations/remove_spec.rb +0 -113
- data/spec/mongoid/persistence/operations/update_spec.rb +0 -141
- data/spec/mongoid/persistence/operations/upsert_spec.rb +0 -59
- data/spec/mongoid/persistence/operations_spec.rb +0 -313
- data/spec/mongoid/persistence_spec.rb +0 -2279
- data/spec/mongoid/unit_of_work_spec.rb +0 -196
- data/spec/mongoid/versioning_spec.rb +0 -540
- data/spec/rack/mongoid/middleware/identity_map_spec.rb +0 -72
@@ -36,7 +36,7 @@ describe Mongoid::Relations::Referenced::One do
|
|
36
36
|
end
|
37
37
|
|
38
38
|
it "does not raise an error" do
|
39
|
-
user.role.
|
39
|
+
expect(user.role).to eq(role)
|
40
40
|
end
|
41
41
|
end
|
42
42
|
|
@@ -57,28 +57,28 @@ describe Mongoid::Relations::Referenced::One do
|
|
57
57
|
end
|
58
58
|
|
59
59
|
before do
|
60
|
-
metadata.
|
60
|
+
expect(metadata).to receive(:criteria).never
|
61
61
|
person.game = game
|
62
62
|
end
|
63
63
|
|
64
64
|
it "sets the target of the relation" do
|
65
|
-
person.game.target.
|
65
|
+
expect(person.game.target).to eq(game)
|
66
66
|
end
|
67
67
|
|
68
68
|
it "sets the foreign key on the relation" do
|
69
|
-
game.person_id.
|
69
|
+
expect(game.person_id).to eq(person.id)
|
70
70
|
end
|
71
71
|
|
72
72
|
it "sets the base on the inverse relation" do
|
73
|
-
game.person.
|
73
|
+
expect(game.person).to eq(person)
|
74
74
|
end
|
75
75
|
|
76
76
|
it "sets the same instance on the inverse relation" do
|
77
|
-
game.person.
|
77
|
+
expect(game.person).to eql(person)
|
78
78
|
end
|
79
79
|
|
80
80
|
it "does not save the target" do
|
81
|
-
game.
|
81
|
+
expect(game).to_not be_persisted
|
82
82
|
end
|
83
83
|
end
|
84
84
|
|
@@ -97,23 +97,23 @@ describe Mongoid::Relations::Referenced::One do
|
|
97
97
|
end
|
98
98
|
|
99
99
|
it "sets the target of the relation" do
|
100
|
-
person.game.target.
|
100
|
+
expect(person.game.target).to eq(game)
|
101
101
|
end
|
102
102
|
|
103
103
|
it "sets the foreign key of the relation" do
|
104
|
-
game.person_id.
|
104
|
+
expect(game.person_id).to eq(person.id)
|
105
105
|
end
|
106
106
|
|
107
107
|
it "sets the base on the inverse relation" do
|
108
|
-
game.person.
|
108
|
+
expect(game.person).to eq(person)
|
109
109
|
end
|
110
110
|
|
111
111
|
it "sets the same instance on the inverse relation" do
|
112
|
-
game.person.
|
112
|
+
expect(game.person).to eql(person)
|
113
113
|
end
|
114
114
|
|
115
115
|
it "saves the target" do
|
116
|
-
game.
|
116
|
+
expect(game).to be_persisted
|
117
117
|
end
|
118
118
|
|
119
119
|
context "when reloading the parent" do
|
@@ -152,23 +152,23 @@ describe Mongoid::Relations::Referenced::One do
|
|
152
152
|
end
|
153
153
|
|
154
154
|
it "sets the target of the relation" do
|
155
|
-
person.cat.target.
|
155
|
+
expect(person.cat.target).to eq(cat)
|
156
156
|
end
|
157
157
|
|
158
158
|
it "sets the foreign key of the relation" do
|
159
|
-
cat.person_id.
|
159
|
+
expect(cat.person_id).to eq(person.username)
|
160
160
|
end
|
161
161
|
|
162
162
|
it "sets the base on the inverse relation" do
|
163
|
-
cat.person.
|
163
|
+
expect(cat.person).to eq(person)
|
164
164
|
end
|
165
165
|
|
166
166
|
it "sets the same instance on the inverse relation" do
|
167
|
-
cat.person.
|
167
|
+
expect(cat.person).to eql(person)
|
168
168
|
end
|
169
169
|
|
170
170
|
it "saves the target" do
|
171
|
-
cat.
|
171
|
+
expect(cat).to be_persisted
|
172
172
|
end
|
173
173
|
end
|
174
174
|
end
|
@@ -190,23 +190,23 @@ describe Mongoid::Relations::Referenced::One do
|
|
190
190
|
end
|
191
191
|
|
192
192
|
it "sets the target of the relation" do
|
193
|
-
bar.rating.target.
|
193
|
+
expect(bar.rating.target).to eq(rating)
|
194
194
|
end
|
195
195
|
|
196
196
|
it "sets the foreign key on the relation" do
|
197
|
-
rating.ratable_id.
|
197
|
+
expect(rating.ratable_id).to eq(bar.id)
|
198
198
|
end
|
199
199
|
|
200
200
|
it "sets the base on the inverse relation" do
|
201
|
-
rating.ratable.
|
201
|
+
expect(rating.ratable).to eq(bar)
|
202
202
|
end
|
203
203
|
|
204
204
|
it "sets the same instance on the inverse relation" do
|
205
|
-
rating.ratable.
|
205
|
+
expect(rating.ratable).to eql(bar)
|
206
206
|
end
|
207
207
|
|
208
208
|
it "does not save the target" do
|
209
|
-
rating.
|
209
|
+
expect(rating).to_not be_persisted
|
210
210
|
end
|
211
211
|
end
|
212
212
|
|
@@ -225,23 +225,23 @@ describe Mongoid::Relations::Referenced::One do
|
|
225
225
|
end
|
226
226
|
|
227
227
|
it "sets the target of the relation" do
|
228
|
-
bar.rating.target.
|
228
|
+
expect(bar.rating.target).to eq(rating)
|
229
229
|
end
|
230
230
|
|
231
231
|
it "sets the foreign key of the relation" do
|
232
|
-
rating.ratable_id.
|
232
|
+
expect(rating.ratable_id).to eq(bar.id)
|
233
233
|
end
|
234
234
|
|
235
235
|
it "sets the base on the inverse relation" do
|
236
|
-
rating.ratable.
|
236
|
+
expect(rating.ratable).to eq(bar)
|
237
237
|
end
|
238
238
|
|
239
239
|
it "sets the same instance on the inverse relation" do
|
240
|
-
rating.ratable.
|
240
|
+
expect(rating.ratable).to eql(bar)
|
241
241
|
end
|
242
242
|
|
243
243
|
it "saves the target" do
|
244
|
-
rating.
|
244
|
+
expect(rating).to be_persisted
|
245
245
|
end
|
246
246
|
end
|
247
247
|
|
@@ -262,27 +262,27 @@ describe Mongoid::Relations::Referenced::One do
|
|
262
262
|
end
|
263
263
|
|
264
264
|
it "sets the new relation on the parent" do
|
265
|
-
person.game.
|
265
|
+
expect(person.game).to eq(new_game)
|
266
266
|
end
|
267
267
|
|
268
268
|
it "removes the old foreign key reference" do
|
269
|
-
game.person_id.
|
269
|
+
expect(game.person_id).to be_nil
|
270
270
|
end
|
271
271
|
|
272
272
|
it "removes the reference to the parent" do
|
273
|
-
game.person.
|
273
|
+
expect(game.person).to be_nil
|
274
274
|
end
|
275
275
|
|
276
276
|
it "destroys the old child" do
|
277
|
-
game.
|
277
|
+
expect(game).to be_destroyed
|
278
278
|
end
|
279
279
|
|
280
280
|
it "leaves the old child unpersisted" do
|
281
|
-
game.persisted
|
281
|
+
expect(game.persisted?).to be false
|
282
282
|
end
|
283
283
|
|
284
284
|
it "leaves the new child persisted" do
|
285
|
-
new_game.persisted
|
285
|
+
expect(new_game.persisted?).to be true
|
286
286
|
end
|
287
287
|
end
|
288
288
|
|
@@ -293,27 +293,27 @@ describe Mongoid::Relations::Referenced::One do
|
|
293
293
|
end
|
294
294
|
|
295
295
|
it "sets the new relation on the parent" do
|
296
|
-
person.game.
|
296
|
+
expect(person.game).to eq(new_game)
|
297
297
|
end
|
298
298
|
|
299
299
|
it "removes the old foreign key reference" do
|
300
|
-
game.person_id.
|
300
|
+
expect(game.person_id).to be_nil
|
301
301
|
end
|
302
302
|
|
303
303
|
it "removes the reference to the parent" do
|
304
|
-
game.person.
|
304
|
+
expect(game.person).to be_nil
|
305
305
|
end
|
306
306
|
|
307
307
|
it "does not destroy the old child" do
|
308
|
-
game.
|
308
|
+
expect(game).to_not be_destroyed
|
309
309
|
end
|
310
310
|
|
311
311
|
it "leaves the old child persisted" do
|
312
|
-
game.persisted
|
312
|
+
expect(game.persisted?).to be true
|
313
313
|
end
|
314
314
|
|
315
315
|
it "leaves the new child unpersisted" do
|
316
|
-
new_game.persisted
|
316
|
+
expect(new_game.persisted?).to be false
|
317
317
|
end
|
318
318
|
end
|
319
319
|
end
|
@@ -335,27 +335,27 @@ describe Mongoid::Relations::Referenced::One do
|
|
335
335
|
end
|
336
336
|
|
337
337
|
it "sets the new relation on the parent" do
|
338
|
-
person.game.
|
338
|
+
expect(person.game).to eq(new_game)
|
339
339
|
end
|
340
340
|
|
341
341
|
it "removes the old foreign key reference" do
|
342
|
-
game.person_id.
|
342
|
+
expect(game.person_id).to be_nil
|
343
343
|
end
|
344
344
|
|
345
345
|
it "removes the reference to the parent" do
|
346
|
-
game.person.
|
346
|
+
expect(game.person).to be_nil
|
347
347
|
end
|
348
348
|
|
349
349
|
it "destroys the old child" do
|
350
|
-
game.
|
350
|
+
expect(game).to be_destroyed
|
351
351
|
end
|
352
352
|
|
353
353
|
it "leaves the old child unpersisted" do
|
354
|
-
game.persisted
|
354
|
+
expect(game.persisted?).to be false
|
355
355
|
end
|
356
356
|
|
357
357
|
it "leaves the new child persisted" do
|
358
|
-
new_game.persisted
|
358
|
+
expect(new_game.persisted?).to be true
|
359
359
|
end
|
360
360
|
end
|
361
361
|
|
@@ -366,27 +366,27 @@ describe Mongoid::Relations::Referenced::One do
|
|
366
366
|
end
|
367
367
|
|
368
368
|
it "sets the new relation on the parent" do
|
369
|
-
person.game.
|
369
|
+
expect(person.game).to eq(new_game)
|
370
370
|
end
|
371
371
|
|
372
372
|
it "removes the old foreign key reference" do
|
373
|
-
game.person_id.
|
373
|
+
expect(game.person_id).to be_nil
|
374
374
|
end
|
375
375
|
|
376
376
|
it "removes the reference to the parent" do
|
377
|
-
game.person.
|
377
|
+
expect(game.person).to be_nil
|
378
378
|
end
|
379
379
|
|
380
380
|
it "does not destroy the old child" do
|
381
|
-
game.
|
381
|
+
expect(game).to_not be_destroyed
|
382
382
|
end
|
383
383
|
|
384
384
|
it "leaves the old child unpersisted" do
|
385
|
-
game.persisted
|
385
|
+
expect(game.persisted?).to be false
|
386
386
|
end
|
387
387
|
|
388
388
|
it "leaves the new child unpersisted" do
|
389
|
-
new_game.persisted
|
389
|
+
expect(new_game.persisted?).to be false
|
390
390
|
end
|
391
391
|
end
|
392
392
|
end
|
@@ -408,27 +408,27 @@ describe Mongoid::Relations::Referenced::One do
|
|
408
408
|
end
|
409
409
|
|
410
410
|
it "sets the new relation on the parent" do
|
411
|
-
person.cat.
|
411
|
+
expect(person.cat).to eq(new_cat)
|
412
412
|
end
|
413
413
|
|
414
414
|
it "removes the old foreign key reference" do
|
415
|
-
cat.person_id.
|
415
|
+
expect(cat.person_id).to be_nil
|
416
416
|
end
|
417
417
|
|
418
418
|
it "removes the reference to the parent" do
|
419
|
-
cat.person.
|
419
|
+
expect(cat.person).to be_nil
|
420
420
|
end
|
421
421
|
|
422
422
|
it "does not destroy the old child" do
|
423
|
-
cat.
|
423
|
+
expect(cat).to_not be_destroyed
|
424
424
|
end
|
425
425
|
|
426
426
|
it "leaves the old child persisted" do
|
427
|
-
cat.persisted
|
427
|
+
expect(cat.persisted?).to be true
|
428
428
|
end
|
429
429
|
|
430
430
|
it "leaves the new child persisted" do
|
431
|
-
new_cat.persisted
|
431
|
+
expect(new_cat.persisted?).to be true
|
432
432
|
end
|
433
433
|
end
|
434
434
|
|
@@ -439,27 +439,27 @@ describe Mongoid::Relations::Referenced::One do
|
|
439
439
|
end
|
440
440
|
|
441
441
|
it "sets the new relation on the parent" do
|
442
|
-
person.cat.
|
442
|
+
expect(person.cat).to eq(new_cat)
|
443
443
|
end
|
444
444
|
|
445
445
|
it "removes the old foreign key reference" do
|
446
|
-
cat.person_id.
|
446
|
+
expect(cat.person_id).to be_nil
|
447
447
|
end
|
448
448
|
|
449
449
|
it "removes the reference to the parent" do
|
450
|
-
cat.person.
|
450
|
+
expect(cat.person).to be_nil
|
451
451
|
end
|
452
452
|
|
453
453
|
it "does not destroy the old child" do
|
454
|
-
cat.
|
454
|
+
expect(cat).to_not be_destroyed
|
455
455
|
end
|
456
456
|
|
457
457
|
it "leaves the old child persisted" do
|
458
|
-
cat.persisted
|
458
|
+
expect(cat.persisted?).to be true
|
459
459
|
end
|
460
460
|
|
461
461
|
it "leaves the new child unpersisted" do
|
462
|
-
new_cat.persisted
|
462
|
+
expect(new_cat.persisted?).to be false
|
463
463
|
end
|
464
464
|
end
|
465
465
|
end
|
@@ -481,27 +481,27 @@ describe Mongoid::Relations::Referenced::One do
|
|
481
481
|
end
|
482
482
|
|
483
483
|
it "sets the new relation on the parent" do
|
484
|
-
person.cat.
|
484
|
+
expect(person.cat).to eq(new_cat)
|
485
485
|
end
|
486
486
|
|
487
487
|
it "removes the old foreign key reference" do
|
488
|
-
cat.person_id.
|
488
|
+
expect(cat.person_id).to be_nil
|
489
489
|
end
|
490
490
|
|
491
491
|
it "removes the reference to the parent" do
|
492
|
-
cat.person.
|
492
|
+
expect(cat.person).to be_nil
|
493
493
|
end
|
494
494
|
|
495
495
|
it "does not destroy the old child" do
|
496
|
-
cat.
|
496
|
+
expect(cat).to_not be_destroyed
|
497
497
|
end
|
498
498
|
|
499
499
|
it "leaves the old child unpersisted" do
|
500
|
-
cat.persisted
|
500
|
+
expect(cat.persisted?).to be false
|
501
501
|
end
|
502
502
|
|
503
503
|
it "leaves the new child persisted" do
|
504
|
-
new_cat.persisted
|
504
|
+
expect(new_cat.persisted?).to be true
|
505
505
|
end
|
506
506
|
end
|
507
507
|
|
@@ -512,27 +512,27 @@ describe Mongoid::Relations::Referenced::One do
|
|
512
512
|
end
|
513
513
|
|
514
514
|
it "sets the new relation on the parent" do
|
515
|
-
person.cat.
|
515
|
+
expect(person.cat).to eq(new_cat)
|
516
516
|
end
|
517
517
|
|
518
518
|
it "removes the old foreign key reference" do
|
519
|
-
cat.person_id.
|
519
|
+
expect(cat.person_id).to be_nil
|
520
520
|
end
|
521
521
|
|
522
522
|
it "removes the reference to the parent" do
|
523
|
-
cat.person.
|
523
|
+
expect(cat.person).to be_nil
|
524
524
|
end
|
525
525
|
|
526
526
|
it "does not destroy the old child" do
|
527
|
-
cat.
|
527
|
+
expect(cat).to_not be_destroyed
|
528
528
|
end
|
529
529
|
|
530
530
|
it "leaves the old child unpersisted" do
|
531
|
-
cat.persisted
|
531
|
+
expect(cat.persisted?).to be false
|
532
532
|
end
|
533
533
|
|
534
534
|
it "leaves the new child unpersisted" do
|
535
|
-
new_cat.persisted
|
535
|
+
expect(new_cat.persisted?).to be false
|
536
536
|
end
|
537
537
|
end
|
538
538
|
end
|
@@ -558,19 +558,19 @@ describe Mongoid::Relations::Referenced::One do
|
|
558
558
|
end
|
559
559
|
|
560
560
|
it "sets the new relation on the parent" do
|
561
|
-
person.game.
|
561
|
+
expect(person.game).to eq(new_game)
|
562
562
|
end
|
563
563
|
|
564
564
|
it "removes the old foreign key reference" do
|
565
|
-
game.person_id.
|
565
|
+
expect(game.person_id).to be_nil
|
566
566
|
end
|
567
567
|
|
568
568
|
it "removes the reference to the parent" do
|
569
|
-
game.person.
|
569
|
+
expect(game.person).to be_nil
|
570
570
|
end
|
571
571
|
|
572
572
|
it "destroys the old child" do
|
573
|
-
game.
|
573
|
+
expect(game).to be_destroyed
|
574
574
|
end
|
575
575
|
end
|
576
576
|
|
@@ -589,19 +589,19 @@ describe Mongoid::Relations::Referenced::One do
|
|
589
589
|
end
|
590
590
|
|
591
591
|
it "sets the new relation on the parent" do
|
592
|
-
person.account.
|
592
|
+
expect(person.account).to eq(new_account)
|
593
593
|
end
|
594
594
|
|
595
595
|
it "removes the old foreign key reference" do
|
596
|
-
account.person_id.
|
596
|
+
expect(account.person_id).to be_nil
|
597
597
|
end
|
598
598
|
|
599
599
|
it "removes the reference to the parent" do
|
600
|
-
account.person.
|
600
|
+
expect(account.person).to be_nil
|
601
601
|
end
|
602
602
|
|
603
603
|
it "nullifies the old child" do
|
604
|
-
account.
|
604
|
+
expect(account).to_not be_destroyed
|
605
605
|
end
|
606
606
|
end
|
607
607
|
end
|
@@ -628,15 +628,15 @@ describe Mongoid::Relations::Referenced::One do
|
|
628
628
|
end
|
629
629
|
|
630
630
|
it "sets the relation to nil" do
|
631
|
-
person.game.
|
631
|
+
expect(person.game).to be_nil
|
632
632
|
end
|
633
633
|
|
634
634
|
it "removed the inverse relation" do
|
635
|
-
game.person.
|
635
|
+
expect(game.person).to be_nil
|
636
636
|
end
|
637
637
|
|
638
638
|
it "removes the foreign key value" do
|
639
|
-
game.person_id.
|
639
|
+
expect(game.person_id).to be_nil
|
640
640
|
end
|
641
641
|
end
|
642
642
|
|
@@ -656,19 +656,19 @@ describe Mongoid::Relations::Referenced::One do
|
|
656
656
|
end
|
657
657
|
|
658
658
|
it "sets the relation to nil" do
|
659
|
-
person.game.
|
659
|
+
expect(person.game).to be_nil
|
660
660
|
end
|
661
661
|
|
662
662
|
it "removed the inverse relation" do
|
663
|
-
game.person.
|
663
|
+
expect(game.person).to be_nil
|
664
664
|
end
|
665
665
|
|
666
666
|
it "removes the foreign key value" do
|
667
|
-
game.person_id.
|
667
|
+
expect(game.person_id).to be_nil
|
668
668
|
end
|
669
669
|
|
670
670
|
it "deletes the target from the database" do
|
671
|
-
game.
|
671
|
+
expect(game).to be_destroyed
|
672
672
|
end
|
673
673
|
end
|
674
674
|
end
|
@@ -691,15 +691,15 @@ describe Mongoid::Relations::Referenced::One do
|
|
691
691
|
end
|
692
692
|
|
693
693
|
it "sets the relation to nil" do
|
694
|
-
bar.rating.
|
694
|
+
expect(bar.rating).to be_nil
|
695
695
|
end
|
696
696
|
|
697
697
|
it "removed the inverse relation" do
|
698
|
-
rating.ratable.
|
698
|
+
expect(rating.ratable).to be_nil
|
699
699
|
end
|
700
700
|
|
701
701
|
it "removes the foreign key value" do
|
702
|
-
rating.ratable_id.
|
702
|
+
expect(rating.ratable_id).to be_nil
|
703
703
|
end
|
704
704
|
end
|
705
705
|
|
@@ -719,19 +719,19 @@ describe Mongoid::Relations::Referenced::One do
|
|
719
719
|
end
|
720
720
|
|
721
721
|
it "sets the relation to nil" do
|
722
|
-
bar.rating.
|
722
|
+
expect(bar.rating).to be_nil
|
723
723
|
end
|
724
724
|
|
725
725
|
it "removed the inverse relation" do
|
726
|
-
rating.ratable.
|
726
|
+
expect(rating.ratable).to be_nil
|
727
727
|
end
|
728
728
|
|
729
729
|
it "removes the foreign key value" do
|
730
|
-
rating.ratable_id.
|
730
|
+
expect(rating.ratable_id).to be_nil
|
731
731
|
end
|
732
732
|
|
733
733
|
it "applies the appropriate dependent option" do
|
734
|
-
rating.
|
734
|
+
expect(rating).to_not be_destroyed
|
735
735
|
end
|
736
736
|
end
|
737
737
|
end
|
@@ -739,27 +739,6 @@ describe Mongoid::Relations::Referenced::One do
|
|
739
739
|
|
740
740
|
describe "#build_#\{name}" do
|
741
741
|
|
742
|
-
context "when using mass assignment scoping" do
|
743
|
-
|
744
|
-
let(:person) do
|
745
|
-
Person.new
|
746
|
-
end
|
747
|
-
|
748
|
-
let(:account) do
|
749
|
-
person.build_account(
|
750
|
-
{ name: "bank", balance: "big" }, as: :admin
|
751
|
-
)
|
752
|
-
end
|
753
|
-
|
754
|
-
it "allows setting of fields for the role" do
|
755
|
-
account.name.should eq("bank")
|
756
|
-
end
|
757
|
-
|
758
|
-
it "does not set fields not allowed for the role" do
|
759
|
-
account.balance.should be_nil
|
760
|
-
end
|
761
|
-
end
|
762
|
-
|
763
742
|
context "when the relationship is an illegal embedded reference" do
|
764
743
|
|
765
744
|
let(:game) do
|
@@ -786,19 +765,19 @@ describe Mongoid::Relations::Referenced::One do
|
|
786
765
|
end
|
787
766
|
|
788
767
|
it "returns a new document" do
|
789
|
-
game.score.
|
768
|
+
expect(game.score).to eq(50)
|
790
769
|
end
|
791
770
|
|
792
771
|
it "sets the foreign key on the document" do
|
793
|
-
game.person_id.
|
772
|
+
expect(game.person_id).to eq(person.id)
|
794
773
|
end
|
795
774
|
|
796
775
|
it "sets the inverse relation" do
|
797
|
-
game.person.
|
776
|
+
expect(game.person).to eq(person)
|
798
777
|
end
|
799
778
|
|
800
779
|
it "does not save the built document" do
|
801
|
-
game.
|
780
|
+
expect(game).to_not be_persisted
|
802
781
|
end
|
803
782
|
end
|
804
783
|
|
@@ -813,15 +792,15 @@ describe Mongoid::Relations::Referenced::One do
|
|
813
792
|
end
|
814
793
|
|
815
794
|
it "sets the foreign key on the document" do
|
816
|
-
game.person_id.
|
795
|
+
expect(game.person_id).to eq(person.id)
|
817
796
|
end
|
818
797
|
|
819
798
|
it "sets the inverse relation" do
|
820
|
-
game.person.
|
799
|
+
expect(game.person).to eq(person)
|
821
800
|
end
|
822
801
|
|
823
802
|
it "does not save the built document" do
|
824
|
-
game.
|
803
|
+
expect(game).to_not be_persisted
|
825
804
|
end
|
826
805
|
end
|
827
806
|
|
@@ -836,15 +815,15 @@ describe Mongoid::Relations::Referenced::One do
|
|
836
815
|
end
|
837
816
|
|
838
817
|
it "sets the foreign key on the document" do
|
839
|
-
game.person_id.
|
818
|
+
expect(game.person_id).to eq(person.id)
|
840
819
|
end
|
841
820
|
|
842
821
|
it "sets the inverse relation" do
|
843
|
-
game.person.
|
822
|
+
expect(game.person).to eq(person)
|
844
823
|
end
|
845
824
|
|
846
825
|
it "does not save the built document" do
|
847
|
-
game.
|
826
|
+
expect(game).to_not be_persisted
|
848
827
|
end
|
849
828
|
end
|
850
829
|
end
|
@@ -862,19 +841,19 @@ describe Mongoid::Relations::Referenced::One do
|
|
862
841
|
end
|
863
842
|
|
864
843
|
it "returns a new document" do
|
865
|
-
rating.value.
|
844
|
+
expect(rating.value).to eq(5)
|
866
845
|
end
|
867
846
|
|
868
847
|
it "sets the foreign key on the document" do
|
869
|
-
rating.ratable_id.
|
848
|
+
expect(rating.ratable_id).to eq(bar.id)
|
870
849
|
end
|
871
850
|
|
872
851
|
it "sets the inverse relation" do
|
873
|
-
rating.ratable.
|
852
|
+
expect(rating.ratable).to eq(bar)
|
874
853
|
end
|
875
854
|
|
876
855
|
it "does not save the built document" do
|
877
|
-
rating.
|
856
|
+
expect(rating).to_not be_persisted
|
878
857
|
end
|
879
858
|
end
|
880
859
|
end
|
@@ -887,42 +866,22 @@ describe Mongoid::Relations::Referenced::One do
|
|
887
866
|
end
|
888
867
|
|
889
868
|
let(:document) do
|
890
|
-
|
869
|
+
double
|
891
870
|
end
|
892
871
|
|
893
872
|
let(:metadata) do
|
894
|
-
|
873
|
+
double(extension?: false)
|
895
874
|
end
|
896
875
|
|
897
876
|
it "returns the embedded in builder" do
|
898
|
-
|
899
|
-
|
877
|
+
expect(
|
878
|
+
described_class.builder(nil, metadata, document)
|
879
|
+
).to be_a_kind_of(builder_klass)
|
900
880
|
end
|
901
881
|
end
|
902
882
|
|
903
883
|
describe "#create_#\{name}" do
|
904
884
|
|
905
|
-
context "when using mass assignment scoping" do
|
906
|
-
|
907
|
-
let(:person) do
|
908
|
-
Person.create
|
909
|
-
end
|
910
|
-
|
911
|
-
let(:account) do
|
912
|
-
person.create_account(
|
913
|
-
{ name: "bank", balance: "big" }, as: :admin
|
914
|
-
)
|
915
|
-
end
|
916
|
-
|
917
|
-
it "allows setting of fields for the role" do
|
918
|
-
account.name.should eq("bank")
|
919
|
-
end
|
920
|
-
|
921
|
-
it "does not set fields not allowed for the role" do
|
922
|
-
account.balance.should be_nil
|
923
|
-
end
|
924
|
-
end
|
925
|
-
|
926
885
|
context "when the relationship is an illegal embedded reference" do
|
927
886
|
|
928
887
|
let(:game) do
|
@@ -947,19 +906,19 @@ describe Mongoid::Relations::Referenced::One do
|
|
947
906
|
end
|
948
907
|
|
949
908
|
it "returns a new document" do
|
950
|
-
game.score.
|
909
|
+
expect(game.score).to eq(50)
|
951
910
|
end
|
952
911
|
|
953
912
|
it "sets the foreign key on the document" do
|
954
|
-
game.person_id.
|
913
|
+
expect(game.person_id).to eq(person.id)
|
955
914
|
end
|
956
915
|
|
957
916
|
it "sets the inverse relation" do
|
958
|
-
game.person.
|
917
|
+
expect(game.person).to eq(person)
|
959
918
|
end
|
960
919
|
|
961
920
|
it "saves the document" do
|
962
|
-
game.
|
921
|
+
expect(game).to be_persisted
|
963
922
|
end
|
964
923
|
end
|
965
924
|
|
@@ -974,15 +933,15 @@ describe Mongoid::Relations::Referenced::One do
|
|
974
933
|
end
|
975
934
|
|
976
935
|
it "sets the foreign key on the document" do
|
977
|
-
game.person_id.
|
936
|
+
expect(game.person_id).to eq(person.id)
|
978
937
|
end
|
979
938
|
|
980
939
|
it "sets the inverse relation" do
|
981
|
-
game.person.
|
940
|
+
expect(game.person).to eq(person)
|
982
941
|
end
|
983
942
|
|
984
943
|
it "saves the document" do
|
985
|
-
game.
|
944
|
+
expect(game).to be_persisted
|
986
945
|
end
|
987
946
|
end
|
988
947
|
|
@@ -997,15 +956,15 @@ describe Mongoid::Relations::Referenced::One do
|
|
997
956
|
end
|
998
957
|
|
999
958
|
it "sets the foreign key on the document" do
|
1000
|
-
game.person_id.
|
959
|
+
expect(game.person_id).to eq(person.id)
|
1001
960
|
end
|
1002
961
|
|
1003
962
|
it "sets the inverse relation" do
|
1004
|
-
game.person.
|
963
|
+
expect(game.person).to eq(person)
|
1005
964
|
end
|
1006
965
|
|
1007
966
|
it "saves the document" do
|
1008
|
-
game.
|
967
|
+
expect(game).to be_persisted
|
1009
968
|
end
|
1010
969
|
end
|
1011
970
|
|
@@ -1020,19 +979,19 @@ describe Mongoid::Relations::Referenced::One do
|
|
1020
979
|
end
|
1021
980
|
|
1022
981
|
it "returns a new document" do
|
1023
|
-
rating.value.
|
982
|
+
expect(rating.value).to eq(5)
|
1024
983
|
end
|
1025
984
|
|
1026
985
|
it "sets the foreign key on the document" do
|
1027
|
-
rating.ratable_id.
|
986
|
+
expect(rating.ratable_id).to eq(bar.id)
|
1028
987
|
end
|
1029
988
|
|
1030
989
|
it "sets the inverse relation" do
|
1031
|
-
rating.ratable.
|
990
|
+
expect(rating.ratable).to eq(bar)
|
1032
991
|
end
|
1033
992
|
|
1034
993
|
it "saves the document" do
|
1035
|
-
rating.
|
994
|
+
expect(rating).to be_persisted
|
1036
995
|
end
|
1037
996
|
end
|
1038
997
|
end
|
@@ -1040,7 +999,7 @@ describe Mongoid::Relations::Referenced::One do
|
|
1040
999
|
describe ".criteria" do
|
1041
1000
|
|
1042
1001
|
let(:id) do
|
1043
|
-
|
1002
|
+
BSON::ObjectId.new
|
1044
1003
|
end
|
1045
1004
|
|
1046
1005
|
context "when the relation is polymorphic" do
|
@@ -1054,11 +1013,10 @@ describe Mongoid::Relations::Referenced::One do
|
|
1054
1013
|
end
|
1055
1014
|
|
1056
1015
|
it "includes the type in the criteria" do
|
1057
|
-
criteria.selector.
|
1016
|
+
expect(criteria.selector).to eq(
|
1058
1017
|
{
|
1059
1018
|
"ratable_id" => id,
|
1060
|
-
"ratable_type" => "Book"
|
1061
|
-
"ratable_field" => { "$in" => [ :rating, nil ] }
|
1019
|
+
"ratable_type" => "Book"
|
1062
1020
|
}
|
1063
1021
|
)
|
1064
1022
|
end
|
@@ -1075,80 +1033,7 @@ describe Mongoid::Relations::Referenced::One do
|
|
1075
1033
|
end
|
1076
1034
|
|
1077
1035
|
it "does not include the type in the criteria" do
|
1078
|
-
criteria.selector.
|
1079
|
-
end
|
1080
|
-
end
|
1081
|
-
end
|
1082
|
-
|
1083
|
-
describe ".eager_load" do
|
1084
|
-
|
1085
|
-
before do
|
1086
|
-
Mongoid.identity_map_enabled = true
|
1087
|
-
end
|
1088
|
-
|
1089
|
-
after do
|
1090
|
-
Mongoid.identity_map_enabled = false
|
1091
|
-
end
|
1092
|
-
|
1093
|
-
context "when the relation is not polymorphic" do
|
1094
|
-
|
1095
|
-
let!(:person) do
|
1096
|
-
Person.create
|
1097
|
-
end
|
1098
|
-
|
1099
|
-
let!(:game) do
|
1100
|
-
person.create_game(name: "Tron")
|
1101
|
-
end
|
1102
|
-
|
1103
|
-
let(:metadata) do
|
1104
|
-
Person.relations["game"]
|
1105
|
-
end
|
1106
|
-
|
1107
|
-
let!(:eager) do
|
1108
|
-
described_class.eager_load(metadata, Person.all.map(&:_id))
|
1109
|
-
end
|
1110
|
-
|
1111
|
-
let(:map) do
|
1112
|
-
Mongoid::IdentityMap.get(Game, {"person_id" => person.id})
|
1113
|
-
end
|
1114
|
-
|
1115
|
-
it "puts the documents in the identity map" do
|
1116
|
-
map.should eq(game)
|
1117
|
-
end
|
1118
|
-
end
|
1119
|
-
|
1120
|
-
context "when the relation is polymorphic" do
|
1121
|
-
|
1122
|
-
let!(:book) do
|
1123
|
-
Book.create(name: "Game of Thrones")
|
1124
|
-
end
|
1125
|
-
|
1126
|
-
let!(:movie) do
|
1127
|
-
Movie.create(name: "Bladerunner")
|
1128
|
-
end
|
1129
|
-
|
1130
|
-
let!(:movie_rating) do
|
1131
|
-
movie.ratings.create(value: 10)
|
1132
|
-
end
|
1133
|
-
|
1134
|
-
let!(:book_rating) do
|
1135
|
-
book.create_rating(value: 10)
|
1136
|
-
end
|
1137
|
-
|
1138
|
-
let(:metadata) do
|
1139
|
-
Book.relations["rating"]
|
1140
|
-
end
|
1141
|
-
|
1142
|
-
let!(:eager) do
|
1143
|
-
described_class.eager_load(metadata, Book.all.map(&:_id))
|
1144
|
-
end
|
1145
|
-
|
1146
|
-
let(:map) do
|
1147
|
-
Mongoid::IdentityMap.get(Rating, {"ratable_id" => book.id})
|
1148
|
-
end
|
1149
|
-
|
1150
|
-
it "puts the documents in the identity map" do
|
1151
|
-
map.should eq(book_rating)
|
1036
|
+
expect(criteria.selector).to eq({ "person_id" => id })
|
1152
1037
|
end
|
1153
1038
|
end
|
1154
1039
|
end
|
@@ -1156,21 +1041,21 @@ describe Mongoid::Relations::Referenced::One do
|
|
1156
1041
|
describe ".embedded?" do
|
1157
1042
|
|
1158
1043
|
it "returns false" do
|
1159
|
-
described_class.
|
1044
|
+
expect(described_class).to_not be_embedded
|
1160
1045
|
end
|
1161
1046
|
end
|
1162
1047
|
|
1163
1048
|
describe ".foreign_key_suffix" do
|
1164
1049
|
|
1165
1050
|
it "returns _id" do
|
1166
|
-
described_class.foreign_key_suffix.
|
1051
|
+
expect(described_class.foreign_key_suffix).to eq("_id")
|
1167
1052
|
end
|
1168
1053
|
end
|
1169
1054
|
|
1170
1055
|
describe ".macro" do
|
1171
1056
|
|
1172
1057
|
it "returns has_one" do
|
1173
|
-
described_class.macro.
|
1058
|
+
expect(described_class.macro).to eq(:has_one)
|
1174
1059
|
end
|
1175
1060
|
end
|
1176
1061
|
|
@@ -1191,11 +1076,11 @@ describe Mongoid::Relations::Referenced::One do
|
|
1191
1076
|
end
|
1192
1077
|
|
1193
1078
|
it "removes the foreign key from the target" do
|
1194
|
-
game.person_id.
|
1079
|
+
expect(game.person_id).to be_nil
|
1195
1080
|
end
|
1196
1081
|
|
1197
1082
|
it "removes the reference from the target" do
|
1198
|
-
game.person.
|
1083
|
+
expect(game.person).to be_nil
|
1199
1084
|
end
|
1200
1085
|
end
|
1201
1086
|
|
@@ -1214,11 +1099,11 @@ describe Mongoid::Relations::Referenced::One do
|
|
1214
1099
|
end
|
1215
1100
|
|
1216
1101
|
it "removes the foreign key from the target" do
|
1217
|
-
game_reloaded.person_id.
|
1102
|
+
expect(game_reloaded.person_id).to be_nil
|
1218
1103
|
end
|
1219
1104
|
|
1220
1105
|
it "removes the reference from the target" do
|
1221
|
-
game_reloaded.person.
|
1106
|
+
expect(game_reloaded.person).to be_nil
|
1222
1107
|
end
|
1223
1108
|
end
|
1224
1109
|
end
|
@@ -1242,7 +1127,7 @@ describe Mongoid::Relations::Referenced::One do
|
|
1242
1127
|
context "when checking #{method}" do
|
1243
1128
|
|
1244
1129
|
it "returns true" do
|
1245
|
-
document.respond_to?(method).
|
1130
|
+
expect(document.respond_to?(method)).to be true
|
1246
1131
|
end
|
1247
1132
|
end
|
1248
1133
|
end
|
@@ -1251,14 +1136,14 @@ describe Mongoid::Relations::Referenced::One do
|
|
1251
1136
|
describe ".stores_foreign_key?" do
|
1252
1137
|
|
1253
1138
|
it "returns false" do
|
1254
|
-
described_class.stores_foreign_key
|
1139
|
+
expect(described_class.stores_foreign_key?).to be false
|
1255
1140
|
end
|
1256
1141
|
end
|
1257
1142
|
|
1258
1143
|
describe ".valid_options" do
|
1259
1144
|
|
1260
1145
|
it "returns the valid options" do
|
1261
|
-
described_class.valid_options.
|
1146
|
+
expect(described_class.valid_options).to eq(
|
1262
1147
|
[ :as, :autobuild, :autosave, :dependent, :foreign_key, :primary_key ]
|
1263
1148
|
)
|
1264
1149
|
end
|
@@ -1267,7 +1152,7 @@ describe Mongoid::Relations::Referenced::One do
|
|
1267
1152
|
describe ".validation_default" do
|
1268
1153
|
|
1269
1154
|
it "returns true" do
|
1270
|
-
described_class.validation_default.
|
1155
|
+
expect(described_class.validation_default).to be true
|
1271
1156
|
end
|
1272
1157
|
end
|
1273
1158
|
|
@@ -1301,11 +1186,11 @@ describe Mongoid::Relations::Referenced::One do
|
|
1301
1186
|
end
|
1302
1187
|
|
1303
1188
|
it "reloads the document from the database" do
|
1304
|
-
reloaded.name.
|
1189
|
+
expect(reloaded.name).to eq("Diablo 2")
|
1305
1190
|
end
|
1306
1191
|
|
1307
1192
|
it "sets a new document instance" do
|
1308
|
-
reloaded.
|
1193
|
+
expect(reloaded).to_not equal(game_one)
|
1309
1194
|
end
|
1310
1195
|
end
|
1311
1196
|
|
@@ -1320,11 +1205,11 @@ describe Mongoid::Relations::Referenced::One do
|
|
1320
1205
|
end
|
1321
1206
|
|
1322
1207
|
it "reloads the new document from the database" do
|
1323
|
-
reloaded.name.
|
1208
|
+
expect(reloaded.name).to eq("Starcraft 2")
|
1324
1209
|
end
|
1325
1210
|
|
1326
1211
|
it "sets a new document instance" do
|
1327
|
-
reloaded.
|
1212
|
+
expect(reloaded).to_not equal(game_one)
|
1328
1213
|
end
|
1329
1214
|
end
|
1330
1215
|
end
|