mongoid 3.1.7 → 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 +470 -9
- data/README.md +10 -7
- data/lib/config/locales/en.yml +34 -20
- data/lib/mongoid/atomic/paths/embedded/many.rb +1 -1
- data/lib/mongoid/atomic/paths/embedded/one.rb +1 -1
- data/lib/mongoid/atomic/paths/embedded.rb +0 -30
- data/lib/mongoid/atomic/paths/root.rb +0 -13
- data/lib/mongoid/atomic.rb +3 -14
- data/lib/mongoid/attributes/dynamic.rb +154 -0
- data/lib/mongoid/attributes/nested.rb +82 -0
- data/lib/mongoid/attributes/processing.rb +13 -66
- data/lib/mongoid/attributes.rb +63 -99
- data/lib/mongoid/{dirty.rb → changeable.rb} +32 -2
- data/lib/mongoid/composable.rb +105 -0
- data/lib/mongoid/config/options.rb +1 -1
- data/lib/mongoid/config.rb +3 -9
- data/lib/mongoid/contextual/aggregable/memory.rb +2 -2
- data/lib/mongoid/contextual/aggregable/mongo.rb +5 -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/contextual.rb +2 -0
- data/lib/mongoid/copyable.rb +2 -3
- data/lib/mongoid/{criterion → criteria}/findable.rb +7 -47
- data/lib/mongoid/{criterion/inspection.rb → criteria/inspectable.rb} +2 -2
- data/lib/mongoid/{criterion → criteria}/marshalable.rb +3 -1
- data/lib/mongoid/{criterion → criteria}/modifiable.rb +28 -8
- data/lib/mongoid/criteria/permission.rb +70 -0
- data/lib/mongoid/{criterion/scoping.rb → criteria/scopable.rb} +2 -2
- data/lib/mongoid/criteria.rb +39 -34
- data/lib/mongoid/document.rb +39 -24
- data/lib/mongoid/errors/document_not_destroyed.rb +25 -0
- data/lib/mongoid/errors/document_not_found.rb +2 -1
- data/lib/mongoid/errors/invalid_storage_options.rb +1 -1
- data/lib/mongoid/errors/invalid_storage_parent.rb +26 -0
- data/lib/mongoid/errors/invalid_value.rb +16 -0
- data/lib/mongoid/errors/mongoid_error.rb +1 -1
- data/lib/mongoid/errors/readonly_document.rb +24 -0
- data/lib/mongoid/errors.rb +4 -1
- data/lib/mongoid/extensions/array.rb +3 -3
- data/lib/mongoid/extensions/big_decimal.rb +1 -1
- data/lib/mongoid/extensions/boolean.rb +15 -17
- data/lib/mongoid/extensions/date.rb +1 -1
- data/lib/mongoid/extensions/date_time.rb +3 -3
- data/lib/mongoid/extensions/float.rb +2 -1
- data/lib/mongoid/extensions/hash.rb +3 -3
- data/lib/mongoid/extensions/integer.rb +1 -1
- data/lib/mongoid/extensions/object.rb +7 -7
- data/lib/mongoid/extensions/object_id.rb +5 -5
- data/lib/mongoid/extensions/range.rb +9 -3
- data/lib/mongoid/extensions/regexp.rb +1 -1
- data/lib/mongoid/extensions/set.rb +1 -1
- data/lib/mongoid/extensions/string.rb +6 -18
- data/lib/mongoid/extensions/symbol.rb +1 -1
- data/lib/mongoid/extensions/time.rb +3 -3
- data/lib/mongoid/extensions/time_with_zone.rb +1 -1
- data/lib/mongoid/extensions.rb +15 -7
- data/lib/mongoid/factory.rb +8 -6
- data/lib/mongoid/fields/foreign_key.rb +3 -3
- data/lib/mongoid/fields/localized.rb +1 -1
- data/lib/mongoid/fields/standard.rb +5 -17
- data/lib/mongoid/fields/validators/macro.rb +15 -5
- data/lib/mongoid/fields.rb +41 -8
- data/lib/mongoid/{finders.rb → findable.rb} +35 -7
- data/lib/mongoid/indexable/specification.rb +104 -0
- data/lib/mongoid/{indexes → indexable}/validators/options.rb +2 -1
- data/lib/mongoid/{indexes.rb → indexable.rb} +50 -55
- data/lib/mongoid/{inspection.rb → inspectable.rb} +15 -11
- data/lib/mongoid/{callbacks.rb → interceptable.rb} +30 -62
- data/lib/mongoid/log_subscriber.rb +55 -0
- data/lib/mongoid/{matchers → matchable}/all.rb +1 -1
- data/lib/mongoid/{matchers → matchable}/and.rb +2 -2
- data/lib/mongoid/{matchers → matchable}/default.rb +1 -1
- data/lib/mongoid/{matchers → matchable}/exists.rb +1 -1
- data/lib/mongoid/{matchers → matchable}/gt.rb +1 -1
- data/lib/mongoid/{matchers → matchable}/gte.rb +1 -1
- data/lib/mongoid/{matchers → matchable}/in.rb +2 -2
- data/lib/mongoid/{matchers → matchable}/lt.rb +1 -1
- data/lib/mongoid/{matchers → matchable}/lte.rb +1 -1
- data/lib/mongoid/{matchers → matchable}/ne.rb +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/matchable.rb +152 -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/persistable.rb +216 -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/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/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/builders.rb +2 -2
- data/lib/mongoid/relations/cascading.rb +3 -5
- data/lib/mongoid/relations/constraint.rb +1 -1
- data/lib/mongoid/relations/conversions.rb +1 -1
- data/lib/mongoid/relations/counter_cache.rb +39 -15
- data/lib/mongoid/relations/eager/base.rb +149 -0
- data/lib/mongoid/relations/eager/belongs_to.rb +31 -0
- data/lib/mongoid/relations/eager/has_and_belongs_to_many.rb +47 -0
- data/lib/mongoid/relations/eager/has_many.rb +38 -0
- data/lib/mongoid/relations/eager/has_one.rb +30 -0
- data/lib/mongoid/relations/eager.rb +46 -0
- data/lib/mongoid/relations/embedded/batchable.rb +4 -5
- data/lib/mongoid/relations/embedded/in.rb +4 -4
- data/lib/mongoid/relations/embedded/many.rb +14 -32
- data/lib/mongoid/relations/embedded/one.rb +1 -1
- data/lib/mongoid/relations/macros.rb +3 -4
- data/lib/mongoid/relations/many.rb +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/relations.rb +11 -25
- 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/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/sessions.rb +37 -345
- data/lib/mongoid/{sharding.rb → shardable.rb} +5 -1
- data/lib/mongoid/{state.rb → stateful.rb} +13 -1
- data/lib/mongoid/support/query_counter.rb +23 -0
- data/lib/mongoid/tasks/database.rake +31 -0
- data/lib/mongoid/tasks/database.rb +107 -0
- data/lib/mongoid/threaded/lifecycle.rb +0 -28
- data/lib/mongoid/threaded.rb +26 -172
- data/lib/mongoid/timestamps/updated/short.rb +2 -2
- data/lib/mongoid/{hierarchy.rb → traversable.rb} +15 -7
- 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/{validations.rb → validatable.rb} +23 -10
- data/lib/mongoid/version.rb +1 -1
- data/lib/mongoid.rb +10 -76
- data/lib/rails/generators/mongoid/config/templates/mongoid.yml +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/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/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 +334 -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 +46 -38
- data/spec/mongoid/contextual/atomic_spec.rb +59 -55
- 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 +713 -2419
- 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/{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 +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} +9 -9
- 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 -350
- data/spec/spec_helper.rb +26 -15
- metadata +262 -247
- data/lib/mongoid/atomic/positionable.rb +0 -73
- data/lib/mongoid/components.rb +0 -92
- data/lib/mongoid/config/inflections.rb +0 -6
- data/lib/mongoid/contextual/eager.rb +0 -158
- data/lib/mongoid/errors/versioning_not_on_root.rb +0 -23
- data/lib/mongoid/identity_map.rb +0 -163
- data/lib/mongoid/json.rb +0 -16
- data/lib/mongoid/matchers/strategies.rb +0 -97
- data/lib/mongoid/matchers.rb +0 -32
- data/lib/mongoid/multi_parameter_attributes.rb +0 -105
- data/lib/mongoid/nested_attributes.rb +0 -78
- data/lib/mongoid/observer.rb +0 -192
- data/lib/mongoid/paranoia.rb +0 -136
- data/lib/mongoid/persistence/atomic/add_to_set.rb +0 -47
- data/lib/mongoid/persistence/atomic/bit.rb +0 -35
- data/lib/mongoid/persistence/atomic/inc.rb +0 -45
- data/lib/mongoid/persistence/atomic/operation.rb +0 -154
- data/lib/mongoid/persistence/atomic/pop.rb +0 -32
- data/lib/mongoid/persistence/atomic/pull.rb +0 -32
- data/lib/mongoid/persistence/atomic/pull_all.rb +0 -32
- data/lib/mongoid/persistence/atomic/push.rb +0 -25
- data/lib/mongoid/persistence/atomic/push_all.rb +0 -25
- data/lib/mongoid/persistence/atomic/rename.rb +0 -30
- data/lib/mongoid/persistence/atomic/sets.rb +0 -28
- data/lib/mongoid/persistence/atomic/unset.rb +0 -27
- data/lib/mongoid/persistence/atomic.rb +0 -231
- data/lib/mongoid/persistence/deletion.rb +0 -31
- data/lib/mongoid/persistence/insertion.rb +0 -38
- data/lib/mongoid/persistence/modification.rb +0 -35
- data/lib/mongoid/persistence/operations/embedded/insert.rb +0 -46
- data/lib/mongoid/persistence/operations/embedded/remove.rb +0 -43
- data/lib/mongoid/persistence/operations/insert.rb +0 -34
- data/lib/mongoid/persistence/operations/remove.rb +0 -33
- data/lib/mongoid/persistence/operations/update.rb +0 -59
- data/lib/mongoid/persistence/operations/upsert.rb +0 -28
- data/lib/mongoid/persistence/operations.rb +0 -214
- data/lib/mongoid/persistence/upsertion.rb +0 -31
- data/lib/mongoid/persistence.rb +0 -357
- data/lib/mongoid/unit_of_work.rb +0 -61
- data/lib/mongoid/versioning.rb +0 -217
- data/lib/rack/mongoid/middleware/identity_map.rb +0 -39
- data/lib/rack/mongoid.rb +0 -2
- data/lib/rails/generators/mongoid/observer/observer_generator.rb +0 -17
- data/lib/rails/generators/mongoid/observer/templates/observer.rb.tt +0 -4
- data/spec/app/models/actor_observer.rb +0 -15
- data/spec/app/models/callback_recorder.rb +0 -25
- data/spec/app/models/paranoid_phone.rb +0 -25
- data/spec/app/models/paranoid_post.rb +0 -36
- data/spec/app/models/phone_observer.rb +0 -6
- data/spec/mongoid/attributes/processing_spec.rb +0 -149
- data/spec/mongoid/criterion/destructive_spec.rb +0 -101
- data/spec/mongoid/criterion/modifiable_spec.rb +0 -409
- data/spec/mongoid/criterion/modification_spec.rb +0 -402
- data/spec/mongoid/errors/versioning_not_on_root_spec.rb +0 -29
- data/spec/mongoid/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/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
|
@@ -9,19 +9,19 @@ describe Mongoid::Errors::InvalidStorageOptions do
|
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
it "contains the problem in the message" do
|
|
12
|
-
error.message.
|
|
12
|
+
expect(error.message).to include(
|
|
13
13
|
"Invalid options passed to Band.store_in: bad_option."
|
|
14
14
|
)
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
it "contains the summary in the message" do
|
|
18
|
-
error.message.
|
|
18
|
+
expect(error.message).to include(
|
|
19
19
|
"The :store_in macro takes only a hash of parameters with the"
|
|
20
20
|
)
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
it "contains the resolution in the message" do
|
|
24
|
-
error.message.
|
|
24
|
+
expect(error.message).to include(
|
|
25
25
|
"Change the options passed to store_in to match the documented API"
|
|
26
26
|
)
|
|
27
27
|
end
|
|
@@ -9,19 +9,19 @@ describe Mongoid::Errors::InvalidTime do
|
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
it "contains the problem in the message" do
|
|
12
|
-
error.message.
|
|
12
|
+
expect(error.message).to include(
|
|
13
13
|
"'this is not a date' is not a valid Time."
|
|
14
14
|
)
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
it "contains the summary in the message" do
|
|
18
|
-
error.message.
|
|
18
|
+
expect(error.message).to include(
|
|
19
19
|
"Mongoid tries to serialize the values for Date, DateTime, and Time"
|
|
20
20
|
)
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
it "contains the resolution in the message" do
|
|
24
|
-
error.message.
|
|
24
|
+
expect(error.message).to include(
|
|
25
25
|
"Make sure to pass parsable values to the field setter for Date"
|
|
26
26
|
)
|
|
27
27
|
end
|
|
@@ -9,19 +9,19 @@ describe Mongoid::Errors::InverseNotFound do
|
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
it "contains the problem in the message" do
|
|
12
|
-
error.message.
|
|
12
|
+
expect(error.message).to include(
|
|
13
13
|
"When adding a(n) Person to Town#citizens, Mongoid could not"
|
|
14
14
|
)
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
it "contains the summary in the message" do
|
|
18
|
-
error.message.
|
|
18
|
+
expect(error.message).to include(
|
|
19
19
|
"hen adding a document to a relation, Mongoid attempts to link"
|
|
20
20
|
)
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
it "contains the resolution in the message" do
|
|
24
|
-
error.message.
|
|
24
|
+
expect(error.message).to include(
|
|
25
25
|
"If an inverse is not required, like a belongs_to or"
|
|
26
26
|
)
|
|
27
27
|
end
|
|
@@ -9,19 +9,19 @@ describe Mongoid::Errors::MixedRelations do
|
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
it "contains the problem in the message" do
|
|
12
|
-
error.message.
|
|
12
|
+
expect(error.message).to include(
|
|
13
13
|
"Referencing a(n) Address document from the Post document"
|
|
14
14
|
)
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
it "contains the summary in the message" do
|
|
18
|
-
error.message.
|
|
18
|
+
expect(error.message).to include(
|
|
19
19
|
"In order to properly access a(n) Address from Post the reference"
|
|
20
20
|
)
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
it "contains the resolution in the message" do
|
|
24
|
-
error.message.
|
|
24
|
+
expect(error.message).to include(
|
|
25
25
|
"Consider not embedding Address, or do the key storage"
|
|
26
26
|
)
|
|
27
27
|
end
|
|
@@ -9,19 +9,19 @@ describe Mongoid::Errors::MixedSessionConfiguration do
|
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
it "contains the problem in the message" do
|
|
12
|
-
error.message.
|
|
12
|
+
expect(error.message).to include(
|
|
13
13
|
"Both uri and standard configuration options defined"
|
|
14
14
|
)
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
it "contains the summary in the message" do
|
|
18
|
-
error.message.
|
|
18
|
+
expect(error.message).to include(
|
|
19
19
|
"Instead of simply giving uri or standard options a preference"
|
|
20
20
|
)
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
it "contains the resolution in the message" do
|
|
24
|
-
error.message.
|
|
24
|
+
expect(error.message).to include(
|
|
25
25
|
"Provide either only a uri as configuration"
|
|
26
26
|
)
|
|
27
27
|
end
|
|
@@ -8,8 +8,8 @@ describe Mongoid::Errors::MongoidError do
|
|
|
8
8
|
|
|
9
9
|
before do
|
|
10
10
|
["message", "summary", "resolution"].each do |name|
|
|
11
|
-
::I18n.
|
|
12
|
-
with("mongoid.errors.messages.#{key}.#{name}", {
|
|
11
|
+
expect(::I18n).to receive(:translate).
|
|
12
|
+
with("mongoid.errors.messages.#{key}.#{name}", {}).
|
|
13
13
|
and_return(name)
|
|
14
14
|
end
|
|
15
15
|
|
|
@@ -19,30 +19,30 @@ describe Mongoid::Errors::MongoidError do
|
|
|
19
19
|
describe "#compose_message" do
|
|
20
20
|
|
|
21
21
|
it "sets ivar problem" do
|
|
22
|
-
error.instance_variable_get(:@problem).
|
|
22
|
+
expect(error.instance_variable_get(:@problem)).to be
|
|
23
23
|
end
|
|
24
24
|
|
|
25
25
|
it "sets ivar summary" do
|
|
26
|
-
error.instance_variable_get(:@summary).
|
|
26
|
+
expect(error.instance_variable_get(:@summary)).to be
|
|
27
27
|
end
|
|
28
28
|
|
|
29
29
|
it "sets ivar resolution" do
|
|
30
|
-
error.instance_variable_get(:@resolution).
|
|
30
|
+
expect(error.instance_variable_get(:@resolution)).to be
|
|
31
31
|
end
|
|
32
32
|
end
|
|
33
33
|
|
|
34
34
|
describe "#to_json" do
|
|
35
35
|
|
|
36
36
|
it "has problem" do
|
|
37
|
-
error.to_json.
|
|
37
|
+
expect(error.to_json).to include('"problem":"message"')
|
|
38
38
|
end
|
|
39
39
|
|
|
40
40
|
it "has summary" do
|
|
41
|
-
error.to_json.
|
|
41
|
+
expect(error.to_json).to include('"summary":"summary"')
|
|
42
42
|
end
|
|
43
43
|
|
|
44
44
|
it "has resolution" do
|
|
45
|
-
error.to_json.
|
|
45
|
+
expect(error.to_json).to include('"resolution":"resolution"')
|
|
46
46
|
end
|
|
47
47
|
end
|
|
48
48
|
end
|
|
@@ -9,19 +9,19 @@ describe Mongoid::Errors::NestedAttributesMetadataNotFound do
|
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
it "contains the problem in the message" do
|
|
12
|
-
error.message.
|
|
12
|
+
expect(error.message).to include(
|
|
13
13
|
"Could not find metadata for relation 'posts' on model: Person."
|
|
14
14
|
)
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
it "contains the summary in the message" do
|
|
18
|
-
error.message.
|
|
18
|
+
expect(error.message).to include(
|
|
19
19
|
"When defining nested attributes for a relation, Mongoid needs"
|
|
20
20
|
)
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
it "contains the resolution in the message" do
|
|
24
|
-
error.message.
|
|
24
|
+
expect(error.message).to include(
|
|
25
25
|
"Make sure that there is a relation defined named 'posts' on Person"
|
|
26
26
|
)
|
|
27
27
|
end
|
|
@@ -9,19 +9,19 @@ describe Mongoid::Errors::NoEnvironment do
|
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
it "contains the problem in the message" do
|
|
12
|
-
error.message.
|
|
12
|
+
expect(error.message).to include(
|
|
13
13
|
"Could not load the configuration since no environment was defined."
|
|
14
14
|
)
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
it "contains the summary in the message" do
|
|
18
|
-
error.message.
|
|
18
|
+
expect(error.message).to include(
|
|
19
19
|
"Mongoid attempted to find the appropriate environment but no Rails.env"
|
|
20
20
|
)
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
it "contains the resolution in the message" do
|
|
24
|
-
error.message.
|
|
24
|
+
expect(error.message).to include(
|
|
25
25
|
"Make sure some environment is set from the mentioned options"
|
|
26
26
|
)
|
|
27
27
|
end
|
|
@@ -9,19 +9,19 @@ describe Mongoid::Errors::NoMapReduceOutput do
|
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
it "contains the problem in the message" do
|
|
12
|
-
error.message.
|
|
12
|
+
expect(error.message).to include(
|
|
13
13
|
"No output location was specified for the map/reduce operation."
|
|
14
14
|
)
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
it "contains the summary in the message" do
|
|
18
|
-
error.message.
|
|
18
|
+
expect(error.message).to include(
|
|
19
19
|
"When executing a map/reduce, you must provide the output location"
|
|
20
20
|
)
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
it "contains the resolution in the message" do
|
|
24
|
-
error.message.
|
|
24
|
+
expect(error.message).to include(
|
|
25
25
|
"Provide the location that the output of the operation"
|
|
26
26
|
)
|
|
27
27
|
end
|
|
@@ -9,15 +9,15 @@ describe Mongoid::Errors::NoMetadata do
|
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
it "contains the problem in the message" do
|
|
12
|
-
error.message.
|
|
12
|
+
expect(error.message).to include("Metadata not found for document of type Address.")
|
|
13
13
|
end
|
|
14
14
|
|
|
15
15
|
it "contains the summary in the message" do
|
|
16
|
-
error.message.
|
|
16
|
+
expect(error.message).to include("Mongoid sets the metadata of a relation on the")
|
|
17
17
|
end
|
|
18
18
|
|
|
19
19
|
it "contains the resolution in the message" do
|
|
20
|
-
error.message.
|
|
20
|
+
expect(error.message).to include("Ensure that your relations on the Address model")
|
|
21
21
|
end
|
|
22
22
|
end
|
|
23
23
|
end
|
|
@@ -9,19 +9,19 @@ describe Mongoid::Errors::NoParent do
|
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
it "contains the problem in the message" do
|
|
12
|
-
error.message.
|
|
12
|
+
expect(error.message).to include(
|
|
13
13
|
"Cannot persist embedded document Address without a parent document."
|
|
14
14
|
)
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
it "contains the summary in the message" do
|
|
18
|
-
error.message.
|
|
18
|
+
expect(error.message).to include(
|
|
19
19
|
"If the document is embedded, in order to be persisted it must"
|
|
20
20
|
)
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
it "contains the resolution in the message" do
|
|
24
|
-
error.message.
|
|
24
|
+
expect(error.message).to include(
|
|
25
25
|
"Ensure that you've set the parent relation if instantiating"
|
|
26
26
|
)
|
|
27
27
|
end
|
|
@@ -9,19 +9,19 @@ describe Mongoid::Errors::NoSessionConfig do
|
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
it "contains the problem in the message" do
|
|
12
|
-
error.message.
|
|
12
|
+
expect(error.message).to include(
|
|
13
13
|
"No configuration could be found for a session named 'secondary'."
|
|
14
14
|
)
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
it "contains the summary in the message" do
|
|
18
|
-
error.message.
|
|
18
|
+
expect(error.message).to include(
|
|
19
19
|
"When attempting to create the new session, Mongoid could not find a session"
|
|
20
20
|
)
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
it "contains the resolution in the message" do
|
|
24
|
-
error.message.
|
|
24
|
+
expect(error.message).to include(
|
|
25
25
|
"Double check your mongoid.yml to make sure under the sessions"
|
|
26
26
|
)
|
|
27
27
|
end
|
|
@@ -9,19 +9,19 @@ describe Mongoid::Errors::NoSessionDatabase do
|
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
it "contains the problem in the message" do
|
|
12
|
-
error.message.
|
|
12
|
+
expect(error.message).to include(
|
|
13
13
|
"No database provided for session configuration: :secondary."
|
|
14
14
|
)
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
it "contains the summary in the message" do
|
|
18
|
-
error.message.
|
|
18
|
+
expect(error.message).to include(
|
|
19
19
|
"Each session configuration must provide a database so Mongoid"
|
|
20
20
|
)
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
it "contains the resolution in the message" do
|
|
24
|
-
error.message.
|
|
24
|
+
expect(error.message).to include(
|
|
25
25
|
"If configuring via a mongoid.yml, ensure that within your :secondary"
|
|
26
26
|
)
|
|
27
27
|
end
|
|
@@ -9,19 +9,19 @@ describe Mongoid::Errors::NoSessionHosts do
|
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
it "contains the problem in the message" do
|
|
12
|
-
error.message.
|
|
12
|
+
expect(error.message).to include(
|
|
13
13
|
"No hosts provided for session configuration: :secondary."
|
|
14
14
|
)
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
it "contains the summary in the message" do
|
|
18
|
-
error.message.
|
|
18
|
+
expect(error.message).to include(
|
|
19
19
|
"Each session configuration must provide hosts so Mongoid"
|
|
20
20
|
)
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
it "contains the resolution in the message" do
|
|
24
|
-
error.message.
|
|
24
|
+
expect(error.message).to include(
|
|
25
25
|
"If configuring via a mongoid.yml, ensure that within your :secondary"
|
|
26
26
|
)
|
|
27
27
|
end
|
|
@@ -9,19 +9,19 @@ describe Mongoid::Errors::NoSessionsConfig do
|
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
it "contains the problem in the message" do
|
|
12
|
-
error.message.
|
|
12
|
+
expect(error.message).to include(
|
|
13
13
|
"No sessions configuration provided."
|
|
14
14
|
)
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
it "contains the summary in the message" do
|
|
18
|
-
error.message.
|
|
18
|
+
expect(error.message).to include(
|
|
19
19
|
"Mongoid's configuration requires that you provide details"
|
|
20
20
|
)
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
it "contains the resolution in the message" do
|
|
24
|
-
error.message.
|
|
24
|
+
expect(error.message).to include(
|
|
25
25
|
"Double check your mongoid.yml to make sure that you have"
|
|
26
26
|
)
|
|
27
27
|
end
|
|
@@ -9,19 +9,19 @@ describe Mongoid::Errors::ReadonlyAttribute do
|
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
it "contains the problem in the message" do
|
|
12
|
-
error.message.
|
|
12
|
+
expect(error.message).to include(
|
|
13
13
|
"Attempted to set the readonly attribute 'title' with the value: mr."
|
|
14
14
|
)
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
it "contains the summary in the message" do
|
|
18
|
-
error.message.
|
|
18
|
+
expect(error.message).to include(
|
|
19
19
|
"Attributes flagged as readonly via Model.attr_readonly can only"
|
|
20
20
|
)
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
it "contains the resolution in the message" do
|
|
24
|
-
error.message.
|
|
24
|
+
expect(error.message).to include(
|
|
25
25
|
"Don't define 'title' as readonly, or do not attempt to update"
|
|
26
26
|
)
|
|
27
27
|
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
require "spec_helper"
|
|
2
|
+
|
|
3
|
+
describe Mongoid::Errors::ReadonlyDocument do
|
|
4
|
+
|
|
5
|
+
describe "#message" do
|
|
6
|
+
|
|
7
|
+
let(:error) do
|
|
8
|
+
described_class.new(Band)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
it "contains the problem in the message" do
|
|
12
|
+
expect(error.message).to include(
|
|
13
|
+
"Attempted to persist the readonly document 'Band'."
|
|
14
|
+
)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
it "contains the summary in the message" do
|
|
18
|
+
expect(error.message).to include(
|
|
19
|
+
"Documents loaded from the database using #only"
|
|
20
|
+
)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
it "contains the resolution in the message" do
|
|
24
|
+
expect(error.message).to include(
|
|
25
|
+
"Don't attempt to persist documents that are flagged as readonly."
|
|
26
|
+
)
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -9,19 +9,19 @@ describe Mongoid::Errors::ScopeOverwrite do
|
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
it "contains the problem in the message" do
|
|
12
|
-
error.message.
|
|
12
|
+
expect(error.message).to include(
|
|
13
13
|
"Cannot create scope :scope, because of existing method Person.scope."
|
|
14
14
|
)
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
it "contains the summary in the message" do
|
|
18
|
-
error.message.
|
|
18
|
+
expect(error.message).to include(
|
|
19
19
|
"When defining a scope that conflicts with a method that already exists"
|
|
20
20
|
)
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
it "contains the resolution in the message" do
|
|
24
|
-
error.message.
|
|
24
|
+
expect(error.message).to include(
|
|
25
25
|
"Change the name of the scope so it does not conflict with the already"
|
|
26
26
|
)
|
|
27
27
|
end
|
|
@@ -9,19 +9,19 @@ describe Mongoid::Errors::TooManyNestedAttributeRecords do
|
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
it "contains the problem in the message" do
|
|
12
|
-
error.message.
|
|
12
|
+
expect(error.message).to include(
|
|
13
13
|
"Accepting nested attributes for favorites is limited to 5 records."
|
|
14
14
|
)
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
it "contains the summary in the message" do
|
|
18
|
-
error.message.
|
|
18
|
+
expect(error.message).to include(
|
|
19
19
|
"More documents were sent to be processed than the allowed limit."
|
|
20
20
|
)
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
it "contains the resolution in the message" do
|
|
24
|
-
error.message.
|
|
24
|
+
expect(error.message).to include(
|
|
25
25
|
"The limit is set as an option to the macro, for example:"
|
|
26
26
|
)
|
|
27
27
|
end
|
|
@@ -9,20 +9,20 @@ describe Mongoid::Errors::UnknownAttribute do
|
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
it "contains the problem in the message" do
|
|
12
|
-
error.message.
|
|
12
|
+
expect(error.message).to include(
|
|
13
13
|
"Attempted to set a value for 'gender' which is not allowed on"
|
|
14
14
|
)
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
it "contains the summary in the message" do
|
|
18
|
-
error.message.
|
|
19
|
-
"
|
|
18
|
+
expect(error.message).to include(
|
|
19
|
+
"Without including Mongoid::Attributes::Dynamic in your model"
|
|
20
20
|
)
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
it "contains the resolution in the message" do
|
|
24
|
-
error.message.
|
|
25
|
-
"You can
|
|
24
|
+
expect(error.message).to include(
|
|
25
|
+
"You can include Mongoid::Attributes::Dynamic"
|
|
26
26
|
)
|
|
27
27
|
end
|
|
28
28
|
end
|
|
@@ -17,19 +17,19 @@ describe Mongoid::Errors::UnsavedDocument do
|
|
|
17
17
|
end
|
|
18
18
|
|
|
19
19
|
it "contains the problem in the message" do
|
|
20
|
-
error.message.
|
|
20
|
+
expect(error.message).to include(
|
|
21
21
|
"Attempted to save Post before the parent Person."
|
|
22
22
|
)
|
|
23
23
|
end
|
|
24
24
|
|
|
25
25
|
it "contains the summary in the message" do
|
|
26
|
-
error.message.
|
|
26
|
+
expect(error.message).to include(
|
|
27
27
|
"You cannot call create or create! through the relation"
|
|
28
28
|
)
|
|
29
29
|
end
|
|
30
30
|
|
|
31
31
|
it "contains the resolution in the message" do
|
|
32
|
-
error.message.
|
|
32
|
+
expect(error.message).to include(
|
|
33
33
|
"Make sure to only use create or create!"
|
|
34
34
|
)
|
|
35
35
|
end
|
|
@@ -9,19 +9,19 @@ describe Mongoid::Errors::UnsupportedJavascript do
|
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
it "contains the problem in the message" do
|
|
12
|
-
error.message.
|
|
12
|
+
expect(error.message).to include(
|
|
13
13
|
"Executing Javascript $where selector on an embedded criteria is not supported"
|
|
14
14
|
)
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
it "contains the summary in the message" do
|
|
18
|
-
error.message.
|
|
18
|
+
expect(error.message).to include(
|
|
19
19
|
"Mongoid only supports providing a hash of arguments to #where"
|
|
20
20
|
)
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
it "contains the resolution in the message" do
|
|
24
|
-
error.message.
|
|
24
|
+
expect(error.message).to include(
|
|
25
25
|
"Please provide a standard hash to #where when the criteria"
|
|
26
26
|
)
|
|
27
27
|
end
|
|
@@ -5,11 +5,11 @@ describe Mongoid::Errors::Validations do
|
|
|
5
5
|
describe "#message" do
|
|
6
6
|
|
|
7
7
|
let(:errors) do
|
|
8
|
-
|
|
8
|
+
double(full_messages: [ "Error 1", "Error 2" ], empty?: false)
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
let(:document) do
|
|
12
|
-
|
|
12
|
+
double(errors: errors, class: Person)
|
|
13
13
|
end
|
|
14
14
|
|
|
15
15
|
let(:error) do
|
|
@@ -17,29 +17,29 @@ describe Mongoid::Errors::Validations do
|
|
|
17
17
|
end
|
|
18
18
|
|
|
19
19
|
it "contains the problem in the message" do
|
|
20
|
-
error.message.
|
|
20
|
+
expect(error.message).to include(
|
|
21
21
|
"Validation of Person failed"
|
|
22
22
|
)
|
|
23
23
|
end
|
|
24
24
|
|
|
25
25
|
it "contains the summary in the message" do
|
|
26
|
-
error.message.
|
|
26
|
+
expect(error.message).to include(
|
|
27
27
|
"The following errors were found: Error 1, Error 2"
|
|
28
28
|
)
|
|
29
29
|
end
|
|
30
30
|
|
|
31
31
|
it "contains the resolution in the message" do
|
|
32
|
-
error.message.
|
|
32
|
+
expect(error.message).to include(
|
|
33
33
|
"Try persisting the document with valid data"
|
|
34
34
|
)
|
|
35
35
|
end
|
|
36
36
|
|
|
37
37
|
it "sets the document in the error" do
|
|
38
|
-
error.document.
|
|
38
|
+
expect(error.document).to eq(document)
|
|
39
39
|
end
|
|
40
40
|
|
|
41
41
|
it "aliases record to document" do
|
|
42
|
-
error.record.
|
|
42
|
+
expect(error.record).to eq(document)
|
|
43
43
|
end
|
|
44
44
|
end
|
|
45
45
|
end
|