mongoid 3.1.6 → 4.0.0
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 +432 -8
- data/README.md +5 -6
- data/lib/config/locales/en.yml +32 -18
- data/lib/mongoid/atomic/paths/embedded/many.rb +1 -1
- data/lib/mongoid/atomic/paths/embedded/one.rb +1 -1
- data/lib/mongoid/atomic/paths/embedded.rb +0 -30
- data/lib/mongoid/atomic/paths/root.rb +0 -13
- data/lib/mongoid/atomic.rb +1 -12
- data/lib/mongoid/attributes/dynamic.rb +154 -0
- data/lib/mongoid/attributes/nested.rb +82 -0
- data/lib/mongoid/attributes/processing.rb +13 -66
- data/lib/mongoid/attributes.rb +63 -101
- data/lib/mongoid/{dirty.rb → changeable.rb} +32 -2
- data/lib/mongoid/composable.rb +105 -0
- data/lib/mongoid/config/options.rb +1 -1
- data/lib/mongoid/config.rb +3 -9
- data/lib/mongoid/contextual/aggregable/mongo.rb +7 -9
- data/lib/mongoid/contextual/atomic.rb +53 -53
- data/lib/mongoid/contextual/geo_near.rb +1 -1
- data/lib/mongoid/contextual/map_reduce.rb +4 -2
- data/lib/mongoid/contextual/memory.rb +18 -6
- data/lib/mongoid/contextual/mongo.rb +64 -56
- data/lib/mongoid/contextual/none.rb +90 -0
- data/lib/mongoid/contextual/text_search.rb +178 -0
- data/lib/mongoid/contextual.rb +2 -0
- data/lib/mongoid/copyable.rb +2 -3
- data/lib/mongoid/{criterion → criteria}/findable.rb +7 -47
- data/lib/mongoid/{criterion/inspection.rb → criteria/inspectable.rb} +2 -2
- data/lib/mongoid/{criterion → criteria}/marshalable.rb +3 -1
- data/lib/mongoid/{criterion → criteria}/modifiable.rb +28 -8
- data/lib/mongoid/criteria/permission.rb +70 -0
- data/lib/mongoid/{criterion/scoping.rb → criteria/scopable.rb} +2 -2
- data/lib/mongoid/criteria.rb +39 -34
- data/lib/mongoid/document.rb +32 -17
- data/lib/mongoid/errors/document_not_destroyed.rb +25 -0
- data/lib/mongoid/errors/document_not_found.rb +2 -1
- data/lib/mongoid/errors/invalid_storage_options.rb +1 -1
- data/lib/mongoid/errors/invalid_storage_parent.rb +26 -0
- data/lib/mongoid/errors/invalid_value.rb +16 -0
- data/lib/mongoid/errors/mongoid_error.rb +1 -1
- data/lib/mongoid/errors/readonly_document.rb +24 -0
- data/lib/mongoid/errors.rb +4 -1
- data/lib/mongoid/extensions/array.rb +3 -3
- data/lib/mongoid/extensions/big_decimal.rb +1 -1
- data/lib/mongoid/extensions/boolean.rb +15 -17
- data/lib/mongoid/extensions/date.rb +1 -1
- data/lib/mongoid/extensions/date_time.rb +3 -3
- data/lib/mongoid/extensions/float.rb +2 -1
- data/lib/mongoid/extensions/hash.rb +3 -3
- data/lib/mongoid/extensions/integer.rb +1 -1
- data/lib/mongoid/extensions/object.rb +7 -7
- data/lib/mongoid/extensions/object_id.rb +5 -5
- data/lib/mongoid/extensions/range.rb +9 -3
- data/lib/mongoid/extensions/regexp.rb +1 -1
- data/lib/mongoid/extensions/set.rb +1 -1
- data/lib/mongoid/extensions/string.rb +6 -18
- data/lib/mongoid/extensions/symbol.rb +1 -1
- data/lib/mongoid/extensions/time.rb +3 -3
- data/lib/mongoid/extensions/time_with_zone.rb +1 -1
- data/lib/mongoid/extensions.rb +2 -7
- data/lib/mongoid/factory.rb +8 -6
- data/lib/mongoid/fields/foreign_key.rb +3 -3
- data/lib/mongoid/fields/localized.rb +1 -1
- data/lib/mongoid/fields/standard.rb +5 -17
- data/lib/mongoid/fields/validators/macro.rb +15 -5
- data/lib/mongoid/fields.rb +41 -8
- data/lib/mongoid/{finders.rb → findable.rb} +8 -2
- data/lib/mongoid/indexable/specification.rb +104 -0
- data/lib/mongoid/{indexes → indexable}/validators/options.rb +2 -1
- data/lib/mongoid/{indexes.rb → indexable.rb} +50 -55
- data/lib/mongoid/{inspection.rb → inspectable.rb} +15 -11
- data/lib/mongoid/{callbacks.rb → interceptable.rb} +30 -62
- data/lib/mongoid/log_subscriber.rb +55 -0
- data/lib/mongoid/{matchers → matchable}/all.rb +1 -1
- data/lib/mongoid/{matchers → matchable}/and.rb +2 -2
- data/lib/mongoid/{matchers → matchable}/default.rb +1 -1
- data/lib/mongoid/{matchers → matchable}/exists.rb +1 -1
- data/lib/mongoid/{matchers → matchable}/gt.rb +1 -1
- data/lib/mongoid/{matchers → matchable}/gte.rb +1 -1
- data/lib/mongoid/{matchers → matchable}/in.rb +2 -2
- data/lib/mongoid/{matchers → matchable}/lt.rb +1 -1
- data/lib/mongoid/{matchers → matchable}/lte.rb +1 -1
- data/lib/mongoid/{matchers → matchable}/ne.rb +2 -2
- data/lib/mongoid/{matchers → matchable}/nin.rb +3 -2
- data/lib/mongoid/{matchers → matchable}/or.rb +2 -2
- data/lib/mongoid/{matchers → matchable}/size.rb +1 -1
- data/lib/mongoid/matchable.rb +152 -0
- data/lib/mongoid/persistable/creatable.rb +188 -0
- data/lib/mongoid/persistable/deletable.rb +149 -0
- data/lib/mongoid/persistable/destroyable.rb +60 -0
- data/lib/mongoid/persistable/incrementable.rb +36 -0
- data/lib/mongoid/persistable/logical.rb +38 -0
- data/lib/mongoid/persistable/poppable.rb +39 -0
- data/lib/mongoid/persistable/pullable.rb +55 -0
- data/lib/mongoid/persistable/pushable.rb +62 -0
- data/lib/mongoid/persistable/renamable.rb +35 -0
- data/lib/mongoid/persistable/savable.rb +52 -0
- data/lib/mongoid/persistable/settable.rb +33 -0
- data/lib/mongoid/persistable/unsettable.rb +36 -0
- data/lib/mongoid/persistable/updatable.rb +152 -0
- data/lib/mongoid/persistable/upsertable.rb +55 -0
- data/lib/mongoid/persistable.rb +216 -0
- data/lib/mongoid/positional.rb +71 -0
- data/lib/mongoid/query_cache.rb +247 -0
- data/lib/mongoid/railtie.rb +32 -45
- data/lib/mongoid/railties/database.rake +9 -25
- data/lib/mongoid/relations/accessors.rb +13 -49
- data/lib/mongoid/relations/auto_save.rb +15 -36
- data/lib/mongoid/relations/binding.rb +1 -24
- data/lib/mongoid/relations/bindings/embedded/in.rb +1 -1
- data/lib/mongoid/relations/bindings/embedded/many.rb +1 -3
- data/lib/mongoid/relations/bindings/referenced/in.rb +3 -8
- data/lib/mongoid/relations/bindings/referenced/many_to_many.rb +3 -1
- data/lib/mongoid/relations/builder.rb +1 -1
- 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/builders.rb +2 -2
- data/lib/mongoid/relations/cascading.rb +3 -5
- data/lib/mongoid/relations/constraint.rb +1 -1
- data/lib/mongoid/relations/conversions.rb +1 -1
- data/lib/mongoid/relations/counter_cache.rb +39 -15
- data/lib/mongoid/relations/eager/base.rb +149 -0
- data/lib/mongoid/relations/eager/belongs_to.rb +31 -0
- data/lib/mongoid/relations/eager/has_and_belongs_to_many.rb +47 -0
- data/lib/mongoid/relations/eager/has_many.rb +38 -0
- data/lib/mongoid/relations/eager/has_one.rb +30 -0
- data/lib/mongoid/relations/eager.rb +46 -0
- data/lib/mongoid/relations/embedded/batchable.rb +4 -5
- data/lib/mongoid/relations/embedded/in.rb +4 -4
- data/lib/mongoid/relations/embedded/many.rb +14 -32
- data/lib/mongoid/relations/embedded/one.rb +1 -1
- data/lib/mongoid/relations/macros.rb +3 -4
- data/lib/mongoid/relations/many.rb +30 -31
- data/lib/mongoid/relations/marshalable.rb +3 -3
- data/lib/mongoid/relations/metadata.rb +14 -79
- data/lib/mongoid/relations/nested_builder.rb +2 -2
- data/lib/mongoid/relations/options.rb +1 -0
- data/lib/mongoid/relations/polymorphic.rb +0 -1
- data/lib/mongoid/relations/proxy.rb +21 -41
- data/lib/mongoid/relations/referenced/in.rb +4 -20
- data/lib/mongoid/relations/referenced/many.rb +19 -32
- data/lib/mongoid/relations/referenced/many_to_many.rb +15 -38
- data/lib/mongoid/relations/referenced/one.rb +6 -25
- data/lib/mongoid/relations/synchronization.rb +3 -3
- data/lib/mongoid/relations/touchable.rb +34 -1
- data/lib/mongoid/relations.rb +11 -25
- data/lib/mongoid/{reloading.rb → reloadable.rb} +6 -4
- data/lib/mongoid/{scoping.rb → scopable.rb} +36 -36
- data/lib/mongoid/selectable.rb +59 -0
- data/lib/mongoid/{serialization.rb → serializable.rb} +11 -2
- data/lib/mongoid/sessions/factory.rb +2 -0
- data/lib/mongoid/sessions/options.rb +180 -0
- data/lib/mongoid/sessions/storage_options.rb +140 -0
- data/lib/mongoid/sessions/thread_options.rb +19 -0
- data/lib/mongoid/sessions/validators/storage.rb +16 -3
- data/lib/mongoid/sessions.rb +37 -345
- data/lib/mongoid/{sharding.rb → shardable.rb} +5 -1
- data/lib/mongoid/{state.rb → stateful.rb} +13 -1
- data/lib/mongoid/support/query_counter.rb +23 -0
- data/lib/mongoid/tasks/database.rake +31 -0
- data/lib/mongoid/tasks/database.rb +107 -0
- data/lib/mongoid/threaded/lifecycle.rb +0 -28
- data/lib/mongoid/threaded.rb +0 -157
- data/lib/mongoid/timestamps/updated/short.rb +2 -2
- data/lib/mongoid/{hierarchy.rb → traversable.rb} +9 -5
- data/lib/mongoid/{validations → validatable}/associated.rb +4 -2
- data/lib/mongoid/{validations → validatable}/format.rb +1 -1
- data/lib/mongoid/{validations → validatable}/length.rb +1 -1
- data/lib/mongoid/{validations → validatable}/localizable.rb +1 -1
- data/lib/mongoid/{validations → validatable}/macros.rb +4 -3
- data/lib/mongoid/{validations → validatable}/presence.rb +1 -1
- data/lib/mongoid/{validations → validatable}/queryable.rb +1 -2
- data/lib/mongoid/{validations → validatable}/uniqueness.rb +23 -19
- data/lib/mongoid/{validations.rb → validatable.rb} +23 -10
- data/lib/mongoid/version.rb +1 -1
- data/lib/mongoid.rb +10 -76
- data/lib/rails/generators/mongoid/config/templates/mongoid.yml +13 -24
- data/lib/rails/generators/mongoid/model/model_generator.rb +0 -1
- data/lib/rails/generators/mongoid/model/templates/model.rb.tt +0 -3
- data/lib/rails/generators/mongoid_generator.rb +3 -40
- data/lib/rails/mongoid.rb +0 -122
- data/lib/support/ruby_version.rb +1 -1
- data/spec/app/models/account.rb +2 -6
- data/spec/app/models/acolyte.rb +2 -1
- data/spec/app/models/actor.rb +0 -1
- data/spec/app/models/address.rb +8 -3
- data/spec/app/models/animal.rb +1 -1
- data/spec/app/models/appointment.rb +3 -3
- data/spec/app/models/article.rb +1 -4
- data/spec/app/models/audio.rb +5 -0
- data/spec/app/models/author.rb +0 -2
- data/spec/app/models/band.rb +3 -2
- data/spec/app/models/bar.rb +1 -0
- data/spec/app/models/book.rb +1 -0
- data/spec/app/models/building.rb +0 -2
- data/spec/app/models/building_address.rb +0 -2
- data/spec/app/models/bus.rb +1 -1
- data/spec/app/models/canvas.rb +1 -1
- data/spec/app/models/contractor.rb +0 -2
- data/spec/app/models/country_code.rb +1 -1
- data/spec/app/models/definition.rb +2 -2
- data/spec/app/models/dog.rb +1 -1
- data/spec/app/models/draft.rb +9 -0
- data/spec/app/models/dragon.rb +4 -0
- data/spec/app/models/drug.rb +1 -3
- data/spec/app/models/dungeon.rb +4 -0
- data/spec/app/models/edit.rb +5 -0
- data/spec/app/models/even.rb +7 -0
- data/spec/app/models/event.rb +1 -1
- data/spec/app/models/filesystem.rb +1 -0
- data/spec/app/models/fish.rb +0 -1
- data/spec/app/models/fruits.rb +6 -0
- data/spec/app/models/game.rb +0 -2
- data/spec/app/models/house.rb +1 -3
- data/spec/app/models/item.rb +1 -5
- data/spec/app/models/jar.rb +1 -1
- data/spec/app/models/label.rb +4 -4
- data/spec/app/models/line_item.rb +1 -1
- data/spec/app/models/login.rb +1 -1
- data/spec/app/models/message.rb +8 -0
- data/spec/app/models/movie.rb +1 -0
- data/spec/app/models/name.rb +3 -3
- data/spec/app/models/note.rb +3 -1
- data/spec/app/models/odd.rb +7 -0
- data/spec/app/models/oscar.rb +1 -1
- data/spec/app/models/parent_doc.rb +1 -1
- data/spec/app/models/person.rb +16 -10
- data/spec/app/models/phone.rb +1 -3
- data/spec/app/models/player.rb +3 -3
- data/spec/app/models/post.rb +5 -3
- data/spec/app/models/preference.rb +1 -1
- data/spec/app/models/quiz.rb +0 -3
- data/spec/app/models/record.rb +10 -5
- data/spec/app/models/registry.rb +1 -1
- data/spec/app/models/server.rb +1 -1
- data/spec/app/models/service.rb +3 -3
- data/spec/app/models/sound.rb +5 -0
- data/spec/app/models/symptom.rb +1 -1
- data/spec/app/models/template.rb +1 -1
- data/spec/app/models/title.rb +0 -1
- data/spec/app/models/track.rb +5 -5
- data/spec/app/models/tree.rb +3 -3
- data/spec/app/models/video.rb +1 -5
- data/spec/app/models/wiki_page.rb +2 -5
- data/spec/app/models/word.rb +3 -0
- data/spec/app/models/word_origin.rb +1 -1
- data/spec/config/mongoid.yml +7 -8
- data/spec/helpers.rb +18 -0
- data/spec/mongoid/atomic/modifiers_spec.rb +22 -22
- data/spec/mongoid/atomic/paths/embedded/many_spec.rb +8 -49
- data/spec/mongoid/atomic/paths/embedded/one_spec.rb +7 -49
- data/spec/mongoid/atomic/paths/root_spec.rb +3 -61
- data/spec/mongoid/atomic/paths_spec.rb +19 -19
- data/spec/mongoid/atomic_spec.rb +19 -19
- data/spec/mongoid/{nested_attributes_spec.rb → attributes/nested_spec.rb} +335 -448
- data/spec/mongoid/attributes/readonly_spec.rb +58 -18
- data/spec/mongoid/attributes_spec.rb +315 -436
- data/spec/mongoid/{dirty_spec.rb → changeable_spec.rb} +203 -153
- data/spec/mongoid/{components_spec.rb → composable_spec.rb} +3 -3
- data/spec/mongoid/config/environment_spec.rb +3 -3
- data/spec/mongoid/config/options_spec.rb +6 -6
- data/spec/mongoid/config_spec.rb +24 -48
- data/spec/mongoid/contextual/aggregable/memory_spec.rb +12 -12
- data/spec/mongoid/contextual/aggregable/mongo_spec.rb +78 -38
- data/spec/mongoid/contextual/atomic_spec.rb +68 -58
- 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 +151 -94
- data/spec/mongoid/contextual/mongo_spec.rb +238 -150
- data/spec/mongoid/contextual/none_spec.rb +127 -0
- data/spec/mongoid/contextual/text_search_spec.rb +209 -0
- data/spec/mongoid/copyable_spec.rb +56 -68
- data/spec/mongoid/criteria/findable_spec.rb +991 -0
- data/spec/mongoid/{criterion/inspection_spec.rb → criteria/inspectable_spec.rb} +5 -5
- data/spec/mongoid/{criterion → criteria}/marshalable_spec.rb +2 -2
- data/spec/mongoid/criteria/modifiable_spec.rb +1255 -0
- data/spec/mongoid/{criterion/scoping_spec.rb → criteria/scopable_spec.rb} +37 -37
- data/spec/mongoid/criteria_spec.rb +578 -2295
- 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_destroyed_spec.rb +33 -0
- data/spec/mongoid/errors/document_not_found_spec.rb +11 -11
- data/spec/mongoid/errors/eager_load_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_collection_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_config_option_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_field_option_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_field_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_find_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_includes_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_index_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_options_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_path_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_scope_spec.rb +5 -5
- data/spec/mongoid/errors/invalid_set_polymorphic_relation_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_storage_options_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_time_spec.rb +3 -3
- data/spec/mongoid/errors/inverse_not_found_spec.rb +3 -3
- data/spec/mongoid/errors/mixed_relations_spec.rb +3 -3
- data/spec/mongoid/errors/mixed_session_configuration_spec.rb +3 -3
- data/spec/mongoid/errors/mongoid_error_spec.rb +8 -8
- data/spec/mongoid/errors/nested_attributes_metadata_not_found_spec.rb +3 -3
- data/spec/mongoid/errors/no_environment_spec.rb +3 -3
- data/spec/mongoid/errors/no_map_reduce_output_spec.rb +3 -3
- data/spec/mongoid/errors/no_metadata_spec.rb +3 -3
- data/spec/mongoid/errors/no_parent_spec.rb +3 -3
- data/spec/mongoid/errors/no_session_config_spec.rb +3 -3
- data/spec/mongoid/errors/no_session_database_spec.rb +3 -3
- data/spec/mongoid/errors/no_session_hosts_spec.rb +3 -3
- data/spec/mongoid/errors/no_sessions_config_spec.rb +3 -3
- data/spec/mongoid/errors/readonly_attribute_spec.rb +3 -3
- data/spec/mongoid/errors/readonly_document_spec.rb +29 -0
- data/spec/mongoid/errors/scope_overwrite_spec.rb +3 -3
- data/spec/mongoid/errors/too_many_nested_attribute_records_spec.rb +3 -3
- data/spec/mongoid/errors/unknown_attribute_spec.rb +5 -5
- data/spec/mongoid/errors/unsaved_document_spec.rb +3 -3
- data/spec/mongoid/errors/unsupported_javascript_spec.rb +3 -3
- data/spec/mongoid/errors/validations_spec.rb +7 -7
- data/spec/mongoid/extensions/array_spec.rb +61 -61
- data/spec/mongoid/extensions/big_decimal_spec.rb +11 -11
- data/spec/mongoid/extensions/binary_spec.rb +12 -12
- data/spec/mongoid/extensions/boolean_spec.rb +18 -18
- data/spec/mongoid/extensions/date_spec.rb +13 -13
- data/spec/mongoid/extensions/date_time_spec.rb +8 -8
- data/spec/mongoid/extensions/false_class_spec.rb +5 -5
- data/spec/mongoid/extensions/float_spec.rb +29 -15
- data/spec/mongoid/extensions/hash_spec.rb +29 -29
- data/spec/mongoid/extensions/integer_spec.rb +15 -15
- data/spec/mongoid/extensions/module_spec.rb +2 -2
- data/spec/mongoid/extensions/nil_class_spec.rb +1 -1
- data/spec/mongoid/extensions/object_id_spec.rb +134 -134
- data/spec/mongoid/extensions/object_spec.rb +26 -26
- data/spec/mongoid/extensions/range_spec.rb +61 -12
- data/spec/mongoid/extensions/regexp_spec.rb +4 -4
- data/spec/mongoid/extensions/set_spec.rb +4 -4
- data/spec/mongoid/extensions/string_spec.rb +35 -46
- data/spec/mongoid/extensions/symbol_spec.rb +9 -9
- data/spec/mongoid/extensions/time_spec.rb +49 -49
- data/spec/mongoid/extensions/time_with_zone_spec.rb +34 -34
- data/spec/mongoid/extensions/true_class_spec.rb +5 -5
- data/spec/mongoid/extensions_spec.rb +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 +38 -23
- data/spec/mongoid/fields/standard_spec.rb +12 -12
- data/spec/mongoid/fields_spec.rb +263 -217
- data/spec/mongoid/{finders_spec.rb → findable_spec.rb} +127 -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} +117 -116
- data/spec/mongoid/log_subscriber_spec.rb +75 -0
- data/spec/mongoid/loggable_spec.rb +1 -1
- data/spec/mongoid/{matchers → matchable}/all_spec.rb +4 -4
- data/spec/mongoid/{matchers → matchable}/and_spec.rb +11 -11
- data/spec/mongoid/{matchers → matchable}/default_spec.rb +15 -15
- data/spec/mongoid/{matchers → matchable}/exists_spec.rb +5 -5
- data/spec/mongoid/{matchers → matchable}/gt_spec.rb +9 -8
- data/spec/mongoid/{matchers → matchable}/gte_spec.rb +7 -7
- data/spec/mongoid/matchable/in_spec.rb +49 -0
- data/spec/mongoid/{matchers → matchable}/lt_spec.rb +7 -7
- data/spec/mongoid/{matchers → matchable}/lte_spec.rb +7 -7
- data/spec/mongoid/matchable/ne_spec.rb +46 -0
- data/spec/mongoid/matchable/nin_spec.rb +48 -0
- data/spec/mongoid/{matchers → matchable}/or_spec.rb +6 -6
- data/spec/mongoid/{matchers → matchable}/size_spec.rb +3 -3
- data/spec/mongoid/{matchers_spec.rb → matchable_spec.rb} +41 -41
- data/spec/mongoid/persistable/creatable_spec.rb +512 -0
- data/spec/mongoid/persistable/deletable_spec.rb +218 -0
- data/spec/mongoid/persistable/destroyable_spec.rb +192 -0
- data/spec/mongoid/persistable/incrementable_spec.rb +173 -0
- data/spec/mongoid/persistable/logical_spec.rb +143 -0
- data/spec/mongoid/persistable/poppable_spec.rb +115 -0
- data/spec/mongoid/persistable/pullable_spec.rb +228 -0
- data/spec/mongoid/persistable/pushable_spec.rb +258 -0
- data/spec/mongoid/persistable/renamable_spec.rb +135 -0
- data/spec/mongoid/persistable/savable_spec.rb +461 -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} +9 -9
- data/spec/mongoid/query_cache_spec.rb +231 -0
- data/spec/mongoid/railties/document_spec.rb +2 -2
- data/spec/mongoid/relations/accessors_spec.rb +53 -145
- data/spec/mongoid/relations/auto_save_spec.rb +37 -17
- data/spec/mongoid/relations/bindings/embedded/in_spec.rb +12 -12
- data/spec/mongoid/relations/bindings/embedded/many_spec.rb +3 -3
- data/spec/mongoid/relations/bindings/embedded/one_spec.rb +5 -5
- data/spec/mongoid/relations/bindings/referenced/in_spec.rb +26 -26
- data/spec/mongoid/relations/bindings/referenced/many_spec.rb +10 -10
- data/spec/mongoid/relations/bindings/referenced/many_to_many_spec.rb +19 -19
- data/spec/mongoid/relations/bindings/referenced/one_spec.rb +12 -12
- data/spec/mongoid/relations/builders/embedded/in_spec.rb +4 -4
- data/spec/mongoid/relations/builders/embedded/many_spec.rb +18 -18
- data/spec/mongoid/relations/builders/embedded/one_spec.rb +11 -11
- data/spec/mongoid/relations/builders/nested_attributes/many_spec.rb +12 -13
- data/spec/mongoid/relations/builders/nested_attributes/one_spec.rb +14 -14
- data/spec/mongoid/relations/builders/referenced/in_spec.rb +24 -35
- data/spec/mongoid/relations/builders/referenced/many_spec.rb +15 -15
- data/spec/mongoid/relations/builders/referenced/many_to_many_spec.rb +18 -18
- data/spec/mongoid/relations/builders/referenced/one_spec.rb +12 -25
- data/spec/mongoid/relations/builders_spec.rb +21 -21
- data/spec/mongoid/relations/cascading/delete_spec.rb +9 -9
- data/spec/mongoid/relations/cascading/destroy_spec.rb +6 -6
- data/spec/mongoid/relations/cascading/nullify_spec.rb +4 -4
- data/spec/mongoid/relations/cascading/restrict_spec.rb +7 -7
- data/spec/mongoid/relations/cascading_spec.rb +16 -16
- data/spec/mongoid/relations/constraint_spec.rb +8 -7
- data/spec/mongoid/relations/conversions_spec.rb +16 -14
- data/spec/mongoid/relations/counter_cache_spec.rb +85 -0
- data/spec/mongoid/relations/cyclic_spec.rb +18 -18
- data/spec/mongoid/relations/eager/belongs_to_spec.rb +154 -0
- data/spec/mongoid/relations/eager/has_and_belongs_to_many_spec.rb +117 -0
- data/spec/mongoid/relations/eager/has_many_spec.rb +207 -0
- data/spec/mongoid/relations/eager/has_one_spec.rb +163 -0
- data/spec/mongoid/relations/eager_spec.rb +228 -0
- data/spec/mongoid/relations/embedded/dirty_spec.rb +8 -8
- data/spec/mongoid/relations/embedded/in_spec.rb +56 -57
- data/spec/mongoid/relations/embedded/many_spec.rb +393 -372
- data/spec/mongoid/relations/embedded/one_spec.rb +108 -141
- data/spec/mongoid/relations/macros_spec.rb +108 -102
- data/spec/mongoid/relations/metadata_spec.rb +180 -255
- data/spec/mongoid/relations/options_spec.rb +1 -1
- data/spec/mongoid/relations/polymorphic_spec.rb +13 -17
- data/spec/mongoid/relations/proxy_spec.rb +2 -2
- data/spec/mongoid/relations/referenced/in_spec.rb +128 -303
- data/spec/mongoid/relations/referenced/many_spec.rb +434 -527
- data/spec/mongoid/relations/referenced/many_to_many_spec.rb +352 -424
- data/spec/mongoid/relations/referenced/one_spec.rb +149 -264
- data/spec/mongoid/relations/reflections_spec.rb +6 -6
- data/spec/mongoid/relations/synchronization_spec.rb +46 -50
- data/spec/mongoid/relations/targets/enumerable_spec.rb +118 -118
- data/spec/mongoid/relations/touchable_spec.rb +333 -0
- data/spec/mongoid/relations_spec.rb +16 -15
- data/spec/mongoid/{reloading_spec.rb → reloadable_spec.rb} +20 -60
- data/spec/mongoid/{scoping_spec.rb → scopable_spec.rb} +89 -164
- data/spec/mongoid/selectable_spec.rb +134 -0
- data/spec/mongoid/{serialization_spec.rb → serializable_spec.rb} +129 -82
- data/spec/mongoid/sessions/factory_spec.rb +49 -28
- data/spec/mongoid/sessions/mongo_uri_spec.rb +7 -7
- data/spec/mongoid/sessions/options_spec.rb +107 -0
- data/spec/mongoid/sessions_spec.rb +289 -178
- data/spec/mongoid/{sharding_spec.rb → shardable_spec.rb} +8 -8
- data/spec/mongoid/{state_spec.rb → stateful_spec.rb} +36 -11
- data/spec/mongoid/tasks/database_rake_spec.rb +285 -0
- data/spec/mongoid/tasks/database_spec.rb +160 -0
- data/spec/mongoid/threaded_spec.rb +17 -70
- data/spec/mongoid/timestamps/created/short_spec.rb +6 -6
- data/spec/mongoid/timestamps/created_spec.rb +5 -5
- data/spec/mongoid/timestamps/timeless_spec.rb +6 -6
- data/spec/mongoid/timestamps/updated/short_spec.rb +11 -11
- data/spec/mongoid/timestamps/updated_spec.rb +9 -13
- data/spec/mongoid/timestamps_spec.rb +9 -13
- data/spec/mongoid/{hierarchy_spec.rb → traversable_spec.rb} +19 -19
- data/spec/mongoid/{validations → validatable}/associated_spec.rb +45 -22
- data/spec/mongoid/{validations → validatable}/format_spec.rb +6 -6
- data/spec/mongoid/{validations → validatable}/length_spec.rb +14 -14
- data/spec/mongoid/{validations → validatable}/numericality_spec.rb +1 -1
- data/spec/mongoid/{validations → validatable}/presence_spec.rb +37 -44
- data/spec/mongoid/{validations → validatable}/uniqueness_spec.rb +184 -192
- data/spec/mongoid/{validations_spec.rb → validatable_spec.rb} +28 -28
- data/spec/mongoid_spec.rb +8 -8
- data/spec/rails/mongoid_spec.rb +19 -335
- data/spec/spec_helper.rb +29 -13
- metadata +296 -283
- data/lib/mongoid/atomic/positionable.rb +0 -73
- data/lib/mongoid/components.rb +0 -92
- data/lib/mongoid/config/inflections.rb +0 -6
- data/lib/mongoid/contextual/eager.rb +0 -158
- data/lib/mongoid/errors/versioning_not_on_root.rb +0 -23
- data/lib/mongoid/identity_map.rb +0 -163
- data/lib/mongoid/json.rb +0 -16
- data/lib/mongoid/matchers/strategies.rb +0 -97
- data/lib/mongoid/matchers.rb +0 -32
- data/lib/mongoid/multi_parameter_attributes.rb +0 -105
- data/lib/mongoid/nested_attributes.rb +0 -78
- data/lib/mongoid/observer.rb +0 -192
- data/lib/mongoid/paranoia.rb +0 -136
- data/lib/mongoid/persistence/atomic/add_to_set.rb +0 -47
- data/lib/mongoid/persistence/atomic/bit.rb +0 -35
- data/lib/mongoid/persistence/atomic/inc.rb +0 -45
- data/lib/mongoid/persistence/atomic/operation.rb +0 -154
- data/lib/mongoid/persistence/atomic/pop.rb +0 -32
- data/lib/mongoid/persistence/atomic/pull.rb +0 -32
- data/lib/mongoid/persistence/atomic/pull_all.rb +0 -32
- data/lib/mongoid/persistence/atomic/push.rb +0 -25
- data/lib/mongoid/persistence/atomic/push_all.rb +0 -25
- data/lib/mongoid/persistence/atomic/rename.rb +0 -30
- data/lib/mongoid/persistence/atomic/sets.rb +0 -28
- data/lib/mongoid/persistence/atomic/unset.rb +0 -27
- data/lib/mongoid/persistence/atomic.rb +0 -231
- data/lib/mongoid/persistence/deletion.rb +0 -31
- data/lib/mongoid/persistence/insertion.rb +0 -38
- data/lib/mongoid/persistence/modification.rb +0 -35
- data/lib/mongoid/persistence/operations/embedded/insert.rb +0 -46
- data/lib/mongoid/persistence/operations/embedded/remove.rb +0 -43
- data/lib/mongoid/persistence/operations/insert.rb +0 -34
- data/lib/mongoid/persistence/operations/remove.rb +0 -33
- data/lib/mongoid/persistence/operations/update.rb +0 -59
- data/lib/mongoid/persistence/operations/upsert.rb +0 -28
- data/lib/mongoid/persistence/operations.rb +0 -214
- data/lib/mongoid/persistence/upsertion.rb +0 -31
- data/lib/mongoid/persistence.rb +0 -357
- data/lib/mongoid/unit_of_work.rb +0 -61
- data/lib/mongoid/versioning.rb +0 -217
- data/lib/rack/mongoid/middleware/identity_map.rb +0 -39
- data/lib/rack/mongoid.rb +0 -2
- data/lib/rails/generators/mongoid/observer/observer_generator.rb +0 -17
- data/lib/rails/generators/mongoid/observer/templates/observer.rb.tt +0 -4
- data/spec/app/models/actor_observer.rb +0 -15
- data/spec/app/models/callback_recorder.rb +0 -25
- data/spec/app/models/paranoid_phone.rb +0 -25
- data/spec/app/models/paranoid_post.rb +0 -36
- data/spec/app/models/phone_observer.rb +0 -6
- data/spec/mongoid/attributes/processing_spec.rb +0 -149
- data/spec/mongoid/criterion/destructive_spec.rb +0 -101
- data/spec/mongoid/criterion/modifiable_spec.rb +0 -409
- data/spec/mongoid/criterion/modification_spec.rb +0 -402
- data/spec/mongoid/errors/versioning_not_on_root_spec.rb +0 -29
- data/spec/mongoid/identity_map_spec.rb +0 -564
- data/spec/mongoid/json_spec.rb +0 -33
- data/spec/mongoid/matchers/in_spec.rb +0 -25
- data/spec/mongoid/matchers/ne_spec.rb +0 -25
- data/spec/mongoid/matchers/nin_spec.rb +0 -25
- data/spec/mongoid/multi_parameter_attributes_spec.rb +0 -128
- data/spec/mongoid/observer_spec.rb +0 -290
- data/spec/mongoid/paranoia_spec.rb +0 -759
- data/spec/mongoid/persistence/atomic/add_to_set_spec.rb +0 -262
- data/spec/mongoid/persistence/atomic/bit_spec.rb +0 -88
- data/spec/mongoid/persistence/atomic/inc_spec.rb +0 -133
- data/spec/mongoid/persistence/atomic/pop_spec.rb +0 -111
- data/spec/mongoid/persistence/atomic/pull_all_spec.rb +0 -77
- data/spec/mongoid/persistence/atomic/pull_spec.rb +0 -80
- data/spec/mongoid/persistence/atomic/push_all_spec.rb +0 -77
- data/spec/mongoid/persistence/atomic/push_spec.rb +0 -77
- data/spec/mongoid/persistence/atomic/rename_spec.rb +0 -42
- data/spec/mongoid/persistence/atomic/sets_spec.rb +0 -154
- data/spec/mongoid/persistence/atomic/unset_spec.rb +0 -65
- data/spec/mongoid/persistence/atomic_spec.rb +0 -216
- data/spec/mongoid/persistence/operations/embedded/insert_spec.rb +0 -191
- data/spec/mongoid/persistence/operations/embedded/remove_spec.rb +0 -8
- data/spec/mongoid/persistence/operations/insert_spec.rb +0 -149
- data/spec/mongoid/persistence/operations/remove_spec.rb +0 -113
- data/spec/mongoid/persistence/operations/update_spec.rb +0 -141
- data/spec/mongoid/persistence/operations/upsert_spec.rb +0 -59
- data/spec/mongoid/persistence/operations_spec.rb +0 -313
- data/spec/mongoid/persistence_spec.rb +0 -2279
- data/spec/mongoid/unit_of_work_spec.rb +0 -196
- data/spec/mongoid/versioning_spec.rb +0 -540
- data/spec/rack/mongoid/middleware/identity_map_spec.rb +0 -72
|
@@ -47,7 +47,7 @@ require "spec_helper"
|
|
|
47
47
|
# end
|
|
48
48
|
|
|
49
49
|
# it "adds the current to the modifications" do
|
|
50
|
-
# mods["preference_ids"].
|
|
50
|
+
# expect(mods["preference_ids"]).to eq(
|
|
51
51
|
# [ preference_one.id, preference_three.id ]
|
|
52
52
|
# )
|
|
53
53
|
# end
|
|
@@ -57,7 +57,7 @@ require "spec_helper"
|
|
|
57
57
|
# describe "#eval_default" do
|
|
58
58
|
|
|
59
59
|
# let(:default) do
|
|
60
|
-
# [
|
|
60
|
+
# [ BSON::ObjectId.new ]
|
|
61
61
|
# end
|
|
62
62
|
|
|
63
63
|
# let(:field) do
|
|
@@ -71,11 +71,11 @@ require "spec_helper"
|
|
|
71
71
|
# end
|
|
72
72
|
|
|
73
73
|
# it "dups the default value" do
|
|
74
|
-
# field.eval_default(nil).
|
|
74
|
+
# expect(field.eval_default(nil)).to_not equal(default)
|
|
75
75
|
# end
|
|
76
76
|
|
|
77
77
|
# it "returns the correct value" do
|
|
78
|
-
# field.eval_default(nil).
|
|
78
|
+
# expect(field.eval_default(nil)).to eq(default)
|
|
79
79
|
# end
|
|
80
80
|
# end
|
|
81
81
|
|
|
@@ -92,7 +92,7 @@ require "spec_helper"
|
|
|
92
92
|
# end
|
|
93
93
|
|
|
94
94
|
# it "returns true" do
|
|
95
|
-
# field.
|
|
95
|
+
# expect(field).to be_foreign_key
|
|
96
96
|
# end
|
|
97
97
|
# end
|
|
98
98
|
|
|
@@ -121,7 +121,7 @@ require "spec_helper"
|
|
|
121
121
|
# context "when provided nil" do
|
|
122
122
|
|
|
123
123
|
# it "returns an empty array" do
|
|
124
|
-
# field.serialize(nil).
|
|
124
|
+
# expect(field.serialize(nil)).to be_empty
|
|
125
125
|
# end
|
|
126
126
|
# end
|
|
127
127
|
|
|
@@ -132,29 +132,29 @@ require "spec_helper"
|
|
|
132
132
|
# end
|
|
133
133
|
|
|
134
134
|
# it "returns an empty array" do
|
|
135
|
-
# field.serialize(array).
|
|
135
|
+
# expect(field.serialize(array)).to eq(array)
|
|
136
136
|
# end
|
|
137
137
|
|
|
138
138
|
# it "returns the same instance" do
|
|
139
|
-
# field.serialize(array).
|
|
139
|
+
# expect(field.serialize(array)).to equal(array)
|
|
140
140
|
# end
|
|
141
141
|
# end
|
|
142
142
|
|
|
143
143
|
# context "when using object ids" do
|
|
144
144
|
|
|
145
145
|
# let(:object_id) do
|
|
146
|
-
#
|
|
146
|
+
# BSON::ObjectId.new
|
|
147
147
|
# end
|
|
148
148
|
|
|
149
149
|
# it "performs conversion on the ids if strings" do
|
|
150
|
-
# field.serialize([object_id.to_s]).
|
|
150
|
+
# expect(field.serialize([object_id.to_s])).to eq([object_id])
|
|
151
151
|
# end
|
|
152
152
|
# end
|
|
153
153
|
|
|
154
154
|
# context "when not using object ids" do
|
|
155
155
|
|
|
156
156
|
# let(:object_id) do
|
|
157
|
-
#
|
|
157
|
+
# BSON::ObjectId.new
|
|
158
158
|
# end
|
|
159
159
|
|
|
160
160
|
# before do
|
|
@@ -162,21 +162,21 @@ require "spec_helper"
|
|
|
162
162
|
# :_id,
|
|
163
163
|
# type: String,
|
|
164
164
|
# pre_processed: true,
|
|
165
|
-
# default: ->{
|
|
165
|
+
# default: ->{ BSON::ObjectId.new.to_s }
|
|
166
166
|
# )
|
|
167
167
|
# end
|
|
168
168
|
|
|
169
169
|
# after do
|
|
170
170
|
# Person.field(
|
|
171
171
|
# :_id,
|
|
172
|
-
# type:
|
|
172
|
+
# type: BSON::ObjectId,
|
|
173
173
|
# pre_processed: true,
|
|
174
|
-
# default: ->{
|
|
174
|
+
# default: ->{ BSON::ObjectId.new }
|
|
175
175
|
# )
|
|
176
176
|
# end
|
|
177
177
|
|
|
178
178
|
# it "does not convert" do
|
|
179
|
-
# field.serialize([object_id.to_s]).
|
|
179
|
+
# expect(field.serialize([object_id.to_s])).to eq([object_id.to_s])
|
|
180
180
|
# end
|
|
181
181
|
# end
|
|
182
182
|
# end
|
|
@@ -15,7 +15,7 @@ require "spec_helper"
|
|
|
15
15
|
# end
|
|
16
16
|
|
|
17
17
|
# it "returns true" do
|
|
18
|
-
# field.
|
|
18
|
+
# expect(field).to be_foreign_key
|
|
19
19
|
# end
|
|
20
20
|
# end
|
|
21
21
|
|
|
@@ -44,11 +44,11 @@ require "spec_helper"
|
|
|
44
44
|
# context "when using object ids" do
|
|
45
45
|
|
|
46
46
|
# let(:object_id) do
|
|
47
|
-
#
|
|
47
|
+
# BSON::ObjectId.new
|
|
48
48
|
# end
|
|
49
49
|
|
|
50
50
|
# it "performs conversion on the ids if strings" do
|
|
51
|
-
# field.serialize(object_id.to_s).
|
|
51
|
+
# expect(field.serialize(object_id.to_s)).to eq(object_id)
|
|
52
52
|
# end
|
|
53
53
|
# end
|
|
54
54
|
|
|
@@ -59,7 +59,7 @@ require "spec_helper"
|
|
|
59
59
|
# context "when provided a string" do
|
|
60
60
|
|
|
61
61
|
# let(:object_id) do
|
|
62
|
-
#
|
|
62
|
+
# BSON::ObjectId.new
|
|
63
63
|
# end
|
|
64
64
|
|
|
65
65
|
# before do
|
|
@@ -67,28 +67,28 @@ require "spec_helper"
|
|
|
67
67
|
# :_id,
|
|
68
68
|
# type: String,
|
|
69
69
|
# pre_processed: true,
|
|
70
|
-
# default: ->{
|
|
70
|
+
# default: ->{ BSON::ObjectId.new.to_s }
|
|
71
71
|
# )
|
|
72
72
|
# end
|
|
73
73
|
|
|
74
74
|
# after do
|
|
75
75
|
# Person.field(
|
|
76
76
|
# :_id,
|
|
77
|
-
# type:
|
|
77
|
+
# type: BSON::ObjectId,
|
|
78
78
|
# pre_processed: true,
|
|
79
|
-
# default: ->{
|
|
79
|
+
# default: ->{ BSON::ObjectId.new }
|
|
80
80
|
# )
|
|
81
81
|
# end
|
|
82
82
|
|
|
83
83
|
# it "does not convert" do
|
|
84
|
-
# field.serialize(object_id.to_s).
|
|
84
|
+
# expect(field.serialize(object_id.to_s)).to eq(object_id.to_s)
|
|
85
85
|
# end
|
|
86
86
|
# end
|
|
87
87
|
|
|
88
88
|
# context "when provided a hash" do
|
|
89
89
|
|
|
90
90
|
# let(:object_id) do
|
|
91
|
-
#
|
|
91
|
+
# BSON::ObjectId.new
|
|
92
92
|
# end
|
|
93
93
|
|
|
94
94
|
# before do
|
|
@@ -96,16 +96,16 @@ require "spec_helper"
|
|
|
96
96
|
# :_id,
|
|
97
97
|
# type: String,
|
|
98
98
|
# pre_processed: true,
|
|
99
|
-
# default: ->{
|
|
99
|
+
# default: ->{ BSON::ObjectId.new.to_s }
|
|
100
100
|
# )
|
|
101
101
|
# end
|
|
102
102
|
|
|
103
103
|
# after do
|
|
104
104
|
# Person.field(
|
|
105
105
|
# :_id,
|
|
106
|
-
# type:
|
|
106
|
+
# type: BSON::ObjectId,
|
|
107
107
|
# pre_processed: true,
|
|
108
|
-
# default: ->{
|
|
108
|
+
# default: ->{ BSON::ObjectId.new }
|
|
109
109
|
# )
|
|
110
110
|
# end
|
|
111
111
|
|
|
@@ -114,7 +114,7 @@ require "spec_helper"
|
|
|
114
114
|
# end
|
|
115
115
|
|
|
116
116
|
# it "does not convert" do
|
|
117
|
-
# field.serialize(criterion).
|
|
117
|
+
# expect(field.serialize(criterion)).to eq(
|
|
118
118
|
# criterion
|
|
119
119
|
# )
|
|
120
120
|
# end
|
|
@@ -132,14 +132,14 @@ require "spec_helper"
|
|
|
132
132
|
# after do
|
|
133
133
|
# Person.field(
|
|
134
134
|
# :_id,
|
|
135
|
-
# type:
|
|
135
|
+
# type: BSON::ObjectId,
|
|
136
136
|
# pre_processed: true,
|
|
137
|
-
# default: ->{
|
|
137
|
+
# default: ->{ BSON::ObjectId.new }
|
|
138
138
|
# )
|
|
139
139
|
# end
|
|
140
140
|
|
|
141
141
|
# it "does not convert" do
|
|
142
|
-
# field.serialize("1").
|
|
142
|
+
# expect(field.serialize("1")).to eq(1)
|
|
143
143
|
# end
|
|
144
144
|
# end
|
|
145
145
|
|
|
@@ -152,9 +152,9 @@ require "spec_helper"
|
|
|
152
152
|
# after do
|
|
153
153
|
# Person.field(
|
|
154
154
|
# :_id,
|
|
155
|
-
# type:
|
|
155
|
+
# type: BSON::ObjectId,
|
|
156
156
|
# pre_processed: true,
|
|
157
|
-
# default: ->{
|
|
157
|
+
# default: ->{ BSON::ObjectId.new }
|
|
158
158
|
# )
|
|
159
159
|
# end
|
|
160
160
|
|
|
@@ -163,7 +163,7 @@ require "spec_helper"
|
|
|
163
163
|
# end
|
|
164
164
|
|
|
165
165
|
# it "does not convert" do
|
|
166
|
-
# field.serialize(criterion).
|
|
166
|
+
# expect(field.serialize(criterion)).to eq(
|
|
167
167
|
# { "$eq" => 1 }
|
|
168
168
|
# )
|
|
169
169
|
# end
|
|
@@ -178,9 +178,9 @@ require "spec_helper"
|
|
|
178
178
|
# after do
|
|
179
179
|
# Person.field(
|
|
180
180
|
# :_id,
|
|
181
|
-
# type:
|
|
181
|
+
# type: BSON::ObjectId,
|
|
182
182
|
# pre_processed: true,
|
|
183
|
-
# default: ->{
|
|
183
|
+
# default: ->{ BSON::ObjectId.new }
|
|
184
184
|
# )
|
|
185
185
|
# end
|
|
186
186
|
|
|
@@ -189,7 +189,7 @@ require "spec_helper"
|
|
|
189
189
|
# end
|
|
190
190
|
|
|
191
191
|
# it "does not convert" do
|
|
192
|
-
# field.serialize(criterion).
|
|
192
|
+
# expect(field.serialize(criterion)).to eq(
|
|
193
193
|
# { "$in" => [ 1 ] }
|
|
194
194
|
# )
|
|
195
195
|
# end
|
|
@@ -9,7 +9,7 @@ describe Mongoid::Fields::Localized do
|
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
it "defaults to nil" do
|
|
12
|
-
field.default_val.
|
|
12
|
+
expect(field.default_val).to be_nil
|
|
13
13
|
end
|
|
14
14
|
end
|
|
15
15
|
|
|
@@ -27,7 +27,7 @@ describe Mongoid::Fields::Localized do
|
|
|
27
27
|
end
|
|
28
28
|
|
|
29
29
|
it "defaults to the value" do
|
|
30
|
-
field.default_val.
|
|
30
|
+
expect(field.default_val).to eq("No translation")
|
|
31
31
|
end
|
|
32
32
|
end
|
|
33
33
|
|
|
@@ -43,7 +43,7 @@ describe Mongoid::Fields::Localized do
|
|
|
43
43
|
end
|
|
44
44
|
|
|
45
45
|
it "keeps the default in the proper type" do
|
|
46
|
-
field.default_val.
|
|
46
|
+
expect(field.default_val).to eq(1)
|
|
47
47
|
end
|
|
48
48
|
end
|
|
49
49
|
end
|
|
@@ -63,7 +63,7 @@ describe Mongoid::Fields::Localized do
|
|
|
63
63
|
end
|
|
64
64
|
|
|
65
65
|
it "returns nil" do
|
|
66
|
-
value.
|
|
66
|
+
expect(value).to be_nil
|
|
67
67
|
end
|
|
68
68
|
end
|
|
69
69
|
|
|
@@ -74,7 +74,7 @@ describe Mongoid::Fields::Localized do
|
|
|
74
74
|
end
|
|
75
75
|
|
|
76
76
|
it "returns the string from the default locale" do
|
|
77
|
-
value.
|
|
77
|
+
expect(value).to eq("This is a test")
|
|
78
78
|
end
|
|
79
79
|
end
|
|
80
80
|
|
|
@@ -95,7 +95,7 @@ describe Mongoid::Fields::Localized do
|
|
|
95
95
|
end
|
|
96
96
|
|
|
97
97
|
it "returns the string from the set locale" do
|
|
98
|
-
value.
|
|
98
|
+
expect(value).to eq("This is a test")
|
|
99
99
|
end
|
|
100
100
|
end
|
|
101
101
|
|
|
@@ -108,7 +108,7 @@ describe Mongoid::Fields::Localized do
|
|
|
108
108
|
end
|
|
109
109
|
|
|
110
110
|
it "returns nil" do
|
|
111
|
-
value.
|
|
111
|
+
expect(value).to be_nil
|
|
112
112
|
end
|
|
113
113
|
end
|
|
114
114
|
|
|
@@ -132,7 +132,7 @@ describe Mongoid::Fields::Localized do
|
|
|
132
132
|
end
|
|
133
133
|
|
|
134
134
|
it "returns the fallback translation" do
|
|
135
|
-
value.
|
|
135
|
+
expect(value).to eq("testing")
|
|
136
136
|
end
|
|
137
137
|
end
|
|
138
138
|
|
|
@@ -143,7 +143,7 @@ describe Mongoid::Fields::Localized do
|
|
|
143
143
|
end
|
|
144
144
|
|
|
145
145
|
it "returns the fallback translation" do
|
|
146
|
-
value.
|
|
146
|
+
expect(value).to eq("pruebas")
|
|
147
147
|
end
|
|
148
148
|
end
|
|
149
149
|
|
|
@@ -154,7 +154,7 @@ describe Mongoid::Fields::Localized do
|
|
|
154
154
|
end
|
|
155
155
|
|
|
156
156
|
it "returns nil" do
|
|
157
|
-
value.
|
|
157
|
+
expect(value).to be_nil
|
|
158
158
|
end
|
|
159
159
|
end
|
|
160
160
|
end
|
|
@@ -170,7 +170,7 @@ describe Mongoid::Fields::Localized do
|
|
|
170
170
|
end
|
|
171
171
|
|
|
172
172
|
it "returns nil" do
|
|
173
|
-
value.
|
|
173
|
+
expect(value).to be_nil
|
|
174
174
|
end
|
|
175
175
|
end
|
|
176
176
|
end
|
|
@@ -178,6 +178,21 @@ describe Mongoid::Fields::Localized do
|
|
|
178
178
|
end
|
|
179
179
|
end
|
|
180
180
|
|
|
181
|
+
context "when no type is provided" do
|
|
182
|
+
|
|
183
|
+
let(:field) do
|
|
184
|
+
described_class.new(:description, localize: true)
|
|
185
|
+
end
|
|
186
|
+
|
|
187
|
+
let(:value) do
|
|
188
|
+
field.demongoize({ "en" => false })
|
|
189
|
+
end
|
|
190
|
+
|
|
191
|
+
it "allows booleans to be returned" do
|
|
192
|
+
expect(value).to eq(false)
|
|
193
|
+
end
|
|
194
|
+
end
|
|
195
|
+
|
|
181
196
|
context "when the type is not a string" do
|
|
182
197
|
|
|
183
198
|
let(:field) do
|
|
@@ -191,7 +206,7 @@ describe Mongoid::Fields::Localized do
|
|
|
191
206
|
end
|
|
192
207
|
|
|
193
208
|
it "returns nil" do
|
|
194
|
-
value.
|
|
209
|
+
expect(value).to be_nil
|
|
195
210
|
end
|
|
196
211
|
end
|
|
197
212
|
|
|
@@ -202,7 +217,7 @@ describe Mongoid::Fields::Localized do
|
|
|
202
217
|
end
|
|
203
218
|
|
|
204
219
|
it "returns the value from the default locale" do
|
|
205
|
-
value.
|
|
220
|
+
expect(value).to eq(100)
|
|
206
221
|
end
|
|
207
222
|
end
|
|
208
223
|
|
|
@@ -223,7 +238,7 @@ describe Mongoid::Fields::Localized do
|
|
|
223
238
|
end
|
|
224
239
|
|
|
225
240
|
it "returns the value from the set locale" do
|
|
226
|
-
value.
|
|
241
|
+
expect(value).to eq(100)
|
|
227
242
|
end
|
|
228
243
|
end
|
|
229
244
|
|
|
@@ -236,7 +251,7 @@ describe Mongoid::Fields::Localized do
|
|
|
236
251
|
end
|
|
237
252
|
|
|
238
253
|
it "returns nil" do
|
|
239
|
-
value.
|
|
254
|
+
expect(value).to be_nil
|
|
240
255
|
end
|
|
241
256
|
end
|
|
242
257
|
|
|
@@ -260,7 +275,7 @@ describe Mongoid::Fields::Localized do
|
|
|
260
275
|
end
|
|
261
276
|
|
|
262
277
|
it "returns the fallback translation" do
|
|
263
|
-
value.
|
|
278
|
+
expect(value).to eq(1)
|
|
264
279
|
end
|
|
265
280
|
end
|
|
266
281
|
|
|
@@ -271,7 +286,7 @@ describe Mongoid::Fields::Localized do
|
|
|
271
286
|
end
|
|
272
287
|
|
|
273
288
|
it "returns the fallback translation" do
|
|
274
|
-
value.
|
|
289
|
+
expect(value).to eq(100)
|
|
275
290
|
end
|
|
276
291
|
end
|
|
277
292
|
|
|
@@ -282,7 +297,7 @@ describe Mongoid::Fields::Localized do
|
|
|
282
297
|
end
|
|
283
298
|
|
|
284
299
|
it "returns nil" do
|
|
285
|
-
value.
|
|
300
|
+
expect(value).to be_nil
|
|
286
301
|
end
|
|
287
302
|
end
|
|
288
303
|
end
|
|
@@ -298,7 +313,7 @@ describe Mongoid::Fields::Localized do
|
|
|
298
313
|
end
|
|
299
314
|
|
|
300
315
|
it "returns nil" do
|
|
301
|
-
value.
|
|
316
|
+
expect(value).to be_nil
|
|
302
317
|
end
|
|
303
318
|
end
|
|
304
319
|
end
|
|
@@ -322,7 +337,7 @@ describe Mongoid::Fields::Localized do
|
|
|
322
337
|
end
|
|
323
338
|
|
|
324
339
|
it "returns the string in the default locale" do
|
|
325
|
-
value.
|
|
340
|
+
expect(value).to eq({ "en" => "This is a test" })
|
|
326
341
|
end
|
|
327
342
|
end
|
|
328
343
|
|
|
@@ -341,7 +356,7 @@ describe Mongoid::Fields::Localized do
|
|
|
341
356
|
end
|
|
342
357
|
|
|
343
358
|
it "returns the string in the set locale" do
|
|
344
|
-
value.
|
|
359
|
+
expect(value).to eq({ "de" => "This is a test" })
|
|
345
360
|
end
|
|
346
361
|
end
|
|
347
362
|
end
|
|
@@ -359,7 +374,7 @@ describe Mongoid::Fields::Localized do
|
|
|
359
374
|
end
|
|
360
375
|
|
|
361
376
|
it "returns the value in the default locale" do
|
|
362
|
-
value.
|
|
377
|
+
expect(value).to eq({ "en" => 100 })
|
|
363
378
|
end
|
|
364
379
|
end
|
|
365
380
|
|
|
@@ -378,7 +393,7 @@ describe Mongoid::Fields::Localized do
|
|
|
378
393
|
end
|
|
379
394
|
|
|
380
395
|
it "returns the string in the set locale" do
|
|
381
|
-
value.
|
|
396
|
+
expect(value).to eq({ "de" => 100 })
|
|
382
397
|
end
|
|
383
398
|
end
|
|
384
399
|
end
|
|
@@ -9,7 +9,7 @@ describe Mongoid::Fields::Standard do
|
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
it "returns false" do
|
|
12
|
-
field.
|
|
12
|
+
expect(field).to_not be_lazy
|
|
13
13
|
end
|
|
14
14
|
end
|
|
15
15
|
|
|
@@ -42,7 +42,7 @@ describe Mongoid::Fields::Standard do
|
|
|
42
42
|
end
|
|
43
43
|
|
|
44
44
|
it "returns true" do
|
|
45
|
-
field.
|
|
45
|
+
expect(field).to be_pre_processed
|
|
46
46
|
end
|
|
47
47
|
end
|
|
48
48
|
|
|
@@ -58,7 +58,7 @@ describe Mongoid::Fields::Standard do
|
|
|
58
58
|
end
|
|
59
59
|
|
|
60
60
|
it "returns false" do
|
|
61
|
-
field.
|
|
61
|
+
expect(field).to_not be_pre_processed
|
|
62
62
|
end
|
|
63
63
|
end
|
|
64
64
|
end
|
|
@@ -75,7 +75,7 @@ describe Mongoid::Fields::Standard do
|
|
|
75
75
|
end
|
|
76
76
|
|
|
77
77
|
it "returns true" do
|
|
78
|
-
field.
|
|
78
|
+
expect(field).to be_pre_processed
|
|
79
79
|
end
|
|
80
80
|
end
|
|
81
81
|
end
|
|
@@ -90,7 +90,7 @@ describe Mongoid::Fields::Standard do
|
|
|
90
90
|
end
|
|
91
91
|
|
|
92
92
|
it "returns false" do
|
|
93
|
-
field.
|
|
93
|
+
expect(field).to_not be_pre_processed
|
|
94
94
|
end
|
|
95
95
|
end
|
|
96
96
|
end
|
|
@@ -102,7 +102,7 @@ describe Mongoid::Fields::Standard do
|
|
|
102
102
|
end
|
|
103
103
|
|
|
104
104
|
it "does not conflict with the ruby core hash" do
|
|
105
|
-
image.hash_is_hash.
|
|
105
|
+
expect(image.hash_is_hash).to be true
|
|
106
106
|
end
|
|
107
107
|
end
|
|
108
108
|
|
|
@@ -119,14 +119,14 @@ describe Mongoid::Fields::Standard do
|
|
|
119
119
|
end
|
|
120
120
|
|
|
121
121
|
it "allows normal hash access" do
|
|
122
|
-
hash[:key].
|
|
122
|
+
expect(hash[:key]).to eq("value")
|
|
123
123
|
end
|
|
124
124
|
end
|
|
125
125
|
|
|
126
126
|
context "when getting a non existant value" do
|
|
127
127
|
|
|
128
128
|
it "returns nil" do
|
|
129
|
-
hash[:key].
|
|
129
|
+
expect(hash[:key]).to be_nil
|
|
130
130
|
end
|
|
131
131
|
end
|
|
132
132
|
end
|
|
@@ -138,11 +138,11 @@ describe Mongoid::Fields::Standard do
|
|
|
138
138
|
end
|
|
139
139
|
|
|
140
140
|
it "inherits the parents deserialize method" do
|
|
141
|
-
Thumbnail.demongoize("testy").name.
|
|
141
|
+
expect(Thumbnail.demongoize("testy").name).to eq("testy")
|
|
142
142
|
end
|
|
143
143
|
|
|
144
144
|
it "inherits the parents serialize method" do
|
|
145
|
-
thumbnail.mongoize.
|
|
145
|
+
expect(thumbnail.mongoize).to eq("test")
|
|
146
146
|
end
|
|
147
147
|
|
|
148
148
|
context "when instantiating the class" do
|
|
@@ -155,11 +155,11 @@ describe Mongoid::Fields::Standard do
|
|
|
155
155
|
end
|
|
156
156
|
|
|
157
157
|
it "deserializes the parent type" do
|
|
158
|
-
movie.poster.name.
|
|
158
|
+
expect(movie.poster.name).to eq("poster")
|
|
159
159
|
end
|
|
160
160
|
|
|
161
161
|
it "deserializes the child type" do
|
|
162
|
-
movie.poster_thumb.name.
|
|
162
|
+
expect(movie.poster_thumb.name).to eq("thumb")
|
|
163
163
|
end
|
|
164
164
|
end
|
|
165
165
|
end
|