mongoid 3.1.6 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +432 -8
- data/README.md +5 -6
- data/lib/config/locales/en.yml +32 -18
- 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/embedded.rb +0 -30
- data/lib/mongoid/atomic/paths/root.rb +0 -13
- data/lib/mongoid/atomic.rb +1 -12
- 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/attributes.rb +63 -101
- data/lib/mongoid/{dirty.rb → changeable.rb} +32 -2
- data/lib/mongoid/composable.rb +105 -0
- data/lib/mongoid/config/options.rb +1 -1
- data/lib/mongoid/config.rb +3 -9
- 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 +18 -6
- data/lib/mongoid/contextual/mongo.rb +64 -56
- data/lib/mongoid/contextual/none.rb +90 -0
- data/lib/mongoid/contextual/text_search.rb +178 -0
- data/lib/mongoid/contextual.rb +2 -0
- data/lib/mongoid/copyable.rb +2 -3
- 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/criteria.rb +39 -34
- data/lib/mongoid/document.rb +32 -17
- 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/errors.rb +4 -1
- 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/extensions.rb +2 -7
- data/lib/mongoid/factory.rb +8 -6
- 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/fields.rb +41 -8
- data/lib/mongoid/{finders.rb → findable.rb} +8 -2
- data/lib/mongoid/indexable/specification.rb +104 -0
- data/lib/mongoid/{indexes → indexable}/validators/options.rb +2 -1
- data/lib/mongoid/{indexes.rb → indexable.rb} +50 -55
- 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/{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/matchable.rb +152 -0
- data/lib/mongoid/persistable/creatable.rb +188 -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 +152 -0
- data/lib/mongoid/persistable/upsertable.rb +55 -0
- data/lib/mongoid/persistable.rb +216 -0
- data/lib/mongoid/positional.rb +71 -0
- data/lib/mongoid/query_cache.rb +247 -0
- data/lib/mongoid/railtie.rb +32 -45
- data/lib/mongoid/railties/database.rake +9 -25
- data/lib/mongoid/relations/accessors.rb +13 -49
- data/lib/mongoid/relations/auto_save.rb +15 -36
- data/lib/mongoid/relations/binding.rb +1 -24
- 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 +3 -1
- data/lib/mongoid/relations/builder.rb +1 -1
- data/lib/mongoid/relations/builders/nested_attributes/many.rb +10 -13
- data/lib/mongoid/relations/builders/nested_attributes/one.rb +4 -5
- 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/builders.rb +2 -2
- 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/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/eager.rb +46 -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 +30 -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/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 +19 -32
- data/lib/mongoid/relations/referenced/many_to_many.rb +15 -38
- data/lib/mongoid/relations/referenced/one.rb +6 -25
- data/lib/mongoid/relations/synchronization.rb +3 -3
- data/lib/mongoid/relations/touchable.rb +34 -1
- data/lib/mongoid/relations.rb +11 -25
- data/lib/mongoid/{reloading.rb → reloadable.rb} +6 -4
- 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/factory.rb +2 -0
- data/lib/mongoid/sessions/options.rb +180 -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/sessions.rb +37 -345
- 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/lifecycle.rb +0 -28
- data/lib/mongoid/threaded.rb +0 -157
- data/lib/mongoid/timestamps/updated/short.rb +2 -2
- data/lib/mongoid/{hierarchy.rb → traversable.rb} +9 -5
- 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 +23 -19
- data/lib/mongoid/{validations.rb → validatable.rb} +23 -10
- data/lib/mongoid/version.rb +1 -1
- data/lib/mongoid.rb +10 -76
- data/lib/rails/generators/mongoid/config/templates/mongoid.yml +13 -24
- 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/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/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/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} +335 -448
- data/spec/mongoid/attributes/readonly_spec.rb +58 -18
- data/spec/mongoid/attributes_spec.rb +315 -436
- 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 +68 -58
- 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 +151 -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 +1255 -0
- data/spec/mongoid/{criterion/scoping_spec.rb → criteria/scopable_spec.rb} +37 -37
- data/spec/mongoid/criteria_spec.rb +578 -2295
- data/spec/mongoid/document_spec.rb +166 -120
- 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 +15 -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/{finders_spec.rb → findable_spec.rb} +127 -27
- 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 +512 -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 +461 -0
- data/spec/mongoid/persistable/settable_spec.rb +139 -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} +9 -9
- data/spec/mongoid/query_cache_spec.rb +231 -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 +393 -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 +434 -527
- data/spec/mongoid/relations/referenced/many_to_many_spec.rb +352 -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} +20 -60
- 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 +107 -0
- data/spec/mongoid/sessions_spec.rb +289 -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 +29 -13
- metadata +296 -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/strategies.rb +0 -97
- data/lib/mongoid/matchers.rb +0 -32
- 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/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/atomic.rb +0 -231
- 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/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/operations.rb +0 -214
- data/lib/mongoid/persistence/upsertion.rb +0 -31
- data/lib/mongoid/persistence.rb +0 -357
- data/lib/mongoid/unit_of_work.rb +0 -61
- data/lib/mongoid/versioning.rb +0 -217
- data/lib/rack/mongoid/middleware/identity_map.rb +0 -39
- data/lib/rack/mongoid.rb +0 -2
- 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/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
|
@@ -27,7 +27,7 @@ describe Mongoid::Contextual::Memory do
|
|
|
27
27
|
end
|
|
28
28
|
|
|
29
29
|
it "returns false" do
|
|
30
|
-
context.send(method).
|
|
30
|
+
expect(context.send(method)).to be false
|
|
31
31
|
end
|
|
32
32
|
end
|
|
33
33
|
|
|
@@ -44,7 +44,7 @@ describe Mongoid::Contextual::Memory do
|
|
|
44
44
|
end
|
|
45
45
|
|
|
46
46
|
it "returns true" do
|
|
47
|
-
context.send(method).
|
|
47
|
+
expect(context.send(method)).to be true
|
|
48
48
|
end
|
|
49
49
|
end
|
|
50
50
|
end
|
|
@@ -73,7 +73,7 @@ describe Mongoid::Contextual::Memory do
|
|
|
73
73
|
context "context when no arguments are provided" do
|
|
74
74
|
|
|
75
75
|
it "returns the number of matches" do
|
|
76
|
-
context.count.
|
|
76
|
+
expect(context.count).to eq(1)
|
|
77
77
|
end
|
|
78
78
|
end
|
|
79
79
|
|
|
@@ -86,7 +86,7 @@ describe Mongoid::Contextual::Memory do
|
|
|
86
86
|
end
|
|
87
87
|
|
|
88
88
|
it "returns 1" do
|
|
89
|
-
count.
|
|
89
|
+
expect(count).to eq(1)
|
|
90
90
|
end
|
|
91
91
|
end
|
|
92
92
|
|
|
@@ -97,7 +97,7 @@ describe Mongoid::Contextual::Memory do
|
|
|
97
97
|
end
|
|
98
98
|
|
|
99
99
|
it "returns 0" do
|
|
100
|
-
count.
|
|
100
|
+
expect(count).to eq(0)
|
|
101
101
|
end
|
|
102
102
|
end
|
|
103
103
|
end
|
|
@@ -113,7 +113,7 @@ describe Mongoid::Contextual::Memory do
|
|
|
113
113
|
end
|
|
114
114
|
|
|
115
115
|
it "returns 1" do
|
|
116
|
-
count.
|
|
116
|
+
expect(count).to eq(1)
|
|
117
117
|
end
|
|
118
118
|
end
|
|
119
119
|
|
|
@@ -126,7 +126,7 @@ describe Mongoid::Contextual::Memory do
|
|
|
126
126
|
end
|
|
127
127
|
|
|
128
128
|
it "returns 0" do
|
|
129
|
-
count.
|
|
129
|
+
expect(count).to eq(0)
|
|
130
130
|
end
|
|
131
131
|
end
|
|
132
132
|
end
|
|
@@ -169,31 +169,31 @@ describe Mongoid::Contextual::Memory do
|
|
|
169
169
|
end
|
|
170
170
|
|
|
171
171
|
it "deletes the first matching document" do
|
|
172
|
-
hobrecht.
|
|
172
|
+
expect(hobrecht).to be_destroyed
|
|
173
173
|
end
|
|
174
174
|
|
|
175
175
|
it "deletes the last matching document" do
|
|
176
|
-
friedel.
|
|
176
|
+
expect(friedel).to be_destroyed
|
|
177
177
|
end
|
|
178
178
|
|
|
179
179
|
it "does not delete non matching docs" do
|
|
180
|
-
pfluger.
|
|
180
|
+
expect(pfluger).to_not be_destroyed
|
|
181
181
|
end
|
|
182
182
|
|
|
183
183
|
it "removes the docs from the relation" do
|
|
184
|
-
person.addresses.
|
|
184
|
+
expect(person.addresses).to eq([ pfluger ])
|
|
185
185
|
end
|
|
186
186
|
|
|
187
187
|
it "removes the docs from the context" do
|
|
188
|
-
context.entries.
|
|
188
|
+
expect(context.entries).to be_empty
|
|
189
189
|
end
|
|
190
190
|
|
|
191
191
|
it "persists the changes to the database" do
|
|
192
|
-
person.reload.addresses.
|
|
192
|
+
expect(person.reload.addresses).to eq([ pfluger ])
|
|
193
193
|
end
|
|
194
194
|
|
|
195
195
|
it "returns the number of deleted documents" do
|
|
196
|
-
deleted.
|
|
196
|
+
expect(deleted).to eq(2)
|
|
197
197
|
end
|
|
198
198
|
end
|
|
199
199
|
|
|
@@ -222,27 +222,27 @@ describe Mongoid::Contextual::Memory do
|
|
|
222
222
|
end
|
|
223
223
|
|
|
224
224
|
it "deletes the first matching document" do
|
|
225
|
-
work.
|
|
225
|
+
expect(work).to be_destroyed
|
|
226
226
|
end
|
|
227
227
|
|
|
228
228
|
it "does not delete non matching docs" do
|
|
229
|
-
home.
|
|
229
|
+
expect(home).to_not be_destroyed
|
|
230
230
|
end
|
|
231
231
|
|
|
232
232
|
it "removes the docs from the relation" do
|
|
233
|
-
person.addresses.first.locations.
|
|
233
|
+
expect(person.addresses.first.locations).to eq([ home ])
|
|
234
234
|
end
|
|
235
235
|
|
|
236
236
|
it "removes the docs from the context" do
|
|
237
|
-
context.entries.
|
|
237
|
+
expect(context.entries).to be_empty
|
|
238
238
|
end
|
|
239
239
|
|
|
240
240
|
it "persists the changes to the database" do
|
|
241
|
-
person.reload.addresses.first.locations.
|
|
241
|
+
expect(person.reload.addresses.first.locations).to eq([ home ])
|
|
242
242
|
end
|
|
243
243
|
|
|
244
244
|
it "returns the number of deleted documents" do
|
|
245
|
-
deleted.
|
|
245
|
+
expect(deleted).to eq(1)
|
|
246
246
|
end
|
|
247
247
|
end
|
|
248
248
|
end
|
|
@@ -283,31 +283,31 @@ describe Mongoid::Contextual::Memory do
|
|
|
283
283
|
end
|
|
284
284
|
|
|
285
285
|
it "deletes the first matching document" do
|
|
286
|
-
hobrecht.
|
|
286
|
+
expect(hobrecht).to be_destroyed
|
|
287
287
|
end
|
|
288
288
|
|
|
289
289
|
it "deletes the last matching document" do
|
|
290
|
-
friedel.
|
|
290
|
+
expect(friedel).to be_destroyed
|
|
291
291
|
end
|
|
292
292
|
|
|
293
293
|
it "does not delete non matching docs" do
|
|
294
|
-
pfluger.
|
|
294
|
+
expect(pfluger).to_not be_destroyed
|
|
295
295
|
end
|
|
296
296
|
|
|
297
297
|
it "removes the docs from the relation" do
|
|
298
|
-
person.addresses.
|
|
298
|
+
expect(person.addresses).to eq([ pfluger ])
|
|
299
299
|
end
|
|
300
300
|
|
|
301
301
|
it "removes the docs from the context" do
|
|
302
|
-
context.entries.
|
|
302
|
+
expect(context.entries).to be_empty
|
|
303
303
|
end
|
|
304
304
|
|
|
305
305
|
it "persists the changes to the database" do
|
|
306
|
-
person.reload.addresses.
|
|
306
|
+
expect(person.reload.addresses).to eq([ pfluger ])
|
|
307
307
|
end
|
|
308
308
|
|
|
309
309
|
it "returns the number of destroyed documents" do
|
|
310
|
-
destroyed.
|
|
310
|
+
expect(destroyed).to eq(2)
|
|
311
311
|
end
|
|
312
312
|
end
|
|
313
313
|
end
|
|
@@ -335,7 +335,7 @@ describe Mongoid::Contextual::Memory do
|
|
|
335
335
|
end
|
|
336
336
|
|
|
337
337
|
it "returns the distinct field values" do
|
|
338
|
-
context.distinct(:street).
|
|
338
|
+
expect(context.distinct(:street)).to eq([ "hobrecht" ])
|
|
339
339
|
end
|
|
340
340
|
end
|
|
341
341
|
|
|
@@ -352,7 +352,7 @@ describe Mongoid::Contextual::Memory do
|
|
|
352
352
|
end
|
|
353
353
|
|
|
354
354
|
it "returns the distinct field values" do
|
|
355
|
-
context.distinct(:street).
|
|
355
|
+
expect(context.distinct(:street)).to eq([ "hobrecht", "friedel" ])
|
|
356
356
|
end
|
|
357
357
|
end
|
|
358
358
|
end
|
|
@@ -384,7 +384,7 @@ describe Mongoid::Contextual::Memory do
|
|
|
384
384
|
end
|
|
385
385
|
|
|
386
386
|
it "contains no documents" do
|
|
387
|
-
context.map(&:street).
|
|
387
|
+
expect(context.map(&:street)).to be_empty
|
|
388
388
|
end
|
|
389
389
|
|
|
390
390
|
context "when calling next on the enumerator" do
|
|
@@ -401,13 +401,13 @@ describe Mongoid::Contextual::Memory do
|
|
|
401
401
|
|
|
402
402
|
it "yields mongoid documents to the block" do
|
|
403
403
|
context.each do |doc|
|
|
404
|
-
doc.
|
|
404
|
+
expect(doc).to be_a(Mongoid::Document)
|
|
405
405
|
end
|
|
406
406
|
end
|
|
407
407
|
|
|
408
408
|
it "iterates over the matching documents" do
|
|
409
409
|
context.each do |doc|
|
|
410
|
-
doc.
|
|
410
|
+
expect(doc).to eq(hobrecht)
|
|
411
411
|
end
|
|
412
412
|
end
|
|
413
413
|
end
|
|
@@ -419,7 +419,7 @@ describe Mongoid::Contextual::Memory do
|
|
|
419
419
|
end
|
|
420
420
|
|
|
421
421
|
it "returns an enumerator" do
|
|
422
|
-
enum.
|
|
422
|
+
expect(enum).to be_a(Enumerator)
|
|
423
423
|
end
|
|
424
424
|
|
|
425
425
|
context "when iterating over the enumerator" do
|
|
@@ -428,7 +428,7 @@ describe Mongoid::Contextual::Memory do
|
|
|
428
428
|
|
|
429
429
|
it "yields mongoid documents to the block" do
|
|
430
430
|
enum.each do |doc|
|
|
431
|
-
doc.
|
|
431
|
+
expect(doc).to be_a(Mongoid::Document)
|
|
432
432
|
end
|
|
433
433
|
end
|
|
434
434
|
end
|
|
@@ -436,7 +436,7 @@ describe Mongoid::Contextual::Memory do
|
|
|
436
436
|
context "when iterating with next" do
|
|
437
437
|
|
|
438
438
|
it "yields mongoid documents" do
|
|
439
|
-
enum.next.
|
|
439
|
+
expect(enum.next).to be_a(Mongoid::Document)
|
|
440
440
|
end
|
|
441
441
|
end
|
|
442
442
|
end
|
|
@@ -466,7 +466,7 @@ describe Mongoid::Contextual::Memory do
|
|
|
466
466
|
end
|
|
467
467
|
|
|
468
468
|
it "returns true" do
|
|
469
|
-
context.
|
|
469
|
+
expect(context).to be_exists
|
|
470
470
|
end
|
|
471
471
|
end
|
|
472
472
|
|
|
@@ -483,7 +483,7 @@ describe Mongoid::Contextual::Memory do
|
|
|
483
483
|
end
|
|
484
484
|
|
|
485
485
|
it "returns false" do
|
|
486
|
-
context.
|
|
486
|
+
expect(context).to_not be_exists
|
|
487
487
|
end
|
|
488
488
|
end
|
|
489
489
|
end
|
|
@@ -511,7 +511,7 @@ describe Mongoid::Contextual::Memory do
|
|
|
511
511
|
end
|
|
512
512
|
|
|
513
513
|
it "returns the first matching document" do
|
|
514
|
-
context.send(method).
|
|
514
|
+
expect(context.send(method)).to eq(hobrecht)
|
|
515
515
|
end
|
|
516
516
|
end
|
|
517
517
|
end
|
|
@@ -539,15 +539,15 @@ describe Mongoid::Contextual::Memory do
|
|
|
539
539
|
end
|
|
540
540
|
|
|
541
541
|
it "sets the criteria" do
|
|
542
|
-
context.criteria.
|
|
542
|
+
expect(context.criteria).to eq(criteria)
|
|
543
543
|
end
|
|
544
544
|
|
|
545
545
|
it "sets the klass" do
|
|
546
|
-
context.klass.
|
|
546
|
+
expect(context.klass).to eq(Address)
|
|
547
547
|
end
|
|
548
548
|
|
|
549
549
|
it "sets the matching documents" do
|
|
550
|
-
context.documents.
|
|
550
|
+
expect(context.documents).to eq([ hobrecht ])
|
|
551
551
|
end
|
|
552
552
|
end
|
|
553
553
|
|
|
@@ -572,7 +572,7 @@ describe Mongoid::Contextual::Memory do
|
|
|
572
572
|
end
|
|
573
573
|
|
|
574
574
|
it "limits the matching documents" do
|
|
575
|
-
context.
|
|
575
|
+
expect(context).to eq([ friedel ])
|
|
576
576
|
end
|
|
577
577
|
end
|
|
578
578
|
|
|
@@ -597,7 +597,7 @@ describe Mongoid::Contextual::Memory do
|
|
|
597
597
|
end
|
|
598
598
|
|
|
599
599
|
it "limits the matching documents" do
|
|
600
|
-
context.
|
|
600
|
+
expect(context).to eq([ hobrecht ])
|
|
601
601
|
end
|
|
602
602
|
end
|
|
603
603
|
end
|
|
@@ -623,7 +623,7 @@ describe Mongoid::Contextual::Memory do
|
|
|
623
623
|
end
|
|
624
624
|
|
|
625
625
|
it "returns the last matching document" do
|
|
626
|
-
context.last.
|
|
626
|
+
expect(context.last).to eq(friedel)
|
|
627
627
|
end
|
|
628
628
|
end
|
|
629
629
|
|
|
@@ -652,7 +652,7 @@ describe Mongoid::Contextual::Memory do
|
|
|
652
652
|
end
|
|
653
653
|
|
|
654
654
|
it "returns the number of matches" do
|
|
655
|
-
context.send(method).
|
|
655
|
+
expect(context.send(method)).to eq(1)
|
|
656
656
|
end
|
|
657
657
|
end
|
|
658
658
|
|
|
@@ -669,7 +669,7 @@ describe Mongoid::Contextual::Memory do
|
|
|
669
669
|
end
|
|
670
670
|
|
|
671
671
|
it "returns zero" do
|
|
672
|
-
context.send(method).
|
|
672
|
+
expect(context.send(method)).to eq(0)
|
|
673
673
|
end
|
|
674
674
|
end
|
|
675
675
|
end
|
|
@@ -704,7 +704,7 @@ describe Mongoid::Contextual::Memory do
|
|
|
704
704
|
end
|
|
705
705
|
|
|
706
706
|
it "returns the context" do
|
|
707
|
-
limit.
|
|
707
|
+
expect(limit).to eq(context)
|
|
708
708
|
end
|
|
709
709
|
|
|
710
710
|
context "when asking for all documents" do
|
|
@@ -712,7 +712,7 @@ describe Mongoid::Contextual::Memory do
|
|
|
712
712
|
context "when only a limit exists" do
|
|
713
713
|
|
|
714
714
|
it "only returns the limited documents" do
|
|
715
|
-
context.entries.
|
|
715
|
+
expect(context.entries).to eq([ hobrecht, friedel ])
|
|
716
716
|
end
|
|
717
717
|
end
|
|
718
718
|
|
|
@@ -723,7 +723,64 @@ describe Mongoid::Contextual::Memory do
|
|
|
723
723
|
end
|
|
724
724
|
|
|
725
725
|
it "applies the skip before the limit" do
|
|
726
|
-
context.entries.
|
|
726
|
+
expect(context.entries).to eq([ friedel, pfluger ])
|
|
727
|
+
end
|
|
728
|
+
end
|
|
729
|
+
end
|
|
730
|
+
end
|
|
731
|
+
|
|
732
|
+
describe "#pluck" do
|
|
733
|
+
|
|
734
|
+
let(:hobrecht) do
|
|
735
|
+
Address.new(street: "hobrecht")
|
|
736
|
+
end
|
|
737
|
+
|
|
738
|
+
let(:friedel) do
|
|
739
|
+
Address.new(street: "friedel")
|
|
740
|
+
end
|
|
741
|
+
|
|
742
|
+
let(:criteria) do
|
|
743
|
+
Address.all.tap do |crit|
|
|
744
|
+
crit.documents = [ hobrecht, friedel ]
|
|
745
|
+
end
|
|
746
|
+
end
|
|
747
|
+
|
|
748
|
+
let(:context) do
|
|
749
|
+
described_class.new(criteria)
|
|
750
|
+
end
|
|
751
|
+
|
|
752
|
+
context "when plucking" do
|
|
753
|
+
|
|
754
|
+
let!(:plucked) do
|
|
755
|
+
context.pluck(:street)
|
|
756
|
+
end
|
|
757
|
+
|
|
758
|
+
it "returns the values" do
|
|
759
|
+
expect(plucked).to eq([ "hobrecht", "friedel" ])
|
|
760
|
+
end
|
|
761
|
+
end
|
|
762
|
+
|
|
763
|
+
context "when plucking a field that doesnt exist" do
|
|
764
|
+
|
|
765
|
+
context "when pluck one field" do
|
|
766
|
+
|
|
767
|
+
let(:plucked) do
|
|
768
|
+
context.pluck(:foo)
|
|
769
|
+
end
|
|
770
|
+
|
|
771
|
+
it "returns a empty array" do
|
|
772
|
+
expect(plucked).to eq([])
|
|
773
|
+
end
|
|
774
|
+
end
|
|
775
|
+
|
|
776
|
+
context "when pluck multiple fields" do
|
|
777
|
+
|
|
778
|
+
let(:plucked) do
|
|
779
|
+
context.pluck(:foo, :bar)
|
|
780
|
+
end
|
|
781
|
+
|
|
782
|
+
it "returns a empty array" do
|
|
783
|
+
expect(plucked).to eq([[], []])
|
|
727
784
|
end
|
|
728
785
|
end
|
|
729
786
|
end
|
|
@@ -758,7 +815,7 @@ describe Mongoid::Contextual::Memory do
|
|
|
758
815
|
end
|
|
759
816
|
|
|
760
817
|
it "returns the context" do
|
|
761
|
-
skip.
|
|
818
|
+
expect(skip).to eq(context)
|
|
762
819
|
end
|
|
763
820
|
|
|
764
821
|
context "when asking for all documents" do
|
|
@@ -766,7 +823,7 @@ describe Mongoid::Contextual::Memory do
|
|
|
766
823
|
context "when only a skip exists" do
|
|
767
824
|
|
|
768
825
|
it "skips the correct number" do
|
|
769
|
-
context.entries.
|
|
826
|
+
expect(context.entries).to eq([ friedel, pfluger ])
|
|
770
827
|
end
|
|
771
828
|
end
|
|
772
829
|
|
|
@@ -777,7 +834,7 @@ describe Mongoid::Contextual::Memory do
|
|
|
777
834
|
end
|
|
778
835
|
|
|
779
836
|
it "applies the skip before the limit" do
|
|
780
|
-
context.entries.
|
|
837
|
+
expect(context.entries).to eq([ friedel ])
|
|
781
838
|
end
|
|
782
839
|
end
|
|
783
840
|
end
|
|
@@ -816,11 +873,11 @@ describe Mongoid::Contextual::Memory do
|
|
|
816
873
|
end
|
|
817
874
|
|
|
818
875
|
it "sorts the documents" do
|
|
819
|
-
context.entries.
|
|
876
|
+
expect(context.entries).to eq([ friedel, hobrecht, pfluger ])
|
|
820
877
|
end
|
|
821
878
|
|
|
822
879
|
it "returns the context" do
|
|
823
|
-
sorted.
|
|
880
|
+
expect(sorted).to eq(context)
|
|
824
881
|
end
|
|
825
882
|
end
|
|
826
883
|
|
|
@@ -833,11 +890,11 @@ describe Mongoid::Contextual::Memory do
|
|
|
833
890
|
end
|
|
834
891
|
|
|
835
892
|
it "sorts the documents" do
|
|
836
|
-
context.entries.
|
|
893
|
+
expect(context.entries).to eq([ pfluger, hobrecht, friedel ])
|
|
837
894
|
end
|
|
838
895
|
|
|
839
896
|
it "returns the context" do
|
|
840
|
-
sorted.
|
|
897
|
+
expect(sorted).to eq(context)
|
|
841
898
|
end
|
|
842
899
|
end
|
|
843
900
|
|
|
@@ -853,11 +910,11 @@ describe Mongoid::Contextual::Memory do
|
|
|
853
910
|
end
|
|
854
911
|
|
|
855
912
|
it "sorts the documents" do
|
|
856
|
-
context.entries.
|
|
913
|
+
expect(context.entries).to eq([ friedel, hobrecht, pfluger ])
|
|
857
914
|
end
|
|
858
915
|
|
|
859
916
|
it "returns the context" do
|
|
860
|
-
sorted.
|
|
917
|
+
expect(sorted).to eq(context)
|
|
861
918
|
end
|
|
862
919
|
end
|
|
863
920
|
end
|
|
@@ -880,11 +937,11 @@ describe Mongoid::Contextual::Memory do
|
|
|
880
937
|
end
|
|
881
938
|
|
|
882
939
|
it "sorts the documents" do
|
|
883
|
-
context.entries.
|
|
940
|
+
expect(context.entries).to eq([ friedel, lenau, pfluger, hobrecht ])
|
|
884
941
|
end
|
|
885
942
|
|
|
886
943
|
it "returns the context" do
|
|
887
|
-
sorted.
|
|
944
|
+
expect(sorted).to eq(context)
|
|
888
945
|
end
|
|
889
946
|
end
|
|
890
947
|
|
|
@@ -895,11 +952,11 @@ describe Mongoid::Contextual::Memory do
|
|
|
895
952
|
end
|
|
896
953
|
|
|
897
954
|
it "sorts the documents" do
|
|
898
|
-
context.entries.
|
|
955
|
+
expect(context.entries).to eq([ hobrecht, pfluger, lenau, friedel ])
|
|
899
956
|
end
|
|
900
957
|
|
|
901
958
|
it "returns the context" do
|
|
902
|
-
sorted.
|
|
959
|
+
expect(sorted).to eq(context)
|
|
903
960
|
end
|
|
904
961
|
end
|
|
905
962
|
end
|
|
@@ -911,11 +968,11 @@ describe Mongoid::Contextual::Memory do
|
|
|
911
968
|
end
|
|
912
969
|
|
|
913
970
|
it "does not sort the documents" do
|
|
914
|
-
context.entries.
|
|
971
|
+
expect(context.entries).to eq([ hobrecht, friedel, pfluger ])
|
|
915
972
|
end
|
|
916
973
|
|
|
917
974
|
it "returns the context" do
|
|
918
|
-
sorted.
|
|
975
|
+
expect(sorted).to eq(context)
|
|
919
976
|
end
|
|
920
977
|
end
|
|
921
978
|
|
|
@@ -926,7 +983,7 @@ describe Mongoid::Contextual::Memory do
|
|
|
926
983
|
end
|
|
927
984
|
|
|
928
985
|
it "sorts the documents" do
|
|
929
|
-
context.entries.
|
|
986
|
+
expect(context.entries).to eq([ friedel, hobrecht, pfluger ])
|
|
930
987
|
end
|
|
931
988
|
end
|
|
932
989
|
end
|
|
@@ -968,29 +1025,29 @@ describe Mongoid::Contextual::Memory do
|
|
|
968
1025
|
end
|
|
969
1026
|
|
|
970
1027
|
it "updates the first matching document" do
|
|
971
|
-
hobrecht.number.
|
|
1028
|
+
expect(hobrecht.number).to eq(5)
|
|
972
1029
|
end
|
|
973
1030
|
|
|
974
1031
|
it "does not update the last matching document" do
|
|
975
|
-
friedel.number.
|
|
1032
|
+
expect(friedel.number).to be_nil
|
|
976
1033
|
end
|
|
977
1034
|
|
|
978
1035
|
it "does not update non matching docs" do
|
|
979
|
-
pfluger.number.
|
|
1036
|
+
expect(pfluger.number).to be_nil
|
|
980
1037
|
end
|
|
981
1038
|
|
|
982
1039
|
context "when reloading the embedded documents" do
|
|
983
1040
|
|
|
984
1041
|
it "updates the first matching document" do
|
|
985
|
-
hobrecht.reload.number.
|
|
1042
|
+
expect(hobrecht.reload.number).to eq(5)
|
|
986
1043
|
end
|
|
987
1044
|
|
|
988
1045
|
it "updates the last matching document" do
|
|
989
|
-
friedel.reload.number.
|
|
1046
|
+
expect(friedel.reload.number).to be_nil
|
|
990
1047
|
end
|
|
991
1048
|
|
|
992
1049
|
it "does not update non matching docs" do
|
|
993
|
-
pfluger.reload.number.
|
|
1050
|
+
expect(pfluger.reload.number).to be_nil
|
|
994
1051
|
end
|
|
995
1052
|
end
|
|
996
1053
|
end
|
|
@@ -998,7 +1055,7 @@ describe Mongoid::Contextual::Memory do
|
|
|
998
1055
|
context "when no attributes are provided" do
|
|
999
1056
|
|
|
1000
1057
|
it "returns false" do
|
|
1001
|
-
context.update.
|
|
1058
|
+
expect(context.update).to be false
|
|
1002
1059
|
end
|
|
1003
1060
|
end
|
|
1004
1061
|
end
|
|
@@ -1030,21 +1087,21 @@ describe Mongoid::Contextual::Memory do
|
|
|
1030
1087
|
end
|
|
1031
1088
|
|
|
1032
1089
|
it "updates the first matching document" do
|
|
1033
|
-
work.number.
|
|
1090
|
+
expect(work.number).to eq(5)
|
|
1034
1091
|
end
|
|
1035
1092
|
|
|
1036
1093
|
it "does not update non matching docs" do
|
|
1037
|
-
home.number.
|
|
1094
|
+
expect(home.number).to be_nil
|
|
1038
1095
|
end
|
|
1039
1096
|
|
|
1040
1097
|
context "when reloading the embedded documents" do
|
|
1041
1098
|
|
|
1042
1099
|
it "updates the first matching document" do
|
|
1043
|
-
work.reload.number.
|
|
1100
|
+
expect(work.reload.number).to eq(5)
|
|
1044
1101
|
end
|
|
1045
1102
|
|
|
1046
1103
|
it "does not update non matching docs" do
|
|
1047
|
-
home.reload.number.
|
|
1104
|
+
expect(home.reload.number).to be_nil
|
|
1048
1105
|
end
|
|
1049
1106
|
end
|
|
1050
1107
|
end
|
|
@@ -1052,7 +1109,7 @@ describe Mongoid::Contextual::Memory do
|
|
|
1052
1109
|
context "when no attributes are provided" do
|
|
1053
1110
|
|
|
1054
1111
|
it "returns false" do
|
|
1055
|
-
context.update.
|
|
1112
|
+
expect(context.update).to be false
|
|
1056
1113
|
end
|
|
1057
1114
|
end
|
|
1058
1115
|
end
|
|
@@ -1091,7 +1148,7 @@ describe Mongoid::Contextual::Memory do
|
|
|
1091
1148
|
end
|
|
1092
1149
|
|
|
1093
1150
|
it "returns false" do
|
|
1094
|
-
context.update_all({}).
|
|
1151
|
+
expect(context.update_all({})).to be false
|
|
1095
1152
|
end
|
|
1096
1153
|
end
|
|
1097
1154
|
|
|
@@ -1114,15 +1171,15 @@ describe Mongoid::Contextual::Memory do
|
|
|
1114
1171
|
end
|
|
1115
1172
|
|
|
1116
1173
|
it "updates the first matching document" do
|
|
1117
|
-
hobrecht.suite.
|
|
1174
|
+
expect(hobrecht.suite).to eq("10B")
|
|
1118
1175
|
end
|
|
1119
1176
|
|
|
1120
1177
|
it "updates the last matching document" do
|
|
1121
|
-
friedel.suite.
|
|
1178
|
+
expect(friedel.suite).to eq("10B")
|
|
1122
1179
|
end
|
|
1123
1180
|
|
|
1124
1181
|
it "does not update non matching docs" do
|
|
1125
|
-
pfluger.suite.
|
|
1182
|
+
expect(pfluger.suite).to be_nil
|
|
1126
1183
|
end
|
|
1127
1184
|
end
|
|
1128
1185
|
|
|
@@ -1133,29 +1190,29 @@ describe Mongoid::Contextual::Memory do
|
|
|
1133
1190
|
end
|
|
1134
1191
|
|
|
1135
1192
|
it "updates the first matching document" do
|
|
1136
|
-
hobrecht.number.
|
|
1193
|
+
expect(hobrecht.number).to eq(5)
|
|
1137
1194
|
end
|
|
1138
1195
|
|
|
1139
1196
|
it "updates the last matching document" do
|
|
1140
|
-
friedel.number.
|
|
1197
|
+
expect(friedel.number).to eq(5)
|
|
1141
1198
|
end
|
|
1142
1199
|
|
|
1143
1200
|
it "does not update non matching docs" do
|
|
1144
|
-
pfluger.number.
|
|
1201
|
+
expect(pfluger.number).to be_nil
|
|
1145
1202
|
end
|
|
1146
1203
|
|
|
1147
1204
|
context "when reloading the embedded documents" do
|
|
1148
1205
|
|
|
1149
1206
|
it "updates the first matching document" do
|
|
1150
|
-
hobrecht.reload.number.
|
|
1207
|
+
expect(hobrecht.reload.number).to eq(5)
|
|
1151
1208
|
end
|
|
1152
1209
|
|
|
1153
1210
|
it "updates the last matching document" do
|
|
1154
|
-
friedel.reload.number.
|
|
1211
|
+
expect(friedel.reload.number).to eq(5)
|
|
1155
1212
|
end
|
|
1156
1213
|
|
|
1157
1214
|
it "does not update non matching docs" do
|
|
1158
|
-
pfluger.reload.number.
|
|
1215
|
+
expect(pfluger.reload.number).to be_nil
|
|
1159
1216
|
end
|
|
1160
1217
|
end
|
|
1161
1218
|
|
|
@@ -1166,7 +1223,7 @@ describe Mongoid::Contextual::Memory do
|
|
|
1166
1223
|
end
|
|
1167
1224
|
|
|
1168
1225
|
it "does not error on the update" do
|
|
1169
|
-
hobrecht.number.
|
|
1226
|
+
expect(hobrecht.number).to eq(5)
|
|
1170
1227
|
end
|
|
1171
1228
|
end
|
|
1172
1229
|
end
|
|
@@ -1174,7 +1231,7 @@ describe Mongoid::Contextual::Memory do
|
|
|
1174
1231
|
context "when no attributes are provided" do
|
|
1175
1232
|
|
|
1176
1233
|
it "returns false" do
|
|
1177
|
-
context.update_all.
|
|
1234
|
+
expect(context.update_all).to be false
|
|
1178
1235
|
end
|
|
1179
1236
|
end
|
|
1180
1237
|
end
|
|
@@ -1206,21 +1263,21 @@ describe Mongoid::Contextual::Memory do
|
|
|
1206
1263
|
end
|
|
1207
1264
|
|
|
1208
1265
|
it "updates the first matching document" do
|
|
1209
|
-
work.number.
|
|
1266
|
+
expect(work.number).to eq(5)
|
|
1210
1267
|
end
|
|
1211
1268
|
|
|
1212
1269
|
it "does not update non matching docs" do
|
|
1213
|
-
home.number.
|
|
1270
|
+
expect(home.number).to be_nil
|
|
1214
1271
|
end
|
|
1215
1272
|
|
|
1216
1273
|
context "when reloading the embedded documents" do
|
|
1217
1274
|
|
|
1218
1275
|
it "updates the first matching document" do
|
|
1219
|
-
work.reload.number.
|
|
1276
|
+
expect(work.reload.number).to eq(5)
|
|
1220
1277
|
end
|
|
1221
1278
|
|
|
1222
1279
|
it "does not update non matching docs" do
|
|
1223
|
-
home.reload.number.
|
|
1280
|
+
expect(home.reload.number).to be_nil
|
|
1224
1281
|
end
|
|
1225
1282
|
end
|
|
1226
1283
|
end
|
|
@@ -1228,7 +1285,7 @@ describe Mongoid::Contextual::Memory do
|
|
|
1228
1285
|
context "when no attributes are provided" do
|
|
1229
1286
|
|
|
1230
1287
|
it "returns false" do
|
|
1231
|
-
context.update_all.
|
|
1288
|
+
expect(context.update_all).to be false
|
|
1232
1289
|
end
|
|
1233
1290
|
end
|
|
1234
1291
|
end
|