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
@@ -21,21 +21,21 @@ describe Mongoid::Atomic::Paths::Embedded::One do
|
|
21
21
|
describe "#delete_modifier" do
|
22
22
|
|
23
23
|
it "returns $unset" do
|
24
|
-
one.delete_modifier.
|
24
|
+
expect(one.delete_modifier).to eq("$unset")
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
28
|
describe "#document" do
|
29
29
|
|
30
30
|
it "returns the document" do
|
31
|
-
one.document.
|
31
|
+
expect(one.document).to eq(name)
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
35
35
|
describe "#insert_modifier" do
|
36
36
|
|
37
37
|
it "returns $set" do
|
38
|
-
one.insert_modifier.
|
38
|
+
expect(one.insert_modifier).to eq("$set")
|
39
39
|
end
|
40
40
|
end
|
41
41
|
|
@@ -44,7 +44,7 @@ describe Mongoid::Atomic::Paths::Embedded::One do
|
|
44
44
|
context "when the document is embedded one level" do
|
45
45
|
|
46
46
|
it "returns the name of the relation" do
|
47
|
-
one.path.
|
47
|
+
expect(one.path).to eq("name")
|
48
48
|
end
|
49
49
|
end
|
50
50
|
|
@@ -68,7 +68,7 @@ describe Mongoid::Atomic::Paths::Embedded::One do
|
|
68
68
|
end
|
69
69
|
|
70
70
|
it "returns the nested path to the relation" do
|
71
|
-
one.path.
|
71
|
+
expect(one.path).to eq("phone_numbers.country_code")
|
72
72
|
end
|
73
73
|
end
|
74
74
|
end
|
@@ -78,7 +78,7 @@ describe Mongoid::Atomic::Paths::Embedded::One do
|
|
78
78
|
context "when the document is embedded one level" do
|
79
79
|
|
80
80
|
it "returns the name of the relation" do
|
81
|
-
one.position.
|
81
|
+
expect(one.position).to eq("name")
|
82
82
|
end
|
83
83
|
end
|
84
84
|
|
@@ -103,49 +103,7 @@ describe Mongoid::Atomic::Paths::Embedded::One do
|
|
103
103
|
end
|
104
104
|
|
105
105
|
it "returns the nested position to the relation" do
|
106
|
-
one.position.
|
107
|
-
end
|
108
|
-
end
|
109
|
-
end
|
110
|
-
|
111
|
-
describe "#selector" do
|
112
|
-
|
113
|
-
context "when the document is embedded one level" do
|
114
|
-
|
115
|
-
it "returns the the hash with parent selector" do
|
116
|
-
one.selector.should eq({ "_id" => person._id, "name._id" => name._id })
|
117
|
-
end
|
118
|
-
end
|
119
|
-
|
120
|
-
context "when the document is embedded multiple levels" do
|
121
|
-
|
122
|
-
let(:phone) do
|
123
|
-
Phone.new(number: "404-555-1212")
|
124
|
-
end
|
125
|
-
|
126
|
-
let(:country_code) do
|
127
|
-
CountryCode.new(code: 1)
|
128
|
-
end
|
129
|
-
|
130
|
-
before do
|
131
|
-
phone.country_code = country_code
|
132
|
-
person.phone_numbers << phone
|
133
|
-
phone.new_record = false
|
134
|
-
phone.post_persist
|
135
|
-
end
|
136
|
-
|
137
|
-
let(:one) do
|
138
|
-
described_class.new(country_code)
|
139
|
-
end
|
140
|
-
|
141
|
-
it "returns the hash with all parent selectors" do
|
142
|
-
one.selector.should eq(
|
143
|
-
{
|
144
|
-
"_id" => person._id,
|
145
|
-
"phone_numbers._id" => phone._id,
|
146
|
-
"phone_numbers.0.country_code._id" => country_code._id
|
147
|
-
}
|
148
|
-
)
|
106
|
+
expect(one.position).to eq("phone_numbers.0.country_code")
|
149
107
|
end
|
150
108
|
end
|
151
109
|
end
|
@@ -13,21 +13,21 @@ describe Mongoid::Atomic::Paths::Root do
|
|
13
13
|
describe "#document" do
|
14
14
|
|
15
15
|
it "returns the document" do
|
16
|
-
root.document.
|
16
|
+
expect(root.document).to eq(person)
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
20
|
describe "#path" do
|
21
21
|
|
22
22
|
it "returns an empty string" do
|
23
|
-
root.path.
|
23
|
+
expect(root.path).to be_empty
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
27
27
|
describe "#position" do
|
28
28
|
|
29
29
|
it "returns an empty string" do
|
30
|
-
root.position.
|
30
|
+
expect(root.position).to be_empty
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
@@ -45,62 +45,4 @@ describe Mongoid::Atomic::Paths::Root do
|
|
45
45
|
expect { root.insert_modifier }.to raise_error(Mongoid::Errors::InvalidPath)
|
46
46
|
end
|
47
47
|
end
|
48
|
-
|
49
|
-
describe "#selector" do
|
50
|
-
|
51
|
-
context "when using a shard key" do
|
52
|
-
|
53
|
-
let(:profile) do
|
54
|
-
Profile.new(name: "google")
|
55
|
-
end
|
56
|
-
|
57
|
-
let(:root) do
|
58
|
-
described_class.new(profile)
|
59
|
-
end
|
60
|
-
|
61
|
-
it "returns the id and shard key in the hash" do
|
62
|
-
root.selector.should eq({ "_id" => profile.id, "name" => profile.name })
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
context "when not using a shard key" do
|
67
|
-
|
68
|
-
context "when using object ids" do
|
69
|
-
|
70
|
-
it "returns the hash with the id" do
|
71
|
-
root.selector.should eq({ "_id" => person.id })
|
72
|
-
end
|
73
|
-
end
|
74
|
-
|
75
|
-
context "when using a composite key" do
|
76
|
-
|
77
|
-
let(:account) do
|
78
|
-
Account.new(name: "savings")
|
79
|
-
end
|
80
|
-
|
81
|
-
let(:root) do
|
82
|
-
described_class.new(account)
|
83
|
-
end
|
84
|
-
|
85
|
-
context "when the composite key has changed" do
|
86
|
-
|
87
|
-
before do
|
88
|
-
account.new_record = false
|
89
|
-
account.name = "current"
|
90
|
-
end
|
91
|
-
|
92
|
-
it "returns the hash with the old key" do
|
93
|
-
root.selector.should eq({ "_id" => "savings" })
|
94
|
-
end
|
95
|
-
end
|
96
|
-
|
97
|
-
context "when the composite key has not changed" do
|
98
|
-
|
99
|
-
it "returns the hash with the key" do
|
100
|
-
root.selector.should eq({ "_id" => "savings" })
|
101
|
-
end
|
102
|
-
end
|
103
|
-
end
|
104
|
-
end
|
105
|
-
end
|
106
48
|
end
|
@@ -28,14 +28,14 @@ describe Mongoid::Atomic::Paths do
|
|
28
28
|
context "when document is an embeds_one" do
|
29
29
|
|
30
30
|
it "returns $unset" do
|
31
|
-
name.atomic_delete_modifier.
|
31
|
+
expect(name.atomic_delete_modifier).to eq("$unset")
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
35
35
|
context "when document is an embeds_many" do
|
36
36
|
|
37
37
|
it "returns $pull" do
|
38
|
-
address.atomic_delete_modifier.
|
38
|
+
expect(address.atomic_delete_modifier).to eq("$pull")
|
39
39
|
end
|
40
40
|
end
|
41
41
|
end
|
@@ -50,14 +50,14 @@ describe Mongoid::Atomic::Paths do
|
|
50
50
|
context "when document is an embeds_one" do
|
51
51
|
|
52
52
|
it "returns $set" do
|
53
|
-
name.atomic_insert_modifier.
|
53
|
+
expect(name.atomic_insert_modifier).to eq("$set")
|
54
54
|
end
|
55
55
|
end
|
56
56
|
|
57
57
|
context "when document is an embeds_many" do
|
58
58
|
|
59
59
|
it "returns $push" do
|
60
|
-
address.atomic_insert_modifier.
|
60
|
+
expect(address.atomic_insert_modifier).to eq("$push")
|
61
61
|
end
|
62
62
|
end
|
63
63
|
end
|
@@ -67,7 +67,7 @@ describe Mongoid::Atomic::Paths do
|
|
67
67
|
context "when the document is a parent" do
|
68
68
|
|
69
69
|
it "returns an empty string" do
|
70
|
-
person.atomic_path.
|
70
|
+
expect(person.atomic_path).to be_empty
|
71
71
|
end
|
72
72
|
end
|
73
73
|
|
@@ -78,7 +78,7 @@ describe Mongoid::Atomic::Paths do
|
|
78
78
|
end
|
79
79
|
|
80
80
|
it "returns the inverse_of value of the association" do
|
81
|
-
address.atomic_path.
|
81
|
+
expect(address.atomic_path).to eq("addresses")
|
82
82
|
end
|
83
83
|
end
|
84
84
|
|
@@ -90,7 +90,7 @@ describe Mongoid::Atomic::Paths do
|
|
90
90
|
end
|
91
91
|
|
92
92
|
it "returns the JSON notation to the document" do
|
93
|
-
location.atomic_path.
|
93
|
+
expect(location.atomic_path).to eq("addresses.locations")
|
94
94
|
end
|
95
95
|
end
|
96
96
|
end
|
@@ -100,7 +100,7 @@ describe Mongoid::Atomic::Paths do
|
|
100
100
|
context "when the document is a parent" do
|
101
101
|
|
102
102
|
it "returns an id.atomic_selector" do
|
103
|
-
person.atomic_selector.
|
103
|
+
expect(person.atomic_selector).to eq({ "_id" => person.id })
|
104
104
|
end
|
105
105
|
end
|
106
106
|
|
@@ -111,7 +111,7 @@ describe Mongoid::Atomic::Paths do
|
|
111
111
|
end
|
112
112
|
|
113
113
|
it "returns the association with id.atomic_selector" do
|
114
|
-
address.atomic_selector.
|
114
|
+
expect(address.atomic_selector).to eq(
|
115
115
|
{ "_id" => person.id, "addresses._id" => address.id }
|
116
116
|
)
|
117
117
|
end
|
@@ -125,7 +125,7 @@ describe Mongoid::Atomic::Paths do
|
|
125
125
|
end
|
126
126
|
|
127
127
|
it "returns the JSON notation to the document with ids" do
|
128
|
-
location.atomic_selector.
|
128
|
+
expect(location.atomic_selector).to eq(
|
129
129
|
{
|
130
130
|
"_id" => person.id,
|
131
131
|
"addresses._id" => address.id,
|
@@ -141,7 +141,7 @@ describe Mongoid::Atomic::Paths do
|
|
141
141
|
context "when the document is a parent" do
|
142
142
|
|
143
143
|
it "returns an empty string" do
|
144
|
-
person.atomic_position.
|
144
|
+
expect(person.atomic_position).to be_empty
|
145
145
|
end
|
146
146
|
end
|
147
147
|
|
@@ -154,7 +154,7 @@ describe Mongoid::Atomic::Paths do
|
|
154
154
|
context "when the document is new" do
|
155
155
|
|
156
156
|
it "returns the.atomic_path without index" do
|
157
|
-
address.atomic_position.
|
157
|
+
expect(address.atomic_position).to eq("addresses")
|
158
158
|
end
|
159
159
|
end
|
160
160
|
|
@@ -165,7 +165,7 @@ describe Mongoid::Atomic::Paths do
|
|
165
165
|
end
|
166
166
|
|
167
167
|
it "returns the.atomic_path plus index" do
|
168
|
-
address.atomic_position.
|
168
|
+
expect(address.atomic_position).to eq("addresses.0")
|
169
169
|
end
|
170
170
|
end
|
171
171
|
end
|
@@ -185,7 +185,7 @@ describe Mongoid::Atomic::Paths do
|
|
185
185
|
context "when the document is new" do
|
186
186
|
|
187
187
|
it "returns the.atomic_path with parent indexes" do
|
188
|
-
location.atomic_position.
|
188
|
+
expect(location.atomic_position).to eq("addresses.0.locations")
|
189
189
|
end
|
190
190
|
end
|
191
191
|
|
@@ -196,7 +196,7 @@ describe Mongoid::Atomic::Paths do
|
|
196
196
|
end
|
197
197
|
|
198
198
|
it "returns the.atomic_path plus index" do
|
199
|
-
location.atomic_position.
|
199
|
+
expect(location.atomic_position).to eq("addresses.0.locations.1")
|
200
200
|
end
|
201
201
|
end
|
202
202
|
end
|
@@ -207,7 +207,7 @@ describe Mongoid::Atomic::Paths do
|
|
207
207
|
context "when the document is a parent" do
|
208
208
|
|
209
209
|
it "returns an empty string" do
|
210
|
-
person.atomic_path.
|
210
|
+
expect(person.atomic_path).to be_empty
|
211
211
|
end
|
212
212
|
end
|
213
213
|
|
@@ -224,7 +224,7 @@ describe Mongoid::Atomic::Paths do
|
|
224
224
|
end
|
225
225
|
|
226
226
|
it "returns the.atomic_path without the index" do
|
227
|
-
address.atomic_path.
|
227
|
+
expect(address.atomic_path).to eq("addresses")
|
228
228
|
end
|
229
229
|
|
230
230
|
context "and there are 10 or more documents" do
|
@@ -236,7 +236,7 @@ describe Mongoid::Atomic::Paths do
|
|
236
236
|
end
|
237
237
|
|
238
238
|
it "returns the.atomic_path without the index" do
|
239
|
-
address.atomic_path.
|
239
|
+
expect(address.atomic_path).to eq("addresses")
|
240
240
|
end
|
241
241
|
end
|
242
242
|
end
|
@@ -261,7 +261,7 @@ describe Mongoid::Atomic::Paths do
|
|
261
261
|
end
|
262
262
|
|
263
263
|
it "returns the.atomic_path plus index" do
|
264
|
-
location.atomic_path.
|
264
|
+
expect(location.atomic_path).to eq("addresses.0.locations")
|
265
265
|
end
|
266
266
|
|
267
267
|
end
|
data/spec/mongoid/atomic_spec.rb
CHANGED
@@ -21,11 +21,11 @@ describe Mongoid::Atomic do
|
|
21
21
|
end
|
22
22
|
|
23
23
|
it "adds the document to the delayed atomic pulls" do
|
24
|
-
person.delayed_atomic_pulls["addresses"].
|
24
|
+
expect(person.delayed_atomic_pulls["addresses"]).to eq([ address ])
|
25
25
|
end
|
26
26
|
|
27
27
|
it "flags the document for destruction" do
|
28
|
-
address.
|
28
|
+
expect(address).to be_flagged_for_destroy
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
@@ -44,11 +44,11 @@ describe Mongoid::Atomic do
|
|
44
44
|
end
|
45
45
|
|
46
46
|
it "adds the document to the delayed atomic unsets" do
|
47
|
-
person.delayed_atomic_unsets["name"].
|
47
|
+
expect(person.delayed_atomic_unsets["name"]).to eq([ name ])
|
48
48
|
end
|
49
49
|
|
50
50
|
it "flags the document for destruction" do
|
51
|
-
name.
|
51
|
+
expect(name).to be_flagged_for_destroy
|
52
52
|
end
|
53
53
|
end
|
54
54
|
|
@@ -67,7 +67,7 @@ describe Mongoid::Atomic do
|
|
67
67
|
end
|
68
68
|
|
69
69
|
it "returns the atomic updates" do
|
70
|
-
person.atomic_updates.
|
70
|
+
expect(person.atomic_updates).to eq({ "$set" => { "title" => "Sir" }})
|
71
71
|
end
|
72
72
|
|
73
73
|
context "when an embeds many child is added" do
|
@@ -77,7 +77,7 @@ describe Mongoid::Atomic do
|
|
77
77
|
end
|
78
78
|
|
79
79
|
it "returns a $set and $pushAll for modifications" do
|
80
|
-
person.atomic_updates.
|
80
|
+
expect(person.atomic_updates).to eq(
|
81
81
|
{
|
82
82
|
"$set" => { "title" => "Sir" },
|
83
83
|
"$pushAll" => { "addresses" => [
|
@@ -95,7 +95,7 @@ describe Mongoid::Atomic do
|
|
95
95
|
end
|
96
96
|
|
97
97
|
it "returns a $set for modifications" do
|
98
|
-
person.atomic_updates.
|
98
|
+
expect(person.atomic_updates).to eq(
|
99
99
|
{
|
100
100
|
"$set" => {
|
101
101
|
"title" => "Sir",
|
@@ -119,7 +119,7 @@ describe Mongoid::Atomic do
|
|
119
119
|
context "when asking for the updates from the root" do
|
120
120
|
|
121
121
|
it "returns the $set with correct position and modifications" do
|
122
|
-
person.atomic_updates.
|
122
|
+
expect(person.atomic_updates).to eq(
|
123
123
|
{ "$set" => { "title" => "Sir", "addresses.0.street" => "Bond St" }}
|
124
124
|
)
|
125
125
|
end
|
@@ -128,7 +128,7 @@ describe Mongoid::Atomic do
|
|
128
128
|
context "when asking for the updates from the child" do
|
129
129
|
|
130
130
|
it "returns the $set with correct position and modifications" do
|
131
|
-
address.atomic_updates.
|
131
|
+
expect(address.atomic_updates).to eq(
|
132
132
|
{ "$set" => { "addresses.0.street" => "Bond St" }}
|
133
133
|
)
|
134
134
|
end
|
@@ -147,7 +147,7 @@ describe Mongoid::Atomic do
|
|
147
147
|
context "when asking for the updates from the root" do
|
148
148
|
|
149
149
|
it "returns the $set with correct positions and modifications" do
|
150
|
-
person.atomic_updates.
|
150
|
+
expect(person.atomic_updates).to eq(
|
151
151
|
{ "$set" => {
|
152
152
|
"title" => "Sir",
|
153
153
|
"addresses.0.street" => "Bond St",
|
@@ -160,7 +160,7 @@ describe Mongoid::Atomic do
|
|
160
160
|
context "when asking for the updates from the 1st level child" do
|
161
161
|
|
162
162
|
it "returns the $set with correct positions and modifications" do
|
163
|
-
address.atomic_updates.
|
163
|
+
expect(address.atomic_updates).to eq(
|
164
164
|
{ "$set" => {
|
165
165
|
"addresses.0.street" => "Bond St",
|
166
166
|
"addresses.0.locations.0.name" => "Work" }
|
@@ -172,7 +172,7 @@ describe Mongoid::Atomic do
|
|
172
172
|
context "when asking for the updates from the 2nd level child" do
|
173
173
|
|
174
174
|
it "returns the $set with correct positions and modifications" do
|
175
|
-
location.atomic_updates.
|
175
|
+
expect(location.atomic_updates).to eq(
|
176
176
|
{ "$set" => {
|
177
177
|
"addresses.0.locations.0.name" => "Work" }
|
178
178
|
}
|
@@ -190,7 +190,7 @@ describe Mongoid::Atomic do
|
|
190
190
|
context "when asking for the updates from the root" do
|
191
191
|
|
192
192
|
it "returns the $set with correct positions and modifications" do
|
193
|
-
person.atomic_updates.
|
193
|
+
expect(person.atomic_updates).to eq(
|
194
194
|
{
|
195
195
|
"$set" => {
|
196
196
|
"title" => "Sir",
|
@@ -209,7 +209,7 @@ describe Mongoid::Atomic do
|
|
209
209
|
context "when asking for the updates from the 1st level child" do
|
210
210
|
|
211
211
|
it "returns the $set with correct positions and modifications" do
|
212
|
-
address.atomic_updates.
|
212
|
+
expect(address.atomic_updates).to eq(
|
213
213
|
{
|
214
214
|
"$set" => {
|
215
215
|
"addresses.0.street" => "Bond St"
|
@@ -236,7 +236,7 @@ describe Mongoid::Atomic do
|
|
236
236
|
end
|
237
237
|
|
238
238
|
it "returns the $set for the first level and $unset for other." do
|
239
|
-
updates.
|
239
|
+
expect(updates).to eq({
|
240
240
|
"$unset" => { "addresses" => true },
|
241
241
|
"$set" => { "title" => "Sir" }
|
242
242
|
})
|
@@ -256,7 +256,7 @@ describe Mongoid::Atomic do
|
|
256
256
|
context "when asking for the updates from the root document" do
|
257
257
|
|
258
258
|
it "returns the $set for 1st level and other for the 2nd level" do
|
259
|
-
person.atomic_updates.
|
259
|
+
expect(person.atomic_updates).to eq(
|
260
260
|
{
|
261
261
|
"$set" => {
|
262
262
|
"title" => "Sir",
|
@@ -282,7 +282,7 @@ describe Mongoid::Atomic do
|
|
282
282
|
context "when asking for the updates from the 1st level document" do
|
283
283
|
|
284
284
|
it "returns the $set for 1st level and other for the 2nd level" do
|
285
|
-
address.atomic_updates.
|
285
|
+
expect(address.atomic_updates).to eq(
|
286
286
|
{ "$set" => { "addresses.0.street" => "Bond St" }}
|
287
287
|
)
|
288
288
|
end
|
@@ -305,7 +305,7 @@ describe Mongoid::Atomic do
|
|
305
305
|
end
|
306
306
|
|
307
307
|
it "returns the $set for 1st and 2nd level and other for the 3nd level" do
|
308
|
-
person.atomic_updates.
|
308
|
+
expect(person.atomic_updates).to eq(
|
309
309
|
{
|
310
310
|
"$set" => {
|
311
311
|
"title" => "Sir"
|
@@ -340,7 +340,7 @@ describe Mongoid::Atomic do
|
|
340
340
|
end
|
341
341
|
|
342
342
|
it "returns the proper $sets and $pushAlls for all levels" do
|
343
|
-
person.atomic_updates.
|
343
|
+
expect(person.atomic_updates).to eq(
|
344
344
|
{
|
345
345
|
"$set" => {
|
346
346
|
"title" => "Sir",
|