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
@@ -31,7 +31,7 @@ describe Mongoid::Contextual::GeoNear do
|
|
31
31
|
end
|
32
32
|
|
33
33
|
it "returns the average distance" do
|
34
|
-
geo_near.average_distance.
|
34
|
+
expect(geo_near.average_distance).to_not be_nil
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
@@ -46,7 +46,7 @@ describe Mongoid::Contextual::GeoNear do
|
|
46
46
|
end
|
47
47
|
|
48
48
|
it "returns 0.0" do
|
49
|
-
geo_near.average_distance.
|
49
|
+
expect(geo_near.average_distance).to be_nil
|
50
50
|
end
|
51
51
|
end
|
52
52
|
end
|
@@ -84,7 +84,7 @@ describe Mongoid::Contextual::GeoNear do
|
|
84
84
|
end
|
85
85
|
|
86
86
|
it "returns all the documents" do
|
87
|
-
results.
|
87
|
+
expect(results).to eq([ bar_one, bar_two ])
|
88
88
|
end
|
89
89
|
end
|
90
90
|
|
@@ -103,7 +103,7 @@ describe Mongoid::Contextual::GeoNear do
|
|
103
103
|
end
|
104
104
|
|
105
105
|
it "returns the limited documents" do
|
106
|
-
results.
|
106
|
+
expect(results).to eq([ bar_one ])
|
107
107
|
end
|
108
108
|
end
|
109
109
|
|
@@ -122,7 +122,7 @@ describe Mongoid::Contextual::GeoNear do
|
|
122
122
|
end
|
123
123
|
|
124
124
|
it "returns the limited documents" do
|
125
|
-
results.
|
125
|
+
expect(results).to eq([ bar_one ])
|
126
126
|
end
|
127
127
|
end
|
128
128
|
|
@@ -141,7 +141,7 @@ describe Mongoid::Contextual::GeoNear do
|
|
141
141
|
end
|
142
142
|
|
143
143
|
it "returns the documents" do
|
144
|
-
results.
|
144
|
+
expect(results).to eq([ bar_one, bar_two ])
|
145
145
|
end
|
146
146
|
end
|
147
147
|
|
@@ -160,11 +160,11 @@ describe Mongoid::Contextual::GeoNear do
|
|
160
160
|
end
|
161
161
|
|
162
162
|
it "returns the documents" do
|
163
|
-
results.
|
163
|
+
expect(results).to eq([ bar_one, bar_two ])
|
164
164
|
end
|
165
165
|
|
166
166
|
it "multiplies the distance factor" do
|
167
|
-
results.first.geo_near_distance.to_i.
|
167
|
+
expect(results.first.geo_near_distance.to_i).to eq(2490)
|
168
168
|
end
|
169
169
|
end
|
170
170
|
|
@@ -183,7 +183,7 @@ describe Mongoid::Contextual::GeoNear do
|
|
183
183
|
end
|
184
184
|
|
185
185
|
it "returns the documents" do
|
186
|
-
results.
|
186
|
+
expect(results).to eq([ bar_one, bar_two ])
|
187
187
|
end
|
188
188
|
end
|
189
189
|
end
|
@@ -217,7 +217,7 @@ describe Mongoid::Contextual::GeoNear do
|
|
217
217
|
end
|
218
218
|
|
219
219
|
it "returns false" do
|
220
|
-
geo_near.
|
220
|
+
expect(geo_near).to_not be_empty
|
221
221
|
end
|
222
222
|
end
|
223
223
|
|
@@ -228,7 +228,7 @@ describe Mongoid::Contextual::GeoNear do
|
|
228
228
|
end
|
229
229
|
|
230
230
|
it "returns true" do
|
231
|
-
geo_near.
|
231
|
+
expect(geo_near).to be_empty
|
232
232
|
end
|
233
233
|
end
|
234
234
|
end
|
@@ -264,7 +264,7 @@ describe Mongoid::Contextual::GeoNear do
|
|
264
264
|
end
|
265
265
|
|
266
266
|
it "returns a hash" do
|
267
|
-
execution_results.
|
267
|
+
expect(execution_results).to be_a_kind_of(Hash)
|
268
268
|
end
|
269
269
|
end
|
270
270
|
|
@@ -297,7 +297,7 @@ describe Mongoid::Contextual::GeoNear do
|
|
297
297
|
end
|
298
298
|
|
299
299
|
it "returns the max distance" do
|
300
|
-
geo_near.max_distance.
|
300
|
+
expect(geo_near.max_distance).to_not be_nil
|
301
301
|
end
|
302
302
|
end
|
303
303
|
|
@@ -312,7 +312,7 @@ describe Mongoid::Contextual::GeoNear do
|
|
312
312
|
end
|
313
313
|
|
314
314
|
it "returns 0.0" do
|
315
|
-
geo_near.max_distance.
|
315
|
+
expect(geo_near.max_distance).to eq(0.0)
|
316
316
|
end
|
317
317
|
end
|
318
318
|
end
|
@@ -344,31 +344,31 @@ describe Mongoid::Contextual::GeoNear do
|
|
344
344
|
end
|
345
345
|
|
346
346
|
it "contains the selector" do
|
347
|
-
geo_near.inspect.
|
347
|
+
expect(geo_near.inspect).to include("selector")
|
348
348
|
end
|
349
349
|
|
350
350
|
it "contains the class" do
|
351
|
-
geo_near.inspect.
|
351
|
+
expect(geo_near.inspect).to include("class")
|
352
352
|
end
|
353
353
|
|
354
354
|
it "contains the near" do
|
355
|
-
geo_near.inspect.
|
355
|
+
expect(geo_near.inspect).to include("near")
|
356
356
|
end
|
357
357
|
|
358
358
|
it "contains the multiplier" do
|
359
|
-
geo_near.inspect.
|
359
|
+
expect(geo_near.inspect).to include("multiplier")
|
360
360
|
end
|
361
361
|
|
362
362
|
it "contains the max" do
|
363
|
-
geo_near.inspect.
|
363
|
+
expect(geo_near.inspect).to include("max")
|
364
364
|
end
|
365
365
|
|
366
366
|
it "contains the unique" do
|
367
|
-
geo_near.inspect.
|
367
|
+
expect(geo_near.inspect).to include("unique")
|
368
368
|
end
|
369
369
|
|
370
370
|
it "contains the spherical" do
|
371
|
-
geo_near.inspect.
|
371
|
+
expect(geo_near.inspect).to include("spherical")
|
372
372
|
end
|
373
373
|
end
|
374
374
|
|
@@ -399,7 +399,7 @@ describe Mongoid::Contextual::GeoNear do
|
|
399
399
|
end
|
400
400
|
|
401
401
|
it "returns the execution time" do
|
402
|
-
geo_near.time.
|
402
|
+
expect(geo_near.time).to_not be_nil
|
403
403
|
end
|
404
404
|
end
|
405
405
|
end
|
@@ -52,7 +52,7 @@ describe Mongoid::Contextual::MapReduce do
|
|
52
52
|
end
|
53
53
|
|
54
54
|
it "returns the db command" do
|
55
|
-
map_reduce.command.
|
55
|
+
expect(map_reduce.command).to eq(base_command)
|
56
56
|
end
|
57
57
|
|
58
58
|
context "with sort" do
|
@@ -61,7 +61,7 @@ describe Mongoid::Contextual::MapReduce do
|
|
61
61
|
end
|
62
62
|
|
63
63
|
it "returns the db command with a sort option" do
|
64
|
-
map_reduce.command.
|
64
|
+
expect(map_reduce.command).to eq(base_command.merge(sort: {'name' => -1}))
|
65
65
|
end
|
66
66
|
end
|
67
67
|
|
@@ -71,7 +71,7 @@ describe Mongoid::Contextual::MapReduce do
|
|
71
71
|
end
|
72
72
|
|
73
73
|
it "returns the db command with a limit option" do
|
74
|
-
map_reduce.command.
|
74
|
+
expect(map_reduce.command).to eq(base_command.merge(limit: 10))
|
75
75
|
end
|
76
76
|
end
|
77
77
|
end
|
@@ -91,7 +91,7 @@ describe Mongoid::Contextual::MapReduce do
|
|
91
91
|
end
|
92
92
|
|
93
93
|
it "returns the map/reduce counts" do
|
94
|
-
counts.
|
94
|
+
expect(counts).to eq({
|
95
95
|
"input" => 2,
|
96
96
|
"emit" => 2,
|
97
97
|
"reduce" => 0,
|
@@ -117,7 +117,7 @@ describe Mongoid::Contextual::MapReduce do
|
|
117
117
|
end
|
118
118
|
|
119
119
|
it "iterates over the results" do
|
120
|
-
results.entries.
|
120
|
+
expect(results.entries).to eq([
|
121
121
|
{ "_id" => "Depeche Mode", "value" => { "likes" => 200 }},
|
122
122
|
{ "_id" => "Tool", "value" => { "likes" => 100 }}
|
123
123
|
])
|
@@ -131,7 +131,7 @@ describe Mongoid::Contextual::MapReduce do
|
|
131
131
|
end
|
132
132
|
|
133
133
|
it "iterates over the results" do
|
134
|
-
results.entries.
|
134
|
+
expect(results.entries).to eq([
|
135
135
|
{ "_id" => "Depeche Mode", "value" => { "likes" => 200 }},
|
136
136
|
{ "_id" => "Tool", "value" => { "likes" => 100 }}
|
137
137
|
])
|
@@ -158,7 +158,7 @@ describe Mongoid::Contextual::MapReduce do
|
|
158
158
|
end
|
159
159
|
|
160
160
|
it "does not raise an error" do
|
161
|
-
results.entries.
|
161
|
+
expect(results.entries).to be_empty
|
162
162
|
end
|
163
163
|
end
|
164
164
|
end
|
@@ -178,7 +178,7 @@ describe Mongoid::Contextual::MapReduce do
|
|
178
178
|
end
|
179
179
|
|
180
180
|
it "returns the emitted counts" do
|
181
|
-
emitted.
|
181
|
+
expect(emitted).to eq(2)
|
182
182
|
end
|
183
183
|
end
|
184
184
|
|
@@ -199,7 +199,7 @@ describe Mongoid::Contextual::MapReduce do
|
|
199
199
|
end
|
200
200
|
|
201
201
|
it "returns false" do
|
202
|
-
results.
|
202
|
+
expect(results).to_not be_empty
|
203
203
|
end
|
204
204
|
end
|
205
205
|
|
@@ -214,7 +214,7 @@ describe Mongoid::Contextual::MapReduce do
|
|
214
214
|
end
|
215
215
|
|
216
216
|
it "returns true" do
|
217
|
-
results.
|
217
|
+
expect(results).to be_empty
|
218
218
|
end
|
219
219
|
end
|
220
220
|
end
|
@@ -234,7 +234,7 @@ describe Mongoid::Contextual::MapReduce do
|
|
234
234
|
end
|
235
235
|
|
236
236
|
it "sets the finalize command" do
|
237
|
-
finalized.command[:finalize].
|
237
|
+
expect(finalized.command[:finalize]).to eq("testing")
|
238
238
|
end
|
239
239
|
end
|
240
240
|
|
@@ -253,7 +253,7 @@ describe Mongoid::Contextual::MapReduce do
|
|
253
253
|
end
|
254
254
|
|
255
255
|
it "returns the input counts" do
|
256
|
-
input.
|
256
|
+
expect(input).to eq(2)
|
257
257
|
end
|
258
258
|
end
|
259
259
|
|
@@ -272,7 +272,7 @@ describe Mongoid::Contextual::MapReduce do
|
|
272
272
|
end
|
273
273
|
|
274
274
|
it "adds the jsMode flag to the command" do
|
275
|
-
results.command[:jsMode].
|
275
|
+
expect(results.command[:jsMode]).to be true
|
276
276
|
end
|
277
277
|
end
|
278
278
|
|
@@ -293,7 +293,7 @@ describe Mongoid::Contextual::MapReduce do
|
|
293
293
|
end
|
294
294
|
|
295
295
|
it "sets the out command" do
|
296
|
-
out.command[:out].
|
296
|
+
expect(out.command[:out]).to eq(inline: 1)
|
297
297
|
end
|
298
298
|
end
|
299
299
|
|
@@ -306,7 +306,7 @@ describe Mongoid::Contextual::MapReduce do
|
|
306
306
|
end
|
307
307
|
|
308
308
|
it "sets the out command value to a string" do
|
309
|
-
out.command[:out].
|
309
|
+
expect(out.command[:out]).to eq(replace: "test")
|
310
310
|
end
|
311
311
|
end
|
312
312
|
end
|
@@ -327,7 +327,7 @@ describe Mongoid::Contextual::MapReduce do
|
|
327
327
|
end
|
328
328
|
|
329
329
|
it "returns the output counts" do
|
330
|
-
output.
|
330
|
+
expect(output).to eq(2)
|
331
331
|
end
|
332
332
|
end
|
333
333
|
|
@@ -346,7 +346,7 @@ describe Mongoid::Contextual::MapReduce do
|
|
346
346
|
end
|
347
347
|
|
348
348
|
it "returns the reduce counts" do
|
349
|
-
reduced.
|
349
|
+
expect(reduced).to eq(0)
|
350
350
|
end
|
351
351
|
end
|
352
352
|
|
@@ -373,7 +373,7 @@ describe Mongoid::Contextual::MapReduce do
|
|
373
373
|
end
|
374
374
|
|
375
375
|
it "adds the variables to the global js scope" do
|
376
|
-
results.first["value"]["global"].
|
376
|
+
expect(results.first["value"]["global"]).to eq(5)
|
377
377
|
end
|
378
378
|
end
|
379
379
|
|
@@ -392,7 +392,7 @@ describe Mongoid::Contextual::MapReduce do
|
|
392
392
|
end
|
393
393
|
|
394
394
|
it "returns the execution time" do
|
395
|
-
time.
|
395
|
+
expect(time).to_not be_nil
|
396
396
|
end
|
397
397
|
end
|
398
398
|
|
@@ -411,7 +411,7 @@ describe Mongoid::Contextual::MapReduce do
|
|
411
411
|
end
|
412
412
|
|
413
413
|
it "returns a hash" do
|
414
|
-
execution_results.
|
414
|
+
expect(execution_results).to be_a_kind_of Hash
|
415
415
|
end
|
416
416
|
end
|
417
417
|
|
@@ -434,31 +434,31 @@ describe Mongoid::Contextual::MapReduce do
|
|
434
434
|
end
|
435
435
|
|
436
436
|
it "returns a string" do
|
437
|
-
inspection.
|
437
|
+
expect(inspection).to be_a_kind_of String
|
438
438
|
end
|
439
439
|
|
440
440
|
it "includes the criteria selector" do
|
441
|
-
inspection.
|
441
|
+
expect(inspection).to include("selector:")
|
442
442
|
end
|
443
443
|
|
444
444
|
it "includes the class" do
|
445
|
-
inspection.
|
445
|
+
expect(inspection).to include("class:")
|
446
446
|
end
|
447
447
|
|
448
448
|
it "includes the map function" do
|
449
|
-
inspection.
|
449
|
+
expect(inspection).to include("map:")
|
450
450
|
end
|
451
451
|
|
452
452
|
it "includes the reduce function" do
|
453
|
-
inspection.
|
453
|
+
expect(inspection).to include("reduce:")
|
454
454
|
end
|
455
455
|
|
456
456
|
it "includes the finalize function" do
|
457
|
-
inspection.
|
457
|
+
expect(inspection).to include("finalize:")
|
458
458
|
end
|
459
459
|
|
460
460
|
it "includes the out option" do
|
461
|
-
inspection.
|
461
|
+
expect(inspection).to include("out:")
|
462
462
|
end
|
463
463
|
end
|
464
464
|
end
|
@@ -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
|
@@ -869,8 +926,13 @@ describe Mongoid::Contextual::Memory do
|
|
869
926
|
Address.new(street: "lenau", number: 5, name: "lenau")
|
870
927
|
end
|
871
928
|
|
929
|
+
let(:kampuchea_krom) do
|
930
|
+
Address.new(street: "kampuchea krom", number: 5, name: "kampuchea krom")
|
931
|
+
end
|
932
|
+
|
872
933
|
before do
|
873
934
|
criteria.documents.unshift(lenau)
|
935
|
+
criteria.documents.unshift(kampuchea_krom)
|
874
936
|
end
|
875
937
|
|
876
938
|
context "when the sort is ascending" do
|
@@ -880,11 +942,11 @@ describe Mongoid::Contextual::Memory do
|
|
880
942
|
end
|
881
943
|
|
882
944
|
it "sorts the documents" do
|
883
|
-
context.entries.
|
945
|
+
expect(context.entries).to eq([ friedel, kampuchea_krom, lenau, pfluger, hobrecht ])
|
884
946
|
end
|
885
947
|
|
886
948
|
it "returns the context" do
|
887
|
-
sorted.
|
949
|
+
expect(sorted).to eq(context)
|
888
950
|
end
|
889
951
|
end
|
890
952
|
|
@@ -895,11 +957,11 @@ describe Mongoid::Contextual::Memory do
|
|
895
957
|
end
|
896
958
|
|
897
959
|
it "sorts the documents" do
|
898
|
-
context.entries.
|
960
|
+
expect(context.entries).to eq([ hobrecht, pfluger, lenau, kampuchea_krom, friedel ])
|
899
961
|
end
|
900
962
|
|
901
963
|
it "returns the context" do
|
902
|
-
sorted.
|
964
|
+
expect(sorted).to eq(context)
|
903
965
|
end
|
904
966
|
end
|
905
967
|
end
|
@@ -911,11 +973,11 @@ describe Mongoid::Contextual::Memory do
|
|
911
973
|
end
|
912
974
|
|
913
975
|
it "does not sort the documents" do
|
914
|
-
context.entries.
|
976
|
+
expect(context.entries).to eq([ hobrecht, friedel, pfluger ])
|
915
977
|
end
|
916
978
|
|
917
979
|
it "returns the context" do
|
918
|
-
sorted.
|
980
|
+
expect(sorted).to eq(context)
|
919
981
|
end
|
920
982
|
end
|
921
983
|
|
@@ -926,7 +988,7 @@ describe Mongoid::Contextual::Memory do
|
|
926
988
|
end
|
927
989
|
|
928
990
|
it "sorts the documents" do
|
929
|
-
context.entries.
|
991
|
+
expect(context.entries).to eq([ friedel, hobrecht, pfluger ])
|
930
992
|
end
|
931
993
|
end
|
932
994
|
end
|
@@ -968,29 +1030,29 @@ describe Mongoid::Contextual::Memory do
|
|
968
1030
|
end
|
969
1031
|
|
970
1032
|
it "updates the first matching document" do
|
971
|
-
hobrecht.number.
|
1033
|
+
expect(hobrecht.number).to eq(5)
|
972
1034
|
end
|
973
1035
|
|
974
1036
|
it "does not update the last matching document" do
|
975
|
-
friedel.number.
|
1037
|
+
expect(friedel.number).to be_nil
|
976
1038
|
end
|
977
1039
|
|
978
1040
|
it "does not update non matching docs" do
|
979
|
-
pfluger.number.
|
1041
|
+
expect(pfluger.number).to be_nil
|
980
1042
|
end
|
981
1043
|
|
982
1044
|
context "when reloading the embedded documents" do
|
983
1045
|
|
984
1046
|
it "updates the first matching document" do
|
985
|
-
hobrecht.reload.number.
|
1047
|
+
expect(hobrecht.reload.number).to eq(5)
|
986
1048
|
end
|
987
1049
|
|
988
1050
|
it "updates the last matching document" do
|
989
|
-
friedel.reload.number.
|
1051
|
+
expect(friedel.reload.number).to be_nil
|
990
1052
|
end
|
991
1053
|
|
992
1054
|
it "does not update non matching docs" do
|
993
|
-
pfluger.reload.number.
|
1055
|
+
expect(pfluger.reload.number).to be_nil
|
994
1056
|
end
|
995
1057
|
end
|
996
1058
|
end
|
@@ -998,7 +1060,7 @@ describe Mongoid::Contextual::Memory do
|
|
998
1060
|
context "when no attributes are provided" do
|
999
1061
|
|
1000
1062
|
it "returns false" do
|
1001
|
-
context.update.
|
1063
|
+
expect(context.update).to be false
|
1002
1064
|
end
|
1003
1065
|
end
|
1004
1066
|
end
|
@@ -1030,21 +1092,21 @@ describe Mongoid::Contextual::Memory do
|
|
1030
1092
|
end
|
1031
1093
|
|
1032
1094
|
it "updates the first matching document" do
|
1033
|
-
work.number.
|
1095
|
+
expect(work.number).to eq(5)
|
1034
1096
|
end
|
1035
1097
|
|
1036
1098
|
it "does not update non matching docs" do
|
1037
|
-
home.number.
|
1099
|
+
expect(home.number).to be_nil
|
1038
1100
|
end
|
1039
1101
|
|
1040
1102
|
context "when reloading the embedded documents" do
|
1041
1103
|
|
1042
1104
|
it "updates the first matching document" do
|
1043
|
-
work.reload.number.
|
1105
|
+
expect(work.reload.number).to eq(5)
|
1044
1106
|
end
|
1045
1107
|
|
1046
1108
|
it "does not update non matching docs" do
|
1047
|
-
home.reload.number.
|
1109
|
+
expect(home.reload.number).to be_nil
|
1048
1110
|
end
|
1049
1111
|
end
|
1050
1112
|
end
|
@@ -1052,7 +1114,7 @@ describe Mongoid::Contextual::Memory do
|
|
1052
1114
|
context "when no attributes are provided" do
|
1053
1115
|
|
1054
1116
|
it "returns false" do
|
1055
|
-
context.update.
|
1117
|
+
expect(context.update).to be false
|
1056
1118
|
end
|
1057
1119
|
end
|
1058
1120
|
end
|
@@ -1091,7 +1153,7 @@ describe Mongoid::Contextual::Memory do
|
|
1091
1153
|
end
|
1092
1154
|
|
1093
1155
|
it "returns false" do
|
1094
|
-
context.update_all({}).
|
1156
|
+
expect(context.update_all({})).to be false
|
1095
1157
|
end
|
1096
1158
|
end
|
1097
1159
|
|
@@ -1114,15 +1176,15 @@ describe Mongoid::Contextual::Memory do
|
|
1114
1176
|
end
|
1115
1177
|
|
1116
1178
|
it "updates the first matching document" do
|
1117
|
-
hobrecht.suite.
|
1179
|
+
expect(hobrecht.suite).to eq("10B")
|
1118
1180
|
end
|
1119
1181
|
|
1120
1182
|
it "updates the last matching document" do
|
1121
|
-
friedel.suite.
|
1183
|
+
expect(friedel.suite).to eq("10B")
|
1122
1184
|
end
|
1123
1185
|
|
1124
1186
|
it "does not update non matching docs" do
|
1125
|
-
pfluger.suite.
|
1187
|
+
expect(pfluger.suite).to be_nil
|
1126
1188
|
end
|
1127
1189
|
end
|
1128
1190
|
|
@@ -1133,29 +1195,29 @@ describe Mongoid::Contextual::Memory do
|
|
1133
1195
|
end
|
1134
1196
|
|
1135
1197
|
it "updates the first matching document" do
|
1136
|
-
hobrecht.number.
|
1198
|
+
expect(hobrecht.number).to eq(5)
|
1137
1199
|
end
|
1138
1200
|
|
1139
1201
|
it "updates the last matching document" do
|
1140
|
-
friedel.number.
|
1202
|
+
expect(friedel.number).to eq(5)
|
1141
1203
|
end
|
1142
1204
|
|
1143
1205
|
it "does not update non matching docs" do
|
1144
|
-
pfluger.number.
|
1206
|
+
expect(pfluger.number).to be_nil
|
1145
1207
|
end
|
1146
1208
|
|
1147
1209
|
context "when reloading the embedded documents" do
|
1148
1210
|
|
1149
1211
|
it "updates the first matching document" do
|
1150
|
-
hobrecht.reload.number.
|
1212
|
+
expect(hobrecht.reload.number).to eq(5)
|
1151
1213
|
end
|
1152
1214
|
|
1153
1215
|
it "updates the last matching document" do
|
1154
|
-
friedel.reload.number.
|
1216
|
+
expect(friedel.reload.number).to eq(5)
|
1155
1217
|
end
|
1156
1218
|
|
1157
1219
|
it "does not update non matching docs" do
|
1158
|
-
pfluger.reload.number.
|
1220
|
+
expect(pfluger.reload.number).to be_nil
|
1159
1221
|
end
|
1160
1222
|
end
|
1161
1223
|
|
@@ -1166,7 +1228,7 @@ describe Mongoid::Contextual::Memory do
|
|
1166
1228
|
end
|
1167
1229
|
|
1168
1230
|
it "does not error on the update" do
|
1169
|
-
hobrecht.number.
|
1231
|
+
expect(hobrecht.number).to eq(5)
|
1170
1232
|
end
|
1171
1233
|
end
|
1172
1234
|
end
|
@@ -1174,7 +1236,7 @@ describe Mongoid::Contextual::Memory do
|
|
1174
1236
|
context "when no attributes are provided" do
|
1175
1237
|
|
1176
1238
|
it "returns false" do
|
1177
|
-
context.update_all.
|
1239
|
+
expect(context.update_all).to be false
|
1178
1240
|
end
|
1179
1241
|
end
|
1180
1242
|
end
|
@@ -1206,21 +1268,21 @@ describe Mongoid::Contextual::Memory do
|
|
1206
1268
|
end
|
1207
1269
|
|
1208
1270
|
it "updates the first matching document" do
|
1209
|
-
work.number.
|
1271
|
+
expect(work.number).to eq(5)
|
1210
1272
|
end
|
1211
1273
|
|
1212
1274
|
it "does not update non matching docs" do
|
1213
|
-
home.number.
|
1275
|
+
expect(home.number).to be_nil
|
1214
1276
|
end
|
1215
1277
|
|
1216
1278
|
context "when reloading the embedded documents" do
|
1217
1279
|
|
1218
1280
|
it "updates the first matching document" do
|
1219
|
-
work.reload.number.
|
1281
|
+
expect(work.reload.number).to eq(5)
|
1220
1282
|
end
|
1221
1283
|
|
1222
1284
|
it "does not update non matching docs" do
|
1223
|
-
home.reload.number.
|
1285
|
+
expect(home.reload.number).to be_nil
|
1224
1286
|
end
|
1225
1287
|
end
|
1226
1288
|
end
|
@@ -1228,7 +1290,7 @@ describe Mongoid::Contextual::Memory do
|
|
1228
1290
|
context "when no attributes are provided" do
|
1229
1291
|
|
1230
1292
|
it "returns false" do
|
1231
|
-
context.update_all.
|
1293
|
+
expect(context.update_all).to be false
|
1232
1294
|
end
|
1233
1295
|
end
|
1234
1296
|
end
|