mongoid 3.1.7 → 4.0.0.alpha1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +317 -11
- data/README.md +4 -5
- data/lib/config/locales/en.yml +9 -12
- data/lib/mongoid.rb +6 -75
- data/lib/mongoid/atomic.rb +0 -11
- data/lib/mongoid/atomic/paths/embedded.rb +0 -30
- data/lib/mongoid/atomic/paths/root.rb +0 -13
- data/lib/mongoid/attributes.rb +30 -108
- data/lib/mongoid/attributes/dynamic.rb +154 -0
- data/lib/mongoid/attributes/nested.rb +82 -0
- data/lib/mongoid/attributes/processing.rb +13 -66
- data/lib/mongoid/{dirty.rb → changeable.rb} +5 -2
- data/lib/mongoid/composable.rb +104 -0
- data/lib/mongoid/config.rb +3 -9
- data/lib/mongoid/config/options.rb +1 -1
- data/lib/mongoid/contextual/aggregable/mongo.rb +5 -9
- data/lib/mongoid/contextual/atomic.rb +53 -53
- data/lib/mongoid/contextual/command.rb +26 -0
- data/lib/mongoid/contextual/map_reduce.rb +1 -1
- data/lib/mongoid/contextual/memory.rb +6 -5
- data/lib/mongoid/contextual/mongo.rb +59 -28
- data/lib/mongoid/contextual/text_search.rb +180 -0
- data/lib/mongoid/copyable.rb +2 -3
- data/lib/mongoid/criteria.rb +13 -33
- data/lib/mongoid/criteria/{#findable.rb# → findable.rb} +0 -2
- data/lib/mongoid/{criterion/inspection.rb → criteria/inspectable.rb} +2 -2
- data/lib/mongoid/{criterion → criteria}/marshalable.rb +3 -1
- data/lib/mongoid/{criterion → criteria}/modifiable.rb +1 -1
- data/lib/mongoid/{criterion/scoping.rb → criteria/scopable.rb} +2 -2
- data/lib/mongoid/document.rb +28 -12
- data/lib/mongoid/errors.rb +1 -1
- data/lib/mongoid/errors/document_not_found.rb +2 -1
- data/lib/mongoid/errors/invalid_value.rb +16 -0
- data/lib/mongoid/errors/mongoid_error.rb +1 -1
- data/lib/mongoid/extensions.rb +2 -7
- data/lib/mongoid/extensions/array.rb +2 -2
- data/lib/mongoid/extensions/boolean.rb +14 -17
- data/lib/mongoid/extensions/float.rb +1 -0
- data/lib/mongoid/extensions/hash.rb +1 -1
- data/lib/mongoid/extensions/object.rb +4 -4
- data/lib/mongoid/extensions/object_id.rb +5 -5
- data/lib/mongoid/extensions/range.rb +8 -2
- data/lib/mongoid/extensions/string.rb +5 -17
- data/lib/mongoid/extensions/time.rb +2 -2
- data/lib/mongoid/factory.rb +3 -3
- data/lib/mongoid/fields.rb +9 -8
- data/lib/mongoid/fields/foreign_key.rb +3 -3
- data/lib/mongoid/fields/standard.rb +4 -16
- data/lib/mongoid/fields/validators/macro.rb +11 -3
- data/lib/mongoid/{finders.rb → findable.rb} +6 -2
- data/lib/mongoid/{indexes.rb → indexable.rb} +50 -55
- data/lib/mongoid/indexable/specification.rb +104 -0
- data/lib/mongoid/{indexes → indexable}/validators/options.rb +2 -1
- data/lib/mongoid/{inspection.rb → inspectable.rb} +15 -11
- data/lib/mongoid/{callbacks.rb → interceptable.rb} +3 -52
- data/lib/mongoid/log_subscriber.rb +22 -0
- data/lib/mongoid/matchable.rb +152 -0
- data/lib/mongoid/{matchers → matchable}/all.rb +1 -1
- data/lib/mongoid/{matchers → matchable}/and.rb +2 -2
- data/lib/mongoid/{matchers → matchable}/default.rb +1 -1
- data/lib/mongoid/{matchers → matchable}/exists.rb +1 -1
- data/lib/mongoid/{matchers → matchable}/gt.rb +1 -1
- data/lib/mongoid/{matchers → matchable}/gte.rb +1 -1
- data/lib/mongoid/{matchers → matchable}/in.rb +2 -2
- data/lib/mongoid/{matchers → matchable}/lt.rb +1 -1
- data/lib/mongoid/{matchers → matchable}/lte.rb +1 -1
- data/lib/mongoid/{matchers → matchable}/ne.rb +1 -1
- data/lib/mongoid/{matchers → matchable}/nin.rb +3 -2
- data/lib/mongoid/{matchers → matchable}/or.rb +2 -2
- data/lib/mongoid/{matchers → matchable}/size.rb +1 -1
- data/lib/mongoid/persistable.rb +212 -0
- data/lib/mongoid/persistable/creatable.rb +188 -0
- data/lib/mongoid/persistable/deletable.rb +148 -0
- data/lib/mongoid/persistable/destroyable.rb +55 -0
- data/lib/mongoid/persistable/incrementable.rb +36 -0
- data/lib/mongoid/persistable/logical.rb +38 -0
- data/lib/mongoid/persistable/poppable.rb +39 -0
- data/lib/mongoid/persistable/pullable.rb +55 -0
- data/lib/mongoid/persistable/pushable.rb +62 -0
- data/lib/mongoid/persistable/renamable.rb +35 -0
- data/lib/mongoid/persistable/savable.rb +52 -0
- data/lib/mongoid/persistable/settable.rb +33 -0
- data/lib/mongoid/persistable/unsettable.rb +36 -0
- data/lib/mongoid/persistable/updatable.rb +151 -0
- data/lib/mongoid/persistable/upsertable.rb +55 -0
- data/lib/mongoid/positional.rb +71 -0
- data/lib/mongoid/railtie.rb +32 -45
- data/lib/mongoid/railties/database.rake +12 -6
- data/lib/mongoid/relations.rb +3 -3
- data/lib/mongoid/relations/accessors.rb +13 -46
- data/lib/mongoid/relations/auto_save.rb +15 -36
- data/lib/mongoid/relations/binding.rb +0 -23
- data/lib/mongoid/relations/bindings/embedded/many.rb +1 -3
- data/lib/mongoid/relations/bindings/referenced/in.rb +3 -8
- data/lib/mongoid/relations/bindings/referenced/many_to_many.rb +3 -1
- data/lib/mongoid/relations/builder.rb +1 -1
- data/lib/mongoid/relations/builders.rb +2 -2
- data/lib/mongoid/relations/builders/nested_attributes/many.rb +10 -13
- data/lib/mongoid/relations/builders/nested_attributes/one.rb +4 -5
- data/lib/mongoid/relations/builders/referenced/in.rb +1 -1
- data/lib/mongoid/relations/builders/referenced/many.rb +1 -2
- data/lib/mongoid/relations/builders/referenced/many_to_many.rb +1 -2
- data/lib/mongoid/relations/builders/referenced/one.rb +1 -1
- data/lib/mongoid/relations/cascading.rb +3 -5
- data/lib/mongoid/relations/constraint.rb +1 -1
- data/lib/mongoid/relations/conversions.rb +1 -1
- data/lib/mongoid/relations/counter_cache.rb +39 -15
- data/lib/mongoid/relations/eager.rb +47 -0
- data/lib/mongoid/relations/eager/base.rb +57 -0
- data/lib/mongoid/relations/eager/belongs_to.rb +30 -0
- data/lib/mongoid/relations/eager/has_and_belongs_to_many.rb +40 -0
- data/lib/mongoid/relations/eager/has_many.rb +37 -0
- data/lib/mongoid/relations/eager/has_one.rb +29 -0
- data/lib/mongoid/relations/embedded/batchable.rb +3 -4
- data/lib/mongoid/relations/embedded/many.rb +7 -27
- data/lib/mongoid/relations/macros.rb +2 -4
- data/lib/mongoid/relations/many.rb +30 -31
- data/lib/mongoid/relations/metadata.rb +6 -75
- data/lib/mongoid/relations/nested_builder.rb +2 -2
- data/lib/mongoid/relations/options.rb +1 -0
- data/lib/mongoid/relations/polymorphic.rb +0 -1
- data/lib/mongoid/relations/proxy.rb +10 -32
- data/lib/mongoid/relations/referenced/in.rb +2 -18
- data/lib/mongoid/relations/referenced/many.rb +9 -22
- data/lib/mongoid/relations/referenced/many_to_many.rb +10 -33
- data/lib/mongoid/relations/referenced/one.rb +2 -21
- data/lib/mongoid/relations/synchronization.rb +3 -3
- data/lib/mongoid/relations/touchable.rb +33 -0
- data/lib/mongoid/{reloading.rb → reloadable.rb} +6 -4
- data/lib/mongoid/{scoping.rb → scopable.rb} +26 -3
- data/lib/mongoid/selectable.rb +59 -0
- data/lib/mongoid/{serialization.rb → serializable.rb} +10 -1
- data/lib/mongoid/sessions.rb +37 -345
- data/lib/mongoid/sessions/factory.rb +2 -0
- data/lib/mongoid/sessions/options.rb +176 -0
- data/lib/mongoid/sessions/storage_options.rb +140 -0
- data/lib/mongoid/sessions/thread_options.rb +19 -0
- data/lib/mongoid/sessions/validators/storage.rb +15 -1
- data/lib/mongoid/{sharding.rb → shardable.rb} +5 -1
- data/lib/mongoid/support/query_counter.rb +23 -0
- data/lib/mongoid/threaded.rb +0 -110
- data/lib/mongoid/threaded/lifecycle.rb +0 -28
- data/lib/mongoid/timestamps/updated/short.rb +2 -2
- data/lib/mongoid/{hierarchy.rb → traversable.rb} +9 -5
- data/lib/mongoid/{validations.rb → validatable.rb} +23 -9
- data/lib/mongoid/{validations → validatable}/associated.rb +3 -1
- data/lib/mongoid/{validations → validatable}/format.rb +1 -1
- data/lib/mongoid/{validations → validatable}/length.rb +1 -1
- data/lib/mongoid/{validations → validatable}/localizable.rb +1 -1
- data/lib/mongoid/{validations → validatable}/macros.rb +4 -3
- data/lib/mongoid/{validations → validatable}/presence.rb +1 -1
- data/lib/mongoid/{validations → validatable}/queryable.rb +1 -2
- data/lib/mongoid/{validations → validatable}/uniqueness.rb +3 -3
- data/lib/mongoid/version.rb +1 -1
- data/lib/rails/generators/mongoid/config/templates/mongoid.yml +9 -13
- data/lib/rails/generators/mongoid/model/model_generator.rb +0 -1
- data/lib/rails/generators/mongoid/model/templates/model.rb.tt +0 -3
- data/lib/rails/generators/mongoid_generator.rb +3 -40
- data/lib/rails/mongoid.rb +59 -57
- data/lib/support/ruby_version.rb +1 -1
- data/spec/app/models/account.rb +2 -6
- data/spec/app/models/acolyte.rb +1 -0
- data/spec/app/models/actor.rb +0 -1
- data/spec/app/models/address.rb +6 -1
- data/spec/app/models/animal.rb +1 -1
- data/spec/app/models/appointment.rb +2 -2
- data/spec/app/models/article.rb +1 -4
- data/spec/app/models/audio.rb +5 -0
- data/spec/app/models/author.rb +0 -2
- data/spec/app/models/band.rb +3 -2
- data/spec/app/models/bar.rb +1 -0
- data/spec/app/models/book.rb +1 -0
- data/spec/app/models/building.rb +0 -2
- data/spec/app/models/building_address.rb +0 -2
- data/spec/app/models/bus.rb +1 -1
- data/spec/app/models/canvas.rb +1 -1
- data/spec/app/models/contractor.rb +0 -2
- data/spec/app/models/country_code.rb +1 -1
- data/spec/app/models/definition.rb +2 -2
- data/spec/app/models/dragon.rb +4 -0
- data/spec/app/models/drug.rb +1 -3
- data/spec/app/models/dungeon.rb +4 -0
- data/spec/app/models/filesystem.rb +1 -0
- data/spec/app/models/fish.rb +0 -1
- data/spec/app/models/fruits.rb +6 -0
- data/spec/app/models/game.rb +0 -2
- data/spec/app/models/house.rb +0 -2
- data/spec/app/models/item.rb +1 -5
- data/spec/app/models/jar.rb +1 -1
- data/spec/app/models/label.rb +4 -4
- data/spec/app/models/login.rb +1 -1
- data/spec/app/models/movie.rb +1 -0
- data/spec/app/models/name.rb +3 -3
- data/spec/app/models/note.rb +1 -1
- data/spec/app/models/oscar.rb +1 -1
- data/spec/app/models/parent_doc.rb +1 -1
- data/spec/app/models/person.rb +13 -8
- data/spec/app/models/phone.rb +1 -3
- data/spec/app/models/player.rb +1 -1
- data/spec/app/models/post.rb +2 -1
- data/spec/app/models/quiz.rb +0 -3
- data/spec/app/models/record.rb +5 -5
- data/spec/app/models/registry.rb +1 -1
- data/spec/app/models/server.rb +1 -1
- data/spec/app/models/service.rb +3 -3
- data/spec/app/models/sound.rb +5 -0
- data/spec/app/models/template.rb +1 -1
- data/spec/app/models/title.rb +0 -1
- data/spec/app/models/track.rb +5 -5
- data/spec/app/models/tree.rb +1 -1
- data/spec/app/models/video.rb +0 -4
- data/spec/app/models/wiki_page.rb +1 -4
- data/spec/app/models/word.rb +3 -0
- data/spec/app/models/word_origin.rb +1 -1
- data/spec/config/mongoid.yml +7 -8
- data/spec/helpers.rb +18 -0
- data/spec/mongoid/atomic/modifiers_spec.rb +22 -22
- data/spec/mongoid/atomic/paths/embedded/many_spec.rb +8 -49
- data/spec/mongoid/atomic/paths/embedded/one_spec.rb +7 -49
- data/spec/mongoid/atomic/paths/root_spec.rb +3 -61
- data/spec/mongoid/atomic/paths_spec.rb +19 -19
- data/spec/mongoid/atomic_spec.rb +19 -19
- data/spec/mongoid/{nested_attributes_spec.rb → attributes/nested_spec.rb} +335 -448
- data/spec/mongoid/attributes/readonly_spec.rb +16 -16
- data/spec/mongoid/attributes_spec.rb +188 -434
- data/spec/mongoid/{dirty_spec.rb → changeable_spec.rb} +117 -148
- data/spec/mongoid/{components_spec.rb → composable_spec.rb} +3 -3
- data/spec/mongoid/config/environment_spec.rb +3 -3
- data/spec/mongoid/config/options_spec.rb +6 -6
- data/spec/mongoid/config_spec.rb +24 -48
- data/spec/mongoid/contextual/aggregable/memory_spec.rb +12 -12
- data/spec/mongoid/contextual/aggregable/mongo_spec.rb +46 -38
- data/spec/mongoid/contextual/atomic_spec.rb +60 -56
- data/spec/mongoid/contextual/find_and_modify_spec.rb +14 -14
- data/spec/mongoid/contextual/geo_near_spec.rb +22 -22
- data/spec/mongoid/contextual/map_reduce_spec.rb +27 -27
- data/spec/mongoid/contextual/memory_spec.rb +94 -94
- data/spec/mongoid/contextual/mongo_spec.rb +225 -139
- data/spec/mongoid/contextual/text_search_spec.rb +207 -0
- data/spec/mongoid/copyable_spec.rb +56 -68
- data/spec/mongoid/criteria/findable_spec.rb +991 -0
- data/spec/mongoid/{criterion/inspection_spec.rb → criteria/inspectable_spec.rb} +5 -5
- data/spec/mongoid/{criterion → criteria}/marshalable_spec.rb +2 -2
- data/spec/mongoid/criteria/modifiable_spec.rb +1063 -0
- data/spec/mongoid/{criterion/scoping_spec.rb → criteria/scopable_spec.rb} +31 -31
- data/spec/mongoid/criteria_spec.rb +530 -2207
- data/spec/mongoid/document_spec.rb +166 -120
- data/spec/mongoid/equality_spec.rb +22 -22
- data/spec/mongoid/errors/ambiguous_relationship_spec.rb +3 -3
- data/spec/mongoid/errors/callback_spec.rb +3 -3
- data/spec/mongoid/errors/delete_restriction_spec.rb +3 -3
- data/spec/mongoid/errors/document_not_found_spec.rb +11 -11
- data/spec/mongoid/errors/eager_load_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_collection_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_config_option_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_field_option_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_field_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_find_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_includes_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_index_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_options_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_path_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_scope_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_set_polymorphic_relation_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_storage_options_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_time_spec.rb +3 -3
- data/spec/mongoid/errors/inverse_not_found_spec.rb +3 -3
- data/spec/mongoid/errors/mixed_relations_spec.rb +3 -3
- data/spec/mongoid/errors/mixed_session_configuration_spec.rb +3 -3
- data/spec/mongoid/errors/mongoid_error_spec.rb +7 -7
- data/spec/mongoid/errors/nested_attributes_metadata_not_found_spec.rb +3 -3
- data/spec/mongoid/errors/no_environment_spec.rb +3 -3
- data/spec/mongoid/errors/no_map_reduce_output_spec.rb +3 -3
- data/spec/mongoid/errors/no_metadata_spec.rb +3 -3
- data/spec/mongoid/errors/no_parent_spec.rb +3 -3
- data/spec/mongoid/errors/no_session_config_spec.rb +3 -3
- data/spec/mongoid/errors/no_session_database_spec.rb +3 -3
- data/spec/mongoid/errors/no_session_hosts_spec.rb +3 -3
- data/spec/mongoid/errors/no_sessions_config_spec.rb +3 -3
- data/spec/mongoid/errors/readonly_attribute_spec.rb +3 -3
- data/spec/mongoid/errors/scope_overwrite_spec.rb +3 -3
- data/spec/mongoid/errors/too_many_nested_attribute_records_spec.rb +3 -3
- data/spec/mongoid/errors/unknown_attribute_spec.rb +5 -5
- data/spec/mongoid/errors/unsaved_document_spec.rb +3 -3
- data/spec/mongoid/errors/unsupported_javascript_spec.rb +3 -3
- data/spec/mongoid/errors/validations_spec.rb +7 -7
- data/spec/mongoid/extensions/array_spec.rb +61 -61
- data/spec/mongoid/extensions/big_decimal_spec.rb +11 -11
- data/spec/mongoid/extensions/binary_spec.rb +12 -12
- data/spec/mongoid/extensions/boolean_spec.rb +18 -18
- data/spec/mongoid/extensions/date_spec.rb +13 -13
- data/spec/mongoid/extensions/date_time_spec.rb +9 -9
- data/spec/mongoid/extensions/false_class_spec.rb +5 -5
- data/spec/mongoid/extensions/float_spec.rb +29 -15
- data/spec/mongoid/extensions/hash_spec.rb +29 -29
- data/spec/mongoid/extensions/integer_spec.rb +15 -15
- data/spec/mongoid/extensions/module_spec.rb +2 -2
- data/spec/mongoid/extensions/nil_class_spec.rb +1 -1
- data/spec/mongoid/extensions/object_id_spec.rb +134 -134
- data/spec/mongoid/extensions/object_spec.rb +26 -26
- data/spec/mongoid/extensions/range_spec.rb +61 -12
- data/spec/mongoid/extensions/regexp_spec.rb +4 -4
- data/spec/mongoid/extensions/set_spec.rb +4 -4
- data/spec/mongoid/extensions/string_spec.rb +35 -46
- data/spec/mongoid/extensions/symbol_spec.rb +9 -9
- data/spec/mongoid/extensions/time_spec.rb +49 -49
- data/spec/mongoid/extensions/time_with_zone_spec.rb +34 -34
- data/spec/mongoid/extensions/true_class_spec.rb +5 -5
- data/spec/mongoid/extensions_spec.rb +15 -0
- data/spec/mongoid/factory_spec.rb +15 -15
- data/spec/mongoid/fields/foreign_key_spec.rb +73 -66
- data/spec/mongoid/fields/internal/foreign_keys/array_spec.rb +15 -15
- data/spec/mongoid/fields/internal/foreign_keys/object_spec.rb +22 -22
- data/spec/mongoid/fields/localized_spec.rb +23 -23
- data/spec/mongoid/fields/standard_spec.rb +12 -12
- data/spec/mongoid/fields_spec.rb +168 -209
- data/spec/mongoid/{finders_spec.rb → findable_spec.rb} +62 -27
- data/spec/mongoid/indexable/specification_spec.rb +102 -0
- data/spec/mongoid/{indexes_spec.rb → indexable_spec.rb} +171 -51
- data/spec/mongoid/{inspection_spec.rb → inspectable_spec.rb} +6 -14
- data/spec/mongoid/{callbacks_spec.rb → interceptable_spec.rb} +105 -105
- data/spec/mongoid/log_subscriber_spec.rb +74 -0
- data/spec/mongoid/loggable_spec.rb +1 -1
- data/spec/mongoid/{matchers → matchable}/all_spec.rb +4 -4
- data/spec/mongoid/{matchers → matchable}/and_spec.rb +11 -11
- data/spec/mongoid/{matchers → matchable}/default_spec.rb +15 -15
- data/spec/mongoid/{matchers → matchable}/exists_spec.rb +5 -5
- data/spec/mongoid/{matchers → matchable}/gt_spec.rb +9 -8
- data/spec/mongoid/{matchers → matchable}/gte_spec.rb +7 -7
- data/spec/mongoid/matchable/in_spec.rb +49 -0
- data/spec/mongoid/{matchers → matchable}/lt_spec.rb +7 -7
- data/spec/mongoid/{matchers → matchable}/lte_spec.rb +7 -7
- data/spec/mongoid/{matchers → matchable}/ne_spec.rb +3 -3
- data/spec/mongoid/matchable/nin_spec.rb +48 -0
- data/spec/mongoid/{matchers → matchable}/or_spec.rb +6 -6
- data/spec/mongoid/{matchers → matchable}/size_spec.rb +3 -3
- data/spec/mongoid/{matchers_spec.rb → matchable_spec.rb} +41 -41
- data/spec/mongoid/persistable/creatable_spec.rb +512 -0
- data/spec/mongoid/persistable/deletable_spec.rb +205 -0
- data/spec/mongoid/persistable/destroyable_spec.rb +148 -0
- data/spec/mongoid/persistable/incrementable_spec.rb +173 -0
- data/spec/mongoid/persistable/logical_spec.rb +143 -0
- data/spec/mongoid/persistable/poppable_spec.rb +115 -0
- data/spec/mongoid/persistable/pullable_spec.rb +228 -0
- data/spec/mongoid/persistable/pushable_spec.rb +258 -0
- data/spec/mongoid/persistable/renamable_spec.rb +135 -0
- data/spec/mongoid/persistable/savable_spec.rb +432 -0
- data/spec/mongoid/persistable/settable_spec.rb +139 -0
- data/spec/mongoid/persistable/unsettable_spec.rb +155 -0
- data/spec/mongoid/persistable/updatable_spec.rb +558 -0
- data/spec/mongoid/persistable/upsertable_spec.rb +106 -0
- data/spec/mongoid/persistable_spec.rb +206 -0
- data/spec/mongoid/{atomic/positionable_spec.rb → positional_spec.rb} +19 -14
- data/spec/mongoid/railties/document_spec.rb +2 -2
- data/spec/mongoid/relations/accessors_spec.rb +53 -145
- data/spec/mongoid/relations/auto_save_spec.rb +36 -16
- data/spec/mongoid/relations/bindings/embedded/in_spec.rb +6 -6
- data/spec/mongoid/relations/bindings/embedded/many_spec.rb +2 -2
- data/spec/mongoid/relations/bindings/embedded/one_spec.rb +3 -3
- data/spec/mongoid/relations/bindings/referenced/in_spec.rb +12 -12
- data/spec/mongoid/relations/bindings/referenced/many_spec.rb +6 -6
- data/spec/mongoid/relations/bindings/referenced/many_to_many_spec.rb +9 -9
- data/spec/mongoid/relations/bindings/referenced/one_spec.rb +6 -6
- data/spec/mongoid/relations/builders/embedded/in_spec.rb +4 -4
- data/spec/mongoid/relations/builders/embedded/many_spec.rb +18 -18
- data/spec/mongoid/relations/builders/embedded/one_spec.rb +11 -11
- data/spec/mongoid/relations/builders/nested_attributes/many_spec.rb +12 -13
- data/spec/mongoid/relations/builders/nested_attributes/one_spec.rb +14 -14
- data/spec/mongoid/relations/builders/referenced/in_spec.rb +22 -33
- data/spec/mongoid/relations/builders/referenced/many_spec.rb +15 -15
- data/spec/mongoid/relations/builders/referenced/many_to_many_spec.rb +18 -18
- data/spec/mongoid/relations/builders/referenced/one_spec.rb +11 -24
- data/spec/mongoid/relations/builders_spec.rb +21 -21
- data/spec/mongoid/relations/cascading/delete_spec.rb +7 -7
- data/spec/mongoid/relations/cascading/destroy_spec.rb +2 -2
- data/spec/mongoid/relations/cascading/nullify_spec.rb +2 -2
- data/spec/mongoid/relations/cascading/restrict_spec.rb +3 -3
- data/spec/mongoid/relations/cascading_spec.rb +16 -16
- data/spec/mongoid/relations/constraint_spec.rb +8 -7
- data/spec/mongoid/relations/conversions_spec.rb +16 -14
- data/spec/mongoid/relations/counter_cache_spec.rb +85 -0
- data/spec/mongoid/relations/cyclic_spec.rb +18 -18
- data/spec/mongoid/relations/eager/belongs_to_spec.rb +154 -0
- data/spec/mongoid/relations/eager/has_and_belongs_to_many_spec.rb +143 -0
- data/spec/mongoid/relations/eager/has_many_spec.rb +207 -0
- data/spec/mongoid/relations/eager/has_one_spec.rb +163 -0
- data/spec/mongoid/relations/eager_spec.rb +228 -0
- data/spec/mongoid/relations/embedded/dirty_spec.rb +8 -8
- data/spec/mongoid/relations/embedded/in_spec.rb +55 -56
- data/spec/mongoid/relations/embedded/many_spec.rb +357 -367
- data/spec/mongoid/relations/embedded/one_spec.rb +98 -139
- data/spec/mongoid/relations/macros_spec.rb +108 -102
- data/spec/mongoid/relations/metadata_spec.rb +147 -241
- data/spec/mongoid/relations/options_spec.rb +1 -1
- data/spec/mongoid/relations/polymorphic_spec.rb +13 -17
- data/spec/mongoid/relations/proxy_spec.rb +2 -2
- data/spec/mongoid/relations/referenced/in_spec.rb +128 -303
- data/spec/mongoid/relations/referenced/many_spec.rb +379 -522
- data/spec/mongoid/relations/referenced/many_to_many_spec.rb +345 -417
- data/spec/mongoid/relations/referenced/one_spec.rb +148 -263
- data/spec/mongoid/relations/reflections_spec.rb +6 -6
- data/spec/mongoid/relations/synchronization_spec.rb +46 -50
- data/spec/mongoid/relations/targets/enumerable_spec.rb +116 -116
- data/spec/mongoid/relations/touchable_spec.rb +296 -0
- data/spec/mongoid/relations_spec.rb +16 -15
- data/spec/mongoid/{reloading_spec.rb → reloadable_spec.rb} +20 -60
- data/spec/mongoid/{scoping_spec.rb → scopable_spec.rb} +74 -126
- data/spec/mongoid/selectable_spec.rb +134 -0
- data/spec/mongoid/{serialization_spec.rb → serializable_spec.rb} +111 -82
- data/spec/mongoid/sessions/factory_spec.rb +49 -28
- data/spec/mongoid/sessions/mongo_uri_spec.rb +7 -7
- data/spec/mongoid/sessions/options_spec.rb +92 -0
- data/spec/mongoid/sessions_spec.rb +288 -177
- data/spec/mongoid/{sharding_spec.rb → shardable_spec.rb} +8 -8
- data/spec/mongoid/state_spec.rb +10 -10
- data/spec/mongoid/threaded_spec.rb +17 -70
- data/spec/mongoid/timestamps/created/short_spec.rb +6 -6
- data/spec/mongoid/timestamps/created_spec.rb +5 -5
- data/spec/mongoid/timestamps/updated/short_spec.rb +10 -10
- data/spec/mongoid/timestamps/updated_spec.rb +8 -12
- data/spec/mongoid/timestamps_spec.rb +7 -11
- data/spec/mongoid/{hierarchy_spec.rb → traversable_spec.rb} +19 -19
- data/spec/mongoid/{validations → validatable}/associated_spec.rb +18 -18
- data/spec/mongoid/{validations → validatable}/format_spec.rb +6 -6
- data/spec/mongoid/{validations → validatable}/length_spec.rb +7 -7
- data/spec/mongoid/{validations → validatable}/numericality_spec.rb +1 -1
- data/spec/mongoid/{validations → validatable}/presence_spec.rb +31 -38
- data/spec/mongoid/{validations → validatable}/uniqueness_spec.rb +126 -183
- data/spec/mongoid/{validations_spec.rb → validatable_spec.rb} +28 -28
- data/spec/mongoid_spec.rb +8 -8
- data/spec/rails/mongoid_spec.rb +72 -87
- data/spec/spec_helper.rb +19 -17
- metadata +261 -283
- data/lib/mongoid/atomic/positionable.rb +0 -73
- data/lib/mongoid/components.rb +0 -92
- data/lib/mongoid/config/inflections.rb +0 -6
- data/lib/mongoid/contextual/eager.rb +0 -158
- data/lib/mongoid/criterion/findable.rb +0 -179
- data/lib/mongoid/errors/versioning_not_on_root.rb +0 -23
- data/lib/mongoid/identity_map.rb +0 -163
- data/lib/mongoid/json.rb +0 -16
- data/lib/mongoid/matchers.rb +0 -32
- data/lib/mongoid/matchers/strategies.rb +0 -97
- data/lib/mongoid/multi_parameter_attributes.rb +0 -105
- data/lib/mongoid/nested_attributes.rb +0 -78
- data/lib/mongoid/observer.rb +0 -192
- data/lib/mongoid/paranoia.rb +0 -136
- data/lib/mongoid/persistence.rb +0 -357
- data/lib/mongoid/persistence/atomic.rb +0 -231
- data/lib/mongoid/persistence/atomic/add_to_set.rb +0 -47
- data/lib/mongoid/persistence/atomic/bit.rb +0 -35
- data/lib/mongoid/persistence/atomic/inc.rb +0 -45
- data/lib/mongoid/persistence/atomic/operation.rb +0 -154
- data/lib/mongoid/persistence/atomic/pop.rb +0 -32
- data/lib/mongoid/persistence/atomic/pull.rb +0 -32
- data/lib/mongoid/persistence/atomic/pull_all.rb +0 -32
- data/lib/mongoid/persistence/atomic/push.rb +0 -25
- data/lib/mongoid/persistence/atomic/push_all.rb +0 -25
- data/lib/mongoid/persistence/atomic/rename.rb +0 -30
- data/lib/mongoid/persistence/atomic/sets.rb +0 -28
- data/lib/mongoid/persistence/atomic/unset.rb +0 -27
- data/lib/mongoid/persistence/deletion.rb +0 -31
- data/lib/mongoid/persistence/insertion.rb +0 -38
- data/lib/mongoid/persistence/modification.rb +0 -35
- data/lib/mongoid/persistence/operations.rb +0 -214
- data/lib/mongoid/persistence/operations/embedded/insert.rb +0 -46
- data/lib/mongoid/persistence/operations/embedded/remove.rb +0 -43
- data/lib/mongoid/persistence/operations/insert.rb +0 -34
- data/lib/mongoid/persistence/operations/remove.rb +0 -33
- data/lib/mongoid/persistence/operations/update.rb +0 -59
- data/lib/mongoid/persistence/operations/upsert.rb +0 -28
- data/lib/mongoid/persistence/upsertion.rb +0 -31
- data/lib/mongoid/unit_of_work.rb +0 -61
- data/lib/mongoid/versioning.rb +0 -217
- data/lib/rack/mongoid.rb +0 -2
- data/lib/rack/mongoid/middleware/identity_map.rb +0 -39
- data/lib/rails/generators/mongoid/observer/observer_generator.rb +0 -17
- data/lib/rails/generators/mongoid/observer/templates/observer.rb.tt +0 -4
- data/spec/app/models/actor_observer.rb +0 -15
- data/spec/app/models/callback_recorder.rb +0 -25
- data/spec/app/models/draft.rb +0 -9
- data/spec/app/models/paranoid_phone.rb +0 -25
- data/spec/app/models/paranoid_post.rb +0 -36
- data/spec/app/models/phone_observer.rb +0 -6
- data/spec/mongoid/#atomic_spec.rb# +0 -365
- data/spec/mongoid/attributes/processing_spec.rb +0 -149
- data/spec/mongoid/criterion/destructive_spec.rb +0 -101
- data/spec/mongoid/criterion/modifiable_spec.rb +0 -409
- data/spec/mongoid/criterion/modification_spec.rb +0 -402
- data/spec/mongoid/errors/versioning_not_on_root_spec.rb +0 -29
- data/spec/mongoid/identity_map_spec.rb +0 -564
- data/spec/mongoid/json_spec.rb +0 -33
- data/spec/mongoid/matchers/in_spec.rb +0 -25
- data/spec/mongoid/matchers/nin_spec.rb +0 -25
- data/spec/mongoid/multi_parameter_attributes_spec.rb +0 -128
- data/spec/mongoid/observer_spec.rb +0 -290
- data/spec/mongoid/paranoia_spec.rb +0 -759
- data/spec/mongoid/persistence/atomic/add_to_set_spec.rb +0 -262
- data/spec/mongoid/persistence/atomic/bit_spec.rb +0 -88
- data/spec/mongoid/persistence/atomic/inc_spec.rb +0 -133
- data/spec/mongoid/persistence/atomic/pop_spec.rb +0 -111
- data/spec/mongoid/persistence/atomic/pull_all_spec.rb +0 -77
- data/spec/mongoid/persistence/atomic/pull_spec.rb +0 -80
- data/spec/mongoid/persistence/atomic/push_all_spec.rb +0 -77
- data/spec/mongoid/persistence/atomic/push_spec.rb +0 -77
- data/spec/mongoid/persistence/atomic/rename_spec.rb +0 -42
- data/spec/mongoid/persistence/atomic/sets_spec.rb +0 -154
- data/spec/mongoid/persistence/atomic/unset_spec.rb +0 -65
- data/spec/mongoid/persistence/atomic_spec.rb +0 -216
- data/spec/mongoid/persistence/operations/embedded/insert_spec.rb +0 -191
- data/spec/mongoid/persistence/operations/embedded/remove_spec.rb +0 -8
- data/spec/mongoid/persistence/operations/insert_spec.rb +0 -149
- data/spec/mongoid/persistence/operations/remove_spec.rb +0 -113
- data/spec/mongoid/persistence/operations/update_spec.rb +0 -141
- data/spec/mongoid/persistence/operations/upsert_spec.rb +0 -59
- data/spec/mongoid/persistence/operations_spec.rb +0 -313
- data/spec/mongoid/persistence_spec.rb +0 -2279
- data/spec/mongoid/unit_of_work_spec.rb +0 -196
- data/spec/mongoid/versioning_spec.rb +0 -540
- data/spec/rack/mongoid/middleware/identity_map_spec.rb +0 -72
@@ -17,7 +17,7 @@ describe Mongoid::Relations::Builders do
|
|
17
17
|
end
|
18
18
|
|
19
19
|
it "does not set a binding attribute" do
|
20
|
-
name[:binding].
|
20
|
+
expect(name[:binding]).to be_nil
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
@@ -28,7 +28,7 @@ describe Mongoid::Relations::Builders do
|
|
28
28
|
end
|
29
29
|
|
30
30
|
it "does not set a binding attribute" do
|
31
|
-
game[:binding].
|
31
|
+
expect(game[:binding]).to be_nil
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
@@ -45,15 +45,15 @@ describe Mongoid::Relations::Builders do
|
|
45
45
|
end
|
46
46
|
|
47
47
|
it "builds the document" do
|
48
|
-
post.person.
|
48
|
+
expect(post.person).to eq(person)
|
49
49
|
end
|
50
50
|
|
51
51
|
it "sets the inverse" do
|
52
|
-
person.posts.
|
52
|
+
expect(person.posts).to eq([ post ])
|
53
53
|
end
|
54
54
|
|
55
55
|
it "does not save the document" do
|
56
|
-
person.
|
56
|
+
expect(person).to_not be_persisted
|
57
57
|
end
|
58
58
|
end
|
59
59
|
|
@@ -68,15 +68,15 @@ describe Mongoid::Relations::Builders do
|
|
68
68
|
end
|
69
69
|
|
70
70
|
it "builds the document" do
|
71
|
-
game.person.
|
71
|
+
expect(game.person).to eq(person)
|
72
72
|
end
|
73
73
|
|
74
74
|
it "sets the inverse" do
|
75
|
-
person.game.
|
75
|
+
expect(person.game).to eq(game)
|
76
76
|
end
|
77
77
|
|
78
78
|
it "does not save the document" do
|
79
|
-
person.
|
79
|
+
expect(person).to_not be_persisted
|
80
80
|
end
|
81
81
|
end
|
82
82
|
end
|
@@ -98,7 +98,7 @@ describe Mongoid::Relations::Builders do
|
|
98
98
|
end
|
99
99
|
|
100
100
|
it "does not set a binding attribute" do
|
101
|
-
name[:binding].
|
101
|
+
expect(name[:binding]).to be_nil
|
102
102
|
end
|
103
103
|
end
|
104
104
|
|
@@ -109,7 +109,7 @@ describe Mongoid::Relations::Builders do
|
|
109
109
|
end
|
110
110
|
|
111
111
|
it "does not set a binding attribute" do
|
112
|
-
game[:binding].
|
112
|
+
expect(game[:binding]).to be_nil
|
113
113
|
end
|
114
114
|
end
|
115
115
|
|
@@ -126,19 +126,19 @@ describe Mongoid::Relations::Builders do
|
|
126
126
|
end
|
127
127
|
|
128
128
|
it "builds the document" do
|
129
|
-
post.person.
|
129
|
+
expect(post.person).to eq(person)
|
130
130
|
end
|
131
131
|
|
132
132
|
it "sets the inverse" do
|
133
|
-
person.posts.
|
133
|
+
expect(person.posts).to eq([ post ])
|
134
134
|
end
|
135
135
|
|
136
136
|
it "saves the document" do
|
137
|
-
person.
|
137
|
+
expect(person).to be_persisted
|
138
138
|
end
|
139
139
|
|
140
140
|
it "saves the child" do
|
141
|
-
post.
|
141
|
+
expect(post).to be_persisted
|
142
142
|
end
|
143
143
|
end
|
144
144
|
|
@@ -153,19 +153,19 @@ describe Mongoid::Relations::Builders do
|
|
153
153
|
end
|
154
154
|
|
155
155
|
it "builds the document" do
|
156
|
-
game.person.
|
156
|
+
expect(game.person).to eq(person)
|
157
157
|
end
|
158
158
|
|
159
159
|
it "sets the inverse" do
|
160
|
-
person.game.
|
160
|
+
expect(person.game).to eq(game)
|
161
161
|
end
|
162
162
|
|
163
163
|
it "saves the document" do
|
164
|
-
person.
|
164
|
+
expect(person).to be_persisted
|
165
165
|
end
|
166
166
|
|
167
167
|
it "saves the child" do
|
168
|
-
game.
|
168
|
+
expect(game).to be_persisted
|
169
169
|
end
|
170
170
|
end
|
171
171
|
end
|
@@ -190,15 +190,15 @@ describe Mongoid::Relations::Builders do
|
|
190
190
|
end
|
191
191
|
|
192
192
|
it "replaces the existing document" do
|
193
|
-
person.game.
|
193
|
+
expect(person.game).to eq(game_two)
|
194
194
|
end
|
195
195
|
|
196
196
|
it "persists the change" do
|
197
|
-
person.game(true).
|
197
|
+
expect(person.game(true)).to eq(game_two)
|
198
198
|
end
|
199
199
|
|
200
200
|
it "removes the old document from the database" do
|
201
|
-
Game.collection.find.count.
|
201
|
+
expect(Game.collection.find.count).to eq(1)
|
202
202
|
end
|
203
203
|
end
|
204
204
|
end
|
@@ -21,7 +21,7 @@ describe Mongoid::Relations::Cascading::Delete do
|
|
21
21
|
end
|
22
22
|
|
23
23
|
it "deletes the relation" do
|
24
|
-
home.
|
24
|
+
expect(home).to be_destroyed
|
25
25
|
end
|
26
26
|
|
27
27
|
it "persists the deletion" do
|
@@ -38,7 +38,7 @@ describe Mongoid::Relations::Cascading::Delete do
|
|
38
38
|
end
|
39
39
|
|
40
40
|
it "deletes the base document" do
|
41
|
-
person.
|
41
|
+
expect(person).to be_destroyed
|
42
42
|
end
|
43
43
|
end
|
44
44
|
end
|
@@ -65,23 +65,23 @@ describe Mongoid::Relations::Cascading::Delete do
|
|
65
65
|
end
|
66
66
|
|
67
67
|
it "deletes the first document" do
|
68
|
-
post_one.
|
68
|
+
expect(post_one).to be_destroyed
|
69
69
|
end
|
70
70
|
|
71
71
|
it "deletes the second document" do
|
72
|
-
post_two.
|
72
|
+
expect(post_two).to be_destroyed
|
73
73
|
end
|
74
74
|
|
75
75
|
it "unbinds the first document" do
|
76
|
-
post_one.person.
|
76
|
+
expect(post_one.person).to be_nil
|
77
77
|
end
|
78
78
|
|
79
79
|
it "unbinds the second document" do
|
80
|
-
post_two.person.
|
80
|
+
expect(post_two.person).to be_nil
|
81
81
|
end
|
82
82
|
|
83
83
|
it "removes the documents from the relation" do
|
84
|
-
person.posts.
|
84
|
+
expect(person.posts).to be_empty
|
85
85
|
end
|
86
86
|
|
87
87
|
it "persists the first deletion" do
|
@@ -7,7 +7,7 @@ describe Mongoid::Relations::Cascading::Destroy do
|
|
7
7
|
end
|
8
8
|
|
9
9
|
let(:metadata) do
|
10
|
-
|
10
|
+
double(name: :posts)
|
11
11
|
end
|
12
12
|
|
13
13
|
let(:strategy) do
|
@@ -17,7 +17,7 @@ describe Mongoid::Relations::Cascading::Destroy do
|
|
17
17
|
describe "#cascade" do
|
18
18
|
|
19
19
|
let(:post) do
|
20
|
-
|
20
|
+
double
|
21
21
|
end
|
22
22
|
|
23
23
|
context "when the documents exist" do
|
@@ -16,7 +16,7 @@ describe Mongoid::Relations::Cascading::Restrict do
|
|
16
16
|
end
|
17
17
|
|
18
18
|
let(:metadata) do
|
19
|
-
|
19
|
+
double(name: :drugs)
|
20
20
|
end
|
21
21
|
|
22
22
|
let(:strategy) do
|
@@ -26,7 +26,7 @@ describe Mongoid::Relations::Cascading::Restrict do
|
|
26
26
|
describe "#cascade" do
|
27
27
|
|
28
28
|
let(:drug) do
|
29
|
-
|
29
|
+
double
|
30
30
|
end
|
31
31
|
|
32
32
|
context "when the document exists" do
|
@@ -38,7 +38,7 @@ describe Mongoid::Relations::Cascading::Restrict do
|
|
38
38
|
end
|
39
39
|
|
40
40
|
it "deletes the person" do
|
41
|
-
expect { strategy.cascade }.to_not raise_error
|
41
|
+
expect { strategy.cascade }.to_not raise_error
|
42
42
|
end
|
43
43
|
end
|
44
44
|
|
@@ -21,7 +21,7 @@ describe Mongoid::Relations::Cascading do
|
|
21
21
|
end
|
22
22
|
|
23
23
|
it "ignores the cascade" do
|
24
|
-
band.cascade
|
24
|
+
expect(band.cascade!).to eq([ "records" ])
|
25
25
|
end
|
26
26
|
end
|
27
27
|
end
|
@@ -61,11 +61,11 @@ describe Mongoid::Relations::Cascading do
|
|
61
61
|
end
|
62
62
|
|
63
63
|
it "adds the action to the cascades" do
|
64
|
-
klass.cascades.
|
64
|
+
expect(klass.cascades).to include("posts")
|
65
65
|
end
|
66
66
|
|
67
67
|
it "returns self" do
|
68
|
-
cascaded.
|
68
|
+
expect(cascaded).to eq(klass)
|
69
69
|
end
|
70
70
|
end
|
71
71
|
|
@@ -83,11 +83,11 @@ describe Mongoid::Relations::Cascading do
|
|
83
83
|
end
|
84
84
|
|
85
85
|
it "does not add an action to the cascades" do
|
86
|
-
klass.cascades.
|
86
|
+
expect(klass.cascades).to_not include("posts")
|
87
87
|
end
|
88
88
|
|
89
89
|
it "returns self" do
|
90
|
-
cascaded.
|
90
|
+
expect(cascaded).to eq(klass)
|
91
91
|
end
|
92
92
|
end
|
93
93
|
end
|
@@ -161,7 +161,7 @@ describe Mongoid::Relations::Cascading do
|
|
161
161
|
end
|
162
162
|
|
163
163
|
it "removes the references to the removed document" do
|
164
|
-
from_db.ratable_id.
|
164
|
+
expect(from_db.ratable_id).to be_nil
|
165
165
|
end
|
166
166
|
end
|
167
167
|
|
@@ -186,7 +186,7 @@ describe Mongoid::Relations::Cascading do
|
|
186
186
|
end
|
187
187
|
|
188
188
|
it "removes the references to the removed document" do
|
189
|
-
from_db.ratable_id.
|
189
|
+
expect(from_db.ratable_id).to be_nil
|
190
190
|
end
|
191
191
|
end
|
192
192
|
|
@@ -197,7 +197,7 @@ describe Mongoid::Relations::Cascading do
|
|
197
197
|
end
|
198
198
|
|
199
199
|
it "returns nil" do
|
200
|
-
book.send(method).
|
200
|
+
expect(book.send(method)).to be true
|
201
201
|
end
|
202
202
|
end
|
203
203
|
end
|
@@ -221,11 +221,11 @@ describe Mongoid::Relations::Cascading do
|
|
221
221
|
end
|
222
222
|
|
223
223
|
it "removes the references from the removed document" do
|
224
|
-
person.preference_ids.
|
224
|
+
expect(person.preference_ids).to_not include(preference.id)
|
225
225
|
end
|
226
226
|
|
227
227
|
it "removes the references to the removed document" do
|
228
|
-
from_db.person_ids.
|
228
|
+
expect(from_db.person_ids).to_not include(person.id)
|
229
229
|
end
|
230
230
|
end
|
231
231
|
end
|
@@ -250,12 +250,12 @@ describe Mongoid::Relations::Cascading do
|
|
250
250
|
end
|
251
251
|
|
252
252
|
it "raises no error" do
|
253
|
-
expect{ person.send(method) }.to_not raise_error
|
253
|
+
expect{ person.send(method) }.to_not raise_error
|
254
254
|
end
|
255
255
|
|
256
256
|
it "deletes the parent" do
|
257
257
|
person.send(method)
|
258
|
-
person.
|
258
|
+
expect(person).to be_destroyed
|
259
259
|
end
|
260
260
|
end
|
261
261
|
|
@@ -289,12 +289,12 @@ describe Mongoid::Relations::Cascading do
|
|
289
289
|
end
|
290
290
|
|
291
291
|
it "raises no error" do
|
292
|
-
expect{ person.send(method) }.to_not raise_error
|
292
|
+
expect{ person.send(method) }.to_not raise_error
|
293
293
|
end
|
294
294
|
|
295
295
|
it "deletes the parent" do
|
296
296
|
person.send(method)
|
297
|
-
person.
|
297
|
+
expect(person).to be_destroyed
|
298
298
|
end
|
299
299
|
end
|
300
300
|
|
@@ -328,12 +328,12 @@ describe Mongoid::Relations::Cascading do
|
|
328
328
|
end
|
329
329
|
|
330
330
|
it "raises no error" do
|
331
|
-
expect{ person.send(method) }.to_not raise_error
|
331
|
+
expect{ person.send(method) }.to_not raise_error
|
332
332
|
end
|
333
333
|
|
334
334
|
it "deletes the parent" do
|
335
335
|
person.send(method)
|
336
|
-
person.
|
336
|
+
expect(person).to be_destroyed
|
337
337
|
end
|
338
338
|
end
|
339
339
|
|
@@ -9,9 +9,10 @@ describe Mongoid::Relations::Constraint do
|
|
9
9
|
before(:all) do
|
10
10
|
Person.field(
|
11
11
|
:_id,
|
12
|
-
type:
|
12
|
+
type: BSON::ObjectId,
|
13
13
|
pre_processed: true,
|
14
|
-
default: ->{
|
14
|
+
default: ->{ BSON::ObjectId.new },
|
15
|
+
overwrite: true
|
15
16
|
)
|
16
17
|
end
|
17
18
|
|
@@ -31,22 +32,22 @@ describe Mongoid::Relations::Constraint do
|
|
31
32
|
context "when provided an object id" do
|
32
33
|
|
33
34
|
let(:object) do
|
34
|
-
|
35
|
+
BSON::ObjectId.new
|
35
36
|
end
|
36
37
|
|
37
38
|
it "returns the object id" do
|
38
|
-
constraint.convert(object).
|
39
|
+
expect(constraint.convert(object)).to eq(object)
|
39
40
|
end
|
40
41
|
end
|
41
42
|
|
42
43
|
context "when provided a string" do
|
43
44
|
|
44
45
|
let(:object) do
|
45
|
-
|
46
|
+
BSON::ObjectId.new
|
46
47
|
end
|
47
48
|
|
48
49
|
it "returns an object id from the string" do
|
49
|
-
constraint.convert(object.to_s).
|
50
|
+
expect(constraint.convert(object.to_s)).to eq(object)
|
50
51
|
end
|
51
52
|
end
|
52
53
|
end
|
@@ -67,7 +68,7 @@ describe Mongoid::Relations::Constraint do
|
|
67
68
|
end
|
68
69
|
|
69
70
|
it "returns the object" do
|
70
|
-
constraint.convert("testing").
|
71
|
+
expect(constraint.convert("testing")).to eq("testing")
|
71
72
|
end
|
72
73
|
end
|
73
74
|
end
|
@@ -11,7 +11,7 @@ describe Mongoid::Relations::Conversions do
|
|
11
11
|
end
|
12
12
|
|
13
13
|
let(:object) do
|
14
|
-
|
14
|
+
BSON::ObjectId.new
|
15
15
|
end
|
16
16
|
|
17
17
|
let(:flagged) do
|
@@ -19,7 +19,7 @@ describe Mongoid::Relations::Conversions do
|
|
19
19
|
end
|
20
20
|
|
21
21
|
it "returns the object" do
|
22
|
-
flagged.
|
22
|
+
expect(flagged).to eq(object)
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
@@ -30,16 +30,18 @@ describe Mongoid::Relations::Conversions do
|
|
30
30
|
:_id,
|
31
31
|
type: String,
|
32
32
|
pre_processed: true,
|
33
|
-
|
33
|
+
overwrite: true,
|
34
|
+
default: ->{ BSON::ObjectId.new.to_s }
|
34
35
|
)
|
35
36
|
end
|
36
37
|
|
37
38
|
after do
|
38
39
|
Person.field(
|
39
40
|
:_id,
|
40
|
-
type:
|
41
|
+
type: BSON::ObjectId,
|
41
42
|
pre_processed: true,
|
42
|
-
|
43
|
+
overwrite: true,
|
44
|
+
default: ->{ BSON::ObjectId.new }
|
43
45
|
)
|
44
46
|
end
|
45
47
|
|
@@ -50,7 +52,7 @@ describe Mongoid::Relations::Conversions do
|
|
50
52
|
context "when provided an object id" do
|
51
53
|
|
52
54
|
let(:object) do
|
53
|
-
|
55
|
+
BSON::ObjectId.new
|
54
56
|
end
|
55
57
|
|
56
58
|
let(:flagged) do
|
@@ -58,14 +60,14 @@ describe Mongoid::Relations::Conversions do
|
|
58
60
|
end
|
59
61
|
|
60
62
|
it "returns the object id" do
|
61
|
-
flagged.
|
63
|
+
expect(flagged).to eq(object)
|
62
64
|
end
|
63
65
|
end
|
64
66
|
|
65
67
|
context "when provided a string" do
|
66
68
|
|
67
69
|
let(:object) do
|
68
|
-
|
70
|
+
BSON::ObjectId.new.to_s
|
69
71
|
end
|
70
72
|
|
71
73
|
let(:flagged) do
|
@@ -73,11 +75,11 @@ describe Mongoid::Relations::Conversions do
|
|
73
75
|
end
|
74
76
|
|
75
77
|
it "returns the string" do
|
76
|
-
flagged.
|
78
|
+
expect(flagged).to eq(object)
|
77
79
|
end
|
78
80
|
|
79
81
|
it "marks the string as unconvertable" do
|
80
|
-
flagged.
|
82
|
+
expect(flagged).to be_unconvertable_to_bson
|
81
83
|
end
|
82
84
|
end
|
83
85
|
end
|
@@ -91,7 +93,7 @@ describe Mongoid::Relations::Conversions do
|
|
91
93
|
context "when provided an object id" do
|
92
94
|
|
93
95
|
let(:object) do
|
94
|
-
|
96
|
+
BSON::ObjectId.new
|
95
97
|
end
|
96
98
|
|
97
99
|
let(:flagged) do
|
@@ -99,7 +101,7 @@ describe Mongoid::Relations::Conversions do
|
|
99
101
|
end
|
100
102
|
|
101
103
|
it "returns the object id" do
|
102
|
-
flagged.
|
104
|
+
expect(flagged).to eq(object)
|
103
105
|
end
|
104
106
|
end
|
105
107
|
|
@@ -114,11 +116,11 @@ describe Mongoid::Relations::Conversions do
|
|
114
116
|
end
|
115
117
|
|
116
118
|
it "returns the integer" do
|
117
|
-
flagged.
|
119
|
+
expect(flagged).to eq(15)
|
118
120
|
end
|
119
121
|
|
120
122
|
it "marks the integer as unconvertable" do
|
121
|
-
flagged.
|
123
|
+
expect(flagged).to be_unconvertable_to_bson
|
122
124
|
end
|
123
125
|
end
|
124
126
|
end
|