mongoid 7.1.11 → 7.2.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.
Files changed (485) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/README.md +10 -3
  4. data/lib/config/locales/en.yml +37 -14
  5. data/lib/mongoid/association/depending.rb +1 -6
  6. data/lib/mongoid/association/embedded/embeds_many/proxy.rb +1 -1
  7. data/lib/mongoid/association/many.rb +3 -3
  8. data/lib/mongoid/association/proxy.rb +1 -1
  9. data/lib/mongoid/association/referenced/belongs_to/buildable.rb +1 -1
  10. data/lib/mongoid/association/referenced/has_and_belongs_to_many/proxy.rb +1 -1
  11. data/lib/mongoid/association/referenced/has_many/enumerable.rb +37 -2
  12. data/lib/mongoid/association/referenced/has_many/proxy.rb +9 -2
  13. data/lib/mongoid/association/referenced/has_one/buildable.rb +9 -1
  14. data/lib/mongoid/atomic/modifiers.rb +1 -1
  15. data/lib/mongoid/attributes/dynamic.rb +1 -1
  16. data/lib/mongoid/attributes.rb +1 -8
  17. data/lib/mongoid/clients/factory.rb +17 -0
  18. data/lib/mongoid/composable.rb +1 -0
  19. data/lib/mongoid/config/environment.rb +1 -9
  20. data/lib/mongoid/config.rb +3 -0
  21. data/lib/mongoid/contextual/atomic.rb +2 -7
  22. data/lib/mongoid/contextual/mongo.rb +23 -4
  23. data/lib/mongoid/contextual/none.rb +0 -3
  24. data/lib/mongoid/copyable.rb +7 -3
  25. data/lib/mongoid/criteria/queryable/key.rb +1 -1
  26. data/lib/mongoid/criteria/queryable/mergeable.rb +2 -2
  27. data/lib/mongoid/criteria/queryable/selectable.rb +23 -8
  28. data/lib/mongoid/criteria/queryable/selector.rb +7 -3
  29. data/lib/mongoid/criteria/queryable/storable.rb +7 -7
  30. data/lib/mongoid/criteria.rb +58 -8
  31. data/lib/mongoid/document.rb +19 -9
  32. data/lib/mongoid/errors/invalid_discriminator_key_target.rb +25 -0
  33. data/lib/mongoid/errors/invalid_elem_match_operator.rb +33 -0
  34. data/lib/mongoid/errors/invalid_estimated_count_criteria.rb +26 -0
  35. data/lib/mongoid/errors/invalid_expression_operator.rb +28 -0
  36. data/lib/mongoid/errors/invalid_field_operator.rb +33 -0
  37. data/lib/mongoid/errors/invalid_query.rb +41 -0
  38. data/lib/mongoid/errors/mongoid_error.rb +1 -1
  39. data/lib/mongoid/errors.rb +7 -2
  40. data/lib/mongoid/extensions.rb +1 -0
  41. data/lib/mongoid/factory.rb +27 -10
  42. data/lib/mongoid/fields/validators/macro.rb +22 -9
  43. data/lib/mongoid/fields.rb +3 -0
  44. data/lib/mongoid/findable.rb +50 -14
  45. data/lib/mongoid/indexable.rb +2 -2
  46. data/lib/mongoid/interceptable.rb +2 -4
  47. data/lib/mongoid/matchable.rb +1 -149
  48. data/lib/mongoid/matcher/all.rb +22 -0
  49. data/lib/mongoid/matcher/and.rb +21 -0
  50. data/lib/mongoid/matcher/elem_match.rb +35 -0
  51. data/lib/mongoid/matcher/elem_match_expression.rb +20 -0
  52. data/lib/mongoid/matcher/eq.rb +11 -0
  53. data/lib/mongoid/matcher/eq_impl.rb +32 -0
  54. data/lib/mongoid/matcher/eq_impl_with_regexp.rb +21 -0
  55. data/lib/mongoid/matcher/exists.rb +15 -0
  56. data/lib/mongoid/matcher/expression.rb +40 -0
  57. data/lib/mongoid/matcher/expression_operator.rb +19 -0
  58. data/lib/mongoid/matcher/field_expression.rb +63 -0
  59. data/lib/mongoid/matcher/field_operator.rb +52 -0
  60. data/lib/mongoid/matcher/gt.rb +17 -0
  61. data/lib/mongoid/matcher/gte.rb +17 -0
  62. data/lib/mongoid/matcher/in.rb +25 -0
  63. data/lib/mongoid/matcher/lt.rb +17 -0
  64. data/lib/mongoid/matcher/lte.rb +17 -0
  65. data/lib/mongoid/matcher/ne.rb +16 -0
  66. data/lib/mongoid/matcher/nin.rb +11 -0
  67. data/lib/mongoid/matcher/nor.rb +25 -0
  68. data/lib/mongoid/matcher/not.rb +29 -0
  69. data/lib/mongoid/matcher/or.rb +21 -0
  70. data/lib/mongoid/matcher/regex.rb +41 -0
  71. data/lib/mongoid/matcher/size.rb +26 -0
  72. data/lib/mongoid/matcher.rb +127 -0
  73. data/lib/mongoid/persistable/deletable.rb +1 -1
  74. data/lib/mongoid/persistence_context.rb +1 -3
  75. data/lib/mongoid/query_cache.rb +64 -62
  76. data/lib/mongoid/reloadable.rb +2 -7
  77. data/lib/mongoid/serializable.rb +1 -1
  78. data/lib/mongoid/stringified_symbol.rb +53 -0
  79. data/lib/mongoid/tasks/database.rb +1 -1
  80. data/lib/mongoid/traversable.rb +111 -4
  81. data/lib/mongoid/validatable/associated.rb +1 -1
  82. data/lib/mongoid/validatable/presence.rb +3 -3
  83. data/lib/mongoid/validatable/uniqueness.rb +1 -1
  84. data/lib/mongoid/version.rb +1 -1
  85. data/lib/mongoid.rb +23 -1
  86. data/lib/rails/generators/mongoid/config/config_generator.rb +1 -8
  87. data/lib/rails/generators/mongoid/config/templates/mongoid.yml +1 -1
  88. data/spec/README.md +19 -4
  89. data/spec/integration/app_spec.rb +84 -174
  90. data/spec/integration/associations/embedded_spec.rb +94 -0
  91. data/spec/integration/associations/has_many_spec.rb +67 -14
  92. data/spec/integration/associations/has_one_spec.rb +67 -14
  93. data/spec/integration/associations/nested_attributes_assignment_spec.rb +116 -0
  94. data/spec/integration/atomic/modifiers_spec.rb +117 -0
  95. data/spec/integration/discriminator_key_spec.rb +354 -0
  96. data/spec/integration/discriminator_value_spec.rb +207 -0
  97. data/spec/integration/document_spec.rb +0 -21
  98. data/spec/integration/{matchable_spec.rb → matcher_examples_spec.rb} +120 -41
  99. data/spec/integration/matcher_operator_data/all.yml +140 -0
  100. data/spec/integration/matcher_operator_data/and.yml +93 -0
  101. data/spec/integration/matcher_operator_data/elem_match.yml +363 -0
  102. data/spec/integration/matcher_operator_data/elem_match_expr.yml +213 -0
  103. data/spec/integration/matcher_operator_data/eq.yml +191 -0
  104. data/spec/integration/matcher_operator_data/exists.yml +213 -0
  105. data/spec/integration/matcher_operator_data/generic_op.yml +17 -0
  106. data/spec/integration/matcher_operator_data/gt.yml +132 -0
  107. data/spec/integration/matcher_operator_data/gte.yml +132 -0
  108. data/spec/integration/matcher_operator_data/implicit.yml +331 -0
  109. data/spec/integration/matcher_operator_data/implicit_traversal.yml +16 -0
  110. data/spec/integration/matcher_operator_data/in.yml +194 -0
  111. data/spec/integration/matcher_operator_data/invalid_op.yml +59 -0
  112. data/spec/integration/matcher_operator_data/invalid_syntax.yml +39 -0
  113. data/spec/integration/matcher_operator_data/lt.yml +132 -0
  114. data/spec/integration/matcher_operator_data/lte.yml +132 -0
  115. data/spec/integration/matcher_operator_data/multiple.yml +29 -0
  116. data/spec/integration/matcher_operator_data/ne.yml +150 -0
  117. data/spec/integration/matcher_operator_data/nin.yml +114 -0
  118. data/spec/integration/matcher_operator_data/nor.yml +126 -0
  119. data/spec/integration/matcher_operator_data/not.yml +196 -0
  120. data/spec/integration/matcher_operator_data/or.yml +137 -0
  121. data/spec/integration/matcher_operator_data/regex.yml +174 -0
  122. data/spec/integration/matcher_operator_data/regex_options.yml +72 -0
  123. data/spec/integration/matcher_operator_data/size.yml +174 -0
  124. data/spec/integration/matcher_operator_spec.rb +100 -0
  125. data/spec/integration/matcher_spec.rb +189 -0
  126. data/spec/integration/server_query_spec.rb +142 -0
  127. data/spec/integration/stringified_symbol_field_spec.rb +190 -0
  128. data/spec/lite_spec_helper.rb +4 -3
  129. data/spec/mongoid/association/depending_spec.rb +78 -26
  130. data/spec/mongoid/association/embedded/embedded_in/proxy_spec.rb +0 -50
  131. data/spec/mongoid/association/embedded/embeds_many/proxy_spec.rb +37 -17
  132. data/spec/mongoid/association/embedded/embeds_many_models.rb +1 -0
  133. data/spec/mongoid/association/embedded/embeds_one_models.rb +1 -0
  134. data/spec/mongoid/association/referenced/belongs_to/proxy_spec.rb +0 -17
  135. data/spec/mongoid/association/referenced/has_many/proxy_spec.rb +460 -186
  136. data/spec/mongoid/association/referenced/has_many_models.rb +21 -0
  137. data/spec/mongoid/association/referenced/has_one_models.rb +21 -0
  138. data/spec/mongoid/association/referenced/has_one_spec.rb +1 -1
  139. data/spec/mongoid/atomic/modifiers_spec.rb +47 -0
  140. data/spec/mongoid/atomic/paths_spec.rb +0 -41
  141. data/spec/mongoid/atomic_spec.rb +23 -0
  142. data/spec/mongoid/attributes/nested_spec.rb +1 -1
  143. data/spec/mongoid/attributes_spec.rb +0 -241
  144. data/spec/mongoid/clients/factory_spec.rb +35 -9
  145. data/spec/mongoid/clients/options_spec.rb +3 -11
  146. data/spec/mongoid/clients/sessions_spec.rb +1 -6
  147. data/spec/mongoid/config/environment_spec.rb +8 -86
  148. data/spec/mongoid/config_spec.rb +28 -0
  149. data/spec/mongoid/contextual/atomic_spec.rb +29 -81
  150. data/spec/mongoid/contextual/geo_near_spec.rb +1 -1
  151. data/spec/mongoid/contextual/mongo_spec.rb +70 -16
  152. data/spec/mongoid/copyable_spec.rb +197 -18
  153. data/spec/mongoid/copyable_spec_models.rb +28 -0
  154. data/spec/mongoid/criteria/queryable/selectable_logical_spec.rb +0 -36
  155. data/spec/mongoid/criteria/queryable/selectable_spec.rb +84 -82
  156. data/spec/mongoid/criteria_spec.rb +204 -43
  157. data/spec/mongoid/document_query_spec.rb +0 -51
  158. data/spec/mongoid/document_spec.rb +90 -36
  159. data/spec/mongoid/equality_spec.rb +0 -1
  160. data/spec/mongoid/errors/delete_restriction_spec.rb +1 -1
  161. data/spec/mongoid/errors/mongoid_error_spec.rb +8 -20
  162. data/spec/mongoid/extensions/stringified_symbol_spec.rb +85 -0
  163. data/spec/mongoid/factory_spec.rb +261 -28
  164. data/spec/mongoid/fields_spec.rb +48 -2
  165. data/spec/mongoid/findable_spec.rb +32 -0
  166. data/spec/mongoid/indexable_spec.rb +28 -2
  167. data/spec/mongoid/inspectable_spec.rb +29 -2
  168. data/spec/mongoid/interceptable_spec.rb +2 -2
  169. data/spec/mongoid/matcher/extract_attribute_data/traversal.yml +259 -0
  170. data/spec/mongoid/matcher/extract_attribute_spec.rb +47 -0
  171. data/spec/mongoid/persistable/creatable_spec.rb +108 -25
  172. data/spec/mongoid/persistable/deletable_spec.rb +86 -0
  173. data/spec/mongoid/persistable/savable_spec.rb +174 -16
  174. data/spec/mongoid/persistable/settable_spec.rb +0 -30
  175. data/spec/mongoid/persistable/updatable_spec.rb +0 -2
  176. data/spec/mongoid/persistable_spec.rb +2 -2
  177. data/spec/mongoid/query_cache_middleware_spec.rb +16 -3
  178. data/spec/mongoid/query_cache_spec.rb +442 -41
  179. data/spec/mongoid/reloadable_spec.rb +72 -0
  180. data/spec/mongoid/serializable_spec.rb +21 -3
  181. data/spec/mongoid/traversable_spec.rb +1100 -0
  182. data/spec/shared/lib/mrss/constraints.rb +10 -92
  183. data/spec/shared/lib/mrss/lite_constraints.rb +0 -16
  184. data/spec/shared/lib/mrss/spec_organizer.rb +2 -32
  185. data/spec/spec_helper.rb +3 -3
  186. data/spec/support/constraints.rb +24 -0
  187. data/spec/support/helpers.rb +1 -1
  188. data/spec/{app → support}/models/actor.rb +1 -1
  189. data/spec/{app → support}/models/address.rb +0 -4
  190. data/spec/support/models/armrest.rb +10 -0
  191. data/spec/{app → support}/models/browser.rb +1 -1
  192. data/spec/{app → support}/models/canvas.rb +1 -1
  193. data/spec/{app → support}/models/coding.rb +1 -1
  194. data/spec/support/models/crate.rb +13 -0
  195. data/spec/support/models/deed.rb +8 -0
  196. data/spec/{app → support}/models/dictionary.rb +0 -6
  197. data/spec/{app → support}/models/driver.rb +1 -1
  198. data/spec/support/models/guitar.rb +5 -0
  199. data/spec/support/models/idnodef.rb +8 -0
  200. data/spec/support/models/instrument.rb +9 -0
  201. data/spec/{app → support}/models/item.rb +1 -1
  202. data/spec/{app → support}/models/mop.rb +0 -10
  203. data/spec/support/models/order.rb +11 -0
  204. data/spec/{app → support}/models/owner.rb +2 -0
  205. data/spec/{app → support}/models/palette.rb +1 -1
  206. data/spec/{app → support}/models/person.rb +1 -10
  207. data/spec/support/models/piano.rb +5 -0
  208. data/spec/support/models/profile.rb +18 -0
  209. data/spec/support/models/publication.rb +5 -0
  210. data/spec/{app/models/profile.rb → support/models/scribe.rb} +2 -2
  211. data/spec/support/models/seat.rb +25 -0
  212. data/spec/{app → support}/models/shape.rb +2 -2
  213. data/spec/support/models/system_role.rb +7 -0
  214. data/spec/{app → support}/models/tool.rb +2 -2
  215. data/spec/support/models/toy.rb +10 -0
  216. data/spec/{app → support}/models/truck.rb +2 -0
  217. data/spec/{app → support}/models/vehicle.rb +7 -2
  218. data/spec/{app → support}/models/writer.rb +2 -2
  219. data/spec/support/spec_config.rb +1 -9
  220. data.tar.gz.sig +0 -0
  221. metadata +839 -820
  222. metadata.gz.sig +2 -2
  223. data/lib/mongoid/errors/empty_config_file.rb +0 -26
  224. data/lib/mongoid/errors/invalid_config_file.rb +0 -26
  225. data/lib/mongoid/matchable/all.rb +0 -30
  226. data/lib/mongoid/matchable/and.rb +0 -32
  227. data/lib/mongoid/matchable/default.rb +0 -121
  228. data/lib/mongoid/matchable/elem_match.rb +0 -36
  229. data/lib/mongoid/matchable/eq.rb +0 -23
  230. data/lib/mongoid/matchable/exists.rb +0 -25
  231. data/lib/mongoid/matchable/gt.rb +0 -25
  232. data/lib/mongoid/matchable/gte.rb +0 -25
  233. data/lib/mongoid/matchable/in.rb +0 -26
  234. data/lib/mongoid/matchable/lt.rb +0 -25
  235. data/lib/mongoid/matchable/lte.rb +0 -25
  236. data/lib/mongoid/matchable/ne.rb +0 -23
  237. data/lib/mongoid/matchable/nin.rb +0 -24
  238. data/lib/mongoid/matchable/nor.rb +0 -38
  239. data/lib/mongoid/matchable/or.rb +0 -35
  240. data/lib/mongoid/matchable/regexp.rb +0 -30
  241. data/lib/mongoid/matchable/size.rb +0 -23
  242. data/spec/app/models/customer.rb +0 -11
  243. data/spec/app/models/customer_address.rb +0 -12
  244. data/spec/app/models/publication.rb +0 -5
  245. data/spec/integration/callbacks_models.rb +0 -49
  246. data/spec/integration/callbacks_spec.rb +0 -216
  247. data/spec/integration/contextual/empty_spec.rb +0 -142
  248. data/spec/mongoid/errors/invalid_config_file_spec.rb +0 -32
  249. data/spec/mongoid/matchable/all_spec.rb +0 -34
  250. data/spec/mongoid/matchable/and_spec.rb +0 -190
  251. data/spec/mongoid/matchable/default_spec.rb +0 -140
  252. data/spec/mongoid/matchable/elem_match_spec.rb +0 -109
  253. data/spec/mongoid/matchable/eq_spec.rb +0 -49
  254. data/spec/mongoid/matchable/exists_spec.rb +0 -60
  255. data/spec/mongoid/matchable/gt_spec.rb +0 -89
  256. data/spec/mongoid/matchable/gte_spec.rb +0 -87
  257. data/spec/mongoid/matchable/in_spec.rb +0 -52
  258. data/spec/mongoid/matchable/lt_spec.rb +0 -88
  259. data/spec/mongoid/matchable/lte_spec.rb +0 -88
  260. data/spec/mongoid/matchable/ne_spec.rb +0 -49
  261. data/spec/mongoid/matchable/nin_spec.rb +0 -51
  262. data/spec/mongoid/matchable/nor_spec.rb +0 -210
  263. data/spec/mongoid/matchable/or_spec.rb +0 -134
  264. data/spec/mongoid/matchable/regexp_spec.rb +0 -62
  265. data/spec/mongoid/matchable/size_spec.rb +0 -28
  266. data/spec/mongoid/matchable_spec.rb +0 -856
  267. data/spec/shared/bin/get-mongodb-download-url +0 -17
  268. data/spec/shared/bin/s3-copy +0 -45
  269. data/spec/shared/bin/s3-upload +0 -69
  270. data/spec/shared/lib/mrss/cluster_config.rb +0 -226
  271. data/spec/shared/lib/mrss/docker_runner.rb +0 -271
  272. data/spec/shared/lib/mrss/event_subscriber.rb +0 -200
  273. data/spec/shared/lib/mrss/server_version_registry.rb +0 -120
  274. data/spec/shared/lib/mrss/utils.rb +0 -15
  275. data/spec/shared/share/Dockerfile.erb +0 -323
  276. data/spec/shared/share/haproxy-1.conf +0 -16
  277. data/spec/shared/share/haproxy-2.conf +0 -17
  278. data/spec/shared/shlib/distro.sh +0 -73
  279. data/spec/shared/shlib/server.sh +0 -367
  280. data/spec/shared/shlib/set_env.sh +0 -131
  281. /data/spec/{app → support}/models/account.rb +0 -0
  282. /data/spec/{app → support}/models/acolyte.rb +0 -0
  283. /data/spec/{app → support}/models/actress.rb +0 -0
  284. /data/spec/{app → support}/models/address_component.rb +0 -0
  285. /data/spec/{app → support}/models/address_number.rb +0 -0
  286. /data/spec/{app → support}/models/agency.rb +0 -0
  287. /data/spec/{app → support}/models/agent.rb +0 -0
  288. /data/spec/{app → support}/models/album.rb +0 -0
  289. /data/spec/{app → support}/models/alert.rb +0 -0
  290. /data/spec/{app → support}/models/animal.rb +0 -0
  291. /data/spec/{app → support}/models/answer.rb +0 -0
  292. /data/spec/{app → support}/models/appointment.rb +0 -0
  293. /data/spec/{app → support}/models/array_field.rb +0 -0
  294. /data/spec/{app → support}/models/article.rb +0 -0
  295. /data/spec/{app → support}/models/artist.rb +0 -0
  296. /data/spec/{app → support}/models/artwork.rb +0 -0
  297. /data/spec/{app → support}/models/audio.rb +0 -0
  298. /data/spec/{app → support}/models/augmentation.rb +0 -0
  299. /data/spec/{app → support}/models/author.rb +0 -0
  300. /data/spec/{app → support}/models/baby.rb +0 -0
  301. /data/spec/{app → support}/models/band.rb +0 -0
  302. /data/spec/{app → support}/models/bar.rb +0 -0
  303. /data/spec/{app → support}/models/basic.rb +0 -0
  304. /data/spec/{app → support}/models/bed.rb +0 -0
  305. /data/spec/{app → support}/models/big_palette.rb +0 -0
  306. /data/spec/{app → support}/models/birthday.rb +0 -0
  307. /data/spec/{app → support}/models/bomb.rb +0 -0
  308. /data/spec/{app → support}/models/book.rb +0 -0
  309. /data/spec/{app → support}/models/breed.rb +0 -0
  310. /data/spec/{app → support}/models/building.rb +0 -0
  311. /data/spec/{app → support}/models/building_address.rb +0 -0
  312. /data/spec/{app → support}/models/bus.rb +0 -0
  313. /data/spec/{app → support}/models/business.rb +0 -0
  314. /data/spec/{app → support}/models/callback_test.rb +0 -0
  315. /data/spec/{app → support}/models/car.rb +0 -0
  316. /data/spec/{app → support}/models/cat.rb +0 -0
  317. /data/spec/{app → support}/models/category.rb +0 -0
  318. /data/spec/{app → support}/models/child.rb +0 -0
  319. /data/spec/{app → support}/models/child_doc.rb +0 -0
  320. /data/spec/{app → support}/models/church.rb +0 -0
  321. /data/spec/{app → support}/models/circle.rb +0 -0
  322. /data/spec/{app → support}/models/circuit.rb +0 -0
  323. /data/spec/{app → support}/models/circus.rb +0 -0
  324. /data/spec/{app → support}/models/code.rb +0 -0
  325. /data/spec/{app → support}/models/coding/pull_request.rb +0 -0
  326. /data/spec/{app → support}/models/comment.rb +0 -0
  327. /data/spec/{app → support}/models/company.rb +0 -0
  328. /data/spec/{app → support}/models/consumption_period.rb +0 -0
  329. /data/spec/{app → support}/models/contextable_item.rb +0 -0
  330. /data/spec/{app → support}/models/contractor.rb +0 -0
  331. /data/spec/{app → support}/models/cookie.rb +0 -0
  332. /data/spec/{app → support}/models/country_code.rb +0 -0
  333. /data/spec/{app → support}/models/courier_job.rb +0 -0
  334. /data/spec/{app → support}/models/definition.rb +0 -0
  335. /data/spec/{app → support}/models/delegating_patient.rb +0 -0
  336. /data/spec/{app → support}/models/description.rb +0 -0
  337. /data/spec/{app → support}/models/division.rb +0 -0
  338. /data/spec/{app → support}/models/doctor.rb +0 -0
  339. /data/spec/{app → support}/models/dog.rb +0 -0
  340. /data/spec/{app → support}/models/dokument.rb +0 -0
  341. /data/spec/{app → support}/models/draft.rb +0 -0
  342. /data/spec/{app → support}/models/dragon.rb +0 -0
  343. /data/spec/{app → support}/models/drug.rb +0 -0
  344. /data/spec/{app → support}/models/dungeon.rb +0 -0
  345. /data/spec/{app → support}/models/edit.rb +0 -0
  346. /data/spec/{app → support}/models/email.rb +0 -0
  347. /data/spec/{app → support}/models/employer.rb +0 -0
  348. /data/spec/{app → support}/models/entry.rb +0 -0
  349. /data/spec/{app → support}/models/eraser.rb +0 -0
  350. /data/spec/{app → support}/models/even.rb +0 -0
  351. /data/spec/{app → support}/models/event.rb +0 -0
  352. /data/spec/{app → support}/models/exhibition.rb +0 -0
  353. /data/spec/{app → support}/models/exhibitor.rb +0 -0
  354. /data/spec/{app → support}/models/explosion.rb +0 -0
  355. /data/spec/{app → support}/models/eye.rb +0 -0
  356. /data/spec/{app → support}/models/eye_bowl.rb +0 -0
  357. /data/spec/{app → support}/models/face.rb +0 -0
  358. /data/spec/{app → support}/models/favorite.rb +0 -0
  359. /data/spec/{app → support}/models/filesystem.rb +0 -0
  360. /data/spec/{app → support}/models/fire_hydrant.rb +0 -0
  361. /data/spec/{app → support}/models/firefox.rb +0 -0
  362. /data/spec/{app → support}/models/fish.rb +0 -0
  363. /data/spec/{app → support}/models/folder.rb +0 -0
  364. /data/spec/{app → support}/models/folder_item.rb +0 -0
  365. /data/spec/{app → support}/models/fruits.rb +0 -0
  366. /data/spec/{app → support}/models/game.rb +0 -0
  367. /data/spec/{app → support}/models/ghost.rb +0 -0
  368. /data/spec/{app → support}/models/home.rb +0 -0
  369. /data/spec/{app → support}/models/house.rb +0 -0
  370. /data/spec/{app → support}/models/html_writer.rb +0 -0
  371. /data/spec/{app → support}/models/id_key.rb +0 -0
  372. /data/spec/{app → support}/models/image.rb +0 -0
  373. /data/spec/{app → support}/models/implant.rb +0 -0
  374. /data/spec/{app → support}/models/jar.rb +0 -0
  375. /data/spec/{app → support}/models/kaleidoscope.rb +0 -0
  376. /data/spec/{app → support}/models/kangaroo.rb +0 -0
  377. /data/spec/{app → support}/models/label.rb +0 -0
  378. /data/spec/{app → support}/models/language.rb +0 -0
  379. /data/spec/{app → support}/models/lat_lng.rb +0 -0
  380. /data/spec/{app → support}/models/league.rb +0 -0
  381. /data/spec/{app → support}/models/learner.rb +0 -0
  382. /data/spec/{app → support}/models/line_item.rb +0 -0
  383. /data/spec/{app → support}/models/location.rb +0 -0
  384. /data/spec/{app → support}/models/login.rb +0 -0
  385. /data/spec/{app → support}/models/manufacturer.rb +0 -0
  386. /data/spec/{app → support}/models/meat.rb +0 -0
  387. /data/spec/{app → support}/models/membership.rb +0 -0
  388. /data/spec/{app → support}/models/message.rb +0 -0
  389. /data/spec/{app → support}/models/minim.rb +0 -0
  390. /data/spec/{app → support}/models/mixed_drink.rb +0 -0
  391. /data/spec/{app → support}/models/movie.rb +0 -0
  392. /data/spec/{app → support}/models/my_hash.rb +0 -0
  393. /data/spec/{app → support}/models/name.rb +0 -0
  394. /data/spec/{app → support}/models/name_only.rb +0 -0
  395. /data/spec/{app → support}/models/node.rb +0 -0
  396. /data/spec/{app → support}/models/note.rb +0 -0
  397. /data/spec/{app → support}/models/odd.rb +0 -0
  398. /data/spec/{app → support}/models/ordered_post.rb +0 -0
  399. /data/spec/{app → support}/models/ordered_preference.rb +0 -0
  400. /data/spec/{app → support}/models/oscar.rb +0 -0
  401. /data/spec/{app → support}/models/other_owner_object.rb +0 -0
  402. /data/spec/{app → support}/models/override.rb +0 -0
  403. /data/spec/{app → support}/models/ownable.rb +0 -0
  404. /data/spec/{app → support}/models/pack.rb +0 -0
  405. /data/spec/{app → support}/models/page.rb +0 -0
  406. /data/spec/{app → support}/models/page_question.rb +0 -0
  407. /data/spec/{app → support}/models/parent.rb +0 -0
  408. /data/spec/{app → support}/models/parent_doc.rb +0 -0
  409. /data/spec/{app → support}/models/passport.rb +0 -0
  410. /data/spec/{app → support}/models/patient.rb +0 -0
  411. /data/spec/{app → support}/models/pdf_writer.rb +0 -0
  412. /data/spec/{app → support}/models/pencil.rb +0 -0
  413. /data/spec/{app → support}/models/pet.rb +0 -0
  414. /data/spec/{app → support}/models/pet_owner.rb +0 -0
  415. /data/spec/{app → support}/models/phone.rb +0 -0
  416. /data/spec/{app → support}/models/pizza.rb +0 -0
  417. /data/spec/{app → support}/models/player.rb +0 -0
  418. /data/spec/{app → support}/models/post.rb +0 -0
  419. /data/spec/{app → support}/models/post_genre.rb +0 -0
  420. /data/spec/{app → support}/models/powerup.rb +0 -0
  421. /data/spec/{app → support}/models/preference.rb +0 -0
  422. /data/spec/{app → support}/models/princess.rb +0 -0
  423. /data/spec/{app → support}/models/product.rb +0 -0
  424. /data/spec/{app → support}/models/pronunciation.rb +0 -0
  425. /data/spec/{app → support}/models/pub.rb +0 -0
  426. /data/spec/{app → support}/models/publication/encyclopedia.rb +0 -0
  427. /data/spec/{app → support}/models/publication/review.rb +0 -0
  428. /data/spec/{app → support}/models/purchase.rb +0 -0
  429. /data/spec/{app → support}/models/question.rb +0 -0
  430. /data/spec/{app → support}/models/quiz.rb +0 -0
  431. /data/spec/{app → support}/models/rating.rb +0 -0
  432. /data/spec/{app → support}/models/record.rb +0 -0
  433. /data/spec/{app → support}/models/registry.rb +0 -0
  434. /data/spec/{app → support}/models/role.rb +0 -0
  435. /data/spec/{app → support}/models/root_category.rb +0 -0
  436. /data/spec/{app → support}/models/sandwich.rb +0 -0
  437. /data/spec/{app → support}/models/scheduler.rb +0 -0
  438. /data/spec/{app → support}/models/seo.rb +0 -0
  439. /data/spec/{app → support}/models/series.rb +0 -0
  440. /data/spec/{app → support}/models/server.rb +0 -0
  441. /data/spec/{app → support}/models/service.rb +0 -0
  442. /data/spec/{app → support}/models/shelf.rb +0 -0
  443. /data/spec/{app → support}/models/shipment_address.rb +0 -0
  444. /data/spec/{app → support}/models/shipping_container.rb +0 -0
  445. /data/spec/{app → support}/models/shipping_pack.rb +0 -0
  446. /data/spec/{app → support}/models/shop.rb +0 -0
  447. /data/spec/{app → support}/models/short_agent.rb +0 -0
  448. /data/spec/{app → support}/models/short_quiz.rb +0 -0
  449. /data/spec/{app → support}/models/simple.rb +0 -0
  450. /data/spec/{app → support}/models/slave.rb +0 -0
  451. /data/spec/{app → support}/models/song.rb +0 -0
  452. /data/spec/{app → support}/models/sound.rb +0 -0
  453. /data/spec/{app → support}/models/square.rb +0 -0
  454. /data/spec/{app → support}/models/staff.rb +0 -0
  455. /data/spec/{app → support}/models/store_as_dup_test1.rb +0 -0
  456. /data/spec/{app → support}/models/store_as_dup_test2.rb +0 -0
  457. /data/spec/{app → support}/models/store_as_dup_test3.rb +0 -0
  458. /data/spec/{app → support}/models/store_as_dup_test4.rb +0 -0
  459. /data/spec/{app → support}/models/strategy.rb +0 -0
  460. /data/spec/{app → support}/models/sub_item.rb +0 -0
  461. /data/spec/{app → support}/models/subscription.rb +0 -0
  462. /data/spec/{app → support}/models/survey.rb +0 -0
  463. /data/spec/{app → support}/models/symptom.rb +0 -0
  464. /data/spec/{app → support}/models/tag.rb +0 -0
  465. /data/spec/{app → support}/models/target.rb +0 -0
  466. /data/spec/{app → support}/models/template.rb +0 -0
  467. /data/spec/{app → support}/models/thing.rb +0 -0
  468. /data/spec/{app → support}/models/title.rb +0 -0
  469. /data/spec/{app → support}/models/topping.rb +0 -0
  470. /data/spec/{app → support}/models/track.rb +0 -0
  471. /data/spec/{app → support}/models/translation.rb +0 -0
  472. /data/spec/{app → support}/models/tree.rb +0 -0
  473. /data/spec/{app → support}/models/updatable.rb +0 -0
  474. /data/spec/{app → support}/models/user.rb +0 -0
  475. /data/spec/{app → support}/models/user_account.rb +0 -0
  476. /data/spec/{app → support}/models/validation_callback.rb +0 -0
  477. /data/spec/{app → support}/models/version.rb +0 -0
  478. /data/spec/{app → support}/models/vertex.rb +0 -0
  479. /data/spec/{app → support}/models/vet_visit.rb +0 -0
  480. /data/spec/{app → support}/models/video.rb +0 -0
  481. /data/spec/{app → support}/models/video_game.rb +0 -0
  482. /data/spec/{app → support}/models/weapon.rb +0 -0
  483. /data/spec/{app → support}/models/wiki_page.rb +0 -0
  484. /data/spec/{app → support}/models/word.rb +0 -0
  485. /data/spec/{app → support}/models/word_origin.rb +0 -0
