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
@@ -12,13 +12,13 @@ describe "A document loaded from rails" do
|
|
12
12
|
end
|
13
13
|
|
14
14
|
it "defines a _destroy method" do
|
15
|
-
Person.new.
|
15
|
+
expect(Person.new).to respond_to(:_destroy)
|
16
16
|
end
|
17
17
|
|
18
18
|
describe "#_destroy" do
|
19
19
|
|
20
20
|
it "always returns false" do
|
21
|
-
Person.new._destroy.
|
21
|
+
expect(Person.new._destroy).to be false
|
22
22
|
end
|
23
23
|
end
|
24
24
|
end
|
@@ -17,7 +17,7 @@ describe Mongoid::Relations::Accessors do
|
|
17
17
|
end
|
18
18
|
|
19
19
|
it "returns true" do
|
20
|
-
person.
|
20
|
+
expect(person).to have_game
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
@@ -26,14 +26,14 @@ describe Mongoid::Relations::Accessors do
|
|
26
26
|
context "when not autobuilding" do
|
27
27
|
|
28
28
|
it "returns false" do
|
29
|
-
person.
|
29
|
+
expect(person).to_not have_game
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
33
33
|
context "when autobuilding" do
|
34
34
|
|
35
35
|
it "returns false" do
|
36
|
-
person.
|
36
|
+
expect(person).to_not have_book
|
37
37
|
end
|
38
38
|
end
|
39
39
|
end
|
@@ -48,14 +48,14 @@ describe Mongoid::Relations::Accessors do
|
|
48
48
|
end
|
49
49
|
|
50
50
|
it "returns true" do
|
51
|
-
person.
|
51
|
+
expect(person).to have_posts
|
52
52
|
end
|
53
53
|
end
|
54
54
|
|
55
55
|
context "when the relation does not have documents" do
|
56
56
|
|
57
57
|
it "returns false" do
|
58
|
-
person.
|
58
|
+
expect(person).to_not have_posts
|
59
59
|
end
|
60
60
|
end
|
61
61
|
end
|
@@ -69,14 +69,14 @@ describe Mongoid::Relations::Accessors do
|
|
69
69
|
end
|
70
70
|
|
71
71
|
it "returns true" do
|
72
|
-
person.
|
72
|
+
expect(person).to have_preferences
|
73
73
|
end
|
74
74
|
end
|
75
75
|
|
76
76
|
context "when the relation does not have documents" do
|
77
77
|
|
78
78
|
it "returns false" do
|
79
|
-
person.
|
79
|
+
expect(person).to_not have_preferences
|
80
80
|
end
|
81
81
|
end
|
82
82
|
end
|
@@ -90,7 +90,7 @@ describe Mongoid::Relations::Accessors do
|
|
90
90
|
end
|
91
91
|
|
92
92
|
it "allows the existence check" do
|
93
|
-
user.
|
93
|
+
expect(user).to_not have_next
|
94
94
|
end
|
95
95
|
end
|
96
96
|
|
@@ -101,7 +101,7 @@ describe Mongoid::Relations::Accessors do
|
|
101
101
|
end
|
102
102
|
|
103
103
|
it "returns true" do
|
104
|
-
game.
|
104
|
+
expect(game).to have_person
|
105
105
|
end
|
106
106
|
end
|
107
107
|
|
@@ -114,7 +114,7 @@ describe Mongoid::Relations::Accessors do
|
|
114
114
|
end
|
115
115
|
|
116
116
|
it "returns false" do
|
117
|
-
game.
|
117
|
+
expect(game).to_not have_person
|
118
118
|
end
|
119
119
|
end
|
120
120
|
|
@@ -125,7 +125,7 @@ describe Mongoid::Relations::Accessors do
|
|
125
125
|
end
|
126
126
|
|
127
127
|
it "returns false" do
|
128
|
-
book.
|
128
|
+
expect(book).to_not have_person
|
129
129
|
end
|
130
130
|
end
|
131
131
|
end
|
@@ -140,7 +140,7 @@ describe Mongoid::Relations::Accessors do
|
|
140
140
|
end
|
141
141
|
|
142
142
|
it "returns true" do
|
143
|
-
person.
|
143
|
+
expect(person).to have_name
|
144
144
|
end
|
145
145
|
end
|
146
146
|
|
@@ -149,7 +149,7 @@ describe Mongoid::Relations::Accessors do
|
|
149
149
|
context "when the relation does not autobuild" do
|
150
150
|
|
151
151
|
it "returns false" do
|
152
|
-
person.
|
152
|
+
expect(person).to_not have_name
|
153
153
|
end
|
154
154
|
end
|
155
155
|
|
@@ -160,7 +160,7 @@ describe Mongoid::Relations::Accessors do
|
|
160
160
|
end
|
161
161
|
|
162
162
|
it "returns false" do
|
163
|
-
person.
|
163
|
+
expect(person).to_not have_passport
|
164
164
|
end
|
165
165
|
end
|
166
166
|
end
|
@@ -175,14 +175,14 @@ describe Mongoid::Relations::Accessors do
|
|
175
175
|
end
|
176
176
|
|
177
177
|
it "returns true" do
|
178
|
-
person.
|
178
|
+
expect(person).to have_addresses
|
179
179
|
end
|
180
180
|
end
|
181
181
|
|
182
182
|
context "when the relation does not have documents" do
|
183
183
|
|
184
184
|
it "returns false" do
|
185
|
-
person.
|
185
|
+
expect(person).to_not have_addresses
|
186
186
|
end
|
187
187
|
end
|
188
188
|
end
|
@@ -196,7 +196,7 @@ describe Mongoid::Relations::Accessors do
|
|
196
196
|
end
|
197
197
|
|
198
198
|
it "returns true" do
|
199
|
-
name.
|
199
|
+
expect(name).to have_namable
|
200
200
|
end
|
201
201
|
end
|
202
202
|
|
@@ -209,7 +209,7 @@ describe Mongoid::Relations::Accessors do
|
|
209
209
|
end
|
210
210
|
|
211
211
|
it "returns false" do
|
212
|
-
name.
|
212
|
+
expect(name).to_not have_namable
|
213
213
|
end
|
214
214
|
end
|
215
215
|
|
@@ -220,7 +220,7 @@ describe Mongoid::Relations::Accessors do
|
|
220
220
|
end
|
221
221
|
|
222
222
|
it "returns false" do
|
223
|
-
passport.
|
223
|
+
expect(passport).to_not have_person
|
224
224
|
end
|
225
225
|
end
|
226
226
|
end
|
@@ -244,11 +244,11 @@ describe Mongoid::Relations::Accessors do
|
|
244
244
|
end
|
245
245
|
|
246
246
|
it "builds the new document" do
|
247
|
-
passport.
|
247
|
+
expect(passport).to be_a(Passport)
|
248
248
|
end
|
249
249
|
|
250
250
|
it "stores in the altered attribute" do
|
251
|
-
person.as_document["pass"].
|
251
|
+
expect(person.as_document["pass"]).to eq(passport.attributes)
|
252
252
|
end
|
253
253
|
end
|
254
254
|
|
@@ -259,7 +259,7 @@ describe Mongoid::Relations::Accessors do
|
|
259
259
|
end
|
260
260
|
|
261
261
|
it "does not build a new document" do
|
262
|
-
person.passport.
|
262
|
+
expect(person.passport).to eq(passport)
|
263
263
|
end
|
264
264
|
end
|
265
265
|
end
|
@@ -277,7 +277,7 @@ describe Mongoid::Relations::Accessors do
|
|
277
277
|
end
|
278
278
|
|
279
279
|
it "builds the new document" do
|
280
|
-
person.
|
280
|
+
expect(person).to be_a(Person)
|
281
281
|
end
|
282
282
|
end
|
283
283
|
|
@@ -288,7 +288,7 @@ describe Mongoid::Relations::Accessors do
|
|
288
288
|
end
|
289
289
|
|
290
290
|
it "does not build a new document" do
|
291
|
-
passport.person.
|
291
|
+
expect(passport.person).to eq(person)
|
292
292
|
end
|
293
293
|
end
|
294
294
|
end
|
@@ -302,7 +302,7 @@ describe Mongoid::Relations::Accessors do
|
|
302
302
|
end
|
303
303
|
|
304
304
|
it "builds the new document" do
|
305
|
-
book.
|
305
|
+
expect(book).to be_a(Book)
|
306
306
|
end
|
307
307
|
end
|
308
308
|
|
@@ -313,7 +313,7 @@ describe Mongoid::Relations::Accessors do
|
|
313
313
|
end
|
314
314
|
|
315
315
|
it "does not build a new document" do
|
316
|
-
person.book.
|
316
|
+
expect(person.book).to eq(book)
|
317
317
|
end
|
318
318
|
end
|
319
319
|
end
|
@@ -331,7 +331,7 @@ describe Mongoid::Relations::Accessors do
|
|
331
331
|
end
|
332
332
|
|
333
333
|
it "builds the new document" do
|
334
|
-
person.
|
334
|
+
expect(person).to be_a(Person)
|
335
335
|
end
|
336
336
|
end
|
337
337
|
|
@@ -342,7 +342,7 @@ describe Mongoid::Relations::Accessors do
|
|
342
342
|
end
|
343
343
|
|
344
344
|
it "does not build a new document" do
|
345
|
-
book.person.
|
345
|
+
expect(book.person).to eq(person)
|
346
346
|
end
|
347
347
|
end
|
348
348
|
end
|
@@ -371,11 +371,11 @@ describe Mongoid::Relations::Accessors do
|
|
371
371
|
end
|
372
372
|
|
373
373
|
it "reloads the correct documents" do
|
374
|
-
preferences.
|
374
|
+
expect(preferences).to eq([ preference ])
|
375
375
|
end
|
376
376
|
|
377
377
|
it "reloads a new instance" do
|
378
|
-
preferences.first.
|
378
|
+
expect(preferences.first).to_not equal(preference)
|
379
379
|
end
|
380
380
|
end
|
381
381
|
|
@@ -386,11 +386,11 @@ describe Mongoid::Relations::Accessors do
|
|
386
386
|
end
|
387
387
|
|
388
388
|
it "reloads the correct documents" do
|
389
|
-
preferences.
|
389
|
+
expect(preferences).to eq([ preference ])
|
390
390
|
end
|
391
391
|
|
392
392
|
it "reloads a new instance" do
|
393
|
-
preferences.first.
|
393
|
+
expect(preferences.first).to_not equal(preference)
|
394
394
|
end
|
395
395
|
end
|
396
396
|
|
@@ -401,7 +401,7 @@ describe Mongoid::Relations::Accessors do
|
|
401
401
|
end
|
402
402
|
|
403
403
|
it "reloads the correct documents" do
|
404
|
-
preferences.
|
404
|
+
expect(preferences).to eq([ preference ])
|
405
405
|
end
|
406
406
|
end
|
407
407
|
end
|
@@ -423,11 +423,11 @@ describe Mongoid::Relations::Accessors do
|
|
423
423
|
end
|
424
424
|
|
425
425
|
it "reloads the correct documents" do
|
426
|
-
posts.
|
426
|
+
expect(posts).to eq([ post ])
|
427
427
|
end
|
428
428
|
|
429
429
|
it "reloads a new instance" do
|
430
|
-
posts.first.
|
430
|
+
expect(posts.first).to_not equal(post)
|
431
431
|
end
|
432
432
|
end
|
433
433
|
|
@@ -438,11 +438,11 @@ describe Mongoid::Relations::Accessors do
|
|
438
438
|
end
|
439
439
|
|
440
440
|
it "reloads the correct documents" do
|
441
|
-
posts.
|
441
|
+
expect(posts).to eq([ post ])
|
442
442
|
end
|
443
443
|
|
444
444
|
it "reloads a new instance" do
|
445
|
-
posts.first.
|
445
|
+
expect(posts.first).to_not equal(post)
|
446
446
|
end
|
447
447
|
end
|
448
448
|
|
@@ -453,7 +453,7 @@ describe Mongoid::Relations::Accessors do
|
|
453
453
|
end
|
454
454
|
|
455
455
|
it "reloads the correct documents" do
|
456
|
-
posts.
|
456
|
+
expect(posts).to eq([ post ])
|
457
457
|
end
|
458
458
|
end
|
459
459
|
end
|
@@ -475,11 +475,11 @@ describe Mongoid::Relations::Accessors do
|
|
475
475
|
end
|
476
476
|
|
477
477
|
it "reloads the correct documents" do
|
478
|
-
reloaded_game.
|
478
|
+
expect(reloaded_game).to eq(game)
|
479
479
|
end
|
480
480
|
|
481
481
|
it "reloads a new instance" do
|
482
|
-
reloaded_game.
|
482
|
+
expect(reloaded_game).to_not equal(game)
|
483
483
|
end
|
484
484
|
end
|
485
485
|
|
@@ -490,11 +490,11 @@ describe Mongoid::Relations::Accessors do
|
|
490
490
|
end
|
491
491
|
|
492
492
|
it "reloads the correct documents" do
|
493
|
-
reloaded_game.
|
493
|
+
expect(reloaded_game).to eq(game)
|
494
494
|
end
|
495
495
|
|
496
496
|
it "reloads a new instance" do
|
497
|
-
reloaded_game.
|
497
|
+
expect(reloaded_game).to_not equal(game)
|
498
498
|
end
|
499
499
|
end
|
500
500
|
|
@@ -505,7 +505,7 @@ describe Mongoid::Relations::Accessors do
|
|
505
505
|
end
|
506
506
|
|
507
507
|
it "reloads the correct documents" do
|
508
|
-
reloaded_game.
|
508
|
+
expect(reloaded_game).to eq(game)
|
509
509
|
end
|
510
510
|
end
|
511
511
|
end
|
@@ -538,7 +538,7 @@ describe Mongoid::Relations::Accessors do
|
|
538
538
|
end
|
539
539
|
|
540
540
|
it "returns the correct document" do
|
541
|
-
rating.ratable.
|
541
|
+
expect(rating.ratable).to eq(movie)
|
542
542
|
end
|
543
543
|
end
|
544
544
|
|
@@ -549,7 +549,7 @@ describe Mongoid::Relations::Accessors do
|
|
549
549
|
end
|
550
550
|
|
551
551
|
it "returns the correct documents" do
|
552
|
-
ratings.
|
552
|
+
expect(ratings).to eq([ movie_rating ])
|
553
553
|
end
|
554
554
|
end
|
555
555
|
|
@@ -560,99 +560,7 @@ describe Mongoid::Relations::Accessors do
|
|
560
560
|
end
|
561
561
|
|
562
562
|
it "returns the correct document" do
|
563
|
-
rating.
|
564
|
-
end
|
565
|
-
end
|
566
|
-
end
|
567
|
-
|
568
|
-
context "when there are multiple references many/one" do
|
569
|
-
|
570
|
-
let(:face) do
|
571
|
-
Face.create
|
572
|
-
end
|
573
|
-
|
574
|
-
let(:eye_bowl) do
|
575
|
-
EyeBowl.create
|
576
|
-
end
|
577
|
-
|
578
|
-
let!(:face_left_eye) do
|
579
|
-
face.create_left_eye(pupil_dilation: 10)
|
580
|
-
end
|
581
|
-
|
582
|
-
let!(:face_right_eye) do
|
583
|
-
face.create_right_eye(pupil_dilation: 5)
|
584
|
-
end
|
585
|
-
|
586
|
-
let!(:eye_bowl_blue_eye) do
|
587
|
-
eye_bowl.blue_eyes.create(pupil_dilation: 2)
|
588
|
-
end
|
589
|
-
|
590
|
-
let!(:eye_bowl_brown_eye) do
|
591
|
-
eye_bowl.brown_eyes.create(pupil_dilation: 1)
|
592
|
-
end
|
593
|
-
|
594
|
-
context "when accessing a referenced in" do
|
595
|
-
|
596
|
-
let(:eye) do
|
597
|
-
Eye.where(pupil_dilation: 10).first
|
598
|
-
end
|
599
|
-
|
600
|
-
it "returns the correct type" do
|
601
|
-
eye.eyeable.should be_a(Face)
|
602
|
-
end
|
603
|
-
|
604
|
-
it "returns the correct document" do
|
605
|
-
eye.eyeable.should eq(face)
|
606
|
-
end
|
607
|
-
end
|
608
|
-
|
609
|
-
context "when accessing a references many" do
|
610
|
-
|
611
|
-
context "first references many" do
|
612
|
-
|
613
|
-
let(:eyes) do
|
614
|
-
EyeBowl.first.blue_eyes
|
615
|
-
end
|
616
|
-
|
617
|
-
it "returns the correct documents" do
|
618
|
-
eyes.should eq([ eye_bowl_blue_eye ])
|
619
|
-
end
|
620
|
-
end
|
621
|
-
|
622
|
-
context "second references many" do
|
623
|
-
|
624
|
-
let(:eyes) do
|
625
|
-
EyeBowl.first.brown_eyes
|
626
|
-
end
|
627
|
-
|
628
|
-
it "returns the correct documents" do
|
629
|
-
eyes.should eq([ eye_bowl_brown_eye ])
|
630
|
-
end
|
631
|
-
end
|
632
|
-
end
|
633
|
-
|
634
|
-
context "when accessing a references one" do
|
635
|
-
|
636
|
-
context "first references one" do
|
637
|
-
|
638
|
-
let(:eye) do
|
639
|
-
Face.first.left_eye
|
640
|
-
end
|
641
|
-
|
642
|
-
it "returns the correct document" do
|
643
|
-
eye.should eq(face_left_eye)
|
644
|
-
end
|
645
|
-
end
|
646
|
-
|
647
|
-
context "second references one" do
|
648
|
-
|
649
|
-
let(:eye) do
|
650
|
-
Face.first.right_eye
|
651
|
-
end
|
652
|
-
|
653
|
-
it "returns the correct document" do
|
654
|
-
eye.should eq(face_right_eye)
|
655
|
-
end
|
563
|
+
expect(rating).to eq(book_rating)
|
656
564
|
end
|
657
565
|
end
|
658
566
|
end
|
@@ -674,7 +582,7 @@ describe Mongoid::Relations::Accessors do
|
|
674
582
|
end
|
675
583
|
|
676
584
|
it "converts them to nil" do
|
677
|
-
post.person.
|
585
|
+
expect(post.person).to be_nil
|
678
586
|
end
|
679
587
|
end
|
680
588
|
|
@@ -685,7 +593,7 @@ describe Mongoid::Relations::Accessors do
|
|
685
593
|
end
|
686
594
|
|
687
595
|
it "converts it to nil" do
|
688
|
-
post.person_id.
|
596
|
+
expect(post.person_id).to be_nil
|
689
597
|
end
|
690
598
|
end
|
691
599
|
end
|
@@ -703,7 +611,7 @@ describe Mongoid::Relations::Accessors do
|
|
703
611
|
end
|
704
612
|
|
705
613
|
it "converts them to nil" do
|
706
|
-
person.game.
|
614
|
+
expect(person.game).to be_nil
|
707
615
|
end
|
708
616
|
end
|
709
617
|
|
@@ -718,7 +626,7 @@ describe Mongoid::Relations::Accessors do
|
|
718
626
|
end
|
719
627
|
|
720
628
|
it "converts it to nil" do
|
721
|
-
game.person_id.
|
629
|
+
expect(game.person_id).to be_nil
|
722
630
|
end
|
723
631
|
end
|
724
632
|
end
|
@@ -740,7 +648,7 @@ describe Mongoid::Relations::Accessors do
|
|
740
648
|
end
|
741
649
|
|
742
650
|
it "converts it to nil" do
|
743
|
-
post.person.
|
651
|
+
expect(post.person).to be_nil
|
744
652
|
end
|
745
653
|
end
|
746
654
|
|
@@ -755,7 +663,7 @@ describe Mongoid::Relations::Accessors do
|
|
755
663
|
end
|
756
664
|
|
757
665
|
it "ignore blank values" do
|
758
|
-
person.post_ids.
|
666
|
+
expect(person.post_ids).to be_empty
|
759
667
|
end
|
760
668
|
end
|
761
669
|
end
|
@@ -773,7 +681,7 @@ describe Mongoid::Relations::Accessors do
|
|
773
681
|
end
|
774
682
|
|
775
683
|
it "does not add them" do
|
776
|
-
person.preference_ids.
|
684
|
+
expect(person.preference_ids).to be_empty
|
777
685
|
end
|
778
686
|
end
|
779
687
|
end
|