mongoid 3.1.6 → 4.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +479 -8
- data/README.md +10 -7
- data/lib/config/locales/en.yml +34 -20
- data/lib/mongoid.rb +10 -76
- data/lib/mongoid/atomic.rb +3 -14
- data/lib/mongoid/atomic/paths/embedded.rb +0 -30
- data/lib/mongoid/atomic/paths/embedded/many.rb +1 -1
- data/lib/mongoid/atomic/paths/embedded/one.rb +1 -1
- data/lib/mongoid/atomic/paths/root.rb +0 -13
- data/lib/mongoid/attributes.rb +65 -101
- data/lib/mongoid/attributes/dynamic.rb +154 -0
- data/lib/mongoid/attributes/nested.rb +82 -0
- data/lib/mongoid/attributes/processing.rb +13 -66
- data/lib/mongoid/{dirty.rb → changeable.rb} +32 -2
- data/lib/mongoid/composable.rb +105 -0
- data/lib/mongoid/config.rb +3 -9
- data/lib/mongoid/config/options.rb +1 -1
- data/lib/mongoid/contextual.rb +2 -0
- data/lib/mongoid/contextual/aggregable/memory.rb +2 -2
- data/lib/mongoid/contextual/aggregable/mongo.rb +7 -9
- data/lib/mongoid/contextual/atomic.rb +53 -53
- data/lib/mongoid/contextual/geo_near.rb +1 -1
- data/lib/mongoid/contextual/map_reduce.rb +4 -2
- data/lib/mongoid/contextual/memory.rb +23 -11
- data/lib/mongoid/contextual/mongo.rb +75 -57
- data/lib/mongoid/contextual/none.rb +90 -0
- data/lib/mongoid/contextual/text_search.rb +178 -0
- data/lib/mongoid/copyable.rb +2 -3
- data/lib/mongoid/criteria.rb +39 -34
- data/lib/mongoid/criteria/#findable.rb# +141 -0
- data/lib/mongoid/{criterion → criteria}/findable.rb +7 -47
- data/lib/mongoid/{criterion/inspection.rb → criteria/inspectable.rb} +2 -2
- data/lib/mongoid/{criterion → criteria}/marshalable.rb +3 -1
- data/lib/mongoid/{criterion → criteria}/modifiable.rb +28 -8
- data/lib/mongoid/criteria/permission.rb +70 -0
- data/lib/mongoid/{criterion/scoping.rb → criteria/scopable.rb} +2 -2
- data/lib/mongoid/document.rb +39 -24
- data/lib/mongoid/errors.rb +4 -1
- data/lib/mongoid/errors/document_not_destroyed.rb +25 -0
- data/lib/mongoid/errors/document_not_found.rb +2 -1
- data/lib/mongoid/errors/invalid_storage_options.rb +1 -1
- data/lib/mongoid/errors/invalid_storage_parent.rb +26 -0
- data/lib/mongoid/errors/invalid_value.rb +16 -0
- data/lib/mongoid/errors/mongoid_error.rb +1 -1
- data/lib/mongoid/errors/readonly_document.rb +24 -0
- data/lib/mongoid/extensions.rb +15 -7
- data/lib/mongoid/extensions/array.rb +3 -3
- data/lib/mongoid/extensions/big_decimal.rb +1 -1
- data/lib/mongoid/extensions/boolean.rb +15 -17
- data/lib/mongoid/extensions/date.rb +1 -1
- data/lib/mongoid/extensions/date_time.rb +3 -3
- data/lib/mongoid/extensions/float.rb +2 -1
- data/lib/mongoid/extensions/hash.rb +3 -3
- data/lib/mongoid/extensions/integer.rb +1 -1
- data/lib/mongoid/extensions/object.rb +7 -7
- data/lib/mongoid/extensions/object_id.rb +5 -5
- data/lib/mongoid/extensions/range.rb +9 -3
- data/lib/mongoid/extensions/regexp.rb +1 -1
- data/lib/mongoid/extensions/set.rb +1 -1
- data/lib/mongoid/extensions/string.rb +6 -18
- data/lib/mongoid/extensions/symbol.rb +1 -1
- data/lib/mongoid/extensions/time.rb +3 -3
- data/lib/mongoid/extensions/time_with_zone.rb +1 -1
- data/lib/mongoid/factory.rb +8 -6
- data/lib/mongoid/fields.rb +41 -8
- data/lib/mongoid/fields/foreign_key.rb +3 -3
- data/lib/mongoid/fields/localized.rb +1 -1
- data/lib/mongoid/fields/standard.rb +5 -17
- data/lib/mongoid/fields/validators/macro.rb +15 -5
- data/lib/mongoid/{finders.rb → findable.rb} +35 -7
- data/lib/mongoid/{indexes.rb → indexable.rb} +50 -55
- data/lib/mongoid/indexable/specification.rb +104 -0
- data/lib/mongoid/{indexes → indexable}/validators/options.rb +2 -1
- data/lib/mongoid/{inspection.rb → inspectable.rb} +15 -11
- data/lib/mongoid/{callbacks.rb → interceptable.rb} +30 -62
- data/lib/mongoid/log_subscriber.rb +55 -0
- data/lib/mongoid/matchable.rb +152 -0
- data/lib/mongoid/{matchers → matchable}/all.rb +1 -1
- data/lib/mongoid/{matchers → matchable}/and.rb +2 -2
- data/lib/mongoid/{matchers → matchable}/default.rb +1 -1
- data/lib/mongoid/{matchers → matchable}/exists.rb +1 -1
- data/lib/mongoid/{matchers → matchable}/gt.rb +1 -1
- data/lib/mongoid/{matchers → matchable}/gte.rb +1 -1
- data/lib/mongoid/{matchers → matchable}/in.rb +2 -2
- data/lib/mongoid/{matchers → matchable}/lt.rb +1 -1
- data/lib/mongoid/{matchers → matchable}/lte.rb +1 -1
- data/lib/mongoid/{matchers → matchable}/ne.rb +2 -2
- data/lib/mongoid/{matchers → matchable}/nin.rb +3 -2
- data/lib/mongoid/{matchers → matchable}/or.rb +2 -2
- data/lib/mongoid/{matchers → matchable}/size.rb +1 -1
- data/lib/mongoid/persistable.rb +216 -0
- data/lib/mongoid/persistable/creatable.rb +189 -0
- data/lib/mongoid/persistable/deletable.rb +149 -0
- data/lib/mongoid/persistable/destroyable.rb +60 -0
- data/lib/mongoid/persistable/incrementable.rb +36 -0
- data/lib/mongoid/persistable/logical.rb +38 -0
- data/lib/mongoid/persistable/poppable.rb +39 -0
- data/lib/mongoid/persistable/pullable.rb +55 -0
- data/lib/mongoid/persistable/pushable.rb +62 -0
- data/lib/mongoid/persistable/renamable.rb +35 -0
- data/lib/mongoid/persistable/savable.rb +52 -0
- data/lib/mongoid/persistable/settable.rb +33 -0
- data/lib/mongoid/persistable/unsettable.rb +36 -0
- data/lib/mongoid/persistable/updatable.rb +153 -0
- data/lib/mongoid/persistable/upsertable.rb +55 -0
- data/lib/mongoid/positional.rb +71 -0
- data/lib/mongoid/query_cache.rb +255 -0
- data/lib/mongoid/railtie.rb +34 -60
- data/lib/mongoid/railties/database.rake +9 -25
- data/lib/mongoid/relations.rb +11 -25
- data/lib/mongoid/relations/accessors.rb +15 -51
- data/lib/mongoid/relations/auto_save.rb +15 -36
- data/lib/mongoid/relations/binding.rb +2 -25
- data/lib/mongoid/relations/bindings/embedded/in.rb +1 -1
- data/lib/mongoid/relations/bindings/embedded/many.rb +1 -3
- data/lib/mongoid/relations/bindings/referenced/in.rb +3 -8
- data/lib/mongoid/relations/bindings/referenced/many_to_many.rb +4 -2
- data/lib/mongoid/relations/builder.rb +1 -1
- data/lib/mongoid/relations/builders.rb +2 -2
- data/lib/mongoid/relations/builders/embedded/one.rb +1 -1
- data/lib/mongoid/relations/builders/nested_attributes/many.rb +10 -13
- data/lib/mongoid/relations/builders/nested_attributes/one.rb +5 -6
- data/lib/mongoid/relations/builders/referenced/in.rb +1 -1
- data/lib/mongoid/relations/builders/referenced/many.rb +1 -2
- data/lib/mongoid/relations/builders/referenced/many_to_many.rb +1 -2
- data/lib/mongoid/relations/builders/referenced/one.rb +1 -1
- data/lib/mongoid/relations/cascading.rb +3 -5
- data/lib/mongoid/relations/constraint.rb +1 -1
- data/lib/mongoid/relations/conversions.rb +1 -1
- data/lib/mongoid/relations/counter_cache.rb +39 -15
- data/lib/mongoid/relations/eager.rb +46 -0
- data/lib/mongoid/relations/eager/base.rb +149 -0
- data/lib/mongoid/relations/eager/belongs_to.rb +31 -0
- data/lib/mongoid/relations/eager/has_and_belongs_to_many.rb +47 -0
- data/lib/mongoid/relations/eager/has_many.rb +38 -0
- data/lib/mongoid/relations/eager/has_one.rb +30 -0
- data/lib/mongoid/relations/embedded/batchable.rb +4 -5
- data/lib/mongoid/relations/embedded/in.rb +4 -4
- data/lib/mongoid/relations/embedded/many.rb +14 -32
- data/lib/mongoid/relations/embedded/one.rb +1 -1
- data/lib/mongoid/relations/macros.rb +3 -4
- data/lib/mongoid/relations/many.rb +51 -31
- data/lib/mongoid/relations/marshalable.rb +3 -3
- data/lib/mongoid/relations/metadata.rb +14 -79
- data/lib/mongoid/relations/nested_builder.rb +2 -2
- data/lib/mongoid/relations/one.rb +1 -1
- data/lib/mongoid/relations/options.rb +1 -0
- data/lib/mongoid/relations/polymorphic.rb +0 -1
- data/lib/mongoid/relations/proxy.rb +21 -41
- data/lib/mongoid/relations/referenced/in.rb +4 -20
- data/lib/mongoid/relations/referenced/many.rb +22 -35
- data/lib/mongoid/relations/referenced/many_to_many.rb +19 -42
- data/lib/mongoid/relations/referenced/one.rb +6 -25
- data/lib/mongoid/relations/synchronization.rb +4 -4
- data/lib/mongoid/relations/targets/enumerable.rb +10 -10
- data/lib/mongoid/relations/touchable.rb +34 -1
- data/lib/mongoid/{reloading.rb → reloadable.rb} +7 -5
- data/lib/mongoid/{scoping.rb → scopable.rb} +36 -36
- data/lib/mongoid/selectable.rb +59 -0
- data/lib/mongoid/{serialization.rb → serializable.rb} +11 -2
- data/lib/mongoid/sessions.rb +37 -345
- data/lib/mongoid/sessions/factory.rb +2 -0
- data/lib/mongoid/sessions/options.rb +185 -0
- data/lib/mongoid/sessions/storage_options.rb +140 -0
- data/lib/mongoid/sessions/thread_options.rb +19 -0
- data/lib/mongoid/sessions/validators/storage.rb +16 -3
- data/lib/mongoid/{sharding.rb → shardable.rb} +5 -1
- data/lib/mongoid/{state.rb → stateful.rb} +13 -1
- data/lib/mongoid/support/query_counter.rb +23 -0
- data/lib/mongoid/tasks/database.rake +31 -0
- data/lib/mongoid/tasks/database.rb +107 -0
- data/lib/mongoid/threaded.rb +26 -172
- data/lib/mongoid/threaded/lifecycle.rb +0 -28
- data/lib/mongoid/timestamps/updated/short.rb +2 -2
- data/lib/mongoid/{hierarchy.rb → traversable.rb} +15 -7
- data/lib/mongoid/{validations.rb → validatable.rb} +23 -10
- data/lib/mongoid/{validations → validatable}/associated.rb +4 -2
- data/lib/mongoid/{validations → validatable}/format.rb +1 -1
- data/lib/mongoid/{validations → validatable}/length.rb +1 -1
- data/lib/mongoid/{validations → validatable}/localizable.rb +1 -1
- data/lib/mongoid/{validations → validatable}/macros.rb +4 -3
- data/lib/mongoid/{validations → validatable}/presence.rb +1 -1
- data/lib/mongoid/{validations → validatable}/queryable.rb +1 -2
- data/lib/mongoid/{validations → validatable}/uniqueness.rb +25 -21
- data/lib/mongoid/version.rb +1 -1
- data/lib/rails/generators/mongoid/config/templates/mongoid.yml +46 -25
- data/lib/rails/generators/mongoid/model/model_generator.rb +0 -1
- data/lib/rails/generators/mongoid/model/templates/model.rb.tt +0 -3
- data/lib/rails/generators/mongoid_generator.rb +3 -40
- data/lib/rails/mongoid.rb +0 -122
- data/lib/support/ruby_version.rb +1 -1
- data/spec/app/models/account.rb +2 -6
- data/spec/app/models/acolyte.rb +2 -1
- data/spec/app/models/actor.rb +0 -1
- data/spec/app/models/address.rb +8 -3
- data/spec/app/models/animal.rb +1 -1
- data/spec/app/models/appointment.rb +3 -3
- data/spec/app/models/article.rb +1 -4
- data/spec/app/models/audio.rb +5 -0
- data/spec/app/models/author.rb +0 -2
- data/spec/app/models/band.rb +3 -2
- data/spec/app/models/bar.rb +1 -0
- data/spec/app/models/book.rb +1 -0
- data/spec/app/models/building.rb +0 -2
- data/spec/app/models/building_address.rb +0 -2
- data/spec/app/models/bus.rb +1 -1
- data/spec/app/models/canvas.rb +1 -1
- data/spec/app/models/contextable_item.rb +5 -0
- data/spec/app/models/contractor.rb +0 -2
- data/spec/app/models/country_code.rb +1 -1
- data/spec/app/models/definition.rb +2 -2
- data/spec/app/models/dog.rb +1 -1
- data/spec/app/models/draft.rb +9 -0
- data/spec/app/models/dragon.rb +4 -0
- data/spec/app/models/drug.rb +1 -3
- data/spec/app/models/dungeon.rb +4 -0
- data/spec/app/models/edit.rb +5 -0
- data/spec/app/models/even.rb +7 -0
- data/spec/app/models/event.rb +1 -1
- data/spec/app/models/filesystem.rb +1 -0
- data/spec/app/models/fish.rb +0 -1
- data/spec/app/models/fruits.rb +6 -0
- data/spec/app/models/game.rb +0 -2
- data/spec/app/models/house.rb +1 -3
- data/spec/app/models/id_key.rb +6 -0
- data/spec/app/models/item.rb +1 -5
- data/spec/app/models/jar.rb +1 -1
- data/spec/app/models/label.rb +4 -4
- data/spec/app/models/line_item.rb +1 -1
- data/spec/app/models/login.rb +1 -1
- data/spec/app/models/message.rb +8 -0
- data/spec/app/models/movie.rb +1 -0
- data/spec/app/models/name.rb +3 -3
- data/spec/app/models/note.rb +3 -1
- data/spec/app/models/odd.rb +7 -0
- data/spec/app/models/oscar.rb +1 -1
- data/spec/app/models/parent_doc.rb +1 -1
- data/spec/app/models/person.rb +16 -10
- data/spec/app/models/phone.rb +1 -3
- data/spec/app/models/player.rb +3 -3
- data/spec/app/models/post.rb +5 -3
- data/spec/app/models/preference.rb +1 -1
- data/spec/app/models/quiz.rb +0 -3
- data/spec/app/models/record.rb +10 -5
- data/spec/app/models/registry.rb +1 -1
- data/spec/app/models/server.rb +1 -1
- data/spec/app/models/service.rb +3 -3
- data/spec/app/models/sound.rb +5 -0
- data/spec/app/models/symptom.rb +1 -1
- data/spec/app/models/template.rb +1 -1
- data/spec/app/models/title.rb +0 -1
- data/spec/app/models/track.rb +5 -5
- data/spec/app/models/tree.rb +3 -3
- data/spec/app/models/video.rb +1 -5
- data/spec/app/models/wiki_page.rb +2 -5
- data/spec/app/models/word.rb +3 -0
- data/spec/app/models/word_origin.rb +1 -1
- data/spec/config/mongoid.yml +7 -8
- data/spec/helpers.rb +18 -0
- data/spec/mongoid/#atomic_spec.rb# +365 -0
- data/spec/mongoid/atomic/modifiers_spec.rb +22 -22
- data/spec/mongoid/atomic/paths/embedded/many_spec.rb +8 -49
- data/spec/mongoid/atomic/paths/embedded/one_spec.rb +7 -49
- data/spec/mongoid/atomic/paths/root_spec.rb +3 -61
- data/spec/mongoid/atomic/paths_spec.rb +19 -19
- data/spec/mongoid/atomic_spec.rb +19 -19
- data/spec/mongoid/{nested_attributes_spec.rb → attributes/nested_spec.rb} +474 -592
- data/spec/mongoid/attributes/readonly_spec.rb +58 -18
- data/spec/mongoid/attributes_spec.rb +349 -434
- data/spec/mongoid/{dirty_spec.rb → changeable_spec.rb} +203 -153
- data/spec/mongoid/{components_spec.rb → composable_spec.rb} +3 -3
- data/spec/mongoid/config/environment_spec.rb +3 -3
- data/spec/mongoid/config/options_spec.rb +6 -6
- data/spec/mongoid/config_spec.rb +24 -48
- data/spec/mongoid/contextual/aggregable/memory_spec.rb +12 -12
- data/spec/mongoid/contextual/aggregable/mongo_spec.rb +78 -38
- data/spec/mongoid/contextual/atomic_spec.rb +60 -56
- data/spec/mongoid/contextual/find_and_modify_spec.rb +14 -14
- data/spec/mongoid/contextual/geo_near_spec.rb +22 -22
- data/spec/mongoid/contextual/map_reduce_spec.rb +27 -27
- data/spec/mongoid/contextual/memory_spec.rb +156 -94
- data/spec/mongoid/contextual/mongo_spec.rb +238 -150
- data/spec/mongoid/contextual/none_spec.rb +127 -0
- data/spec/mongoid/contextual/text_search_spec.rb +209 -0
- data/spec/mongoid/copyable_spec.rb +56 -68
- data/spec/mongoid/criteria/findable_spec.rb +991 -0
- data/spec/mongoid/{criterion/inspection_spec.rb → criteria/inspectable_spec.rb} +5 -5
- data/spec/mongoid/{criterion → criteria}/marshalable_spec.rb +2 -2
- data/spec/mongoid/criteria/modifiable_spec.rb +1252 -0
- data/spec/mongoid/{criterion/scoping_spec.rb → criteria/scopable_spec.rb} +37 -37
- data/spec/mongoid/criteria_spec.rb +715 -2421
- data/spec/mongoid/document_spec.rb +171 -121
- data/spec/mongoid/equality_spec.rb +22 -22
- data/spec/mongoid/errors/ambiguous_relationship_spec.rb +3 -3
- data/spec/mongoid/errors/callback_spec.rb +3 -3
- data/spec/mongoid/errors/delete_restriction_spec.rb +3 -3
- data/spec/mongoid/errors/document_not_destroyed_spec.rb +33 -0
- data/spec/mongoid/errors/document_not_found_spec.rb +11 -11
- data/spec/mongoid/errors/eager_load_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_collection_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_config_option_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_field_option_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_field_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_find_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_includes_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_index_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_options_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_path_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_scope_spec.rb +5 -5
- data/spec/mongoid/errors/invalid_set_polymorphic_relation_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_storage_options_spec.rb +3 -3
- data/spec/mongoid/errors/invalid_time_spec.rb +3 -3
- data/spec/mongoid/errors/inverse_not_found_spec.rb +3 -3
- data/spec/mongoid/errors/mixed_relations_spec.rb +3 -3
- data/spec/mongoid/errors/mixed_session_configuration_spec.rb +3 -3
- data/spec/mongoid/errors/mongoid_error_spec.rb +8 -8
- data/spec/mongoid/errors/nested_attributes_metadata_not_found_spec.rb +3 -3
- data/spec/mongoid/errors/no_environment_spec.rb +3 -3
- data/spec/mongoid/errors/no_map_reduce_output_spec.rb +3 -3
- data/spec/mongoid/errors/no_metadata_spec.rb +3 -3
- data/spec/mongoid/errors/no_parent_spec.rb +3 -3
- data/spec/mongoid/errors/no_session_config_spec.rb +3 -3
- data/spec/mongoid/errors/no_session_database_spec.rb +3 -3
- data/spec/mongoid/errors/no_session_hosts_spec.rb +3 -3
- data/spec/mongoid/errors/no_sessions_config_spec.rb +3 -3
- data/spec/mongoid/errors/readonly_attribute_spec.rb +3 -3
- data/spec/mongoid/errors/readonly_document_spec.rb +29 -0
- data/spec/mongoid/errors/scope_overwrite_spec.rb +3 -3
- data/spec/mongoid/errors/too_many_nested_attribute_records_spec.rb +3 -3
- data/spec/mongoid/errors/unknown_attribute_spec.rb +5 -5
- data/spec/mongoid/errors/unsaved_document_spec.rb +3 -3
- data/spec/mongoid/errors/unsupported_javascript_spec.rb +3 -3
- data/spec/mongoid/errors/validations_spec.rb +7 -7
- data/spec/mongoid/extensions/array_spec.rb +61 -61
- data/spec/mongoid/extensions/big_decimal_spec.rb +11 -11
- data/spec/mongoid/extensions/binary_spec.rb +12 -12
- data/spec/mongoid/extensions/boolean_spec.rb +18 -18
- data/spec/mongoid/extensions/date_spec.rb +13 -13
- data/spec/mongoid/extensions/date_time_spec.rb +8 -8
- data/spec/mongoid/extensions/false_class_spec.rb +5 -5
- data/spec/mongoid/extensions/float_spec.rb +29 -15
- data/spec/mongoid/extensions/hash_spec.rb +29 -29
- data/spec/mongoid/extensions/integer_spec.rb +15 -15
- data/spec/mongoid/extensions/module_spec.rb +2 -2
- data/spec/mongoid/extensions/nil_class_spec.rb +1 -1
- data/spec/mongoid/extensions/object_id_spec.rb +134 -134
- data/spec/mongoid/extensions/object_spec.rb +26 -26
- data/spec/mongoid/extensions/range_spec.rb +61 -12
- data/spec/mongoid/extensions/regexp_spec.rb +4 -4
- data/spec/mongoid/extensions/set_spec.rb +4 -4
- data/spec/mongoid/extensions/string_spec.rb +35 -46
- data/spec/mongoid/extensions/symbol_spec.rb +9 -9
- data/spec/mongoid/extensions/time_spec.rb +49 -49
- data/spec/mongoid/extensions/time_with_zone_spec.rb +34 -34
- data/spec/mongoid/extensions/true_class_spec.rb +5 -5
- data/spec/mongoid/extensions_spec.rb +29 -0
- data/spec/mongoid/factory_spec.rb +15 -15
- data/spec/mongoid/fields/foreign_key_spec.rb +73 -66
- data/spec/mongoid/fields/internal/foreign_keys/array_spec.rb +15 -15
- data/spec/mongoid/fields/internal/foreign_keys/object_spec.rb +22 -22
- data/spec/mongoid/fields/localized_spec.rb +38 -23
- data/spec/mongoid/fields/standard_spec.rb +12 -12
- data/spec/mongoid/fields_spec.rb +263 -217
- data/spec/mongoid/findable_spec.rb +509 -0
- data/spec/mongoid/indexable/specification_spec.rb +102 -0
- data/spec/mongoid/{indexes_spec.rb → indexable_spec.rb} +171 -51
- data/spec/mongoid/{inspection_spec.rb → inspectable_spec.rb} +6 -14
- data/spec/mongoid/{callbacks_spec.rb → interceptable_spec.rb} +117 -116
- data/spec/mongoid/log_subscriber_spec.rb +75 -0
- data/spec/mongoid/loggable_spec.rb +1 -1
- data/spec/mongoid/{matchers → matchable}/all_spec.rb +4 -4
- data/spec/mongoid/{matchers → matchable}/and_spec.rb +11 -11
- data/spec/mongoid/{matchers → matchable}/default_spec.rb +15 -15
- data/spec/mongoid/{matchers → matchable}/exists_spec.rb +5 -5
- data/spec/mongoid/{matchers → matchable}/gt_spec.rb +9 -8
- data/spec/mongoid/{matchers → matchable}/gte_spec.rb +7 -7
- data/spec/mongoid/matchable/in_spec.rb +49 -0
- data/spec/mongoid/{matchers → matchable}/lt_spec.rb +7 -7
- data/spec/mongoid/{matchers → matchable}/lte_spec.rb +7 -7
- data/spec/mongoid/matchable/ne_spec.rb +46 -0
- data/spec/mongoid/matchable/nin_spec.rb +48 -0
- data/spec/mongoid/{matchers → matchable}/or_spec.rb +6 -6
- data/spec/mongoid/{matchers → matchable}/size_spec.rb +3 -3
- data/spec/mongoid/{matchers_spec.rb → matchable_spec.rb} +41 -41
- data/spec/mongoid/persistable/creatable_spec.rb +553 -0
- data/spec/mongoid/persistable/deletable_spec.rb +218 -0
- data/spec/mongoid/persistable/destroyable_spec.rb +192 -0
- data/spec/mongoid/persistable/incrementable_spec.rb +173 -0
- data/spec/mongoid/persistable/logical_spec.rb +143 -0
- data/spec/mongoid/persistable/poppable_spec.rb +115 -0
- data/spec/mongoid/persistable/pullable_spec.rb +228 -0
- data/spec/mongoid/persistable/pushable_spec.rb +258 -0
- data/spec/mongoid/persistable/renamable_spec.rb +135 -0
- data/spec/mongoid/persistable/savable_spec.rb +498 -0
- data/spec/mongoid/persistable/settable_spec.rb +162 -0
- data/spec/mongoid/persistable/unsettable_spec.rb +155 -0
- data/spec/mongoid/persistable/updatable_spec.rb +558 -0
- data/spec/mongoid/persistable/upsertable_spec.rb +106 -0
- data/spec/mongoid/persistable_spec.rb +206 -0
- data/spec/mongoid/{atomic/positionable_spec.rb → positional_spec.rb} +14 -19
- data/spec/mongoid/query_cache_spec.rb +263 -0
- data/spec/mongoid/railties/document_spec.rb +2 -2
- data/spec/mongoid/relations/accessors_spec.rb +53 -145
- data/spec/mongoid/relations/auto_save_spec.rb +37 -17
- data/spec/mongoid/relations/bindings/embedded/in_spec.rb +12 -12
- data/spec/mongoid/relations/bindings/embedded/many_spec.rb +3 -3
- data/spec/mongoid/relations/bindings/embedded/one_spec.rb +5 -5
- data/spec/mongoid/relations/bindings/referenced/in_spec.rb +26 -26
- data/spec/mongoid/relations/bindings/referenced/many_spec.rb +10 -10
- data/spec/mongoid/relations/bindings/referenced/many_to_many_spec.rb +19 -19
- data/spec/mongoid/relations/bindings/referenced/one_spec.rb +12 -12
- data/spec/mongoid/relations/builders/embedded/in_spec.rb +4 -4
- data/spec/mongoid/relations/builders/embedded/many_spec.rb +18 -18
- data/spec/mongoid/relations/builders/embedded/one_spec.rb +11 -11
- data/spec/mongoid/relations/builders/nested_attributes/many_spec.rb +12 -13
- data/spec/mongoid/relations/builders/nested_attributes/one_spec.rb +14 -14
- data/spec/mongoid/relations/builders/referenced/in_spec.rb +24 -35
- data/spec/mongoid/relations/builders/referenced/many_spec.rb +15 -15
- data/spec/mongoid/relations/builders/referenced/many_to_many_spec.rb +18 -18
- data/spec/mongoid/relations/builders/referenced/one_spec.rb +12 -25
- data/spec/mongoid/relations/builders_spec.rb +21 -21
- data/spec/mongoid/relations/cascading/delete_spec.rb +9 -9
- data/spec/mongoid/relations/cascading/destroy_spec.rb +6 -6
- data/spec/mongoid/relations/cascading/nullify_spec.rb +4 -4
- data/spec/mongoid/relations/cascading/restrict_spec.rb +7 -7
- data/spec/mongoid/relations/cascading_spec.rb +16 -16
- data/spec/mongoid/relations/constraint_spec.rb +8 -7
- data/spec/mongoid/relations/conversions_spec.rb +16 -14
- data/spec/mongoid/relations/counter_cache_spec.rb +85 -0
- data/spec/mongoid/relations/cyclic_spec.rb +18 -18
- data/spec/mongoid/relations/eager/belongs_to_spec.rb +154 -0
- data/spec/mongoid/relations/eager/has_and_belongs_to_many_spec.rb +117 -0
- data/spec/mongoid/relations/eager/has_many_spec.rb +207 -0
- data/spec/mongoid/relations/eager/has_one_spec.rb +163 -0
- data/spec/mongoid/relations/eager_spec.rb +228 -0
- data/spec/mongoid/relations/embedded/dirty_spec.rb +8 -8
- data/spec/mongoid/relations/embedded/in_spec.rb +56 -57
- data/spec/mongoid/relations/embedded/many_spec.rb +467 -372
- data/spec/mongoid/relations/embedded/one_spec.rb +108 -141
- data/spec/mongoid/relations/macros_spec.rb +108 -102
- data/spec/mongoid/relations/metadata_spec.rb +180 -255
- data/spec/mongoid/relations/options_spec.rb +1 -1
- data/spec/mongoid/relations/polymorphic_spec.rb +13 -17
- data/spec/mongoid/relations/proxy_spec.rb +2 -2
- data/spec/mongoid/relations/referenced/in_spec.rb +128 -303
- data/spec/mongoid/relations/referenced/many_spec.rb +587 -527
- data/spec/mongoid/relations/referenced/many_to_many_spec.rb +401 -424
- data/spec/mongoid/relations/referenced/one_spec.rb +149 -264
- data/spec/mongoid/relations/reflections_spec.rb +6 -6
- data/spec/mongoid/relations/synchronization_spec.rb +46 -50
- data/spec/mongoid/relations/targets/enumerable_spec.rb +118 -118
- data/spec/mongoid/relations/touchable_spec.rb +333 -0
- data/spec/mongoid/relations_spec.rb +16 -15
- data/spec/mongoid/{reloading_spec.rb → reloadable_spec.rb} +38 -55
- data/spec/mongoid/{scoping_spec.rb → scopable_spec.rb} +89 -164
- data/spec/mongoid/selectable_spec.rb +134 -0
- data/spec/mongoid/{serialization_spec.rb → serializable_spec.rb} +129 -82
- data/spec/mongoid/sessions/factory_spec.rb +49 -28
- data/spec/mongoid/sessions/mongo_uri_spec.rb +7 -7
- data/spec/mongoid/sessions/options_spec.rb +108 -0
- data/spec/mongoid/sessions_spec.rb +319 -178
- data/spec/mongoid/{sharding_spec.rb → shardable_spec.rb} +8 -8
- data/spec/mongoid/{state_spec.rb → stateful_spec.rb} +36 -11
- data/spec/mongoid/tasks/database_rake_spec.rb +285 -0
- data/spec/mongoid/tasks/database_spec.rb +160 -0
- data/spec/mongoid/threaded_spec.rb +17 -70
- data/spec/mongoid/timestamps/created/short_spec.rb +6 -6
- data/spec/mongoid/timestamps/created_spec.rb +5 -5
- data/spec/mongoid/timestamps/timeless_spec.rb +6 -6
- data/spec/mongoid/timestamps/updated/short_spec.rb +11 -11
- data/spec/mongoid/timestamps/updated_spec.rb +9 -13
- data/spec/mongoid/timestamps_spec.rb +9 -13
- data/spec/mongoid/{hierarchy_spec.rb → traversable_spec.rb} +19 -19
- data/spec/mongoid/{validations → validatable}/associated_spec.rb +45 -22
- data/spec/mongoid/{validations → validatable}/format_spec.rb +6 -6
- data/spec/mongoid/{validations → validatable}/length_spec.rb +14 -14
- data/spec/mongoid/{validations → validatable}/numericality_spec.rb +1 -1
- data/spec/mongoid/{validations → validatable}/presence_spec.rb +37 -44
- data/spec/mongoid/{validations → validatable}/uniqueness_spec.rb +184 -192
- data/spec/mongoid/{validations_spec.rb → validatable_spec.rb} +28 -28
- data/spec/mongoid_spec.rb +8 -8
- data/spec/rails/mongoid_spec.rb +19 -335
- data/spec/spec_helper.rb +31 -13
- metadata +303 -283
- data/lib/mongoid/atomic/positionable.rb +0 -73
- data/lib/mongoid/components.rb +0 -92
- data/lib/mongoid/config/inflections.rb +0 -6
- data/lib/mongoid/contextual/eager.rb +0 -158
- data/lib/mongoid/errors/versioning_not_on_root.rb +0 -23
- data/lib/mongoid/identity_map.rb +0 -163
- data/lib/mongoid/json.rb +0 -16
- data/lib/mongoid/matchers.rb +0 -32
- data/lib/mongoid/matchers/strategies.rb +0 -97
- data/lib/mongoid/multi_parameter_attributes.rb +0 -105
- data/lib/mongoid/nested_attributes.rb +0 -78
- data/lib/mongoid/observer.rb +0 -192
- data/lib/mongoid/paranoia.rb +0 -136
- data/lib/mongoid/persistence.rb +0 -357
- data/lib/mongoid/persistence/atomic.rb +0 -231
- data/lib/mongoid/persistence/atomic/add_to_set.rb +0 -47
- data/lib/mongoid/persistence/atomic/bit.rb +0 -35
- data/lib/mongoid/persistence/atomic/inc.rb +0 -45
- data/lib/mongoid/persistence/atomic/operation.rb +0 -154
- data/lib/mongoid/persistence/atomic/pop.rb +0 -32
- data/lib/mongoid/persistence/atomic/pull.rb +0 -32
- data/lib/mongoid/persistence/atomic/pull_all.rb +0 -32
- data/lib/mongoid/persistence/atomic/push.rb +0 -25
- data/lib/mongoid/persistence/atomic/push_all.rb +0 -25
- data/lib/mongoid/persistence/atomic/rename.rb +0 -30
- data/lib/mongoid/persistence/atomic/sets.rb +0 -28
- data/lib/mongoid/persistence/atomic/unset.rb +0 -27
- data/lib/mongoid/persistence/deletion.rb +0 -31
- data/lib/mongoid/persistence/insertion.rb +0 -38
- data/lib/mongoid/persistence/modification.rb +0 -35
- data/lib/mongoid/persistence/operations.rb +0 -214
- data/lib/mongoid/persistence/operations/embedded/insert.rb +0 -46
- data/lib/mongoid/persistence/operations/embedded/remove.rb +0 -43
- data/lib/mongoid/persistence/operations/insert.rb +0 -34
- data/lib/mongoid/persistence/operations/remove.rb +0 -33
- data/lib/mongoid/persistence/operations/update.rb +0 -59
- data/lib/mongoid/persistence/operations/upsert.rb +0 -28
- data/lib/mongoid/persistence/upsertion.rb +0 -31
- data/lib/mongoid/unit_of_work.rb +0 -61
- data/lib/mongoid/versioning.rb +0 -217
- data/lib/rack/mongoid.rb +0 -2
- data/lib/rack/mongoid/middleware/identity_map.rb +0 -39
- data/lib/rails/generators/mongoid/observer/observer_generator.rb +0 -17
- data/lib/rails/generators/mongoid/observer/templates/observer.rb.tt +0 -4
- data/spec/app/models/actor_observer.rb +0 -15
- data/spec/app/models/callback_recorder.rb +0 -25
- data/spec/app/models/paranoid_phone.rb +0 -25
- data/spec/app/models/paranoid_post.rb +0 -36
- data/spec/app/models/phone_observer.rb +0 -6
- data/spec/mongoid/attributes/processing_spec.rb +0 -149
- data/spec/mongoid/criterion/destructive_spec.rb +0 -101
- data/spec/mongoid/criterion/modifiable_spec.rb +0 -409
- data/spec/mongoid/criterion/modification_spec.rb +0 -402
- data/spec/mongoid/errors/versioning_not_on_root_spec.rb +0 -29
- data/spec/mongoid/finders_spec.rb +0 -321
- data/spec/mongoid/identity_map_spec.rb +0 -564
- data/spec/mongoid/json_spec.rb +0 -33
- data/spec/mongoid/matchers/in_spec.rb +0 -25
- data/spec/mongoid/matchers/ne_spec.rb +0 -25
- data/spec/mongoid/matchers/nin_spec.rb +0 -25
- data/spec/mongoid/multi_parameter_attributes_spec.rb +0 -128
- data/spec/mongoid/observer_spec.rb +0 -290
- data/spec/mongoid/paranoia_spec.rb +0 -759
- data/spec/mongoid/persistence/atomic/add_to_set_spec.rb +0 -262
- data/spec/mongoid/persistence/atomic/bit_spec.rb +0 -88
- data/spec/mongoid/persistence/atomic/inc_spec.rb +0 -133
- data/spec/mongoid/persistence/atomic/pop_spec.rb +0 -111
- data/spec/mongoid/persistence/atomic/pull_all_spec.rb +0 -77
- data/spec/mongoid/persistence/atomic/pull_spec.rb +0 -80
- data/spec/mongoid/persistence/atomic/push_all_spec.rb +0 -77
- data/spec/mongoid/persistence/atomic/push_spec.rb +0 -77
- data/spec/mongoid/persistence/atomic/rename_spec.rb +0 -42
- data/spec/mongoid/persistence/atomic/sets_spec.rb +0 -154
- data/spec/mongoid/persistence/atomic/unset_spec.rb +0 -65
- data/spec/mongoid/persistence/atomic_spec.rb +0 -216
- data/spec/mongoid/persistence/operations/embedded/insert_spec.rb +0 -191
- data/spec/mongoid/persistence/operations/embedded/remove_spec.rb +0 -8
- data/spec/mongoid/persistence/operations/insert_spec.rb +0 -149
- data/spec/mongoid/persistence/operations/remove_spec.rb +0 -113
- data/spec/mongoid/persistence/operations/update_spec.rb +0 -141
- data/spec/mongoid/persistence/operations/upsert_spec.rb +0 -59
- data/spec/mongoid/persistence/operations_spec.rb +0 -313
- data/spec/mongoid/persistence_spec.rb +0 -2279
- data/spec/mongoid/unit_of_work_spec.rb +0 -196
- data/spec/mongoid/versioning_spec.rb +0 -540
- data/spec/rack/mongoid/middleware/identity_map_spec.rb +0 -72
@@ -0,0 +1,49 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Mongoid::Matchable::In do
|
4
|
+
|
5
|
+
describe "#matches?" do
|
6
|
+
|
7
|
+
context 'when the attribute is not nil' do
|
8
|
+
|
9
|
+
let(:matcher) do
|
10
|
+
described_class.new("first")
|
11
|
+
end
|
12
|
+
|
13
|
+
context "when the values include the attribute" do
|
14
|
+
|
15
|
+
it "returns true" do
|
16
|
+
expect(matcher.matches?("$in" => [/\Afir.*\z/, "second"])).to be true
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
context "when the values don't include the attribute" do
|
21
|
+
|
22
|
+
it "returns false" do
|
23
|
+
expect(matcher.matches?("$in" => ["third"])).to be false
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
context 'when the attribute is nil' do
|
29
|
+
|
30
|
+
let(:matcher) do
|
31
|
+
described_class.new(nil)
|
32
|
+
end
|
33
|
+
|
34
|
+
context "when the values include the attribute" do
|
35
|
+
|
36
|
+
it "returns true" do
|
37
|
+
expect(matcher.matches?("$in" => [/\Afir.*\z/, nil])).to be true
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
context "when the values don't include the attribute" do
|
42
|
+
|
43
|
+
it "returns false" do
|
44
|
+
expect(matcher.matches?("$in" => ["third"])).to be false
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
|
3
|
-
describe Mongoid::
|
3
|
+
describe Mongoid::Matchable::Lt do
|
4
4
|
|
5
5
|
describe "#matches?" do
|
6
6
|
|
@@ -11,7 +11,7 @@ describe Mongoid::Matchers::Lt do
|
|
11
11
|
end
|
12
12
|
|
13
13
|
it "returns false" do
|
14
|
-
matcher.matches?("$lt" => 3).
|
14
|
+
expect(matcher.matches?("$lt" => 3)).to be false
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
@@ -22,7 +22,7 @@ describe Mongoid::Matchers::Lt do
|
|
22
22
|
end
|
23
23
|
|
24
24
|
it "returns false" do
|
25
|
-
matcher.matches?("$lt" => 3).
|
25
|
+
expect(matcher.matches?("$lt" => 3)).to be false
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
@@ -33,7 +33,7 @@ describe Mongoid::Matchers::Lt do
|
|
33
33
|
end
|
34
34
|
|
35
35
|
it "returns true" do
|
36
|
-
matcher.matches?("$lt" => 10).
|
36
|
+
expect(matcher.matches?("$lt" => 10)).to be true
|
37
37
|
end
|
38
38
|
end
|
39
39
|
|
@@ -44,7 +44,7 @@ describe Mongoid::Matchers::Lt do
|
|
44
44
|
end
|
45
45
|
|
46
46
|
it "returns false" do
|
47
|
-
matcher.matches?("$lt" => 5).
|
47
|
+
expect(matcher.matches?("$lt" => 5)).to be false
|
48
48
|
end
|
49
49
|
end
|
50
50
|
|
@@ -55,7 +55,7 @@ describe Mongoid::Matchers::Lt do
|
|
55
55
|
end
|
56
56
|
|
57
57
|
it "returns true" do
|
58
|
-
matcher.matches?("$lt" => 5).
|
58
|
+
expect(matcher.matches?("$lt" => 5)).to be true
|
59
59
|
end
|
60
60
|
end
|
61
61
|
|
@@ -65,7 +65,7 @@ describe Mongoid::Matchers::Lt do
|
|
65
65
|
end
|
66
66
|
|
67
67
|
it "returns false" do
|
68
|
-
matcher.matches?("$lt" => 5).
|
68
|
+
expect(matcher.matches?("$lt" => 5)).to be false
|
69
69
|
end
|
70
70
|
|
71
71
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
|
3
|
-
describe Mongoid::
|
3
|
+
describe Mongoid::Matchable::Lte do
|
4
4
|
|
5
5
|
describe "#matches?" do
|
6
6
|
|
@@ -11,7 +11,7 @@ describe Mongoid::Matchers::Lte do
|
|
11
11
|
end
|
12
12
|
|
13
13
|
it "returns false" do
|
14
|
-
matcher.matches?("$lte" => 3).
|
14
|
+
expect(matcher.matches?("$lte" => 3)).to be false
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
@@ -22,7 +22,7 @@ describe Mongoid::Matchers::Lte do
|
|
22
22
|
end
|
23
23
|
|
24
24
|
it "returns true" do
|
25
|
-
matcher.matches?("$lte" => 10).
|
25
|
+
expect(matcher.matches?("$lte" => 10)).to be true
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
@@ -33,7 +33,7 @@ describe Mongoid::Matchers::Lte do
|
|
33
33
|
end
|
34
34
|
|
35
35
|
it "returns true" do
|
36
|
-
matcher.matches?("$lte" => 5).
|
36
|
+
expect(matcher.matches?("$lte" => 5)).to be true
|
37
37
|
end
|
38
38
|
end
|
39
39
|
|
@@ -44,7 +44,7 @@ describe Mongoid::Matchers::Lte do
|
|
44
44
|
end
|
45
45
|
|
46
46
|
it "returns false" do
|
47
|
-
matcher.matches?("$lte" => 5).
|
47
|
+
expect(matcher.matches?("$lte" => 5)).to be false
|
48
48
|
end
|
49
49
|
end
|
50
50
|
|
@@ -55,7 +55,7 @@ describe Mongoid::Matchers::Lte do
|
|
55
55
|
end
|
56
56
|
|
57
57
|
it "returns true" do
|
58
|
-
matcher.matches?("$lte" => 5).
|
58
|
+
expect(matcher.matches?("$lte" => 5)).to be true
|
59
59
|
end
|
60
60
|
end
|
61
61
|
|
@@ -65,7 +65,7 @@ describe Mongoid::Matchers::Lte do
|
|
65
65
|
end
|
66
66
|
|
67
67
|
it "returns false" do
|
68
|
-
matcher.matches?("$lte" => 5).
|
68
|
+
expect(matcher.matches?("$lte" => 5)).to be false
|
69
69
|
end
|
70
70
|
|
71
71
|
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Mongoid::Matchable::Ne do
|
4
|
+
|
5
|
+
let(:matcher) do
|
6
|
+
described_class.new("first")
|
7
|
+
end
|
8
|
+
|
9
|
+
describe "#matches?" do
|
10
|
+
|
11
|
+
context "when the values are not equal" do
|
12
|
+
|
13
|
+
it "returns true" do
|
14
|
+
expect(matcher.matches?("$ne" => "second")).to be true
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
context "when the values are equal" do
|
19
|
+
|
20
|
+
it "returns false" do
|
21
|
+
expect(matcher.matches?("$ne" => "first")).to be false
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
context "when the value is an array" do
|
26
|
+
|
27
|
+
let(:array_matcher) do
|
28
|
+
described_class.new([ "first" ])
|
29
|
+
end
|
30
|
+
|
31
|
+
context "when the value is in the array" do
|
32
|
+
|
33
|
+
it "returns false" do
|
34
|
+
expect(array_matcher.matches?("$ne" => "first")).to be false
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
context "when the value is not in the array" do
|
39
|
+
|
40
|
+
it "returns true" do
|
41
|
+
expect(array_matcher.matches?("$ne" => "second")).to be true
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Mongoid::Matchable::Nin do
|
4
|
+
|
5
|
+
describe "#matches?" do
|
6
|
+
|
7
|
+
context 'when the attribute is not nil' do
|
8
|
+
|
9
|
+
let(:matcher) do
|
10
|
+
described_class.new("first")
|
11
|
+
end
|
12
|
+
|
13
|
+
context "when the values do not contain the attribute" do
|
14
|
+
|
15
|
+
it "returns true" do
|
16
|
+
expect(matcher.matches?("$nin" => ["second", "third"])).to be true
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
context "when the values contain the attribute" do
|
21
|
+
|
22
|
+
it "returns false" do
|
23
|
+
expect(matcher.matches?("$nin" => ["first"])).to be false
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
context 'when the attribute is nil' do
|
29
|
+
let(:matcher) do
|
30
|
+
described_class.new(nil)
|
31
|
+
end
|
32
|
+
|
33
|
+
context "when the values do not contain the attribute" do
|
34
|
+
|
35
|
+
it "returns true" do
|
36
|
+
expect(matcher.matches?("$nin" => ["third"])).to be true
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
context "when the values contain the attribute" do
|
41
|
+
|
42
|
+
it "returns false" do
|
43
|
+
expect(matcher.matches?("$nin" => [/\Afir.*\z/, nil])).to be false
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
|
3
|
-
describe Mongoid::
|
3
|
+
describe Mongoid::Matchable::Or do
|
4
4
|
|
5
5
|
let(:person) do
|
6
6
|
Person.new
|
@@ -27,14 +27,14 @@ describe Mongoid::Matchers::Or do
|
|
27
27
|
end
|
28
28
|
|
29
29
|
it "returns true" do
|
30
|
-
matches.
|
30
|
+
expect(matches).to be true
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
34
34
|
context "when none of the values are equal" do
|
35
35
|
|
36
36
|
it "returns false" do
|
37
|
-
matcher.matches?([]).
|
37
|
+
expect(matcher.matches?([])).to be false
|
38
38
|
end
|
39
39
|
end
|
40
40
|
end
|
@@ -57,7 +57,7 @@ describe Mongoid::Matchers::Or do
|
|
57
57
|
end
|
58
58
|
|
59
59
|
it "returns true" do
|
60
|
-
matches.
|
60
|
+
expect(matches).to be true
|
61
61
|
end
|
62
62
|
end
|
63
63
|
|
@@ -77,7 +77,7 @@ describe Mongoid::Matchers::Or do
|
|
77
77
|
end
|
78
78
|
|
79
79
|
it "returns false" do
|
80
|
-
matches.
|
80
|
+
expect(matches).to be false
|
81
81
|
end
|
82
82
|
end
|
83
83
|
|
@@ -98,7 +98,7 @@ describe Mongoid::Matchers::Or do
|
|
98
98
|
end
|
99
99
|
|
100
100
|
it "returns false" do
|
101
|
-
matches.
|
101
|
+
expect(matches).to be false
|
102
102
|
end
|
103
103
|
end
|
104
104
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
|
3
|
-
describe Mongoid::
|
3
|
+
describe Mongoid::Matchable::Size do
|
4
4
|
|
5
5
|
let(:matcher) do
|
6
6
|
described_class.new(["first", "second"])
|
@@ -11,14 +11,14 @@ describe Mongoid::Matchers::Size do
|
|
11
11
|
context "when the attribute is the same size" do
|
12
12
|
|
13
13
|
it "returns true" do
|
14
|
-
matcher.matches?("$size" => 2).
|
14
|
+
expect(matcher.matches?("$size" => 2)).to be true
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
18
|
context "when the attribute is not the same size" do
|
19
19
|
|
20
20
|
it "returns false" do
|
21
|
-
matcher.matches?("$size" => 5).
|
21
|
+
expect(matcher.matches?("$size" => 5)).to be false
|
22
22
|
end
|
23
23
|
end
|
24
24
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
|
3
|
-
describe Mongoid::
|
3
|
+
describe Mongoid::Matchable do
|
4
4
|
|
5
5
|
describe "#matches?" do
|
6
6
|
|
@@ -25,7 +25,7 @@ describe Mongoid::Matchers do
|
|
25
25
|
end
|
26
26
|
|
27
27
|
it "returns false" do
|
28
|
-
document.locations.first.matches?(selector).
|
28
|
+
expect(document.locations.first.matches?(selector)).to be false
|
29
29
|
end
|
30
30
|
|
31
31
|
context "when just change the selector order" do
|
@@ -35,7 +35,7 @@ describe Mongoid::Matchers do
|
|
35
35
|
end
|
36
36
|
|
37
37
|
it "returns false " do
|
38
|
-
document.locations.first.matches?(selector).
|
38
|
+
expect(document.locations.first.matches?(selector)).to be false
|
39
39
|
end
|
40
40
|
end
|
41
41
|
end
|
@@ -49,7 +49,7 @@ describe Mongoid::Matchers do
|
|
49
49
|
end
|
50
50
|
|
51
51
|
it "returns true" do
|
52
|
-
document.locations.first.matches?(selector).
|
52
|
+
expect(document.locations.first.matches?(selector)).to be true
|
53
53
|
end
|
54
54
|
end
|
55
55
|
|
@@ -60,7 +60,7 @@ describe Mongoid::Matchers do
|
|
60
60
|
end
|
61
61
|
|
62
62
|
it "returns false" do
|
63
|
-
document.locations.first.matches?(selector).
|
63
|
+
expect(document.locations.first.matches?(selector)).to be false
|
64
64
|
end
|
65
65
|
end
|
66
66
|
|
@@ -71,7 +71,7 @@ describe Mongoid::Matchers do
|
|
71
71
|
end
|
72
72
|
|
73
73
|
it "returns false" do
|
74
|
-
document.locations.first.matches?(selector).
|
74
|
+
expect(document.locations.first.matches?(selector)).to be false
|
75
75
|
end
|
76
76
|
end
|
77
77
|
end
|
@@ -85,7 +85,7 @@ describe Mongoid::Matchers do
|
|
85
85
|
end
|
86
86
|
|
87
87
|
it "returns true" do
|
88
|
-
document.locations.first.matches?(selector).
|
88
|
+
expect(document.locations.first.matches?(selector)).to be true
|
89
89
|
end
|
90
90
|
end
|
91
91
|
|
@@ -96,7 +96,7 @@ describe Mongoid::Matchers do
|
|
96
96
|
end
|
97
97
|
|
98
98
|
it "returns false" do
|
99
|
-
document.locations.first.matches?(selector).
|
99
|
+
expect(document.locations.first.matches?(selector)).to be false
|
100
100
|
end
|
101
101
|
end
|
102
102
|
|
@@ -107,7 +107,7 @@ describe Mongoid::Matchers do
|
|
107
107
|
end
|
108
108
|
|
109
109
|
it "returns false" do
|
110
|
-
document.locations.first.matches?(selector).
|
110
|
+
expect(document.locations.first.matches?(selector)).to be false
|
111
111
|
end
|
112
112
|
end
|
113
113
|
end
|
@@ -127,7 +127,7 @@ describe Mongoid::Matchers do
|
|
127
127
|
end
|
128
128
|
|
129
129
|
it "returns true" do
|
130
|
-
document.matches?(selector).
|
130
|
+
expect(document.matches?(selector)).to be true
|
131
131
|
end
|
132
132
|
end
|
133
133
|
|
@@ -138,7 +138,7 @@ describe Mongoid::Matchers do
|
|
138
138
|
end
|
139
139
|
|
140
140
|
it "returns false" do
|
141
|
-
document.matches?(selector).
|
141
|
+
expect(document.matches?(selector)).to be false
|
142
142
|
end
|
143
143
|
end
|
144
144
|
end
|
@@ -162,7 +162,7 @@ describe Mongoid::Matchers do
|
|
162
162
|
end
|
163
163
|
|
164
164
|
it "returns true" do
|
165
|
-
document.matches?(selector).
|
165
|
+
expect(document.matches?(selector)).to be true
|
166
166
|
end
|
167
167
|
end
|
168
168
|
|
@@ -173,7 +173,7 @@ describe Mongoid::Matchers do
|
|
173
173
|
end
|
174
174
|
|
175
175
|
it "returns false" do
|
176
|
-
document.matches?(selector).
|
176
|
+
expect(document.matches?(selector)).to be false
|
177
177
|
end
|
178
178
|
end
|
179
179
|
end
|
@@ -187,7 +187,7 @@ describe Mongoid::Matchers do
|
|
187
187
|
end
|
188
188
|
|
189
189
|
it "returns true" do
|
190
|
-
document.matches?(selector).
|
190
|
+
expect(document.matches?(selector)).to be true
|
191
191
|
end
|
192
192
|
end
|
193
193
|
|
@@ -198,7 +198,7 @@ describe Mongoid::Matchers do
|
|
198
198
|
end
|
199
199
|
|
200
200
|
it "returns false" do
|
201
|
-
document.matches?(selector).
|
201
|
+
expect(document.matches?(selector)).to be false
|
202
202
|
end
|
203
203
|
end
|
204
204
|
end
|
@@ -212,7 +212,7 @@ describe Mongoid::Matchers do
|
|
212
212
|
end
|
213
213
|
|
214
214
|
it "returns true" do
|
215
|
-
document.matches?(selector).
|
215
|
+
expect(document.matches?(selector)).to be true
|
216
216
|
end
|
217
217
|
end
|
218
218
|
|
@@ -223,7 +223,7 @@ describe Mongoid::Matchers do
|
|
223
223
|
end
|
224
224
|
|
225
225
|
it "returns false" do
|
226
|
-
document.matches?(selector).
|
226
|
+
expect(document.matches?(selector)).to be false
|
227
227
|
end
|
228
228
|
end
|
229
229
|
end
|
@@ -237,7 +237,7 @@ describe Mongoid::Matchers do
|
|
237
237
|
end
|
238
238
|
|
239
239
|
it "returns true" do
|
240
|
-
document.matches?(selector).
|
240
|
+
expect(document.matches?(selector)).to be true
|
241
241
|
end
|
242
242
|
end
|
243
243
|
|
@@ -248,7 +248,7 @@ describe Mongoid::Matchers do
|
|
248
248
|
end
|
249
249
|
|
250
250
|
it "returns false" do
|
251
|
-
document.matches?(selector).
|
251
|
+
expect(document.matches?(selector)).to be false
|
252
252
|
end
|
253
253
|
end
|
254
254
|
end
|
@@ -262,7 +262,7 @@ describe Mongoid::Matchers do
|
|
262
262
|
end
|
263
263
|
|
264
264
|
it "returns true" do
|
265
|
-
document.matches?(selector).
|
265
|
+
expect(document.matches?(selector)).to be true
|
266
266
|
end
|
267
267
|
end
|
268
268
|
|
@@ -273,7 +273,7 @@ describe Mongoid::Matchers do
|
|
273
273
|
end
|
274
274
|
|
275
275
|
it "returns false" do
|
276
|
-
document.matches?(selector).
|
276
|
+
expect(document.matches?(selector)).to be false
|
277
277
|
end
|
278
278
|
end
|
279
279
|
end
|
@@ -287,7 +287,7 @@ describe Mongoid::Matchers do
|
|
287
287
|
end
|
288
288
|
|
289
289
|
it "returns true" do
|
290
|
-
document.matches?(selector).
|
290
|
+
expect(document.matches?(selector)).to be true
|
291
291
|
end
|
292
292
|
end
|
293
293
|
|
@@ -298,7 +298,7 @@ describe Mongoid::Matchers do
|
|
298
298
|
end
|
299
299
|
|
300
300
|
it "returns false" do
|
301
|
-
document.matches?(selector).
|
301
|
+
expect(document.matches?(selector)).to be false
|
302
302
|
end
|
303
303
|
end
|
304
304
|
end
|
@@ -312,7 +312,7 @@ describe Mongoid::Matchers do
|
|
312
312
|
end
|
313
313
|
|
314
314
|
it "returns true" do
|
315
|
-
document.matches?(selector).
|
315
|
+
expect(document.matches?(selector)).to be true
|
316
316
|
end
|
317
317
|
end
|
318
318
|
|
@@ -323,7 +323,7 @@ describe Mongoid::Matchers do
|
|
323
323
|
end
|
324
324
|
|
325
325
|
it "returns false" do
|
326
|
-
document.matches?(selector).
|
326
|
+
expect(document.matches?(selector)).to be false
|
327
327
|
end
|
328
328
|
end
|
329
329
|
end
|
@@ -337,7 +337,7 @@ describe Mongoid::Matchers do
|
|
337
337
|
end
|
338
338
|
|
339
339
|
it "returns true" do
|
340
|
-
document.matches?(selector).
|
340
|
+
expect(document.matches?(selector)).to be true
|
341
341
|
end
|
342
342
|
end
|
343
343
|
|
@@ -348,7 +348,7 @@ describe Mongoid::Matchers do
|
|
348
348
|
end
|
349
349
|
|
350
350
|
it "returns false" do
|
351
|
-
document.matches?(selector).
|
351
|
+
expect(document.matches?(selector)).to be false
|
352
352
|
end
|
353
353
|
end
|
354
354
|
end
|
@@ -362,7 +362,7 @@ describe Mongoid::Matchers do
|
|
362
362
|
end
|
363
363
|
|
364
364
|
it "returns true" do
|
365
|
-
document.matches?(selector).
|
365
|
+
expect(document.matches?(selector)).to be true
|
366
366
|
end
|
367
367
|
end
|
368
368
|
|
@@ -373,7 +373,7 @@ describe Mongoid::Matchers do
|
|
373
373
|
end
|
374
374
|
|
375
375
|
it "returns false" do
|
376
|
-
document.matches?(selector).
|
376
|
+
expect(document.matches?(selector)).to be false
|
377
377
|
end
|
378
378
|
end
|
379
379
|
end
|
@@ -387,7 +387,7 @@ describe Mongoid::Matchers do
|
|
387
387
|
end
|
388
388
|
|
389
389
|
it "returns true" do
|
390
|
-
document.matches?(selector).
|
390
|
+
expect(document.matches?(selector)).to be true
|
391
391
|
end
|
392
392
|
end
|
393
393
|
|
@@ -398,7 +398,7 @@ describe Mongoid::Matchers do
|
|
398
398
|
end
|
399
399
|
|
400
400
|
it "returns false" do
|
401
|
-
document.matches?(selector).
|
401
|
+
expect(document.matches?(selector)).to be false
|
402
402
|
end
|
403
403
|
end
|
404
404
|
end
|
@@ -412,7 +412,7 @@ describe Mongoid::Matchers do
|
|
412
412
|
end
|
413
413
|
|
414
414
|
it "returns true" do
|
415
|
-
document.matches?(selector).
|
415
|
+
expect(document.matches?(selector)).to be true
|
416
416
|
end
|
417
417
|
end
|
418
418
|
|
@@ -423,7 +423,7 @@ describe Mongoid::Matchers do
|
|
423
423
|
end
|
424
424
|
|
425
425
|
it "returns false" do
|
426
|
-
document.matches?(selector).
|
426
|
+
expect(document.matches?(selector)).to be false
|
427
427
|
end
|
428
428
|
end
|
429
429
|
end
|
@@ -437,7 +437,7 @@ describe Mongoid::Matchers do
|
|
437
437
|
end
|
438
438
|
|
439
439
|
it "returns true" do
|
440
|
-
document.matches?(selector).
|
440
|
+
expect(document.matches?(selector)).to be true
|
441
441
|
end
|
442
442
|
end
|
443
443
|
|
@@ -448,7 +448,7 @@ describe Mongoid::Matchers do
|
|
448
448
|
end
|
449
449
|
|
450
450
|
it "returns false" do
|
451
|
-
document.matches?(selector).
|
451
|
+
expect(document.matches?(selector)).to be false
|
452
452
|
end
|
453
453
|
end
|
454
454
|
end
|
@@ -462,7 +462,7 @@ describe Mongoid::Matchers do
|
|
462
462
|
end
|
463
463
|
|
464
464
|
it "returns true" do
|
465
|
-
document.matches?(selector).
|
465
|
+
expect(document.matches?(selector)).to be true
|
466
466
|
end
|
467
467
|
end
|
468
468
|
|
@@ -473,7 +473,7 @@ describe Mongoid::Matchers do
|
|
473
473
|
end
|
474
474
|
|
475
475
|
it "returns false" do
|
476
|
-
document.matches?(selector).
|
476
|
+
expect(document.matches?(selector)).to be false
|
477
477
|
end
|
478
478
|
end
|
479
479
|
end
|
@@ -487,7 +487,7 @@ describe Mongoid::Matchers do
|
|
487
487
|
end
|
488
488
|
|
489
489
|
it "returns true" do
|
490
|
-
document.matches?(selector).
|
490
|
+
expect(document.matches?(selector)).to be true
|
491
491
|
end
|
492
492
|
end
|
493
493
|
|
@@ -498,7 +498,7 @@ describe Mongoid::Matchers do
|
|
498
498
|
end
|
499
499
|
|
500
500
|
it "returns false" do
|
501
|
-
document.matches?(selector).
|
501
|
+
expect(document.matches?(selector)).to be false
|
502
502
|
end
|
503
503
|
end
|
504
504
|
end
|
@@ -512,7 +512,7 @@ describe Mongoid::Matchers do
|
|
512
512
|
end
|
513
513
|
|
514
514
|
it "returns true" do
|
515
|
-
document.matches?(selector).
|
515
|
+
expect(document.matches?(selector)).to be true
|
516
516
|
end
|
517
517
|
end
|
518
518
|
|
@@ -523,7 +523,7 @@ describe Mongoid::Matchers do
|
|
523
523
|
end
|
524
524
|
|
525
525
|
it "returns false" do
|
526
|
-
document.matches?(selector).
|
526
|
+
expect(document.matches?(selector)).to be false
|
527
527
|
end
|
528
528
|
end
|
529
529
|
end
|