@@ -0,0 +1,191 @@
1
+ - name: identical string
2
+ document:
3
+ name: Angel Share
4
+ query:
5
+ name:
6
+ $eq: Angel Share
7
+ matches: true
8
+
9
+ - name: different string
10
+ document:
11
+ name: Angel Share
12
+ query:
13
+ name:
14
+ $eq: Angel
15
+ matches: false
16
+
17
+ - name: matching regexp
18
+ document:
19
+ name: Angel Share
20
+ query:
21
+ name:
22
+ $eq: !ruby/regexp /l.S/
23
+ matches: false
24
+
25
+ - name: not matching regexp
26
+ document:
27
+ name: Angel Share
28
+ query:
29
+ name:
30
+ $eq: !ruby/regexp /l.pirate/
31
+ matches: false
32
+
33
+ - name: matching array element
34
+ document:
35
+ labels: [quick]
36
+ query:
37
+ labels:
38
+ $eq: quick
39
+ matches: true
40
+
41
+ - name: not matching array element
42
+ document:
43
+ labels: [quick]
44
+ query:
45
+ labels:
46
+ $eq: slow
47
+ matches: false
48
+
49
+ - name: different types - query number by string
50
+ document:
51
+ count: 1
52
+ query:
53
+ count:
54
+ $eq: '1'
55
+ matches: false
56
+
57
+ - name: different types - query string by number
58
+ document:
59
+ count: '1'
60
+ query:
61
+ count:
62
+ $eq: 1
63
+ matches: false
64
+
65
+ - name: compatible types - query integer by float
66
+ document:
67
+ count: 1
68
+ query:
69
+ count:
70
+ $eq: 1.0
71
+ matches: true
72
+
73
+ - name: compatible types - query float by integer
74
+ document:
75
+ count: 1.0
76
+ query:
77
+ count:
78
+ $eq: 1
79
+ matches: true
80
+
81
+ - name: array query for scalar element
82
+ document:
83
+ labels: quick
84
+ query:
85
+ labels:
86
+ $eq: [quick]
87
+ matches: false
88
+
89
+ - name: array query for itself
90
+ document:
91
+ labels: [quick]
92
+ query:
93
+ labels:
94
+ $eq: [quick]
95
+ matches: true
96
+
97
+ - name: array query for array element - no match
98
+ document:
99
+ labels: [quick]
100
+ query:
101
+ labels:
102
+ $eq: [quick1]
103
+ matches: false
104
+
105
+ - name: array query for nested array element
106
+ document:
107
+ labels: [[quick]]
108
+ query:
109
+ labels:
110
+ $eq: [quick]
111
+ matches: true
112
+
113
+ - name: array query for nested array element - no match
114
+ document:
115
+ labels: [[quick]]
116
+ query:
117
+ labels:
118
+ $eq: [quick1]
119
+ matches: false
120
+
121
+ - name: matching range
122
+ document:
123
+ age: 10
124
+ query:
125
+ age:
126
+ $eq: !ruby/range
127
+ begin: 1
128
+ end: 20
129
+ excl: false
130
+ # https://jira.mongodb.org/browse/MONGOID-4908
131
+ error: [matcher, driver]
132
+ # Server does not match because the query is bogus
133
+ matches: false
134
+
135
+ - name: not matching range
136
+ document:
137
+ age: 10
138
+ query:
139
+ age:
140
+ $eq: !ruby/range
141
+ begin: 11
142
+ end: 20
143
+ excl: false
144
+ # https://jira.mongodb.org/browse/MONGOID-4908
145
+ error: [matcher, driver]
146
+ matches: false
147
+
148
+ - name: matching range against array
149
+ document:
150
+ ages:
151
+ - 10
152
+ query:
153
+ ages:
154
+ $eq: !ruby/range
155
+ begin: 1
156
+ end: 20
157
+ excl: false
158
+ # https://jira.mongodb.org/browse/MONGOID-4908
159
+ error: [matcher, driver]
160
+ # Server does not match because the query is bogus
161
+ matches: false
162
+
163
+ - name: not matching range against array
164
+ document:
165
+ ages:
166
+ - 10
167
+ query:
168
+ ages:
169
+ $eq: !ruby/range
170
+ begin: 11
171
+ end: 20
172
+ excl: false
173
+ # https://jira.mongodb.org/browse/MONGOID-4908
174
+ error: [matcher, driver]
175
+ matches: false
176
+
177
+ - name: nil argument
178
+ document:
179
+ positions: [ceo, cto]
180
+ query:
181
+ positions:
182
+ $eq: ~
183
+ matches: false
184
+
185
+ - name: null field value vs nil argument
186
+ document:
187
+ positions: ~
188
+ query:
189
+ positions:
190
+ $eq: ~
191
+ matches: true
@@ -0,0 +1,213 @@
1
+ - name: existing field - matches
2
+ document:
3
+ name: Angel Share
4
+ query:
5
+ name:
6
+ $exists: true
7
+ matches: true
8
+
9
+ - name: existing field - does not match
10
+ document:
11
+ name: Angel Share
12
+ query:
13
+ name:
14
+ $exists: false
15
+ matches: false
16
+
17
+ - name: missing field - matches
18
+ document:
19
+ name: Angel Share
20
+ query:
21
+ no_name:
22
+ $exists: false
23
+ matches: true
24
+
25
+ - name: missing field - does not match
26
+ document:
27
+ name: Angel Share
28
+ query:
29
+ no_name:
30
+ $exists: true
31
+ matches: false
32
+
33
+ - name: null field - true - matches
34
+ document:
35
+ name: ~
36
+ query:
37
+ name:
38
+ $exists: true
39
+ matches: true
40
+
41
+ - name: null field - true - does not match
42
+ document:
43
+ name: ~
44
+ query:
45
+ no_name:
46
+ $exists: true
47
+ matches: false
48
+
49
+ - name: null field - false - matches
50
+ document:
51
+ name: ~
52
+ query:
53
+ no_name:
54
+ $exists: false
55
+ matches: true
56
+
57
+ - name: null field - false - does not match
58
+ document:
59
+ name: ~
60
+ query:
61
+ name:
62
+ $exists: false
63
+ matches: false
64
+
65
+ - name: existing array element - true - matches
66
+ document:
67
+ cities:
68
+ - ny
69
+ query:
70
+ cities.0:
71
+ $exists: true
72
+ matches: true
73
+
74
+ - name: existing array element - false - does not matches
75
+ document:
76
+ cities:
77
+ - ny
78
+ query:
79
+ cities.0:
80
+ $exists: false
81
+ matches: false
82
+
83
+ - name: missing array element - true - matches
84
+ document:
85
+ cities:
86
+ - ny
87
+ query:
88
+ cities.0:
89
+ $exists: true
90
+ matches: true
91
+
92
+ - name: missing array element - false - matches
93
+ document:
94
+ cities:
95
+ - ny
96
+ query:
97
+ cities.1:
98
+ $exists: false
99
+ matches: true
100
+
101
+ - name: missing array element - does not match
102
+ document:
103
+ cities:
104
+ - ny
105
+ query:
106
+ cities.1:
107
+ $exists: true
108
+ matches: false
109
+
110
+ - name: array contains documents with present and missing fields - hash path - true
111
+ document:
112
+ cities:
113
+ - name: ny
114
+ - country: us
115
+ query:
116
+ cities.name:
117
+ $exists: true
118
+ matches: true
119
+
120
+ - name: array contains documents with present and missing fields - hash path - false
121
+ document:
122
+ cities:
123
+ - name: ny
124
+ - country: us
125
+ query:
126
+ cities.name:
127
+ $exists: false
128
+ matches: false
129
+
130
+ - name: array input with hash path - true - no match
131
+ document:
132
+ cities:
133
+ - country: us
134
+ query:
135
+ cities.name:
136
+ $exists: true
137
+ matches: false
138
+
139
+ - name: array input with hash path - false - no match
140
+ document:
141
+ cities:
142
+ - country: us
143
+ query:
144
+ cities.name:
145
+ $exists: false
146
+ matches: true
147
+
148
+ - name: empty array - true
149
+ document:
150
+ cities: []
151
+ query:
152
+ cities:
153
+ $exists: true
154
+ matches: true
155
+
156
+ - name: empty array - false
157
+ document:
158
+ cities: []
159
+ query:
160
+ cities:
161
+ $exists: false
162
+ matches: false
163
+
164
+ - name: true - true
165
+ document:
166
+ cities: true
167
+ query:
168
+ cities:
169
+ $exists: true
170
+ matches: true
171
+
172
+ - name: false - true
173
+ document:
174
+ cities: true
175
+ query:
176
+ cities:
177
+ $exists: true
178
+ matches: true
179
+
180
+ - name: empty hash
181
+ document:
182
+ cities: {}
183
+ query:
184
+ cities:
185
+ $exists: true
186
+ matches: true
187
+
188
+ - name: nil argument - match
189
+ document:
190
+ positions: [ceo, cto]
191
+ query:
192
+ no_positions:
193
+ $exists: ~
194
+ matches: true
195
+
196
+ - name: nil argument - no match
197
+ document:
198
+ positions: [ceo, cto]
199
+ query:
200
+ positions:
201
+ $exists: ~
202
+ matches: false
203
+
204
+ - name: matching range
205
+ document:
206
+ age: 10
207
+ query:
208
+ age:
209
+ $exists: !ruby/range
210
+ begin: 1
211
+ end: 20
212
+ excl: false
213
+ error: true
@@ -0,0 +1,17 @@
1
+ - name: hash path in query - traversing an array - with operator
2
+ document:
3
+ titles:
4
+ - King
5
+ query:
6
+ titles.name:
7
+ $eq: King
8
+ matches: false
9
+
10
+ - name: array path in query - traversing a hash - with operator
11
+ document:
12
+ title:
13
+ name: King
14
+ query:
15
+ title.1:
16
+ $eq: King
17
+ matches: false
@@ -0,0 +1,132 @@
1
+ - name: field value larger than condition
2
+ document:
3
+ count: 10
4
+ query:
5
+ count:
6
+ $gt: 9
7
+ matches: true
8
+
9
+ - name: field value equal to condition
10
+ document:
11
+ count: 10
12
+ query:
13
+ count:
14
+ $gt: 10
15
+ matches: false
16
+
17
+ - name: field value smaller than condition
18
+ document:
19
+ count: 10
20
+ query:
21
+ count:
22
+ $gt: 11
23
+ matches: false
24
+
25
+ - name: field value does not exist
26
+ document:
27
+ count: 10
28
+ query:
29
+ xcount:
30
+ $gt: 9
31
+ matches: false
32
+
33
+ - name: field value is null
34
+ document:
35
+ count: ~
36
+ query:
37
+ count:
38
+ $gt: 9
39
+ matches: false
40
+
41
+ - name: field value is non-numeric
42
+ document:
43
+ count: '6'
44
+ query:
45
+ count:
46
+ $gt: 5
47
+ matches: false
48
+
49
+ - name: field value is an array with element larger than condition
50
+ document:
51
+ counts: [10]
52
+ query:
53
+ counts:
54
+ $gt: 9
55
+ matches: true
56
+
57
+ - name: field value is an array with element equal to condition
58
+ document:
59
+ counts: [10]
60
+ query:
61
+ counts:
62
+ $gt: 10
63
+ matches: false
64
+
65
+ - name: field value is an array with element smaller than condition
66
+ document:
67
+ counts: [10]
68
+ query:
69
+ counts:
70
+ $gt: 11
71
+ matches: false
72
+
73
+ - name: field value is an empty array
74
+ document:
75
+ counts: []
76
+ query:
77
+ counts:
78
+ $gt: 11
79
+ matches: false
80
+
81
+ - name: field value is an array with element which is null
82
+ document:
83
+ counts: [~]
84
+ query:
85
+ counts:
86
+ $gt: 11
87
+ matches: false
88
+
89
+ - name: field value is an array with element which non-numeric
90
+ document:
91
+ counts: ['6']
92
+ query:
93
+ counts:
94
+ $gt: 5
95
+ matches: false
96
+
97
+ - name: nil argument
98
+ document:
99
+ count: 10
100
+ query:
101
+ count:
102
+ $gt: ~
103
+ matches: false
104
+
105
+ - name: empty array argument
106
+ document:
107
+ count: 10
108
+ query:
109
+ count:
110
+ $gt: []
111
+ matches: false
112
+
113
+ - name: field value is an empty hash
114
+ document:
115
+ counts: {}
116
+ query:
117
+ counts:
118
+ $gt: 11
119
+ matches: false
120
+
121
+ - name: range
122
+ document:
123
+ age: 10
124
+ query:
125
+ age:
126
+ $gt: !ruby/range
127
+ begin: 1
128
+ end: 20
129
+ excl: false
130
+ error: [matcher, driver]
131
+ # https://jira.mongodb.org/browse/MONGOID-4908
132
+ matches: false
@@ -0,0 +1,132 @@
1
+ - name: field value larger than condition
2
+ document:
3
+ count: 10
4
+ query:
5
+ count:
6
+ $gte: 9
7
+ matches: true
8
+
9
+ - name: field value equal to condition
10
+ document:
11
+ count: 10
12
+ query:
13
+ count:
14
+ $gte: 10
15
+ matches: true
16
+
17
+ - name: field value smaller than condition
18
+ document:
19
+ count: 10
20
+ query:
21
+ count:
22
+ $gte: 11
23
+ matches: false
24
+
25
+ - name: field value does not exist
26
+ document:
27
+ count: 10
28
+ query:
29
+ xcount:
30
+ $gte: 9
31
+ matches: false
32
+
33
+ - name: field value is null
34
+ document:
35
+ count: ~
36
+ query:
37
+ count:
38
+ $gte: 9
39
+ matches: false
40
+
41
+ - name: field value is non-numeric
42
+ document:
43
+ count: '6'
44
+ query:
45
+ count:
46
+ $gte: 5
47
+ matches: false
48
+
49
+ - name: field value is an array with element larger than condition
50
+ document:
51
+ counts: [10]
52
+ query:
53
+ counts:
54
+ $gte: 9
55
+ matches: true
56
+
57
+ - name: field value is an array with element equal to condition
58
+ document:
59
+ counts: [10]
60
+ query:
61
+ counts:
62
+ $gte: 10
63
+ matches: true
64
+
65
+ - name: field value is an array with element smaller than condition
66
+ document:
67
+ counts: [10]
68
+ query:
69
+ counts:
70
+ $gte: 11
71
+ matches: false
72
+
73
+ - name: field value is an empty array
74
+ document:
75
+ counts: []
76
+ query:
77
+ counts:
78
+ $gte: 11
79
+ matches: false
80
+
81
+ - name: field value is an array with element which is null
82
+ document:
83
+ counts: [~]
84
+ query:
85
+ counts:
86
+ $gte: 11
87
+ matches: false
88
+
89
+ - name: field value is an array with element which non-numeric
90
+ document:
91
+ counts: ['6']
92
+ query:
93
+ counts:
94
+ $gte: 5
95
+ matches: false
96
+
97
+ - name: nil argument
98
+ document:
99
+ count: 10
100
+ query:
101
+ count:
102
+ $gte: ~
103
+ matches: false
104
+
105
+ - name: empty array argument
106
+ document:
107
+ count: 10
108
+ query:
109
+ count:
110
+ $gte: []
111
+ matches: false
112
+
113
+ - name: field value is an empty hash
114
+ document:
115
+ counts: {}
116
+ query:
117
+ counts:
118
+ $gte: 11
119
+ matches: false
120
+
121
+ - name: range
122
+ document:
123
+ age: 10
124
+ query:
125
+ age:
126
+ $gte: !ruby/range
127
+ begin: 1
128
+ end: 20
129
+ excl: false
130
+ error: [matcher, driver]
131
+ # https://jira.mongodb.org/browse/MONGOID-4908
132
+ matches: false