mongoid 3.1.6 → 4.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +479 -8
- data/README.md +10 -7
- data/lib/config/locales/en.yml +34 -20
- data/lib/mongoid.rb +10 -76
- data/lib/mongoid/atomic.rb +3 -14
- data/lib/mongoid/atomic/paths/embedded.rb +0 -30
- data/lib/mongoid/atomic/paths/embedded/many.rb +1 -1
- data/lib/mongoid/atomic/paths/embedded/one.rb +1 -1
- data/lib/mongoid/atomic/paths/root.rb +0 -13
- data/lib/mongoid/attributes.rb +65 -101
- data/lib/mongoid/attributes/dynamic.rb +154 -0
- data/lib/mongoid/attributes/nested.rb +82 -0
- data/lib/mongoid/attributes/processing.rb +13 -66
- data/lib/mongoid/{dirty.rb → changeable.rb} +32 -2
- data/lib/mongoid/composable.rb +105 -0
- data/lib/mongoid/config.rb +3 -9
- data/lib/mongoid/config/options.rb +1 -1
- data/lib/mongoid/contextual.rb +2 -0
- data/lib/mongoid/contextual/aggregable/memory.rb +2 -2
- data/lib/mongoid/contextual/aggregable/mongo.rb +7 -9
- data/lib/mongoid/contextual/atomic.rb +53 -53
- data/lib/mongoid/contextual/geo_near.rb +1 -1
- data/lib/mongoid/contextual/map_reduce.rb +4 -2
- data/lib/mongoid/contextual/memory.rb +23 -11
- data/lib/mongoid/contextual/mongo.rb +75 -57
- data/lib/mongoid/contextual/none.rb +90 -0
- data/lib/mongoid/contextual/text_search.rb +178 -0
- data/lib/mongoid/copyable.rb +2 -3
- data/lib/mongoid/criteria.rb +39 -34
- data/lib/mongoid/criteria/#findable.rb# +141 -0
- data/lib/mongoid/{criterion → criteria}/findable.rb +7 -47
- data/lib/mongoid/{criterion/inspection.rb → criteria/inspectable.rb} +2 -2
- data/lib/mongoid/{criterion → criteria}/marshalable.rb +3 -1
- data/lib/mongoid/{criterion → criteria}/modifiable.rb +28 -8
- data/lib/mongoid/criteria/permission.rb +70 -0
- data/lib/mongoid/{criterion/scoping.rb → criteria/scopable.rb} +2 -2
- data/lib/mongoid/document.rb +39 -24
- data/lib/mongoid/errors.rb +4 -1
- data/lib/mongoid/errors/document_not_destroyed.rb +25 -0
- data/lib/mongoid/errors/document_not_found.rb +2 -1
- data/lib/mongoid/errors/invalid_storage_options.rb +1 -1
- data/lib/mongoid/errors/invalid_storage_parent.rb +26 -0
- data/lib/mongoid/errors/invalid_value.rb +16 -0
- data/lib/mongoid/errors/mongoid_error.rb +1 -1
- data/lib/mongoid/errors/readonly_document.rb +24 -0
- data/lib/mongoid/extensions.rb +15 -7
- data/lib/mongoid/extensions/array.rb +3 -3
- data/lib/mongoid/extensions/big_decimal.rb +1 -1
- data/lib/mongoid/extensions/boolean.rb +15 -17
- data/lib/mongoid/extensions/date.rb +1 -1
- data/lib/mongoid/extensions/date_time.rb +3 -3
- data/lib/mongoid/extensions/float.rb +2 -1
- data/lib/mongoid/extensions/hash.rb +3 -3
- data/lib/mongoid/extensions/integer.rb +1 -1
- data/lib/mongoid/extensions/object.rb +7 -7
- data/lib/mongoid/extensions/object_id.rb +5 -5
- data/lib/mongoid/extensions/range.rb +9 -3
- data/lib/mongoid/extensions/regexp.rb +1 -1
- data/lib/mongoid/extensions/set.rb +1 -1
- data/lib/mongoid/extensions/string.rb +6 -18
- data/lib/mongoid/extensions/symbol.rb +1 -1
- data/lib/mongoid/extensions/time.rb +3 -3
- data/lib/mongoid/extensions/time_with_zone.rb +1 -1
- data/lib/mongoid/factory.rb +8 -6
- data/lib/mongoid/fields.rb +41 -8
- data/lib/mongoid/fields/foreign_key.rb +3 -3
- data/lib/mongoid/fields/localized.rb +1 -1
- data/lib/mongoid/fields/standard.rb +5 -17
- data/lib/mongoid/fields/validators/macro.rb +15 -5
- data/lib/mongoid/{finders.rb → findable.rb} +35 -7
- data/lib/mongoid/{indexes.rb → indexable.rb} +50 -55
- data/lib/mongoid/indexable/specification.rb +104 -0
- data/lib/mongoid/{indexes → indexable}/validators/options.rb +2 -1
- data/lib/mongoid/{inspection.rb → inspectable.rb} +15 -11
- data/lib/mongoid/{callbacks.rb → interceptable.rb} +30 -62
- data/lib/mongoid/log_subscriber.rb +55 -0
- data/lib/mongoid/matchable.rb +152 -0
- data/lib/mongoid/{matchers → matchable}/all.rb +1 -1
- data/lib/mongoid/{matchers → matchable}/and.rb +2 -2
- data/lib/mongoid/{matchers → matchable}/default.rb +1 -1
- data/lib/mongoid/{matchers → matchable}/exists.rb +1 -1
- data/lib/mongoid/{matchers → matchable}/gt.rb +1 -1
- data/lib/mongoid/{matchers → matchable}/gte.rb +1 -1
- data/lib/mongoid/{matchers → matchable}/in.rb +2 -2
- data/lib/mongoid/{matchers → matchable}/lt.rb +1 -1
- data/lib/mongoid/{matchers → matchable}/lte.rb +1 -1
- data/lib/mongoid/{matchers → matchable}/ne.rb +2 -2
- data/lib/mongoid/{matchers → matchable}/nin.rb +3 -2
- data/lib/mongoid/{matchers → matchable}/or.rb +2 -2
- data/lib/mongoid/{matchers → matchable}/size.rb +1 -1
- data/lib/mongoid/persistable.rb +216 -0
- data/lib/mongoid/persistable/creatable.rb +189 -0
- data/lib/mongoid/persistable/deletable.rb +149 -0
- data/lib/mongoid/persistable/destroyable.rb +60 -0
- data/lib/mongoid/persistable/incrementable.rb +36 -0
- data/lib/mongoid/persistable/logical.rb +38 -0
- data/lib/mongoid/persistable/poppable.rb +39 -0
- data/lib/mongoid/persistable/pullable.rb +55 -0
- data/lib/mongoid/persistable/pushable.rb +62 -0
- data/lib/mongoid/persistable/renamable.rb +35 -0
- data/lib/mongoid/persistable/savable.rb +52 -0
- data/lib/mongoid/persistable/settable.rb +33 -0
- data/lib/mongoid/persistable/unsettable.rb +36 -0
- data/lib/mongoid/persistable/updatable.rb +153 -0
- data/lib/mongoid/persistable/upsertable.rb +55 -0
- data/lib/mongoid/positional.rb +71 -0
- data/lib/mongoid/query_cache.rb +255 -0
- data/lib/mongoid/railtie.rb +34 -60
- data/lib/mongoid/railties/database.rake +9 -25
- data/lib/mongoid/relations.rb +11 -25
- data/lib/mongoid/relations/accessors.rb +15 -51
- data/lib/mongoid/relations/auto_save.rb +15 -36
- data/lib/mongoid/relations/binding.rb +2 -25
- data/lib/mongoid/relations/bindings/embedded/in.rb +1 -1
- data/lib/mongoid/relations/bindings/embedded/many.rb +1 -3
- data/lib/mongoid/relations/bindings/referenced/in.rb +3 -8
- data/lib/mongoid/relations/bindings/referenced/many_to_many.rb +4 -2
- data/lib/mongoid/relations/builder.rb +1 -1
- data/lib/mongoid/relations/builders.rb +2 -2
- data/lib/mongoid/relations/builders/embedded/one.rb +1 -1
- data/lib/mongoid/relations/builders/nested_attributes/many.rb +10 -13
- data/lib/mongoid/relations/builders/nested_attributes/one.rb +5 -6
- data/lib/mongoid/relations/builders/referenced/in.rb +1 -1
- data/lib/mongoid/relations/builders/referenced/many.rb +1 -2
- data/lib/mongoid/relations/builders/referenced/many_to_many.rb +1 -2
- data/lib/mongoid/relations/builders/referenced/one.rb +1 -1
- data/lib/mongoid/relations/cascading.rb +3 -5
- data/lib/mongoid/relations/constraint.rb +1 -1
- data/lib/mongoid/relations/conversions.rb +1 -1
- data/lib/mongoid/relations/counter_cache.rb +39 -15
- data/lib/mongoid/relations/eager.rb +46 -0
- data/lib/mongoid/relations/eager/base.rb +149 -0
- data/lib/mongoid/relations/eager/belongs_to.rb +31 -0
- data/lib/mongoid/relations/eager/has_and_belongs_to_many.rb +47 -0
- data/lib/mongoid/relations/eager/has_many.rb +38 -0
- data/lib/mongoid/relations/eager/has_one.rb +30 -0
- data/lib/mongoid/relations/embedded/batchable.rb +4 -5
- data/lib/mongoid/relations/embedded/in.rb +4 -4
- data/lib/mongoid/relations/embedded/many.rb +14 -32
- data/lib/mongoid/relations/embedded/one.rb +1 -1
- data/lib/mongoid/relations/macros.rb +3 -4
- data/lib/mongoid/relations/many.rb +51 -31
- data/lib/mongoid/relations/marshalable.rb +3 -3
- data/lib/mongoid/relations/metadata.rb +14 -79
- data/lib/mongoid/relations/nested_builder.rb +2 -2
- data/lib/mongoid/relations/one.rb +1 -1
- data/lib/mongoid/relations/options.rb +1 -0
- data/lib/mongoid/relations/polymorphic.rb +0 -1
- data/lib/mongoid/relations/proxy.rb +21 -41
- data/lib/mongoid/relations/referenced/in.rb +4 -20
- data/lib/mongoid/relations/referenced/many.rb +22 -35
- data/lib/mongoid/relations/referenced/many_to_many.rb +19 -42
- data/lib/mongoid/relations/referenced/one.rb +6 -25
- data/lib/mongoid/relations/synchronization.rb +4 -4
- data/lib/mongoid/relations/targets/enumerable.rb +10 -10
- data/lib/mongoid/relations/touchable.rb +34 -1
- data/lib/mongoid/{reloading.rb → reloadable.rb} +7 -5
- data/lib/mongoid/{scoping.rb → scopable.rb} +36 -36
- data/lib/mongoid/selectable.rb +59 -0
- data/lib/mongoid/{serialization.rb → serializable.rb} +11 -2
- data/lib/mongoid/sessions.rb +37 -345
- data/lib/mongoid/sessions/factory.rb +2 -0
- data/lib/mongoid/sessions/options.rb +185 -0
- data/lib/mongoid/sessions/storage_options.rb +140 -0
- data/lib/mongoid/sessions/thread_options.rb +19 -0
- data/lib/mongoid/sessions/validators/storage.rb +16 -3
- data/lib/mongoid/{sharding.rb → shardable.rb} +5 -1
- data/lib/mongoid/{state.rb → stateful.rb} +13 -1
- data/lib/mongoid/support/query_counter.rb +23 -0
- data/lib/mongoid/tasks/database.rake +31 -0
- data/lib/mongoid/tasks/database.rb +107 -0
- data/lib/mongoid/threaded.rb +26 -172
- data/lib/mongoid/threaded/lifecycle.rb +0 -28
- data/lib/mongoid/timestamps/updated/short.rb +2 -2
- data/lib/mongoid/{hierarchy.rb → traversable.rb} +15 -7
- data/lib/mongoid/{validations.rb → validatable.rb} +23 -10
- data/lib/mongoid/{validations → validatable}/associated.rb +4 -2
- data/lib/mongoid/{validations → validatable}/format.rb +1 -1
- data/lib/mongoid/{validations → validatable}/length.rb +1 -1
- data/lib/mongoid/{validations → validatable}/localizable.rb +1 -1
- data/lib/mongoid/{validations → validatable}/macros.rb +4 -3
- data/lib/mongoid/{validations → validatable}/presence.rb +1 -1
- data/lib/mongoid/{validations → validatable}/queryable.rb +1 -2
- data/lib/mongoid/{validations → validatable}/uniqueness.rb +25 -21
- data/lib/mongoid/version.rb +1 -1
- data/lib/rails/generators/mongoid/config/templates/mongoid.yml +46 -25
- data/lib/rails/generators/mongoid/model/model_generator.rb +0 -1
- data/lib/rails/generators/mongoid/model/templates/model.rb.tt +0 -3
- data/lib/rails/generators/mongoid_generator.rb +3 -40
- data/lib/rails/mongoid.rb +0 -122
- data/lib/support/ruby_version.rb +1 -1
- data/spec/app/models/account.rb +2 -6
- data/spec/app/models/acolyte.rb +2 -1
- data/spec/app/models/actor.rb +0 -1
- data/spec/app/models/address.rb +8 -3
- data/spec/app/models/animal.rb +1 -1
- data/spec/app/models/appointment.rb +3 -3
- data/spec/app/models/article.rb +1 -4
- data/spec/app/models/audio.rb +5 -0
- data/spec/app/models/author.rb +0 -2
- data/spec/app/models/band.rb +3 -2
- data/spec/app/models/bar.rb +1 -0
- data/spec/app/models/book.rb +1 -0
- data/spec/app/models/building.rb +0 -2
- data/spec/app/models/building_address.rb +0 -2
- data/spec/app/models/bus.rb +1 -1
- data/spec/app/models/canvas.rb +1 -1
- data/spec/app/models/contextable_item.rb +5 -0
- data/spec/app/models/contractor.rb +0 -2
- data/spec/app/models/country_code.rb +1 -1
- data/spec/app/models/definition.rb +2 -2
- data/spec/app/models/dog.rb +1 -1
- data/spec/app/models/draft.rb +9 -0
- data/spec/app/models/dragon.rb +4 -0
- data/spec/app/models/drug.rb +1 -3
- data/spec/app/models/dungeon.rb +4 -0
- data/spec/app/models/edit.rb +5 -0
- data/spec/app/models/even.rb +7 -0
- data/spec/app/models/event.rb +1 -1
- data/spec/app/models/filesystem.rb +1 -0
- data/spec/app/models/fish.rb +0 -1
- data/spec/app/models/fruits.rb +6 -0
- data/spec/app/models/game.rb +0 -2
- data/spec/app/models/house.rb +1 -3
- data/spec/app/models/id_key.rb +6 -0
- data/spec/app/models/item.rb +1 -5
- data/spec/app/models/jar.rb +1 -1
- data/spec/app/models/label.rb +4 -4
- data/spec/app/models/line_item.rb +1 -1
- data/spec/app/models/login.rb +1 -1
- data/spec/app/models/message.rb +8 -0
- data/spec/app/models/movie.rb +1 -0
- data/spec/app/models/name.rb +3 -3
- data/spec/app/models/note.rb +3 -1
- data/spec/app/models/odd.rb +7 -0
- data/spec/app/models/oscar.rb +1 -1
- data/spec/app/models/parent_doc.rb +1 -1
- data/spec/app/models/person.rb +16 -10
- data/spec/app/models/phone.rb +1 -3
- data/spec/app/models/player.rb +3 -3
- data/spec/app/models/post.rb +5 -3
- data/spec/app/models/preference.rb +1 -1
- data/spec/app/models/quiz.rb +0 -3
- data/spec/app/models/record.rb +10 -5
- data/spec/app/models/registry.rb +1 -1
- data/spec/app/models/server.rb +1 -1
- data/spec/app/models/service.rb +3 -3
- data/spec/app/models/sound.rb +5 -0
- data/spec/app/models/symptom.rb +1 -1
- data/spec/app/models/template.rb +1 -1
- data/spec/app/models/title.rb +0 -1
- data/spec/app/models/track.rb +5 -5
- data/spec/app/models/tree.rb +3 -3
- data/spec/app/models/video.rb +1 -5
- data/spec/app/models/wiki_page.rb +2 -5
- data/spec/app/models/word.rb +3 -0
- data/spec/app/models/word_origin.rb +1 -1
- data/spec/config/mongoid.yml +7 -8
- data/spec/helpers.rb +18 -0
- data/spec/mongoid/#atomic_spec.rb# +365 -0
- data/spec/mongoid/atomic/modifiers_spec.rb +22 -22
- data/spec/mongoid/atomic/paths/embedded/many_spec.rb +8 -49
- data/spec/mongoid/atomic/paths/embedded/one_spec.rb +7 -49
- data/spec/mongoid/atomic/paths/root_spec.rb +3 -61
- data/spec/mongoid/atomic/paths_spec.rb +19 -19
- data/spec/mongoid/atomic_spec.rb +19 -19
- data/spec/mongoid/{nested_attributes_spec.rb → attributes/nested_spec.rb} +474 -592
- data/spec/mongoid/attributes/readonly_spec.rb +58 -18
- data/spec/mongoid/attributes_spec.rb +349 -434
- data/spec/mongoid/{dirty_spec.rb → changeable_spec.rb} +203 -153
- data/spec/mongoid/{components_spec.rb → composable_spec.rb} +3 -3
- data/spec/mongoid/config/environment_spec.rb +3 -3
- data/spec/mongoid/config/options_spec.rb +6 -6
- data/spec/mongoid/config_spec.rb +24 -48
- data/spec/mongoid/contextual/aggregable/memory_spec.rb +12 -12
- data/spec/mongoid/contextual/aggregable/mongo_spec.rb +78 -38
- data/spec/mongoid/contextual/atomic_spec.rb +60 -56
- data/spec/mongoid/contextual/find_and_modify_spec.rb +14 -14
- data/spec/mongoid/contextual/geo_near_spec.rb +22 -22
- data/spec/mongoid/contextual/map_reduce_spec.rb +27 -27
- data/spec/mongoid/contextual/memory_spec.rb +156 -94
- data/spec/mongoid/contextual/mongo_spec.rb +238 -150
- data/spec/mongoid/contextual/none_spec.rb +127 -0
- data/spec/mongoid/contextual/text_search_spec.rb +209 -0
- data/spec/mongoid/copyable_spec.rb +56 -68
- data/spec/mongoid/criteria/findable_spec.rb +991 -0
- data/spec/mongoid/{criterion/inspection_spec.rb → criteria/inspectable_spec.rb} +5 -5
- data/spec/mongoid/{criterion → criteria}/marshalable_spec.rb +2 -2
- data/spec/mongoid/criteria/modifiable_spec.rb +1252 -0
- data/spec/mongoid/{criterion/scoping_spec.rb → criteria/scopable_spec.rb} +37 -37
- data/spec/mongoid/criteria_spec.rb +715 -2421
- data/spec/mongoid/document_spec.rb +171 -121
- data/spec/mongoid/equality_spec.rb +22 -22
- data/spec/mongoid/errors/ambiguous_relationship_spec.rb +3 -3
- data/spec/mongoid/errors/callback_spec.rb +3 -3
- data/spec/mongoid/errors/delete_restriction_spec.rb +3 -3
- data/spec/mongoid/errors/document_not_destroyed_spec.rb +33 -0
- data/spec/mongoid/errors/document_not_found_spec.rb +11 -11
- data/spec/mongoid/errors/eager_load_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_collection_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_config_option_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_field_option_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_field_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_find_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_includes_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_index_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_options_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_path_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_scope_spec.rb +5 -5
- data/spec/mongoid/errors/invalid_set_polymorphic_relation_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_storage_options_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_time_spec.rb +3 -3
- data/spec/mongoid/errors/inverse_not_found_spec.rb +3 -3
- data/spec/mongoid/errors/mixed_relations_spec.rb +3 -3
- data/spec/mongoid/errors/mixed_session_configuration_spec.rb +3 -3
- data/spec/mongoid/errors/mongoid_error_spec.rb +8 -8
- data/spec/mongoid/errors/nested_attributes_metadata_not_found_spec.rb +3 -3
- data/spec/mongoid/errors/no_environment_spec.rb +3 -3
- data/spec/mongoid/errors/no_map_reduce_output_spec.rb +3 -3
- data/spec/mongoid/errors/no_metadata_spec.rb +3 -3
- data/spec/mongoid/errors/no_parent_spec.rb +3 -3
- data/spec/mongoid/errors/no_session_config_spec.rb +3 -3
- data/spec/mongoid/errors/no_session_database_spec.rb +3 -3
- data/spec/mongoid/errors/no_session_hosts_spec.rb +3 -3
- data/spec/mongoid/errors/no_sessions_config_spec.rb +3 -3
- data/spec/mongoid/errors/readonly_attribute_spec.rb +3 -3
- data/spec/mongoid/errors/readonly_document_spec.rb +29 -0
- data/spec/mongoid/errors/scope_overwrite_spec.rb +3 -3
- data/spec/mongoid/errors/too_many_nested_attribute_records_spec.rb +3 -3
- data/spec/mongoid/errors/unknown_attribute_spec.rb +5 -5
- data/spec/mongoid/errors/unsaved_document_spec.rb +3 -3
- data/spec/mongoid/errors/unsupported_javascript_spec.rb +3 -3
- data/spec/mongoid/errors/validations_spec.rb +7 -7
- data/spec/mongoid/extensions/array_spec.rb +61 -61
- data/spec/mongoid/extensions/big_decimal_spec.rb +11 -11
- data/spec/mongoid/extensions/binary_spec.rb +12 -12
- data/spec/mongoid/extensions/boolean_spec.rb +18 -18
- data/spec/mongoid/extensions/date_spec.rb +13 -13
- data/spec/mongoid/extensions/date_time_spec.rb +8 -8
- data/spec/mongoid/extensions/false_class_spec.rb +5 -5
- data/spec/mongoid/extensions/float_spec.rb +29 -15
- data/spec/mongoid/extensions/hash_spec.rb +29 -29
- data/spec/mongoid/extensions/integer_spec.rb +15 -15
- data/spec/mongoid/extensions/module_spec.rb +2 -2
- data/spec/mongoid/extensions/nil_class_spec.rb +1 -1
- data/spec/mongoid/extensions/object_id_spec.rb +134 -134
- data/spec/mongoid/extensions/object_spec.rb +26 -26
- data/spec/mongoid/extensions/range_spec.rb +61 -12
- data/spec/mongoid/extensions/regexp_spec.rb +4 -4
- data/spec/mongoid/extensions/set_spec.rb +4 -4
- data/spec/mongoid/extensions/string_spec.rb +35 -46
- data/spec/mongoid/extensions/symbol_spec.rb +9 -9
- data/spec/mongoid/extensions/time_spec.rb +49 -49
- data/spec/mongoid/extensions/time_with_zone_spec.rb +34 -34
- data/spec/mongoid/extensions/true_class_spec.rb +5 -5
- data/spec/mongoid/extensions_spec.rb +29 -0
- data/spec/mongoid/factory_spec.rb +15 -15
- data/spec/mongoid/fields/foreign_key_spec.rb +73 -66
- data/spec/mongoid/fields/internal/foreign_keys/array_spec.rb +15 -15
- data/spec/mongoid/fields/internal/foreign_keys/object_spec.rb +22 -22
- data/spec/mongoid/fields/localized_spec.rb +38 -23
- data/spec/mongoid/fields/standard_spec.rb +12 -12
- data/spec/mongoid/fields_spec.rb +263 -217
- data/spec/mongoid/findable_spec.rb +509 -0
- data/spec/mongoid/indexable/specification_spec.rb +102 -0
- data/spec/mongoid/{indexes_spec.rb → indexable_spec.rb} +171 -51
- data/spec/mongoid/{inspection_spec.rb → inspectable_spec.rb} +6 -14
- data/spec/mongoid/{callbacks_spec.rb → interceptable_spec.rb} +117 -116
- data/spec/mongoid/log_subscriber_spec.rb +75 -0
- data/spec/mongoid/loggable_spec.rb +1 -1
- data/spec/mongoid/{matchers → matchable}/all_spec.rb +4 -4
- data/spec/mongoid/{matchers → matchable}/and_spec.rb +11 -11
- data/spec/mongoid/{matchers → matchable}/default_spec.rb +15 -15
- data/spec/mongoid/{matchers → matchable}/exists_spec.rb +5 -5
- data/spec/mongoid/{matchers → matchable}/gt_spec.rb +9 -8
- data/spec/mongoid/{matchers → matchable}/gte_spec.rb +7 -7
- data/spec/mongoid/matchable/in_spec.rb +49 -0
- data/spec/mongoid/{matchers → matchable}/lt_spec.rb +7 -7
- data/spec/mongoid/{matchers → matchable}/lte_spec.rb +7 -7
- data/spec/mongoid/matchable/ne_spec.rb +46 -0
- data/spec/mongoid/matchable/nin_spec.rb +48 -0
- data/spec/mongoid/{matchers → matchable}/or_spec.rb +6 -6
- data/spec/mongoid/{matchers → matchable}/size_spec.rb +3 -3
- data/spec/mongoid/{matchers_spec.rb → matchable_spec.rb} +41 -41
- data/spec/mongoid/persistable/creatable_spec.rb +553 -0
- data/spec/mongoid/persistable/deletable_spec.rb +218 -0
- data/spec/mongoid/persistable/destroyable_spec.rb +192 -0
- data/spec/mongoid/persistable/incrementable_spec.rb +173 -0
- data/spec/mongoid/persistable/logical_spec.rb +143 -0
- data/spec/mongoid/persistable/poppable_spec.rb +115 -0
- data/spec/mongoid/persistable/pullable_spec.rb +228 -0
- data/spec/mongoid/persistable/pushable_spec.rb +258 -0
- data/spec/mongoid/persistable/renamable_spec.rb +135 -0
- data/spec/mongoid/persistable/savable_spec.rb +498 -0
- data/spec/mongoid/persistable/settable_spec.rb +162 -0
- data/spec/mongoid/persistable/unsettable_spec.rb +155 -0
- data/spec/mongoid/persistable/updatable_spec.rb +558 -0
- data/spec/mongoid/persistable/upsertable_spec.rb +106 -0
- data/spec/mongoid/persistable_spec.rb +206 -0
- data/spec/mongoid/{atomic/positionable_spec.rb → positional_spec.rb} +14 -19
- data/spec/mongoid/query_cache_spec.rb +263 -0
- data/spec/mongoid/railties/document_spec.rb +2 -2
- data/spec/mongoid/relations/accessors_spec.rb +53 -145
- data/spec/mongoid/relations/auto_save_spec.rb +37 -17
- data/spec/mongoid/relations/bindings/embedded/in_spec.rb +12 -12
- data/spec/mongoid/relations/bindings/embedded/many_spec.rb +3 -3
- data/spec/mongoid/relations/bindings/embedded/one_spec.rb +5 -5
- data/spec/mongoid/relations/bindings/referenced/in_spec.rb +26 -26
- data/spec/mongoid/relations/bindings/referenced/many_spec.rb +10 -10
- data/spec/mongoid/relations/bindings/referenced/many_to_many_spec.rb +19 -19
- data/spec/mongoid/relations/bindings/referenced/one_spec.rb +12 -12
- data/spec/mongoid/relations/builders/embedded/in_spec.rb +4 -4
- data/spec/mongoid/relations/builders/embedded/many_spec.rb +18 -18
- data/spec/mongoid/relations/builders/embedded/one_spec.rb +11 -11
- data/spec/mongoid/relations/builders/nested_attributes/many_spec.rb +12 -13
- data/spec/mongoid/relations/builders/nested_attributes/one_spec.rb +14 -14
- data/spec/mongoid/relations/builders/referenced/in_spec.rb +24 -35
- data/spec/mongoid/relations/builders/referenced/many_spec.rb +15 -15
- data/spec/mongoid/relations/builders/referenced/many_to_many_spec.rb +18 -18
- data/spec/mongoid/relations/builders/referenced/one_spec.rb +12 -25
- data/spec/mongoid/relations/builders_spec.rb +21 -21
- data/spec/mongoid/relations/cascading/delete_spec.rb +9 -9
- data/spec/mongoid/relations/cascading/destroy_spec.rb +6 -6
- data/spec/mongoid/relations/cascading/nullify_spec.rb +4 -4
- data/spec/mongoid/relations/cascading/restrict_spec.rb +7 -7
- data/spec/mongoid/relations/cascading_spec.rb +16 -16
- data/spec/mongoid/relations/constraint_spec.rb +8 -7
- data/spec/mongoid/relations/conversions_spec.rb +16 -14
- data/spec/mongoid/relations/counter_cache_spec.rb +85 -0
- data/spec/mongoid/relations/cyclic_spec.rb +18 -18
- data/spec/mongoid/relations/eager/belongs_to_spec.rb +154 -0
- data/spec/mongoid/relations/eager/has_and_belongs_to_many_spec.rb +117 -0
- data/spec/mongoid/relations/eager/has_many_spec.rb +207 -0
- data/spec/mongoid/relations/eager/has_one_spec.rb +163 -0
- data/spec/mongoid/relations/eager_spec.rb +228 -0
- data/spec/mongoid/relations/embedded/dirty_spec.rb +8 -8
- data/spec/mongoid/relations/embedded/in_spec.rb +56 -57
- data/spec/mongoid/relations/embedded/many_spec.rb +467 -372
- data/spec/mongoid/relations/embedded/one_spec.rb +108 -141
- data/spec/mongoid/relations/macros_spec.rb +108 -102
- data/spec/mongoid/relations/metadata_spec.rb +180 -255
- data/spec/mongoid/relations/options_spec.rb +1 -1
- data/spec/mongoid/relations/polymorphic_spec.rb +13 -17
- data/spec/mongoid/relations/proxy_spec.rb +2 -2
- data/spec/mongoid/relations/referenced/in_spec.rb +128 -303
- data/spec/mongoid/relations/referenced/many_spec.rb +587 -527
- data/spec/mongoid/relations/referenced/many_to_many_spec.rb +401 -424
- data/spec/mongoid/relations/referenced/one_spec.rb +149 -264
- data/spec/mongoid/relations/reflections_spec.rb +6 -6
- data/spec/mongoid/relations/synchronization_spec.rb +46 -50
- data/spec/mongoid/relations/targets/enumerable_spec.rb +118 -118
- data/spec/mongoid/relations/touchable_spec.rb +333 -0
- data/spec/mongoid/relations_spec.rb +16 -15
- data/spec/mongoid/{reloading_spec.rb → reloadable_spec.rb} +38 -55
- data/spec/mongoid/{scoping_spec.rb → scopable_spec.rb} +89 -164
- data/spec/mongoid/selectable_spec.rb +134 -0
- data/spec/mongoid/{serialization_spec.rb → serializable_spec.rb} +129 -82
- data/spec/mongoid/sessions/factory_spec.rb +49 -28
- data/spec/mongoid/sessions/mongo_uri_spec.rb +7 -7
- data/spec/mongoid/sessions/options_spec.rb +108 -0
- data/spec/mongoid/sessions_spec.rb +319 -178
- data/spec/mongoid/{sharding_spec.rb → shardable_spec.rb} +8 -8
- data/spec/mongoid/{state_spec.rb → stateful_spec.rb} +36 -11
- data/spec/mongoid/tasks/database_rake_spec.rb +285 -0
- data/spec/mongoid/tasks/database_spec.rb +160 -0
- data/spec/mongoid/threaded_spec.rb +17 -70
- data/spec/mongoid/timestamps/created/short_spec.rb +6 -6
- data/spec/mongoid/timestamps/created_spec.rb +5 -5
- data/spec/mongoid/timestamps/timeless_spec.rb +6 -6
- data/spec/mongoid/timestamps/updated/short_spec.rb +11 -11
- data/spec/mongoid/timestamps/updated_spec.rb +9 -13
- data/spec/mongoid/timestamps_spec.rb +9 -13
- data/spec/mongoid/{hierarchy_spec.rb → traversable_spec.rb} +19 -19
- data/spec/mongoid/{validations → validatable}/associated_spec.rb +45 -22
- data/spec/mongoid/{validations → validatable}/format_spec.rb +6 -6
- data/spec/mongoid/{validations → validatable}/length_spec.rb +14 -14
- data/spec/mongoid/{validations → validatable}/numericality_spec.rb +1 -1
- data/spec/mongoid/{validations → validatable}/presence_spec.rb +37 -44
- data/spec/mongoid/{validations → validatable}/uniqueness_spec.rb +184 -192
- data/spec/mongoid/{validations_spec.rb → validatable_spec.rb} +28 -28
- data/spec/mongoid_spec.rb +8 -8
- data/spec/rails/mongoid_spec.rb +19 -335
- data/spec/spec_helper.rb +31 -13
- metadata +303 -283
- data/lib/mongoid/atomic/positionable.rb +0 -73
- data/lib/mongoid/components.rb +0 -92
- data/lib/mongoid/config/inflections.rb +0 -6
- data/lib/mongoid/contextual/eager.rb +0 -158
- data/lib/mongoid/errors/versioning_not_on_root.rb +0 -23
- data/lib/mongoid/identity_map.rb +0 -163
- data/lib/mongoid/json.rb +0 -16
- data/lib/mongoid/matchers.rb +0 -32
- data/lib/mongoid/matchers/strategies.rb +0 -97
- data/lib/mongoid/multi_parameter_attributes.rb +0 -105
- data/lib/mongoid/nested_attributes.rb +0 -78
- data/lib/mongoid/observer.rb +0 -192
- data/lib/mongoid/paranoia.rb +0 -136
- data/lib/mongoid/persistence.rb +0 -357
- data/lib/mongoid/persistence/atomic.rb +0 -231
- data/lib/mongoid/persistence/atomic/add_to_set.rb +0 -47
- data/lib/mongoid/persistence/atomic/bit.rb +0 -35
- data/lib/mongoid/persistence/atomic/inc.rb +0 -45
- data/lib/mongoid/persistence/atomic/operation.rb +0 -154
- data/lib/mongoid/persistence/atomic/pop.rb +0 -32
- data/lib/mongoid/persistence/atomic/pull.rb +0 -32
- data/lib/mongoid/persistence/atomic/pull_all.rb +0 -32
- data/lib/mongoid/persistence/atomic/push.rb +0 -25
- data/lib/mongoid/persistence/atomic/push_all.rb +0 -25
- data/lib/mongoid/persistence/atomic/rename.rb +0 -30
- data/lib/mongoid/persistence/atomic/sets.rb +0 -28
- data/lib/mongoid/persistence/atomic/unset.rb +0 -27
- data/lib/mongoid/persistence/deletion.rb +0 -31
- data/lib/mongoid/persistence/insertion.rb +0 -38
- data/lib/mongoid/persistence/modification.rb +0 -35
- data/lib/mongoid/persistence/operations.rb +0 -214
- data/lib/mongoid/persistence/operations/embedded/insert.rb +0 -46
- data/lib/mongoid/persistence/operations/embedded/remove.rb +0 -43
- data/lib/mongoid/persistence/operations/insert.rb +0 -34
- data/lib/mongoid/persistence/operations/remove.rb +0 -33
- data/lib/mongoid/persistence/operations/update.rb +0 -59
- data/lib/mongoid/persistence/operations/upsert.rb +0 -28
- data/lib/mongoid/persistence/upsertion.rb +0 -31
- data/lib/mongoid/unit_of_work.rb +0 -61
- data/lib/mongoid/versioning.rb +0 -217
- data/lib/rack/mongoid.rb +0 -2
- data/lib/rack/mongoid/middleware/identity_map.rb +0 -39
- data/lib/rails/generators/mongoid/observer/observer_generator.rb +0 -17
- data/lib/rails/generators/mongoid/observer/templates/observer.rb.tt +0 -4
- data/spec/app/models/actor_observer.rb +0 -15
- data/spec/app/models/callback_recorder.rb +0 -25
- data/spec/app/models/paranoid_phone.rb +0 -25
- data/spec/app/models/paranoid_post.rb +0 -36
- data/spec/app/models/phone_observer.rb +0 -6
- data/spec/mongoid/attributes/processing_spec.rb +0 -149
- data/spec/mongoid/criterion/destructive_spec.rb +0 -101
- data/spec/mongoid/criterion/modifiable_spec.rb +0 -409
- data/spec/mongoid/criterion/modification_spec.rb +0 -402
- data/spec/mongoid/errors/versioning_not_on_root_spec.rb +0 -29
- data/spec/mongoid/finders_spec.rb +0 -321
- data/spec/mongoid/identity_map_spec.rb +0 -564
- data/spec/mongoid/json_spec.rb +0 -33
- data/spec/mongoid/matchers/in_spec.rb +0 -25
- data/spec/mongoid/matchers/ne_spec.rb +0 -25
- data/spec/mongoid/matchers/nin_spec.rb +0 -25
- data/spec/mongoid/multi_parameter_attributes_spec.rb +0 -128
- data/spec/mongoid/observer_spec.rb +0 -290
- data/spec/mongoid/paranoia_spec.rb +0 -759
- data/spec/mongoid/persistence/atomic/add_to_set_spec.rb +0 -262
- data/spec/mongoid/persistence/atomic/bit_spec.rb +0 -88
- data/spec/mongoid/persistence/atomic/inc_spec.rb +0 -133
- data/spec/mongoid/persistence/atomic/pop_spec.rb +0 -111
- data/spec/mongoid/persistence/atomic/pull_all_spec.rb +0 -77
- data/spec/mongoid/persistence/atomic/pull_spec.rb +0 -80
- data/spec/mongoid/persistence/atomic/push_all_spec.rb +0 -77
- data/spec/mongoid/persistence/atomic/push_spec.rb +0 -77
- data/spec/mongoid/persistence/atomic/rename_spec.rb +0 -42
- data/spec/mongoid/persistence/atomic/sets_spec.rb +0 -154
- data/spec/mongoid/persistence/atomic/unset_spec.rb +0 -65
- data/spec/mongoid/persistence/atomic_spec.rb +0 -216
- data/spec/mongoid/persistence/operations/embedded/insert_spec.rb +0 -191
- data/spec/mongoid/persistence/operations/embedded/remove_spec.rb +0 -8
- data/spec/mongoid/persistence/operations/insert_spec.rb +0 -149
- data/spec/mongoid/persistence/operations/remove_spec.rb +0 -113
- data/spec/mongoid/persistence/operations/update_spec.rb +0 -141
- data/spec/mongoid/persistence/operations/upsert_spec.rb +0 -59
- data/spec/mongoid/persistence/operations_spec.rb +0 -313
- data/spec/mongoid/persistence_spec.rb +0 -2279
- data/spec/mongoid/unit_of_work_spec.rb +0 -196
- data/spec/mongoid/versioning_spec.rb +0 -540
- data/spec/rack/mongoid/middleware/identity_map_spec.rb +0 -72
@@ -1,6 +1,6 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
|
3
|
-
describe Mongoid::
|
3
|
+
describe Mongoid::Validatable::FormatValidator do
|
4
4
|
|
5
5
|
describe "#validate_each" do
|
6
6
|
|
@@ -21,7 +21,7 @@ describe Mongoid::Validations::FormatValidator do
|
|
21
21
|
end
|
22
22
|
|
23
23
|
it "adds no errors" do
|
24
|
-
product.errors[:brand_name].
|
24
|
+
expect(product.errors[:brand_name]).to be_empty
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
@@ -32,7 +32,7 @@ describe Mongoid::Validations::FormatValidator do
|
|
32
32
|
end
|
33
33
|
|
34
34
|
it "adds errors" do
|
35
|
-
product.errors[:brand_name].
|
35
|
+
expect(product.errors[:brand_name]).to eq(["is invalid"])
|
36
36
|
end
|
37
37
|
end
|
38
38
|
end
|
@@ -50,7 +50,7 @@ describe Mongoid::Validations::FormatValidator do
|
|
50
50
|
end
|
51
51
|
|
52
52
|
it "adds no errors" do
|
53
|
-
product.errors[:website].
|
53
|
+
expect(product.errors[:website]).to be_empty
|
54
54
|
end
|
55
55
|
end
|
56
56
|
|
@@ -64,7 +64,7 @@ describe Mongoid::Validations::FormatValidator do
|
|
64
64
|
end
|
65
65
|
|
66
66
|
it "adds errors" do
|
67
|
-
product.errors[:website].
|
67
|
+
expect(product.errors[:website]).to eq(["is invalid"])
|
68
68
|
end
|
69
69
|
end
|
70
70
|
|
@@ -75,7 +75,7 @@ describe Mongoid::Validations::FormatValidator do
|
|
75
75
|
end
|
76
76
|
|
77
77
|
it "adds errors" do
|
78
|
-
product.errors[:website].
|
78
|
+
expect(product.errors[:website]).to eq(["is invalid"])
|
79
79
|
end
|
80
80
|
end
|
81
81
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
|
3
|
-
describe Mongoid::
|
3
|
+
describe Mongoid::Validatable::LengthValidator do
|
4
4
|
|
5
5
|
describe "#validate_each" do
|
6
6
|
|
@@ -21,7 +21,7 @@ describe Mongoid::Validations::LengthValidator do
|
|
21
21
|
end
|
22
22
|
|
23
23
|
it "adds no errors" do
|
24
|
-
product.errors[:brand_name].
|
24
|
+
expect(product.errors[:brand_name]).to be_empty
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
@@ -32,7 +32,7 @@ describe Mongoid::Validations::LengthValidator do
|
|
32
32
|
end
|
33
33
|
|
34
34
|
it "adds errors" do
|
35
|
-
product.errors[:brand_name].
|
35
|
+
expect(product.errors[:brand_name]).to eq(
|
36
36
|
["is too long (maximum is 5 characters)"]
|
37
37
|
)
|
38
38
|
end
|
@@ -52,7 +52,7 @@ describe Mongoid::Validations::LengthValidator do
|
|
52
52
|
end
|
53
53
|
|
54
54
|
it "adds no errors" do
|
55
|
-
product.errors[:website].
|
55
|
+
expect(product.errors[:website]).to be_empty
|
56
56
|
end
|
57
57
|
end
|
58
58
|
|
@@ -66,7 +66,7 @@ describe Mongoid::Validations::LengthValidator do
|
|
66
66
|
end
|
67
67
|
|
68
68
|
it "adds errors" do
|
69
|
-
product.errors[:website].
|
69
|
+
expect(product.errors[:website]).to eq(
|
70
70
|
["is too long (maximum is 5 characters)"]
|
71
71
|
)
|
72
72
|
end
|
@@ -79,7 +79,7 @@ describe Mongoid::Validations::LengthValidator do
|
|
79
79
|
end
|
80
80
|
|
81
81
|
it "adds errors" do
|
82
|
-
product.errors[:website].
|
82
|
+
expect(product.errors[:website]).to eq(
|
83
83
|
["is too long (maximum is 5 characters)"]
|
84
84
|
)
|
85
85
|
end
|
@@ -101,7 +101,7 @@ describe Mongoid::Validations::LengthValidator do
|
|
101
101
|
end
|
102
102
|
|
103
103
|
it "adds no errors" do
|
104
|
-
product.errors[:sku].
|
104
|
+
expect(product.errors[:sku]).to be_empty
|
105
105
|
end
|
106
106
|
end
|
107
107
|
|
@@ -112,7 +112,7 @@ describe Mongoid::Validations::LengthValidator do
|
|
112
112
|
end
|
113
113
|
|
114
114
|
it "adds errors" do
|
115
|
-
product.errors[:sku].
|
115
|
+
expect(product.errors[:sku]).to eq(["is too long (maximum is 5 characters)"])
|
116
116
|
end
|
117
117
|
end
|
118
118
|
end
|
@@ -130,7 +130,7 @@ describe Mongoid::Validations::LengthValidator do
|
|
130
130
|
end
|
131
131
|
|
132
132
|
it "adds no errors" do
|
133
|
-
product.errors[:stock_keeping_unit].
|
133
|
+
expect(product.errors[:stock_keeping_unit]).to be_empty
|
134
134
|
end
|
135
135
|
end
|
136
136
|
|
@@ -141,7 +141,7 @@ describe Mongoid::Validations::LengthValidator do
|
|
141
141
|
end
|
142
142
|
|
143
143
|
it "adds errors" do
|
144
|
-
product.errors[:stock_keeping_unit].
|
144
|
+
expect(product.errors[:stock_keeping_unit]).to eq(["is too long (maximum is 5 characters)"])
|
145
145
|
end
|
146
146
|
end
|
147
147
|
end
|
@@ -159,7 +159,7 @@ describe Mongoid::Validations::LengthValidator do
|
|
159
159
|
end
|
160
160
|
|
161
161
|
it "adds no errors" do
|
162
|
-
product.errors[:tagline].
|
162
|
+
expect(product.errors[:tagline]).to be_empty
|
163
163
|
end
|
164
164
|
end
|
165
165
|
|
@@ -173,7 +173,7 @@ describe Mongoid::Validations::LengthValidator do
|
|
173
173
|
end
|
174
174
|
|
175
175
|
it "adds errors" do
|
176
|
-
product.errors[:tagline].
|
176
|
+
expect(product.errors[:tagline]).to eq(["is too long (maximum is 5 characters)"])
|
177
177
|
end
|
178
178
|
end
|
179
179
|
|
@@ -184,7 +184,7 @@ describe Mongoid::Validations::LengthValidator do
|
|
184
184
|
end
|
185
185
|
|
186
186
|
it "adds errors" do
|
187
|
-
product.errors[:tagline].
|
187
|
+
expect(product.errors[:tagline]).to eq(["is too long (maximum is 5 characters)"])
|
188
188
|
end
|
189
189
|
end
|
190
190
|
end
|
@@ -215,7 +215,7 @@ describe Mongoid::Validations::LengthValidator do
|
|
215
215
|
end
|
216
216
|
|
217
217
|
it "adds the errors to the document" do
|
218
|
-
person.errors[:aliases].
|
218
|
+
expect(person.errors[:aliases]).to_not be_empty
|
219
219
|
end
|
220
220
|
end
|
221
221
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
|
3
|
-
describe Mongoid::
|
3
|
+
describe Mongoid::Validatable::PresenceValidator do
|
4
4
|
|
5
5
|
describe "#validate_each" do
|
6
6
|
|
@@ -21,7 +21,7 @@ describe Mongoid::Validations::PresenceValidator do
|
|
21
21
|
end
|
22
22
|
|
23
23
|
it "adds no errors" do
|
24
|
-
product.errors[:brand_name].
|
24
|
+
expect(product.errors[:brand_name]).to be_empty
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
@@ -32,7 +32,7 @@ describe Mongoid::Validations::PresenceValidator do
|
|
32
32
|
end
|
33
33
|
|
34
34
|
it "adds errors" do
|
35
|
-
product.errors[:brand_name].
|
35
|
+
expect(product.errors[:brand_name]).to eq(["can't be blank"])
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
@@ -43,7 +43,7 @@ describe Mongoid::Validations::PresenceValidator do
|
|
43
43
|
end
|
44
44
|
|
45
45
|
it "adds errors" do
|
46
|
-
product.errors[:brand_name].
|
46
|
+
expect(product.errors[:brand_name]).to eq(["can't be blank"])
|
47
47
|
end
|
48
48
|
end
|
49
49
|
end
|
@@ -57,7 +57,7 @@ describe Mongoid::Validations::PresenceValidator do
|
|
57
57
|
end
|
58
58
|
|
59
59
|
it "adds no errors" do
|
60
|
-
product.errors[:name].
|
60
|
+
expect(product.errors[:name]).to be_empty
|
61
61
|
end
|
62
62
|
end
|
63
63
|
|
@@ -68,7 +68,7 @@ describe Mongoid::Validations::PresenceValidator do
|
|
68
68
|
end
|
69
69
|
|
70
70
|
it "adds errors" do
|
71
|
-
product.errors[:name].
|
71
|
+
expect(product.errors[:name]).to eq(["can't be blank"])
|
72
72
|
end
|
73
73
|
end
|
74
74
|
|
@@ -79,7 +79,7 @@ describe Mongoid::Validations::PresenceValidator do
|
|
79
79
|
end
|
80
80
|
|
81
81
|
it "adds errors" do
|
82
|
-
product.errors[:name].
|
82
|
+
expect(product.errors[:name]).to eq(["can't be blank in en"])
|
83
83
|
end
|
84
84
|
end
|
85
85
|
|
@@ -90,7 +90,7 @@ describe Mongoid::Validations::PresenceValidator do
|
|
90
90
|
end
|
91
91
|
|
92
92
|
it "adds errors" do
|
93
|
-
product.errors[:name].
|
93
|
+
expect(product.errors[:name]).to eq(["can't be blank in en"])
|
94
94
|
end
|
95
95
|
end
|
96
96
|
|
@@ -105,7 +105,7 @@ describe Mongoid::Validations::PresenceValidator do
|
|
105
105
|
end
|
106
106
|
|
107
107
|
it "adds errors" do
|
108
|
-
product.errors[:name].
|
108
|
+
expect(product.errors[:name]).to eq(["can't be blank in de"])
|
109
109
|
end
|
110
110
|
end
|
111
111
|
|
@@ -120,7 +120,7 @@ describe Mongoid::Validations::PresenceValidator do
|
|
120
120
|
end
|
121
121
|
|
122
122
|
it "adds errors" do
|
123
|
-
product.errors[:name].
|
123
|
+
expect(product.errors[:name]).to eq(["can't be blank in en", "can't be blank in de"])
|
124
124
|
end
|
125
125
|
end
|
126
126
|
end
|
@@ -136,7 +136,7 @@ describe Mongoid::Validations::PresenceValidator do
|
|
136
136
|
end
|
137
137
|
|
138
138
|
it "adds no errors" do
|
139
|
-
product.errors[:sku].
|
139
|
+
expect(product.errors[:sku]).to be_empty
|
140
140
|
end
|
141
141
|
end
|
142
142
|
|
@@ -147,7 +147,7 @@ describe Mongoid::Validations::PresenceValidator do
|
|
147
147
|
end
|
148
148
|
|
149
149
|
it "adds errors" do
|
150
|
-
product.errors[:sku].
|
150
|
+
expect(product.errors[:sku]).to eq(["can't be blank"])
|
151
151
|
end
|
152
152
|
end
|
153
153
|
end
|
@@ -161,7 +161,7 @@ describe Mongoid::Validations::PresenceValidator do
|
|
161
161
|
end
|
162
162
|
|
163
163
|
it "adds no errors" do
|
164
|
-
product.errors[:stock_keeping_unit].
|
164
|
+
expect(product.errors[:stock_keeping_unit]).to be_empty
|
165
165
|
end
|
166
166
|
end
|
167
167
|
|
@@ -172,7 +172,7 @@ describe Mongoid::Validations::PresenceValidator do
|
|
172
172
|
end
|
173
173
|
|
174
174
|
it "adds errors" do
|
175
|
-
product.errors[:stock_keeping_unit].
|
175
|
+
expect(product.errors[:stock_keeping_unit]).to eq(["can't be blank"])
|
176
176
|
end
|
177
177
|
end
|
178
178
|
end
|
@@ -186,7 +186,7 @@ describe Mongoid::Validations::PresenceValidator do
|
|
186
186
|
end
|
187
187
|
|
188
188
|
it "adds no errors" do
|
189
|
-
product.errors[:tagline].
|
189
|
+
expect(product.errors[:tagline]).to be_empty
|
190
190
|
end
|
191
191
|
end
|
192
192
|
|
@@ -200,7 +200,7 @@ describe Mongoid::Validations::PresenceValidator do
|
|
200
200
|
end
|
201
201
|
|
202
202
|
it "adds errors" do
|
203
|
-
product.errors[:tagline].
|
203
|
+
expect(product.errors[:tagline]).to eq(["can't be blank in fr"])
|
204
204
|
end
|
205
205
|
end
|
206
206
|
end
|
@@ -212,12 +212,10 @@ describe Mongoid::Validations::PresenceValidator do
|
|
212
212
|
context "when the relation is a has one" do
|
213
213
|
|
214
214
|
before do
|
215
|
-
Person.autosaved_relations.delete_one(:game)
|
216
215
|
Person.validates :game, presence: true
|
217
216
|
end
|
218
217
|
|
219
218
|
after do
|
220
|
-
Person.autosaved_relations.clear
|
221
219
|
Person.reset_callbacks(:save)
|
222
220
|
Person.reset_callbacks(:validate)
|
223
221
|
end
|
@@ -241,7 +239,7 @@ describe Mongoid::Validations::PresenceValidator do
|
|
241
239
|
end
|
242
240
|
|
243
241
|
it "saves the relation" do
|
244
|
-
game.reload.
|
242
|
+
expect(game.reload).to eq(game)
|
245
243
|
end
|
246
244
|
end
|
247
245
|
end
|
@@ -260,11 +258,7 @@ describe Mongoid::Validations::PresenceValidator do
|
|
260
258
|
end
|
261
259
|
|
262
260
|
it "does not change autosave on the relation" do
|
263
|
-
Person.relations["game"][:autosave].
|
264
|
-
end
|
265
|
-
|
266
|
-
it "does not add any autosaved relations" do
|
267
|
-
Person.autosaved_relations.should be_empty
|
261
|
+
expect(Person.relations["game"][:autosave]).to be false
|
268
262
|
end
|
269
263
|
|
270
264
|
context "when the relation is new" do
|
@@ -316,7 +310,7 @@ describe Mongoid::Validations::PresenceValidator do
|
|
316
310
|
end
|
317
311
|
|
318
312
|
it "is not valid" do
|
319
|
-
line_item.
|
313
|
+
expect(line_item).to_not be_valid
|
320
314
|
end
|
321
315
|
end
|
322
316
|
end
|
@@ -329,7 +323,6 @@ describe Mongoid::Validations::PresenceValidator do
|
|
329
323
|
end
|
330
324
|
|
331
325
|
after do
|
332
|
-
Person.autosaved_relations.clear
|
333
326
|
Person.reset_callbacks(:save)
|
334
327
|
Person.reset_callbacks(:validate)
|
335
328
|
end
|
@@ -351,14 +344,14 @@ describe Mongoid::Validations::PresenceValidator do
|
|
351
344
|
end
|
352
345
|
|
353
346
|
it "is valid" do
|
354
|
-
loaded.
|
347
|
+
expect(loaded).to be_valid
|
355
348
|
end
|
356
349
|
end
|
357
350
|
|
358
351
|
context "when the relation is in memory" do
|
359
352
|
|
360
353
|
it "is valid" do
|
361
|
-
person.
|
354
|
+
expect(person).to be_valid
|
362
355
|
end
|
363
356
|
end
|
364
357
|
end
|
@@ -378,12 +371,12 @@ describe Mongoid::Validations::PresenceValidator do
|
|
378
371
|
end
|
379
372
|
|
380
373
|
it "is not a valid document" do
|
381
|
-
product.
|
374
|
+
expect(product).to_not be_valid
|
382
375
|
end
|
383
376
|
|
384
377
|
it "includes the proper errors" do
|
385
378
|
product.valid?
|
386
|
-
product.errors[:name].
|
379
|
+
expect(product.errors[:name]).to_not be_empty
|
387
380
|
end
|
388
381
|
end
|
389
382
|
|
@@ -398,12 +391,12 @@ describe Mongoid::Validations::PresenceValidator do
|
|
398
391
|
end
|
399
392
|
|
400
393
|
it "is not a valid document" do
|
401
|
-
product.
|
394
|
+
expect(product).to_not be_valid
|
402
395
|
end
|
403
396
|
|
404
397
|
it "includes the proper errors" do
|
405
398
|
product.valid?
|
406
|
-
product.errors[:name].
|
399
|
+
expect(product.errors[:name]).to_not be_empty
|
407
400
|
end
|
408
401
|
end
|
409
402
|
|
@@ -418,12 +411,12 @@ describe Mongoid::Validations::PresenceValidator do
|
|
418
411
|
end
|
419
412
|
|
420
413
|
it "is not a valid document" do
|
421
|
-
product.
|
414
|
+
expect(product).to_not be_valid
|
422
415
|
end
|
423
416
|
|
424
417
|
it "includes the proper errors" do
|
425
418
|
product.valid?
|
426
|
-
product.errors[:name].
|
419
|
+
expect(product.errors[:name]).to_not be_empty
|
427
420
|
end
|
428
421
|
end
|
429
422
|
|
@@ -438,12 +431,12 @@ describe Mongoid::Validations::PresenceValidator do
|
|
438
431
|
end
|
439
432
|
|
440
433
|
it "is not a valid document" do
|
441
|
-
product.
|
434
|
+
expect(product).to_not be_valid
|
442
435
|
end
|
443
436
|
|
444
437
|
it "includes the proper errors" do
|
445
438
|
product.valid?
|
446
|
-
product.errors[:name].
|
439
|
+
expect(product.errors[:name]).to_not be_empty
|
447
440
|
end
|
448
441
|
end
|
449
442
|
|
@@ -458,7 +451,7 @@ describe Mongoid::Validations::PresenceValidator do
|
|
458
451
|
end
|
459
452
|
|
460
453
|
it "is a valid document" do
|
461
|
-
product.
|
454
|
+
expect(product).to be_valid
|
462
455
|
end
|
463
456
|
end
|
464
457
|
end
|
@@ -483,7 +476,7 @@ describe Mongoid::Validations::PresenceValidator do
|
|
483
476
|
end
|
484
477
|
|
485
478
|
it "persists the changes" do
|
486
|
-
reloaded.products.
|
479
|
+
expect(reloaded.products).to eq(updated_products)
|
487
480
|
end
|
488
481
|
end
|
489
482
|
|
@@ -506,11 +499,11 @@ describe Mongoid::Validations::PresenceValidator do
|
|
506
499
|
end
|
507
500
|
|
508
501
|
it "does not destroy the models change list" do
|
509
|
-
manufacturer.changes.
|
502
|
+
expect(manufacturer.changes).to_not be_empty
|
510
503
|
end
|
511
504
|
|
512
505
|
it "maintains the list of changes" do
|
513
|
-
manufacturer.changes.
|
506
|
+
expect(manufacturer.changes).to eq({
|
514
507
|
"products" => [
|
515
508
|
[ "Laptop", "Tablet" ],
|
516
509
|
[ "Laptop", "Tablet", "Smartphone", "Desktop" ]
|
@@ -529,7 +522,7 @@ describe Mongoid::Validations::PresenceValidator do
|
|
529
522
|
context "when the value is false" do
|
530
523
|
|
531
524
|
it "is a valid document" do
|
532
|
-
template.
|
525
|
+
expect(template).to be_valid
|
533
526
|
end
|
534
527
|
end
|
535
528
|
|
@@ -540,7 +533,7 @@ describe Mongoid::Validations::PresenceValidator do
|
|
540
533
|
end
|
541
534
|
|
542
535
|
it "is a valid document" do
|
543
|
-
template.
|
536
|
+
expect(template).to be_valid
|
544
537
|
end
|
545
538
|
end
|
546
539
|
end
|
@@ -556,7 +549,7 @@ describe Mongoid::Validations::PresenceValidator do
|
|
556
549
|
end
|
557
550
|
|
558
551
|
it "adds the validation only to the instance" do
|
559
|
-
validators.
|
552
|
+
expect(validators).to eq([ described_class ])
|
560
553
|
end
|
561
554
|
end
|
562
555
|
|
@@ -584,7 +577,7 @@ describe Mongoid::Validations::PresenceValidator do
|
|
584
577
|
end
|
585
578
|
|
586
579
|
it "adds the errors to the document" do
|
587
|
-
person.errors[:aliases].
|
580
|
+
expect(person.errors[:aliases]).to_not be_empty
|
588
581
|
end
|
589
582
|
end
|
590
583
|
end
|