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
@@ -23,7 +23,7 @@ describe Mongoid::Relations::Embedded::One do
|
|
23
23
|
context "when the proxied document is same class" do
|
24
24
|
|
25
25
|
it "returns true" do
|
26
|
-
(relation === Name.new).
|
26
|
+
expect((relation === Name.new)).to be true
|
27
27
|
end
|
28
28
|
end
|
29
29
|
end
|
@@ -47,19 +47,19 @@ describe Mongoid::Relations::Embedded::One do
|
|
47
47
|
end
|
48
48
|
|
49
49
|
it "sets the target of the relation" do
|
50
|
-
person.name.
|
50
|
+
expect(person.name).to eq(name)
|
51
51
|
end
|
52
52
|
|
53
53
|
it "sets the base on the inverse relation" do
|
54
|
-
name.namable.
|
54
|
+
expect(name.namable).to eq(person)
|
55
55
|
end
|
56
56
|
|
57
57
|
it "sets the same instance on the inverse relation" do
|
58
|
-
name.namable.
|
58
|
+
expect(name.namable).to eql(person)
|
59
59
|
end
|
60
60
|
|
61
61
|
it "does not save the target" do
|
62
|
-
name.
|
62
|
+
expect(name).to_not be_persisted
|
63
63
|
end
|
64
64
|
|
65
65
|
context "with overwritten getter" do
|
@@ -76,7 +76,7 @@ describe Mongoid::Relations::Embedded::One do
|
|
76
76
|
|
77
77
|
it "sets the target without an invinite recursion" do
|
78
78
|
person.name = name
|
79
|
-
person.name.
|
79
|
+
expect(person.name).to be_present
|
80
80
|
end
|
81
81
|
end
|
82
82
|
end
|
@@ -102,19 +102,19 @@ describe Mongoid::Relations::Embedded::One do
|
|
102
102
|
end
|
103
103
|
|
104
104
|
it "sets the target of the relation" do
|
105
|
-
person.name.
|
105
|
+
expect(person.name).to eq(child_name)
|
106
106
|
end
|
107
107
|
|
108
108
|
it "sets the base on the inverse relation" do
|
109
|
-
child_name.namable.
|
109
|
+
expect(child_name.namable).to eq(person)
|
110
110
|
end
|
111
111
|
|
112
112
|
it "sets the same instance on the inverse relation" do
|
113
|
-
child_name.namable.
|
113
|
+
expect(child_name.namable).to eql(person)
|
114
114
|
end
|
115
115
|
|
116
116
|
it "saves the target" do
|
117
|
-
child_name.
|
117
|
+
expect(child_name).to be_persisted
|
118
118
|
end
|
119
119
|
|
120
120
|
context "when replacing a relation with a hash" do
|
@@ -124,7 +124,7 @@ describe Mongoid::Relations::Embedded::One do
|
|
124
124
|
end
|
125
125
|
|
126
126
|
it "sets the relation with the proper object" do
|
127
|
-
person.name.
|
127
|
+
expect(person.name).to be_a(Name)
|
128
128
|
end
|
129
129
|
end
|
130
130
|
end
|
@@ -137,11 +137,11 @@ describe Mongoid::Relations::Embedded::One do
|
|
137
137
|
end
|
138
138
|
|
139
139
|
it "does not change the relation" do
|
140
|
-
person.name.
|
140
|
+
expect(person.name).to eq(name)
|
141
141
|
end
|
142
142
|
|
143
143
|
it "does not persist any change" do
|
144
|
-
person.reload.name.
|
144
|
+
expect(person.reload.name).to eq(name)
|
145
145
|
end
|
146
146
|
end
|
147
147
|
|
@@ -152,19 +152,19 @@ describe Mongoid::Relations::Embedded::One do
|
|
152
152
|
end
|
153
153
|
|
154
154
|
it "sets the target of the relation" do
|
155
|
-
person.name.
|
155
|
+
expect(person.name).to eq(name)
|
156
156
|
end
|
157
157
|
|
158
158
|
it "sets the base on the inverse relation" do
|
159
|
-
name.namable.
|
159
|
+
expect(name.namable).to eq(person)
|
160
160
|
end
|
161
161
|
|
162
162
|
it "sets the same instance on the inverse relation" do
|
163
|
-
name.namable.
|
163
|
+
expect(name.namable).to eql(person)
|
164
164
|
end
|
165
165
|
|
166
166
|
it "saves the target" do
|
167
|
-
name.
|
167
|
+
expect(name).to be_persisted
|
168
168
|
end
|
169
169
|
|
170
170
|
context "when replacing an exising document" do
|
@@ -187,7 +187,7 @@ describe Mongoid::Relations::Embedded::One do
|
|
187
187
|
end
|
188
188
|
|
189
189
|
it "runs the destroy callbacks on the old document" do
|
190
|
-
pet_one.destroy_flag.
|
190
|
+
expect(pet_one.destroy_flag).to be true
|
191
191
|
end
|
192
192
|
end
|
193
193
|
end
|
@@ -199,11 +199,11 @@ describe Mongoid::Relations::Embedded::One do
|
|
199
199
|
end
|
200
200
|
|
201
201
|
it "sets the target of the relation" do
|
202
|
-
person.name.
|
202
|
+
expect(person.name).to eq(name)
|
203
203
|
end
|
204
204
|
|
205
205
|
it "does not save the target" do
|
206
|
-
name.
|
206
|
+
expect(name).to_not be_persisted
|
207
207
|
end
|
208
208
|
end
|
209
209
|
end
|
@@ -226,19 +226,19 @@ describe Mongoid::Relations::Embedded::One do
|
|
226
226
|
end
|
227
227
|
|
228
228
|
it "sets the target of the relation" do
|
229
|
-
parent_shelf.child_shelf.
|
229
|
+
expect(parent_shelf.child_shelf).to eq(child_shelf)
|
230
230
|
end
|
231
231
|
|
232
232
|
it "sets the base on the inverse relation" do
|
233
|
-
child_shelf.parent_shelf.
|
233
|
+
expect(child_shelf.parent_shelf).to eq(parent_shelf)
|
234
234
|
end
|
235
235
|
|
236
236
|
it "sets the same instance on the inverse relation" do
|
237
|
-
child_shelf.parent_shelf.
|
237
|
+
expect(child_shelf.parent_shelf).to eql(parent_shelf)
|
238
238
|
end
|
239
239
|
|
240
240
|
it "does not save the target" do
|
241
|
-
child_shelf.
|
241
|
+
expect(child_shelf).to_not be_persisted
|
242
242
|
end
|
243
243
|
end
|
244
244
|
|
@@ -257,19 +257,19 @@ describe Mongoid::Relations::Embedded::One do
|
|
257
257
|
end
|
258
258
|
|
259
259
|
it "sets the target of the relation" do
|
260
|
-
parent_shelf.child_shelf.
|
260
|
+
expect(parent_shelf.child_shelf).to eq(child_shelf)
|
261
261
|
end
|
262
262
|
|
263
263
|
it "sets the base on the inverse relation" do
|
264
|
-
child_shelf.parent_shelf.
|
264
|
+
expect(child_shelf.parent_shelf).to eq(parent_shelf)
|
265
265
|
end
|
266
266
|
|
267
267
|
it "sets the same instance on the inverse relation" do
|
268
|
-
child_shelf.parent_shelf.
|
268
|
+
expect(child_shelf.parent_shelf).to eql(parent_shelf)
|
269
269
|
end
|
270
270
|
|
271
271
|
it "saves the target" do
|
272
|
-
child_shelf.
|
272
|
+
expect(child_shelf).to be_persisted
|
273
273
|
end
|
274
274
|
end
|
275
275
|
end
|
@@ -287,7 +287,7 @@ describe Mongoid::Relations::Embedded::One do
|
|
287
287
|
end
|
288
288
|
|
289
289
|
it "saves the child document" do
|
290
|
-
parent.first_child.
|
290
|
+
expect(parent.first_child).to be_a(Child)
|
291
291
|
end
|
292
292
|
end
|
293
293
|
end
|
@@ -312,11 +312,11 @@ describe Mongoid::Relations::Embedded::One do
|
|
312
312
|
end
|
313
313
|
|
314
314
|
it "sets the relation to nil" do
|
315
|
-
person.name.
|
315
|
+
expect(person.name).to be_nil
|
316
316
|
end
|
317
317
|
|
318
318
|
it "removes the inverse relation" do
|
319
|
-
name.namable.
|
319
|
+
expect(name.namable).to be_nil
|
320
320
|
end
|
321
321
|
end
|
322
322
|
|
@@ -331,7 +331,7 @@ describe Mongoid::Relations::Embedded::One do
|
|
331
331
|
end
|
332
332
|
|
333
333
|
it "sets the relation to nil" do
|
334
|
-
person.name.
|
334
|
+
expect(person.name).to be_nil
|
335
335
|
end
|
336
336
|
end
|
337
337
|
|
@@ -353,15 +353,15 @@ describe Mongoid::Relations::Embedded::One do
|
|
353
353
|
end
|
354
354
|
|
355
355
|
it "sets the relation to nil" do
|
356
|
-
person.name.
|
356
|
+
expect(person.name).to be_nil
|
357
357
|
end
|
358
358
|
|
359
359
|
it "removed the inverse relation" do
|
360
|
-
name.namable.
|
360
|
+
expect(name.namable).to be_nil
|
361
361
|
end
|
362
362
|
|
363
363
|
it "deletes the child document" do
|
364
|
-
name.
|
364
|
+
expect(name).to be_destroyed
|
365
365
|
end
|
366
366
|
end
|
367
367
|
|
@@ -373,11 +373,11 @@ describe Mongoid::Relations::Embedded::One do
|
|
373
373
|
end
|
374
374
|
|
375
375
|
it "sets the relation to nil" do
|
376
|
-
person.name.
|
376
|
+
expect(person.name).to be_nil
|
377
377
|
end
|
378
378
|
|
379
379
|
it "does not delete the child document" do
|
380
|
-
name.
|
380
|
+
expect(name).to_not be_destroyed
|
381
381
|
end
|
382
382
|
end
|
383
383
|
end
|
@@ -401,11 +401,11 @@ describe Mongoid::Relations::Embedded::One do
|
|
401
401
|
end
|
402
402
|
|
403
403
|
it "sets the relation to nil" do
|
404
|
-
parent_shelf.child_shelf.
|
404
|
+
expect(parent_shelf.child_shelf).to be_nil
|
405
405
|
end
|
406
406
|
|
407
407
|
it "removes the inverse relation" do
|
408
|
-
child_shelf.parent_shelf.
|
408
|
+
expect(child_shelf.parent_shelf).to be_nil
|
409
409
|
end
|
410
410
|
end
|
411
411
|
|
@@ -420,7 +420,7 @@ describe Mongoid::Relations::Embedded::One do
|
|
420
420
|
end
|
421
421
|
|
422
422
|
it "sets the relation to nil" do
|
423
|
-
parent_shelf.child_shelf.
|
423
|
+
expect(parent_shelf.child_shelf).to be_nil
|
424
424
|
end
|
425
425
|
end
|
426
426
|
|
@@ -440,15 +440,15 @@ describe Mongoid::Relations::Embedded::One do
|
|
440
440
|
end
|
441
441
|
|
442
442
|
it "sets the relation to nil" do
|
443
|
-
parent_shelf.child_shelf.
|
443
|
+
expect(parent_shelf.child_shelf).to be_nil
|
444
444
|
end
|
445
445
|
|
446
446
|
it "removed the inverse relation" do
|
447
|
-
child_shelf.parent_shelf.
|
447
|
+
expect(child_shelf.parent_shelf).to be_nil
|
448
448
|
end
|
449
449
|
|
450
450
|
it "deletes the child document" do
|
451
|
-
child_shelf.
|
451
|
+
expect(child_shelf).to be_destroyed
|
452
452
|
end
|
453
453
|
end
|
454
454
|
end
|
@@ -456,27 +456,6 @@ describe Mongoid::Relations::Embedded::One do
|
|
456
456
|
|
457
457
|
describe "#build_#\{name}" do
|
458
458
|
|
459
|
-
context "when providing mass assignment scoping" do
|
460
|
-
|
461
|
-
let(:person) do
|
462
|
-
Person.new
|
463
|
-
end
|
464
|
-
|
465
|
-
let(:quiz) do
|
466
|
-
person.build_quiz(
|
467
|
-
{ topic: "Testing", name: "Test" }, as: :admin
|
468
|
-
)
|
469
|
-
end
|
470
|
-
|
471
|
-
it "sets the attributes for the role" do
|
472
|
-
quiz.topic.should eq("Testing")
|
473
|
-
end
|
474
|
-
|
475
|
-
it "does not set attributes not for the role" do
|
476
|
-
quiz.name.should be_nil
|
477
|
-
end
|
478
|
-
end
|
479
|
-
|
480
459
|
context "when the relation is not cyclic" do
|
481
460
|
|
482
461
|
context "when the parent is a new record" do
|
@@ -494,19 +473,19 @@ describe Mongoid::Relations::Embedded::One do
|
|
494
473
|
end
|
495
474
|
|
496
475
|
it "sets the target of the relation" do
|
497
|
-
person.name.
|
476
|
+
expect(person.name).to eq(name)
|
498
477
|
end
|
499
478
|
|
500
479
|
it "sets the base on the inverse relation" do
|
501
|
-
name.namable.
|
480
|
+
expect(name.namable).to eq(person)
|
502
481
|
end
|
503
482
|
|
504
483
|
it "sets no attributes" do
|
505
|
-
name.first_name.
|
484
|
+
expect(name.first_name).to be_nil
|
506
485
|
end
|
507
486
|
|
508
487
|
it "does not save the target" do
|
509
|
-
name.
|
488
|
+
expect(name).to_not be_persisted
|
510
489
|
end
|
511
490
|
end
|
512
491
|
|
@@ -522,19 +501,19 @@ describe Mongoid::Relations::Embedded::One do
|
|
522
501
|
end
|
523
502
|
|
524
503
|
it "sets the target of the relation" do
|
525
|
-
person.name.
|
504
|
+
expect(person.name).to eq(name)
|
526
505
|
end
|
527
506
|
|
528
507
|
it "sets the base on the inverse relation" do
|
529
|
-
name.namable.
|
508
|
+
expect(name.namable).to eq(person)
|
530
509
|
end
|
531
510
|
|
532
511
|
it "sets no attributes" do
|
533
|
-
name.first_name.
|
512
|
+
expect(name.first_name).to be_nil
|
534
513
|
end
|
535
514
|
|
536
515
|
it "does not save the target" do
|
537
|
-
name.
|
516
|
+
expect(name).to_not be_persisted
|
538
517
|
end
|
539
518
|
end
|
540
519
|
end
|
@@ -550,19 +529,19 @@ describe Mongoid::Relations::Embedded::One do
|
|
550
529
|
end
|
551
530
|
|
552
531
|
it "sets the target of the relation" do
|
553
|
-
person.name.
|
532
|
+
expect(person.name).to eq(name)
|
554
533
|
end
|
555
534
|
|
556
535
|
it "sets the base on the inverse relation" do
|
557
|
-
name.namable.
|
536
|
+
expect(name.namable).to eq(person)
|
558
537
|
end
|
559
538
|
|
560
539
|
it "sets no attributes" do
|
561
|
-
name.first_name.
|
540
|
+
expect(name.first_name).to be_nil
|
562
541
|
end
|
563
542
|
|
564
543
|
it "does not save the target" do
|
565
|
-
name.
|
544
|
+
expect(name).to_not be_persisted
|
566
545
|
end
|
567
546
|
end
|
568
547
|
|
@@ -577,19 +556,19 @@ describe Mongoid::Relations::Embedded::One do
|
|
577
556
|
end
|
578
557
|
|
579
558
|
it "sets the target of the relation" do
|
580
|
-
person.name.
|
559
|
+
expect(person.name).to eq(name)
|
581
560
|
end
|
582
561
|
|
583
562
|
it "sets the base on the inverse relation" do
|
584
|
-
name.namable.
|
563
|
+
expect(name.namable).to eq(person)
|
585
564
|
end
|
586
565
|
|
587
566
|
it "sets the attributes" do
|
588
|
-
name.first_name.
|
567
|
+
expect(name.first_name).to eq("James")
|
589
568
|
end
|
590
569
|
|
591
570
|
it "does not save the target" do
|
592
|
-
name.
|
571
|
+
expect(name).to_not be_persisted
|
593
572
|
end
|
594
573
|
end
|
595
574
|
end
|
@@ -605,7 +584,7 @@ describe Mongoid::Relations::Embedded::One do
|
|
605
584
|
end
|
606
585
|
|
607
586
|
it "does not save the target" do
|
608
|
-
name.
|
587
|
+
expect(name).to_not be_persisted
|
609
588
|
end
|
610
589
|
end
|
611
590
|
end
|
@@ -623,19 +602,19 @@ describe Mongoid::Relations::Embedded::One do
|
|
623
602
|
end
|
624
603
|
|
625
604
|
it "sets the target of the relation" do
|
626
|
-
parent_shelf.child_shelf.
|
605
|
+
expect(parent_shelf.child_shelf).to eq(child_shelf)
|
627
606
|
end
|
628
607
|
|
629
608
|
it "sets the base on the inverse relation" do
|
630
|
-
child_shelf.parent_shelf.
|
609
|
+
expect(child_shelf.parent_shelf).to eq(parent_shelf)
|
631
610
|
end
|
632
611
|
|
633
612
|
it "sets the attributes" do
|
634
|
-
child_shelf.level.
|
613
|
+
expect(child_shelf.level).to eq(1)
|
635
614
|
end
|
636
615
|
|
637
616
|
it "does not save the target" do
|
638
|
-
child_shelf.
|
617
|
+
expect(child_shelf).to_not be_persisted
|
639
618
|
end
|
640
619
|
end
|
641
620
|
|
@@ -650,7 +629,7 @@ describe Mongoid::Relations::Embedded::One do
|
|
650
629
|
end
|
651
630
|
|
652
631
|
it "does not save the target" do
|
653
|
-
child_shelf.
|
632
|
+
expect(child_shelf).to_not be_persisted
|
654
633
|
end
|
655
634
|
end
|
656
635
|
end
|
@@ -675,33 +654,12 @@ describe Mongoid::Relations::Embedded::One do
|
|
675
654
|
end
|
676
655
|
|
677
656
|
it "returns the embedded one builder" do
|
678
|
-
described_class.builder(base, metadata, target).
|
657
|
+
expect(described_class.builder(base, metadata, target)).to be_a(builder_klass)
|
679
658
|
end
|
680
659
|
end
|
681
660
|
|
682
661
|
describe "#create_#\{name}" do
|
683
662
|
|
684
|
-
context "when providing mass assignment scoping" do
|
685
|
-
|
686
|
-
let(:person) do
|
687
|
-
Person.new
|
688
|
-
end
|
689
|
-
|
690
|
-
let(:quiz) do
|
691
|
-
person.create_quiz(
|
692
|
-
{ topic: "Testing", name: "Test" }, as: :admin
|
693
|
-
)
|
694
|
-
end
|
695
|
-
|
696
|
-
it "sets the attributes for the role" do
|
697
|
-
quiz.topic.should eq("Testing")
|
698
|
-
end
|
699
|
-
|
700
|
-
it "does not set attributes not for the role" do
|
701
|
-
quiz.name.should be_nil
|
702
|
-
end
|
703
|
-
end
|
704
|
-
|
705
663
|
context "when the parent is a new record" do
|
706
664
|
|
707
665
|
context "when not providing any attributes" do
|
@@ -715,19 +673,19 @@ describe Mongoid::Relations::Embedded::One do
|
|
715
673
|
end
|
716
674
|
|
717
675
|
it "sets the target of the relation" do
|
718
|
-
person.name.
|
676
|
+
expect(person.name).to eq(name)
|
719
677
|
end
|
720
678
|
|
721
679
|
it "sets the base on the inverse relation" do
|
722
|
-
name.namable.
|
680
|
+
expect(name.namable).to eq(person)
|
723
681
|
end
|
724
682
|
|
725
683
|
it "sets no attributes" do
|
726
|
-
name.first_name.
|
684
|
+
expect(name.first_name).to be_nil
|
727
685
|
end
|
728
686
|
|
729
687
|
it "saves the target" do
|
730
|
-
name.
|
688
|
+
expect(name).to be_persisted
|
731
689
|
end
|
732
690
|
end
|
733
691
|
|
@@ -742,19 +700,19 @@ describe Mongoid::Relations::Embedded::One do
|
|
742
700
|
end
|
743
701
|
|
744
702
|
it "sets the target of the relation" do
|
745
|
-
person.name.
|
703
|
+
expect(person.name).to eq(name)
|
746
704
|
end
|
747
705
|
|
748
706
|
it "sets the base on the inverse relation" do
|
749
|
-
name.namable.
|
707
|
+
expect(name.namable).to eq(person)
|
750
708
|
end
|
751
709
|
|
752
710
|
it "sets no attributes" do
|
753
|
-
name.first_name.
|
711
|
+
expect(name.first_name).to be_nil
|
754
712
|
end
|
755
713
|
|
756
714
|
it "saves the target" do
|
757
|
-
name.
|
715
|
+
expect(name).to be_persisted
|
758
716
|
end
|
759
717
|
end
|
760
718
|
|
@@ -769,19 +727,19 @@ describe Mongoid::Relations::Embedded::One do
|
|
769
727
|
end
|
770
728
|
|
771
729
|
it "sets the target of the relation" do
|
772
|
-
person.name.
|
730
|
+
expect(person.name).to eq(name)
|
773
731
|
end
|
774
732
|
|
775
733
|
it "sets the base on the inverse relation" do
|
776
|
-
name.namable.
|
734
|
+
expect(name.namable).to eq(person)
|
777
735
|
end
|
778
736
|
|
779
737
|
it "sets the attributes" do
|
780
|
-
name.first_name.
|
738
|
+
expect(name.first_name).to eq("James")
|
781
739
|
end
|
782
740
|
|
783
741
|
it "saves the target" do
|
784
|
-
name.
|
742
|
+
expect(name).to be_persisted
|
785
743
|
end
|
786
744
|
end
|
787
745
|
|
@@ -796,7 +754,7 @@ describe Mongoid::Relations::Embedded::One do
|
|
796
754
|
end
|
797
755
|
|
798
756
|
it "does not save the target" do
|
799
|
-
name.
|
757
|
+
expect(name).to be_persisted
|
800
758
|
end
|
801
759
|
end
|
802
760
|
end
|
@@ -805,21 +763,21 @@ describe Mongoid::Relations::Embedded::One do
|
|
805
763
|
describe ".embedded?" do
|
806
764
|
|
807
765
|
it "returns true" do
|
808
|
-
described_class.
|
766
|
+
expect(described_class).to be_embedded
|
809
767
|
end
|
810
768
|
end
|
811
769
|
|
812
770
|
describe ".foreign_key_suffix" do
|
813
771
|
|
814
772
|
it "returns nil" do
|
815
|
-
described_class.foreign_key_suffix.
|
773
|
+
expect(described_class.foreign_key_suffix).to be_nil
|
816
774
|
end
|
817
775
|
end
|
818
776
|
|
819
777
|
describe ".macro" do
|
820
778
|
|
821
779
|
it "returns embeds_one" do
|
822
|
-
described_class.macro.
|
780
|
+
expect(described_class.macro).to eq(:embeds_one)
|
823
781
|
end
|
824
782
|
end
|
825
783
|
|
@@ -838,8 +796,9 @@ describe Mongoid::Relations::Embedded::One do
|
|
838
796
|
end
|
839
797
|
|
840
798
|
it "returns the single nested builder" do
|
841
|
-
|
842
|
-
|
799
|
+
expect(
|
800
|
+
described_class.nested_builder(metadata, attributes, {})
|
801
|
+
).to be_a(nested_builder_klass)
|
843
802
|
end
|
844
803
|
end
|
845
804
|
|
@@ -862,20 +821,20 @@ describe Mongoid::Relations::Embedded::One do
|
|
862
821
|
context "when checking #{method}" do
|
863
822
|
|
864
823
|
it "returns true" do
|
865
|
-
document.respond_to?(method).
|
824
|
+
expect(document.respond_to?(method)).to be true
|
866
825
|
end
|
867
826
|
end
|
868
827
|
end
|
869
828
|
|
870
829
|
it "responds to persisted?" do
|
871
|
-
document.
|
830
|
+
expect(document).to respond_to(:persisted?)
|
872
831
|
end
|
873
832
|
end
|
874
833
|
|
875
834
|
describe ".valid_options" do
|
876
835
|
|
877
836
|
it "returns the valid options" do
|
878
|
-
described_class.valid_options.
|
837
|
+
expect(described_class.valid_options).to eq(
|
879
838
|
[ :autobuild, :as, :cascade_callbacks, :cyclic, :store_as ]
|
880
839
|
)
|
881
840
|
end
|
@@ -884,7 +843,7 @@ describe Mongoid::Relations::Embedded::One do
|
|
884
843
|
describe ".validation_default" do
|
885
844
|
|
886
845
|
it "returns true" do
|
887
|
-
described_class.validation_default.
|
846
|
+
expect(described_class.validation_default).to be true
|
888
847
|
end
|
889
848
|
end
|
890
849
|
|
@@ -914,11 +873,11 @@ describe Mongoid::Relations::Embedded::One do
|
|
914
873
|
end
|
915
874
|
|
916
875
|
it "sets the values of the array" do
|
917
|
-
from_db.aliases.
|
876
|
+
expect(from_db.aliases).to eq([ "Syd", "Sydney" ])
|
918
877
|
end
|
919
878
|
|
920
879
|
it "persists the array" do
|
921
|
-
Person.find(person.id).name.aliases.
|
880
|
+
expect(Person.find(person.id).name.aliases).to eq([ "Syd", "Sydney" ])
|
922
881
|
end
|
923
882
|
end
|
924
883
|
end
|
@@ -956,7 +915,7 @@ describe Mongoid::Relations::Embedded::One do
|
|
956
915
|
end
|
957
916
|
|
958
917
|
it "persists the new document on the first save" do
|
959
|
-
from_db.reload.name.translations.
|
918
|
+
expect(from_db.reload.name.translations).to_not be_empty
|
960
919
|
end
|
961
920
|
end
|
962
921
|
end
|
@@ -986,7 +945,7 @@ describe Mongoid::Relations::Embedded::One do
|
|
986
945
|
end
|
987
946
|
|
988
947
|
it "reloads the correct number" do
|
989
|
-
person.reload.addresses.count.
|
948
|
+
expect(person.reload.addresses.count).to eq(1)
|
990
949
|
end
|
991
950
|
|
992
951
|
context "when adding a child" do
|
@@ -1000,7 +959,7 @@ describe Mongoid::Relations::Embedded::One do
|
|
1000
959
|
end
|
1001
960
|
|
1002
961
|
it "reloads the correct number" do
|
1003
|
-
person.reload.addresses.count.
|
962
|
+
expect(person.reload.addresses.count).to eq(1)
|
1004
963
|
end
|
1005
964
|
end
|
1006
965
|
end
|
@@ -1029,11 +988,11 @@ describe Mongoid::Relations::Embedded::One do
|
|
1029
988
|
end
|
1030
989
|
|
1031
990
|
it "creates proper documents from the db" do
|
1032
|
-
label.name.
|
991
|
+
expect(label.name).to eq("Mute")
|
1033
992
|
end
|
1034
993
|
|
1035
994
|
it "assigns ids to the documents" do
|
1036
|
-
label.id.
|
995
|
+
expect(label.id).to_not be_nil
|
1037
996
|
end
|
1038
997
|
|
1039
998
|
context "when subsequently updating the documents" do
|
@@ -1043,11 +1002,11 @@ describe Mongoid::Relations::Embedded::One do
|
|
1043
1002
|
end
|
1044
1003
|
|
1045
1004
|
it "updates the document" do
|
1046
|
-
label.name.
|
1005
|
+
expect(label.name).to eq("Interscope")
|
1047
1006
|
end
|
1048
1007
|
|
1049
1008
|
it "persists the change" do
|
1050
|
-
label.reload.name.
|
1009
|
+
expect(label.reload.name).to eq("Interscope")
|
1051
1010
|
end
|
1052
1011
|
end
|
1053
1012
|
end
|