mongoid 3.1.7 → 4.0.0.alpha1
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 +317 -11
- data/README.md +4 -5
- data/lib/config/locales/en.yml +9 -12
- data/lib/mongoid.rb +6 -75
- data/lib/mongoid/atomic.rb +0 -11
- data/lib/mongoid/atomic/paths/embedded.rb +0 -30
- data/lib/mongoid/atomic/paths/root.rb +0 -13
- data/lib/mongoid/attributes.rb +30 -108
- 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} +5 -2
- data/lib/mongoid/composable.rb +104 -0
- data/lib/mongoid/config.rb +3 -9
- data/lib/mongoid/config/options.rb +1 -1
- data/lib/mongoid/contextual/aggregable/mongo.rb +5 -9
- data/lib/mongoid/contextual/atomic.rb +53 -53
- data/lib/mongoid/contextual/command.rb +26 -0
- data/lib/mongoid/contextual/map_reduce.rb +1 -1
- data/lib/mongoid/contextual/memory.rb +6 -5
- data/lib/mongoid/contextual/mongo.rb +59 -28
- data/lib/mongoid/contextual/text_search.rb +180 -0
- data/lib/mongoid/copyable.rb +2 -3
- data/lib/mongoid/criteria.rb +13 -33
- data/lib/mongoid/criteria/{#findable.rb# → findable.rb} +0 -2
- 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 +1 -1
- data/lib/mongoid/{criterion/scoping.rb → criteria/scopable.rb} +2 -2
- data/lib/mongoid/document.rb +28 -12
- data/lib/mongoid/errors.rb +1 -1
- data/lib/mongoid/errors/document_not_found.rb +2 -1
- data/lib/mongoid/errors/invalid_value.rb +16 -0
- data/lib/mongoid/errors/mongoid_error.rb +1 -1
- data/lib/mongoid/extensions.rb +2 -7
- data/lib/mongoid/extensions/array.rb +2 -2
- data/lib/mongoid/extensions/boolean.rb +14 -17
- data/lib/mongoid/extensions/float.rb +1 -0
- data/lib/mongoid/extensions/hash.rb +1 -1
- data/lib/mongoid/extensions/object.rb +4 -4
- data/lib/mongoid/extensions/object_id.rb +5 -5
- data/lib/mongoid/extensions/range.rb +8 -2
- data/lib/mongoid/extensions/string.rb +5 -17
- data/lib/mongoid/extensions/time.rb +2 -2
- data/lib/mongoid/factory.rb +3 -3
- data/lib/mongoid/fields.rb +9 -8
- data/lib/mongoid/fields/foreign_key.rb +3 -3
- data/lib/mongoid/fields/standard.rb +4 -16
- data/lib/mongoid/fields/validators/macro.rb +11 -3
- data/lib/mongoid/{finders.rb → findable.rb} +6 -2
- 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} +3 -52
- data/lib/mongoid/log_subscriber.rb +22 -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 +1 -1
- 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 +212 -0
- data/lib/mongoid/persistable/creatable.rb +188 -0
- data/lib/mongoid/persistable/deletable.rb +148 -0
- data/lib/mongoid/persistable/destroyable.rb +55 -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 +151 -0
- data/lib/mongoid/persistable/upsertable.rb +55 -0
- data/lib/mongoid/positional.rb +71 -0
- data/lib/mongoid/railtie.rb +32 -45
- data/lib/mongoid/railties/database.rake +12 -6
- data/lib/mongoid/relations.rb +3 -3
- data/lib/mongoid/relations/accessors.rb +13 -46
- data/lib/mongoid/relations/auto_save.rb +15 -36
- data/lib/mongoid/relations/binding.rb +0 -23
- 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.rb +2 -2
- 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/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 +47 -0
- data/lib/mongoid/relations/eager/base.rb +57 -0
- data/lib/mongoid/relations/eager/belongs_to.rb +30 -0
- data/lib/mongoid/relations/eager/has_and_belongs_to_many.rb +40 -0
- data/lib/mongoid/relations/eager/has_many.rb +37 -0
- data/lib/mongoid/relations/eager/has_one.rb +29 -0
- data/lib/mongoid/relations/embedded/batchable.rb +3 -4
- data/lib/mongoid/relations/embedded/many.rb +7 -27
- data/lib/mongoid/relations/macros.rb +2 -4
- data/lib/mongoid/relations/many.rb +30 -31
- data/lib/mongoid/relations/metadata.rb +6 -75
- 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 +10 -32
- data/lib/mongoid/relations/referenced/in.rb +2 -18
- data/lib/mongoid/relations/referenced/many.rb +9 -22
- data/lib/mongoid/relations/referenced/many_to_many.rb +10 -33
- data/lib/mongoid/relations/referenced/one.rb +2 -21
- data/lib/mongoid/relations/synchronization.rb +3 -3
- data/lib/mongoid/relations/touchable.rb +33 -0
- data/lib/mongoid/{reloading.rb → reloadable.rb} +6 -4
- data/lib/mongoid/{scoping.rb → scopable.rb} +26 -3
- data/lib/mongoid/selectable.rb +59 -0
- data/lib/mongoid/{serialization.rb → serializable.rb} +10 -1
- data/lib/mongoid/sessions.rb +37 -345
- data/lib/mongoid/sessions/factory.rb +2 -0
- data/lib/mongoid/sessions/options.rb +176 -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 +15 -1
- data/lib/mongoid/{sharding.rb → shardable.rb} +5 -1
- data/lib/mongoid/support/query_counter.rb +23 -0
- data/lib/mongoid/threaded.rb +0 -110
- data/lib/mongoid/threaded/lifecycle.rb +0 -28
- data/lib/mongoid/timestamps/updated/short.rb +2 -2
- data/lib/mongoid/{hierarchy.rb → traversable.rb} +9 -5
- data/lib/mongoid/{validations.rb → validatable.rb} +23 -9
- data/lib/mongoid/{validations → validatable}/associated.rb +3 -1
- 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 +3 -3
- data/lib/mongoid/version.rb +1 -1
- data/lib/rails/generators/mongoid/config/templates/mongoid.yml +9 -13
- 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 +59 -57
- data/lib/support/ruby_version.rb +1 -1
- data/spec/app/models/account.rb +2 -6
- data/spec/app/models/acolyte.rb +1 -0
- data/spec/app/models/actor.rb +0 -1
- data/spec/app/models/address.rb +6 -1
- data/spec/app/models/animal.rb +1 -1
- data/spec/app/models/appointment.rb +2 -2
- 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/dragon.rb +4 -0
- data/spec/app/models/drug.rb +1 -3
- data/spec/app/models/dungeon.rb +4 -0
- 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 +0 -2
- 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/login.rb +1 -1
- data/spec/app/models/movie.rb +1 -0
- data/spec/app/models/name.rb +3 -3
- data/spec/app/models/note.rb +1 -1
- data/spec/app/models/oscar.rb +1 -1
- data/spec/app/models/parent_doc.rb +1 -1
- data/spec/app/models/person.rb +13 -8
- data/spec/app/models/phone.rb +1 -3
- data/spec/app/models/player.rb +1 -1
- data/spec/app/models/post.rb +2 -1
- data/spec/app/models/quiz.rb +0 -3
- data/spec/app/models/record.rb +5 -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/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 +1 -1
- data/spec/app/models/video.rb +0 -4
- data/spec/app/models/wiki_page.rb +1 -4
- 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 +16 -16
- data/spec/mongoid/attributes_spec.rb +188 -434
- data/spec/mongoid/{dirty_spec.rb → changeable_spec.rb} +117 -148
- 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 +46 -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 +94 -94
- data/spec/mongoid/contextual/mongo_spec.rb +225 -139
- data/spec/mongoid/contextual/text_search_spec.rb +207 -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 +1063 -0
- data/spec/mongoid/{criterion/scoping_spec.rb → criteria/scopable_spec.rb} +31 -31
- data/spec/mongoid/criteria_spec.rb +530 -2207
- 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_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 +3 -3
- 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 +7 -7
- 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/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 +9 -9
- 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 +23 -23
- data/spec/mongoid/fields/standard_spec.rb +12 -12
- data/spec/mongoid/fields_spec.rb +168 -209
- data/spec/mongoid/{finders_spec.rb → findable_spec.rb} +62 -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} +105 -105
- data/spec/mongoid/log_subscriber_spec.rb +74 -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/{matchers → matchable}/ne_spec.rb +3 -3
- 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 +205 -0
- data/spec/mongoid/persistable/destroyable_spec.rb +148 -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 +432 -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} +19 -14
- 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 +36 -16
- data/spec/mongoid/relations/bindings/embedded/in_spec.rb +6 -6
- data/spec/mongoid/relations/bindings/embedded/many_spec.rb +2 -2
- data/spec/mongoid/relations/bindings/embedded/one_spec.rb +3 -3
- data/spec/mongoid/relations/bindings/referenced/in_spec.rb +12 -12
- data/spec/mongoid/relations/bindings/referenced/many_spec.rb +6 -6
- data/spec/mongoid/relations/bindings/referenced/many_to_many_spec.rb +9 -9
- data/spec/mongoid/relations/bindings/referenced/one_spec.rb +6 -6
- 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 +22 -33
- 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 +11 -24
- data/spec/mongoid/relations/builders_spec.rb +21 -21
- data/spec/mongoid/relations/cascading/delete_spec.rb +7 -7
- data/spec/mongoid/relations/cascading/destroy_spec.rb +2 -2
- data/spec/mongoid/relations/cascading/nullify_spec.rb +2 -2
- data/spec/mongoid/relations/cascading/restrict_spec.rb +3 -3
- 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 +143 -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 +55 -56
- data/spec/mongoid/relations/embedded/many_spec.rb +357 -367
- data/spec/mongoid/relations/embedded/one_spec.rb +98 -139
- data/spec/mongoid/relations/macros_spec.rb +108 -102
- data/spec/mongoid/relations/metadata_spec.rb +147 -241
- 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 +379 -522
- data/spec/mongoid/relations/referenced/many_to_many_spec.rb +345 -417
- data/spec/mongoid/relations/referenced/one_spec.rb +148 -263
- 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 +116 -116
- data/spec/mongoid/relations/touchable_spec.rb +296 -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} +74 -126
- data/spec/mongoid/selectable_spec.rb +134 -0
- data/spec/mongoid/{serialization_spec.rb → serializable_spec.rb} +111 -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 +92 -0
- data/spec/mongoid/sessions_spec.rb +288 -177
- data/spec/mongoid/{sharding_spec.rb → shardable_spec.rb} +8 -8
- data/spec/mongoid/state_spec.rb +10 -10
- 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/updated/short_spec.rb +10 -10
- data/spec/mongoid/timestamps/updated_spec.rb +8 -12
- data/spec/mongoid/timestamps_spec.rb +7 -11
- data/spec/mongoid/{hierarchy_spec.rb → traversable_spec.rb} +19 -19
- data/spec/mongoid/{validations → validatable}/associated_spec.rb +18 -18
- data/spec/mongoid/{validations → validatable}/format_spec.rb +6 -6
- data/spec/mongoid/{validations → validatable}/length_spec.rb +7 -7
- data/spec/mongoid/{validations → validatable}/numericality_spec.rb +1 -1
- data/spec/mongoid/{validations → validatable}/presence_spec.rb +31 -38
- data/spec/mongoid/{validations → validatable}/uniqueness_spec.rb +126 -183
- data/spec/mongoid/{validations_spec.rb → validatable_spec.rb} +28 -28
- data/spec/mongoid_spec.rb +8 -8
- data/spec/rails/mongoid_spec.rb +72 -87
- data/spec/spec_helper.rb +19 -17
- metadata +261 -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/criterion/findable.rb +0 -179
- 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/draft.rb +0 -9
- 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/#atomic_spec.rb# +0 -365
- 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/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
@@ -1,6 +1,6 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
|
3
|
-
describe Mongoid::
|
3
|
+
describe Mongoid::Composable do
|
4
4
|
|
5
5
|
describe ".prohibited_methods" do
|
6
6
|
|
@@ -8,14 +8,14 @@ describe Mongoid::Components do
|
|
8
8
|
described_class.prohibited_methods
|
9
9
|
end
|
10
10
|
|
11
|
-
Mongoid::
|
11
|
+
Mongoid::Composable::MODULES.each do |mod|
|
12
12
|
|
13
13
|
context "when checking in #{mod}" do
|
14
14
|
|
15
15
|
mod.instance_methods.each do |method|
|
16
16
|
|
17
17
|
it "includes #{method}" do
|
18
|
-
methods.
|
18
|
+
expect(methods).to include(method.to_sym)
|
19
19
|
end
|
20
20
|
end
|
21
21
|
end
|
@@ -25,7 +25,7 @@ describe Mongoid::Config::Environment do
|
|
25
25
|
end
|
26
26
|
|
27
27
|
it "returns the rails environment" do
|
28
|
-
described_class.env_name.
|
28
|
+
expect(described_class.env_name).to eq("production")
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
@@ -47,7 +47,7 @@ describe Mongoid::Config::Environment do
|
|
47
47
|
end
|
48
48
|
|
49
49
|
it "returns the sinatra environment" do
|
50
|
-
described_class.env_name.
|
50
|
+
expect(described_class.env_name).to eq("staging")
|
51
51
|
end
|
52
52
|
end
|
53
53
|
|
@@ -63,7 +63,7 @@ describe Mongoid::Config::Environment do
|
|
63
63
|
end
|
64
64
|
|
65
65
|
it "returns the rack environment" do
|
66
|
-
described_class.env_name.
|
66
|
+
expect(described_class.env_name).to eq("acceptance")
|
67
67
|
end
|
68
68
|
end
|
69
69
|
|
@@ -9,7 +9,7 @@ describe Mongoid::Config::Options do
|
|
9
9
|
describe "#defaults" do
|
10
10
|
|
11
11
|
it "returns the default options" do
|
12
|
-
config.defaults.
|
12
|
+
expect(config.defaults).to_not be_empty
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
@@ -22,15 +22,15 @@ describe Mongoid::Config::Options do
|
|
22
22
|
end
|
23
23
|
|
24
24
|
it "defines a getter" do
|
25
|
-
config.preload_models.
|
25
|
+
expect(config.preload_models).to be false
|
26
26
|
end
|
27
27
|
|
28
28
|
it "defines a setter" do
|
29
|
-
(config.preload_models = true).
|
29
|
+
(config.preload_models = expect(true)).to be true
|
30
30
|
end
|
31
31
|
|
32
32
|
it "defines a presence check" do
|
33
|
-
config.
|
33
|
+
expect(config).to_not be_preload_models
|
34
34
|
end
|
35
35
|
end
|
36
36
|
end
|
@@ -43,14 +43,14 @@ describe Mongoid::Config::Options do
|
|
43
43
|
end
|
44
44
|
|
45
45
|
it "resets the settings to the defaults" do
|
46
|
-
config.preload_models.
|
46
|
+
expect(config.preload_models).to be false
|
47
47
|
end
|
48
48
|
end
|
49
49
|
|
50
50
|
describe "#settings" do
|
51
51
|
|
52
52
|
it "returns the settings" do
|
53
|
-
config.settings.
|
53
|
+
expect(config.settings).to_not be_empty
|
54
54
|
end
|
55
55
|
end
|
56
56
|
end
|
data/spec/mongoid/config_spec.rb
CHANGED
@@ -12,7 +12,7 @@ describe Mongoid::Config do
|
|
12
12
|
describe "#configured?" do
|
13
13
|
|
14
14
|
after do
|
15
|
-
described_class.connect_to(database_id,
|
15
|
+
described_class.connect_to(database_id, read: :primary)
|
16
16
|
end
|
17
17
|
|
18
18
|
context "when a default session config exists" do
|
@@ -33,7 +33,7 @@ describe Mongoid::Config do
|
|
33
33
|
end
|
34
34
|
|
35
35
|
it "returns true" do
|
36
|
-
described_class.
|
36
|
+
expect(described_class).to be_configured
|
37
37
|
end
|
38
38
|
end
|
39
39
|
end
|
@@ -45,17 +45,17 @@ describe Mongoid::Config do
|
|
45
45
|
end
|
46
46
|
|
47
47
|
it "returns false" do
|
48
|
-
described_class.
|
48
|
+
expect(described_class).to_not be_configured
|
49
49
|
end
|
50
50
|
end
|
51
51
|
end
|
52
52
|
|
53
53
|
describe "#destructive_fields" do
|
54
54
|
|
55
|
-
Mongoid::
|
55
|
+
Mongoid::Composable.prohibited_methods.each do |method|
|
56
56
|
|
57
57
|
it "contains #{method}" do
|
58
|
-
described_class.destructive_fields.
|
58
|
+
expect(described_class.destructive_fields).to include(method)
|
59
59
|
end
|
60
60
|
end
|
61
61
|
end
|
@@ -99,44 +99,32 @@ describe Mongoid::Config do
|
|
99
99
|
described_class.reset
|
100
100
|
end
|
101
101
|
|
102
|
-
it "sets the allow dynamic fields option" do
|
103
|
-
described_class.allow_dynamic_fields.should be_true
|
104
|
-
end
|
105
|
-
|
106
|
-
it "sets the identity map option" do
|
107
|
-
described_class.identity_map_enabled.should be_false
|
108
|
-
end
|
109
|
-
|
110
102
|
it "sets the include root in json option" do
|
111
|
-
described_class.include_root_in_json.
|
103
|
+
expect(described_class.include_root_in_json).to be false
|
112
104
|
end
|
113
105
|
|
114
106
|
it "sets the include type with serialization option" do
|
115
|
-
described_class.include_type_for_serialization.
|
107
|
+
expect(described_class.include_type_for_serialization).to be false
|
116
108
|
end
|
117
109
|
|
118
110
|
it "sets the scope overwrite option" do
|
119
|
-
described_class.scope_overwrite_exception.
|
111
|
+
expect(described_class.scope_overwrite_exception).to be false
|
120
112
|
end
|
121
113
|
|
122
114
|
it "sets the preload models option" do
|
123
|
-
described_class.preload_models.
|
115
|
+
expect(described_class.preload_models).to be false
|
124
116
|
end
|
125
117
|
|
126
118
|
it "sets the raise not found error option" do
|
127
|
-
described_class.raise_not_found_error.
|
128
|
-
end
|
129
|
-
|
130
|
-
it "sets the skip version check option" do
|
131
|
-
described_class.skip_version_check.should be_true
|
119
|
+
expect(described_class.raise_not_found_error).to be true
|
132
120
|
end
|
133
121
|
|
134
122
|
it "sets the use activesupport time zone option" do
|
135
|
-
described_class.use_activesupport_time_zone.
|
123
|
+
expect(described_class.use_activesupport_time_zone).to be true
|
136
124
|
end
|
137
125
|
|
138
126
|
it "sets the use utc option" do
|
139
|
-
described_class.use_utc.
|
127
|
+
expect(described_class.use_utc).to be false
|
140
128
|
end
|
141
129
|
end
|
142
130
|
|
@@ -157,44 +145,32 @@ describe Mongoid::Config do
|
|
157
145
|
described_class.load!(file)
|
158
146
|
end
|
159
147
|
|
160
|
-
it "sets the allow dynamic fields option" do
|
161
|
-
described_class.allow_dynamic_fields.should be_true
|
162
|
-
end
|
163
|
-
|
164
|
-
it "sets the identity map option" do
|
165
|
-
described_class.identity_map_enabled.should be_false
|
166
|
-
end
|
167
|
-
|
168
148
|
it "sets the include root in json option" do
|
169
|
-
described_class.include_root_in_json.
|
149
|
+
expect(described_class.include_root_in_json).to be false
|
170
150
|
end
|
171
151
|
|
172
152
|
it "sets the include type with serialization option" do
|
173
|
-
described_class.include_type_for_serialization.
|
153
|
+
expect(described_class.include_type_for_serialization).to be false
|
174
154
|
end
|
175
155
|
|
176
156
|
it "sets the scope overwrite option" do
|
177
|
-
described_class.scope_overwrite_exception.
|
157
|
+
expect(described_class.scope_overwrite_exception).to be false
|
178
158
|
end
|
179
159
|
|
180
160
|
it "sets the preload models option" do
|
181
|
-
described_class.preload_models.
|
161
|
+
expect(described_class.preload_models).to be false
|
182
162
|
end
|
183
163
|
|
184
164
|
it "sets the raise not found error option" do
|
185
|
-
described_class.raise_not_found_error.
|
186
|
-
end
|
187
|
-
|
188
|
-
it "sets the skip version check option" do
|
189
|
-
described_class.skip_version_check.should be_true
|
165
|
+
expect(described_class.raise_not_found_error).to be true
|
190
166
|
end
|
191
167
|
|
192
168
|
it "sets the use activesupport time zone option" do
|
193
|
-
described_class.use_activesupport_time_zone.
|
169
|
+
expect(described_class.use_activesupport_time_zone).to be true
|
194
170
|
end
|
195
171
|
|
196
172
|
it "sets the use utc option" do
|
197
|
-
described_class.use_utc.
|
173
|
+
expect(described_class.use_utc).to be false
|
198
174
|
end
|
199
175
|
end
|
200
176
|
|
@@ -211,7 +187,7 @@ describe Mongoid::Config do
|
|
211
187
|
end
|
212
188
|
|
213
189
|
it "sets the default hosts" do
|
214
|
-
default[:hosts].
|
190
|
+
expect(default[:hosts]).to eq(["#{HOST}:#{PORT}"])
|
215
191
|
end
|
216
192
|
|
217
193
|
context "when the default has options" do
|
@@ -220,8 +196,8 @@ describe Mongoid::Config do
|
|
220
196
|
default["options"]
|
221
197
|
end
|
222
198
|
|
223
|
-
it "sets the
|
224
|
-
options["
|
199
|
+
it "sets the read option" do
|
200
|
+
expect(options["read"]).to eq("primary")
|
225
201
|
end
|
226
202
|
end
|
227
203
|
end
|
@@ -237,7 +213,7 @@ describe Mongoid::Config do
|
|
237
213
|
end
|
238
214
|
|
239
215
|
it "sets the secondary host" do
|
240
|
-
secondary["hosts"].
|
216
|
+
expect(secondary["hosts"]).to eq([ ENV["MONGOHQ_SINGLE_URL"] ])
|
241
217
|
end
|
242
218
|
end
|
243
219
|
end
|
@@ -253,7 +229,7 @@ describe Mongoid::Config do
|
|
253
229
|
end
|
254
230
|
|
255
231
|
it "does not try to assign options" do
|
256
|
-
described_class.
|
232
|
+
expect(described_class.preload_models).to be false
|
257
233
|
end
|
258
234
|
end
|
259
235
|
|
@@ -33,7 +33,7 @@ describe Mongoid::Contextual::Aggregable::Memory do
|
|
33
33
|
end
|
34
34
|
|
35
35
|
it "returns the avg of the provided field" do
|
36
|
-
avg.
|
36
|
+
expect(avg).to eq(750)
|
37
37
|
end
|
38
38
|
end
|
39
39
|
|
@@ -62,7 +62,7 @@ describe Mongoid::Contextual::Aggregable::Memory do
|
|
62
62
|
end
|
63
63
|
|
64
64
|
it "returns the avg of the provided field" do
|
65
|
-
avg.
|
65
|
+
expect(avg).to eq(7.5)
|
66
66
|
end
|
67
67
|
end
|
68
68
|
end
|
@@ -86,7 +86,7 @@ describe Mongoid::Contextual::Aggregable::Memory do
|
|
86
86
|
end
|
87
87
|
|
88
88
|
it "returns nil" do
|
89
|
-
avg.
|
89
|
+
expect(avg).to be_nil
|
90
90
|
end
|
91
91
|
end
|
92
92
|
end
|
@@ -121,7 +121,7 @@ describe Mongoid::Contextual::Aggregable::Memory do
|
|
121
121
|
end
|
122
122
|
|
123
123
|
it "returns the max of the provided field" do
|
124
|
-
max.
|
124
|
+
expect(max).to eq(1000)
|
125
125
|
end
|
126
126
|
|
127
127
|
context "when no documents match" do
|
@@ -139,7 +139,7 @@ describe Mongoid::Contextual::Aggregable::Memory do
|
|
139
139
|
end
|
140
140
|
|
141
141
|
it "returns nil" do
|
142
|
-
max.
|
142
|
+
expect(max).to be_nil
|
143
143
|
end
|
144
144
|
end
|
145
145
|
end
|
@@ -153,7 +153,7 @@ describe Mongoid::Contextual::Aggregable::Memory do
|
|
153
153
|
end
|
154
154
|
|
155
155
|
it "returns the document with the max value for the field" do
|
156
|
-
max.
|
156
|
+
expect(max).to eq(depeche)
|
157
157
|
end
|
158
158
|
end
|
159
159
|
end
|
@@ -188,7 +188,7 @@ describe Mongoid::Contextual::Aggregable::Memory do
|
|
188
188
|
end
|
189
189
|
|
190
190
|
it "returns the min of the provided field" do
|
191
|
-
min.
|
191
|
+
expect(min).to eq(500)
|
192
192
|
end
|
193
193
|
|
194
194
|
context "when no documents match" do
|
@@ -206,7 +206,7 @@ describe Mongoid::Contextual::Aggregable::Memory do
|
|
206
206
|
end
|
207
207
|
|
208
208
|
it "returns nil" do
|
209
|
-
min.
|
209
|
+
expect(min).to be_nil
|
210
210
|
end
|
211
211
|
end
|
212
212
|
end
|
@@ -220,7 +220,7 @@ describe Mongoid::Contextual::Aggregable::Memory do
|
|
220
220
|
end
|
221
221
|
|
222
222
|
it "returns the document with the min value for the field" do
|
223
|
-
min.
|
223
|
+
expect(min).to eq(tool)
|
224
224
|
end
|
225
225
|
end
|
226
226
|
end
|
@@ -255,7 +255,7 @@ describe Mongoid::Contextual::Aggregable::Memory do
|
|
255
255
|
end
|
256
256
|
|
257
257
|
it "returns the sum of the provided field" do
|
258
|
-
sum.
|
258
|
+
expect(sum).to eq(1500)
|
259
259
|
end
|
260
260
|
|
261
261
|
context "when no documents match" do
|
@@ -273,7 +273,7 @@ describe Mongoid::Contextual::Aggregable::Memory do
|
|
273
273
|
end
|
274
274
|
|
275
275
|
it "returns zero" do
|
276
|
-
sum.
|
276
|
+
expect(sum).to eq(0)
|
277
277
|
end
|
278
278
|
end
|
279
279
|
end
|
@@ -285,7 +285,7 @@ describe Mongoid::Contextual::Aggregable::Memory do
|
|
285
285
|
end
|
286
286
|
|
287
287
|
it "returns the sum for the provided block" do
|
288
|
-
sum.
|
288
|
+
expect(sum).to eq(1500)
|
289
289
|
end
|
290
290
|
end
|
291
291
|
end
|
@@ -31,23 +31,23 @@ describe Mongoid::Contextual::Aggregable::Mongo do
|
|
31
31
|
end
|
32
32
|
|
33
33
|
it "returns an avg" do
|
34
|
-
aggregates["avg"].
|
34
|
+
expect(aggregates["avg"]).to eq(900)
|
35
35
|
end
|
36
36
|
|
37
|
-
it "returns a count" do
|
38
|
-
aggregates["count"].
|
37
|
+
it "returns a count of documents with that field" do
|
38
|
+
expect(aggregates["count"]).to eq(2)
|
39
39
|
end
|
40
40
|
|
41
41
|
it "returns a max" do
|
42
|
-
aggregates["max"].
|
42
|
+
expect(aggregates["max"]).to eq(1000)
|
43
43
|
end
|
44
44
|
|
45
45
|
it "returns a min" do
|
46
|
-
aggregates["min"].
|
46
|
+
expect(aggregates["min"]).to eq(800)
|
47
47
|
end
|
48
48
|
|
49
49
|
it "returns a sum" do
|
50
|
-
aggregates["sum"].
|
50
|
+
expect(aggregates["sum"]).to eq(1800)
|
51
51
|
end
|
52
52
|
end
|
53
53
|
|
@@ -58,23 +58,23 @@ describe Mongoid::Contextual::Aggregable::Mongo do
|
|
58
58
|
end
|
59
59
|
|
60
60
|
it "returns an avg" do
|
61
|
-
aggregates["avg"].
|
61
|
+
expect(aggregates["avg"]).to eq(750)
|
62
62
|
end
|
63
63
|
|
64
|
-
it "returns a count" do
|
65
|
-
aggregates["count"].
|
64
|
+
it "returns a count of documents with that field" do
|
65
|
+
expect(aggregates["count"]).to eq(2)
|
66
66
|
end
|
67
67
|
|
68
68
|
it "returns a max" do
|
69
|
-
aggregates["max"].
|
69
|
+
expect(aggregates["max"]).to eq(1000)
|
70
70
|
end
|
71
71
|
|
72
72
|
it "returns a min" do
|
73
|
-
aggregates["min"].
|
73
|
+
expect(aggregates["min"]).to eq(500)
|
74
74
|
end
|
75
75
|
|
76
76
|
it "returns a sum" do
|
77
|
-
aggregates["sum"].
|
77
|
+
expect(aggregates["sum"]).to eq(1500)
|
78
78
|
end
|
79
79
|
end
|
80
80
|
|
@@ -89,23 +89,23 @@ describe Mongoid::Contextual::Aggregable::Mongo do
|
|
89
89
|
end
|
90
90
|
|
91
91
|
it "returns an avg" do
|
92
|
-
aggregates["avg"].
|
92
|
+
expect(aggregates["avg"]).to eq(1000)
|
93
93
|
end
|
94
94
|
|
95
|
-
it "returns a count" do
|
96
|
-
aggregates["count"].
|
95
|
+
it "returns a count of documents with that field" do
|
96
|
+
expect(aggregates["count"]).to eq(1)
|
97
97
|
end
|
98
98
|
|
99
99
|
it "returns a max" do
|
100
|
-
aggregates["max"].
|
100
|
+
expect(aggregates["max"]).to eq(1000)
|
101
101
|
end
|
102
102
|
|
103
103
|
it "returns a min" do
|
104
|
-
aggregates["min"].
|
104
|
+
expect(aggregates["min"]).to eq(1000)
|
105
105
|
end
|
106
106
|
|
107
107
|
it "returns a sum" do
|
108
|
-
aggregates["sum"].
|
108
|
+
expect(aggregates["sum"]).to eq(1000)
|
109
109
|
end
|
110
110
|
end
|
111
111
|
|
@@ -149,23 +149,23 @@ describe Mongoid::Contextual::Aggregable::Mongo do
|
|
149
149
|
end
|
150
150
|
|
151
151
|
it "returns an avg" do
|
152
|
-
aggregates["avg"].
|
152
|
+
expect(aggregates["avg"]).to be_nil
|
153
153
|
end
|
154
154
|
|
155
|
-
it "returns a count" do
|
156
|
-
aggregates["count"].
|
155
|
+
it "returns a count of documents with that field" do
|
156
|
+
expect(aggregates["count"]).to eq(0)
|
157
157
|
end
|
158
158
|
|
159
159
|
it "returns a max" do
|
160
|
-
aggregates["max"].
|
160
|
+
expect(aggregates["max"]).to be_nil
|
161
161
|
end
|
162
162
|
|
163
163
|
it "returns a min" do
|
164
|
-
aggregates["min"].
|
164
|
+
expect(aggregates["min"]).to be_nil
|
165
165
|
end
|
166
166
|
|
167
167
|
it "returns a sum" do
|
168
|
-
aggregates["sum"].
|
168
|
+
expect(aggregates["sum"]).to be_nil
|
169
169
|
end
|
170
170
|
end
|
171
171
|
|
@@ -192,7 +192,11 @@ describe Mongoid::Contextual::Aggregable::Mongo do
|
|
192
192
|
end
|
193
193
|
|
194
194
|
it "returns a min" do
|
195
|
-
aggregates["min"].
|
195
|
+
expect(aggregates["min"]).to eq(50)
|
196
|
+
end
|
197
|
+
|
198
|
+
it "returns a count of documents with that field" do
|
199
|
+
expect(aggregates["count"]).to eq(3)
|
196
200
|
end
|
197
201
|
end
|
198
202
|
|
@@ -214,7 +218,11 @@ describe Mongoid::Contextual::Aggregable::Mongo do
|
|
214
218
|
end
|
215
219
|
|
216
220
|
it "returns a min" do
|
217
|
-
aggregates["min"].
|
221
|
+
expect(aggregates["min"]).to eq(50)
|
222
|
+
end
|
223
|
+
|
224
|
+
it "returns a count of documents with that field" do
|
225
|
+
expect(aggregates["count"]).to eq(4)
|
218
226
|
end
|
219
227
|
end
|
220
228
|
end
|
@@ -230,7 +238,7 @@ describe Mongoid::Contextual::Aggregable::Mongo do
|
|
230
238
|
end
|
231
239
|
|
232
240
|
it "returns nil" do
|
233
|
-
aggregates.
|
241
|
+
expect(aggregates).to eq({ "count" => 0, "sum" => nil, "avg" => nil, "min" => nil, "max" => nil })
|
234
242
|
end
|
235
243
|
end
|
236
244
|
end
|
@@ -263,7 +271,7 @@ describe Mongoid::Contextual::Aggregable::Mongo do
|
|
263
271
|
end
|
264
272
|
|
265
273
|
it "returns the avg of the provided field" do
|
266
|
-
avg.
|
274
|
+
expect(avg).to eq(750)
|
267
275
|
end
|
268
276
|
end
|
269
277
|
|
@@ -286,7 +294,7 @@ describe Mongoid::Contextual::Aggregable::Mongo do
|
|
286
294
|
end
|
287
295
|
|
288
296
|
it "returns nil" do
|
289
|
-
avg.
|
297
|
+
expect(avg).to be_nil
|
290
298
|
end
|
291
299
|
end
|
292
300
|
end
|
@@ -319,7 +327,7 @@ describe Mongoid::Contextual::Aggregable::Mongo do
|
|
319
327
|
end
|
320
328
|
|
321
329
|
it "returns the max of the provided field" do
|
322
|
-
max.
|
330
|
+
expect(max).to eq(1000)
|
323
331
|
end
|
324
332
|
|
325
333
|
context "when no documents match" do
|
@@ -337,7 +345,7 @@ describe Mongoid::Contextual::Aggregable::Mongo do
|
|
337
345
|
end
|
338
346
|
|
339
347
|
it "returns nil" do
|
340
|
-
max.
|
348
|
+
expect(max).to be_nil
|
341
349
|
end
|
342
350
|
end
|
343
351
|
end
|
@@ -351,7 +359,7 @@ describe Mongoid::Contextual::Aggregable::Mongo do
|
|
351
359
|
end
|
352
360
|
|
353
361
|
it "returns the document with the max value for the field" do
|
354
|
-
max.
|
362
|
+
expect(max).to eq(depeche)
|
355
363
|
end
|
356
364
|
end
|
357
365
|
end
|
@@ -384,7 +392,7 @@ describe Mongoid::Contextual::Aggregable::Mongo do
|
|
384
392
|
end
|
385
393
|
|
386
394
|
it "returns the min of the provided field" do
|
387
|
-
min.
|
395
|
+
expect(min).to eq(500)
|
388
396
|
end
|
389
397
|
|
390
398
|
context "when no documents match" do
|
@@ -402,7 +410,7 @@ describe Mongoid::Contextual::Aggregable::Mongo do
|
|
402
410
|
end
|
403
411
|
|
404
412
|
it "returns nil" do
|
405
|
-
min.
|
413
|
+
expect(min).to be_nil
|
406
414
|
end
|
407
415
|
end
|
408
416
|
end
|
@@ -416,7 +424,7 @@ describe Mongoid::Contextual::Aggregable::Mongo do
|
|
416
424
|
end
|
417
425
|
|
418
426
|
it "returns the document with the min value for the field" do
|
419
|
-
min.
|
427
|
+
expect(min).to eq(tool)
|
420
428
|
end
|
421
429
|
end
|
422
430
|
end
|
@@ -449,7 +457,7 @@ describe Mongoid::Contextual::Aggregable::Mongo do
|
|
449
457
|
end
|
450
458
|
|
451
459
|
it "returns the sum of the provided field" do
|
452
|
-
sum.
|
460
|
+
expect(sum).to eq(1500)
|
453
461
|
end
|
454
462
|
|
455
463
|
context "when no documents match" do
|
@@ -467,7 +475,7 @@ describe Mongoid::Contextual::Aggregable::Mongo do
|
|
467
475
|
end
|
468
476
|
|
469
477
|
it "returns zero" do
|
470
|
-
sum.
|
478
|
+
expect(sum).to eq(0)
|
471
479
|
end
|
472
480
|
end
|
473
481
|
end
|
@@ -479,7 +487,7 @@ describe Mongoid::Contextual::Aggregable::Mongo do
|
|
479
487
|
end
|
480
488
|
|
481
489
|
it "returns the sum for the provided block" do
|
482
|
-
sum.
|
490
|
+
expect(sum).to eq(1500)
|
483
491
|
end
|
484
492
|
end
|
485
493
|
end
|