mongoid 7.1.2 → 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 (466) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/README.md +9 -2
  5. data/Rakefile +45 -5
  6. data/lib/config/locales/en.yml +38 -2
  7. data/lib/mongoid.rb +23 -0
  8. data/lib/mongoid/association/accessors.rb +37 -2
  9. data/lib/mongoid/association/depending.rb +1 -6
  10. data/lib/mongoid/association/many.rb +3 -3
  11. data/lib/mongoid/association/referenced/belongs_to/binding.rb +1 -1
  12. data/lib/mongoid/association/referenced/belongs_to/buildable.rb +1 -1
  13. data/lib/mongoid/association/referenced/has_and_belongs_to_many/proxy.rb +1 -1
  14. data/lib/mongoid/association/referenced/has_many/enumerable.rb +36 -1
  15. data/lib/mongoid/association/referenced/has_many/proxy.rb +8 -1
  16. data/lib/mongoid/association/referenced/has_one/buildable.rb +9 -1
  17. data/lib/mongoid/association/referenced/has_one/proxy.rb +6 -1
  18. data/lib/mongoid/atomic/modifiers.rb +1 -1
  19. data/lib/mongoid/attributes/dynamic.rb +1 -1
  20. data/lib/mongoid/clients/factory.rb +19 -2
  21. data/lib/mongoid/clients/options.rb +8 -8
  22. data/lib/mongoid/clients/sessions.rb +20 -4
  23. data/lib/mongoid/clients/storage_options.rb +5 -5
  24. data/lib/mongoid/composable.rb +1 -0
  25. data/lib/mongoid/config.rb +3 -0
  26. data/lib/mongoid/contextual/mongo.rb +23 -4
  27. data/lib/mongoid/copyable.rb +7 -3
  28. data/lib/mongoid/criteria.rb +57 -7
  29. data/lib/mongoid/criteria/queryable/extensions/regexp.rb +3 -3
  30. data/lib/mongoid/criteria/queryable/extensions/time_with_zone.rb +12 -0
  31. data/lib/mongoid/criteria/queryable/key.rb +1 -1
  32. data/lib/mongoid/criteria/queryable/mergeable.rb +2 -2
  33. data/lib/mongoid/criteria/queryable/selectable.rb +21 -6
  34. data/lib/mongoid/criteria/queryable/selector.rb +3 -3
  35. data/lib/mongoid/criteria/queryable/storable.rb +3 -3
  36. data/lib/mongoid/document.rb +15 -3
  37. data/lib/mongoid/errors.rb +7 -0
  38. data/lib/mongoid/errors/invalid_discriminator_key_target.rb +25 -0
  39. data/lib/mongoid/errors/invalid_elem_match_operator.rb +33 -0
  40. data/lib/mongoid/errors/invalid_estimated_count_criteria.rb +26 -0
  41. data/lib/mongoid/errors/invalid_expression_operator.rb +28 -0
  42. data/lib/mongoid/errors/invalid_field_operator.rb +33 -0
  43. data/lib/mongoid/errors/invalid_query.rb +41 -0
  44. data/lib/mongoid/errors/no_client_config.rb +2 -2
  45. data/lib/mongoid/errors/no_default_client.rb +1 -1
  46. data/lib/mongoid/extensions.rb +1 -0
  47. data/lib/mongoid/factory.rb +27 -10
  48. data/lib/mongoid/fields.rb +3 -0
  49. data/lib/mongoid/fields/validators/macro.rb +26 -10
  50. data/lib/mongoid/findable.rb +50 -14
  51. data/lib/mongoid/indexable.rb +2 -2
  52. data/lib/mongoid/matchable.rb +1 -149
  53. data/lib/mongoid/matcher.rb +127 -0
  54. data/lib/mongoid/matcher/all.rb +22 -0
  55. data/lib/mongoid/matcher/and.rb +21 -0
  56. data/lib/mongoid/matcher/elem_match.rb +35 -0
  57. data/lib/mongoid/matcher/elem_match_expression.rb +20 -0
  58. data/lib/mongoid/matcher/eq.rb +11 -0
  59. data/lib/mongoid/matcher/eq_impl.rb +32 -0
  60. data/lib/mongoid/matcher/eq_impl_with_regexp.rb +21 -0
  61. data/lib/mongoid/matcher/exists.rb +15 -0
  62. data/lib/mongoid/matcher/expression.rb +40 -0
  63. data/lib/mongoid/matcher/expression_operator.rb +19 -0
  64. data/lib/mongoid/matcher/field_expression.rb +63 -0
  65. data/lib/mongoid/matcher/field_operator.rb +52 -0
  66. data/lib/mongoid/matcher/gt.rb +17 -0
  67. data/lib/mongoid/matcher/gte.rb +17 -0
  68. data/lib/mongoid/matcher/in.rb +25 -0
  69. data/lib/mongoid/matcher/lt.rb +17 -0
  70. data/lib/mongoid/matcher/lte.rb +17 -0
  71. data/lib/mongoid/matcher/ne.rb +16 -0
  72. data/lib/mongoid/matcher/nin.rb +11 -0
  73. data/lib/mongoid/matcher/nor.rb +25 -0
  74. data/lib/mongoid/matcher/not.rb +29 -0
  75. data/lib/mongoid/matcher/or.rb +21 -0
  76. data/lib/mongoid/matcher/regex.rb +41 -0
  77. data/lib/mongoid/matcher/size.rb +26 -0
  78. data/lib/mongoid/persistable/deletable.rb +1 -1
  79. data/lib/mongoid/query_cache.rb +81 -37
  80. data/lib/mongoid/reloadable.rb +2 -2
  81. data/lib/mongoid/serializable.rb +1 -1
  82. data/lib/mongoid/stringified_symbol.rb +53 -0
  83. data/lib/mongoid/tasks/database.rb +38 -3
  84. data/lib/mongoid/traversable.rb +111 -4
  85. data/lib/mongoid/version.rb +1 -1
  86. data/spec/README.md +19 -4
  87. data/spec/integration/app_spec.rb +85 -23
  88. data/spec/integration/associations/embedded_spec.rb +94 -0
  89. data/spec/integration/associations/embeds_many_spec.rb +24 -0
  90. data/spec/integration/associations/embeds_one_spec.rb +24 -0
  91. data/spec/integration/associations/has_many_spec.rb +129 -0
  92. data/spec/integration/associations/has_one_spec.rb +129 -0
  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/bson_regexp_raw_spec.rb +20 -0
  96. data/spec/integration/criteria/date_field_spec.rb +41 -0
  97. data/spec/integration/discriminator_key_spec.rb +354 -0
  98. data/spec/integration/discriminator_value_spec.rb +207 -0
  99. data/spec/integration/{matchable_spec.rb → matcher_examples_spec.rb} +120 -41
  100. data/spec/integration/matcher_operator_data/all.yml +140 -0
  101. data/spec/integration/matcher_operator_data/and.yml +93 -0
  102. data/spec/integration/matcher_operator_data/elem_match.yml +363 -0
  103. data/spec/integration/matcher_operator_data/elem_match_expr.yml +213 -0
  104. data/spec/integration/matcher_operator_data/eq.yml +191 -0
  105. data/spec/integration/matcher_operator_data/exists.yml +213 -0
  106. data/spec/integration/matcher_operator_data/generic_op.yml +17 -0
  107. data/spec/integration/matcher_operator_data/gt.yml +132 -0
  108. data/spec/integration/matcher_operator_data/gte.yml +132 -0
  109. data/spec/integration/matcher_operator_data/implicit.yml +331 -0
  110. data/spec/integration/matcher_operator_data/implicit_traversal.yml +16 -0
  111. data/spec/integration/matcher_operator_data/in.yml +194 -0
  112. data/spec/integration/matcher_operator_data/invalid_op.yml +59 -0
  113. data/spec/integration/matcher_operator_data/invalid_syntax.yml +39 -0
  114. data/spec/integration/matcher_operator_data/lt.yml +132 -0
  115. data/spec/integration/matcher_operator_data/lte.yml +132 -0
  116. data/spec/integration/matcher_operator_data/multiple.yml +29 -0
  117. data/spec/integration/matcher_operator_data/ne.yml +150 -0
  118. data/spec/integration/matcher_operator_data/nin.yml +114 -0
  119. data/spec/integration/matcher_operator_data/nor.yml +126 -0
  120. data/spec/integration/matcher_operator_data/not.yml +196 -0
  121. data/spec/integration/matcher_operator_data/or.yml +137 -0
  122. data/spec/integration/matcher_operator_data/regex.yml +174 -0
  123. data/spec/integration/matcher_operator_data/regex_options.yml +72 -0
  124. data/spec/integration/matcher_operator_data/size.yml +174 -0
  125. data/spec/integration/matcher_operator_spec.rb +100 -0
  126. data/spec/integration/matcher_spec.rb +189 -0
  127. data/spec/integration/server_query_spec.rb +142 -0
  128. data/spec/integration/shardable_spec.rb +20 -4
  129. data/spec/integration/stringified_symbol_field_spec.rb +190 -0
  130. data/spec/lite_spec_helper.rb +4 -2
  131. data/spec/mongoid/association/accessors_spec.rb +238 -63
  132. data/spec/mongoid/association/depending_spec.rb +78 -26
  133. data/spec/mongoid/association/embedded/embeds_many/proxy_spec.rb +33 -0
  134. data/spec/mongoid/association/embedded/embeds_many_models.rb +1 -0
  135. data/spec/mongoid/association/embedded/embeds_one_models.rb +1 -0
  136. data/spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_spec.rb +138 -0
  137. data/spec/mongoid/association/referenced/has_many/enumerable_spec.rb +105 -0
  138. data/spec/mongoid/association/referenced/has_many/proxy_spec.rb +460 -186
  139. data/spec/mongoid/association/referenced/has_many_models.rb +21 -0
  140. data/spec/mongoid/association/referenced/has_one_models.rb +21 -0
  141. data/spec/mongoid/association/referenced/has_one_spec.rb +1 -1
  142. data/spec/mongoid/atomic/modifiers_spec.rb +47 -0
  143. data/spec/mongoid/atomic_spec.rb +23 -0
  144. data/spec/mongoid/attributes/nested_spec.rb +1 -1
  145. data/spec/mongoid/clients/factory_spec.rb +45 -8
  146. data/spec/mongoid/clients/options_spec.rb +9 -9
  147. data/spec/mongoid/clients/sessions_spec.rb +1 -6
  148. data/spec/mongoid/config_spec.rb +28 -0
  149. data/spec/mongoid/contextual/geo_near_spec.rb +11 -2
  150. data/spec/mongoid/contextual/mongo_spec.rb +70 -16
  151. data/spec/mongoid/copyable_spec.rb +197 -18
  152. data/spec/mongoid/copyable_spec_models.rb +28 -0
  153. data/spec/mongoid/criteria/queryable/extensions/regexp_raw_spec.rb +1 -1
  154. data/spec/mongoid/criteria/queryable/extensions/time_spec.rb +19 -7
  155. data/spec/mongoid/criteria/queryable/extensions/time_with_zone_spec.rb +28 -1
  156. data/spec/mongoid/criteria/queryable/selectable_spec.rb +84 -82
  157. data/spec/mongoid/criteria_spec.rb +204 -39
  158. data/spec/mongoid/document_spec.rb +89 -15
  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/no_client_config_spec.rb +2 -2
  162. data/spec/mongoid/errors/no_client_database_spec.rb +3 -3
  163. data/spec/mongoid/errors/no_client_hosts_spec.rb +3 -3
  164. data/spec/mongoid/extensions/stringified_symbol_spec.rb +85 -0
  165. data/spec/mongoid/factory_spec.rb +261 -28
  166. data/spec/mongoid/fields_spec.rb +72 -3
  167. data/spec/mongoid/findable_spec.rb +32 -0
  168. data/spec/mongoid/indexable_spec.rb +28 -2
  169. data/spec/mongoid/inspectable_spec.rb +29 -2
  170. data/spec/mongoid/interceptable_spec.rb +2 -2
  171. data/spec/mongoid/matcher/extract_attribute_data/traversal.yml +259 -0
  172. data/spec/mongoid/matcher/extract_attribute_spec.rb +47 -0
  173. data/spec/mongoid/persistable/creatable_spec.rb +108 -25
  174. data/spec/mongoid/persistable/deletable_spec.rb +86 -0
  175. data/spec/mongoid/persistable/savable_spec.rb +174 -16
  176. data/spec/mongoid/query_cache_middleware_spec.rb +16 -3
  177. data/spec/mongoid/query_cache_spec.rb +496 -28
  178. data/spec/mongoid/reloadable_spec.rb +72 -0
  179. data/spec/mongoid/serializable_spec.rb +21 -3
  180. data/spec/mongoid/traversable_spec.rb +1100 -0
  181. data/spec/shared/LICENSE +20 -0
  182. data/spec/shared/lib/mrss/child_process_helper.rb +80 -0
  183. data/spec/shared/lib/mrss/constraints.rb +303 -0
  184. data/spec/shared/lib/mrss/lite_constraints.rb +175 -0
  185. data/spec/shared/lib/mrss/spec_organizer.rb +149 -0
  186. data/spec/spec_helper.rb +4 -2
  187. data/spec/support/constraints.rb +20 -222
  188. data/spec/support/helpers.rb +1 -1
  189. data/spec/{app → support}/models/account.rb +0 -0
  190. data/spec/{app → support}/models/acolyte.rb +0 -0
  191. data/spec/{app → support}/models/actor.rb +1 -1
  192. data/spec/{app → support}/models/actress.rb +0 -0
  193. data/spec/{app → support}/models/address.rb +0 -0
  194. data/spec/{app → support}/models/address_component.rb +0 -0
  195. data/spec/{app → support}/models/address_number.rb +0 -0
  196. data/spec/{app → support}/models/agency.rb +0 -0
  197. data/spec/{app → support}/models/agent.rb +0 -0
  198. data/spec/{app → support}/models/album.rb +0 -0
  199. data/spec/{app → support}/models/alert.rb +0 -0
  200. data/spec/{app → support}/models/animal.rb +0 -0
  201. data/spec/{app → support}/models/answer.rb +0 -0
  202. data/spec/{app → support}/models/appointment.rb +0 -0
  203. data/spec/support/models/armrest.rb +10 -0
  204. data/spec/{app → support}/models/array_field.rb +0 -0
  205. data/spec/{app → support}/models/article.rb +0 -0
  206. data/spec/{app → support}/models/artist.rb +0 -0
  207. data/spec/{app → support}/models/artwork.rb +0 -0
  208. data/spec/{app → support}/models/audio.rb +0 -0
  209. data/spec/{app → support}/models/augmentation.rb +0 -0
  210. data/spec/{app → support}/models/author.rb +0 -0
  211. data/spec/{app → support}/models/baby.rb +0 -0
  212. data/spec/{app → support}/models/band.rb +0 -0
  213. data/spec/{app → support}/models/bar.rb +0 -0
  214. data/spec/{app → support}/models/basic.rb +0 -0
  215. data/spec/{app → support}/models/bed.rb +0 -0
  216. data/spec/{app → support}/models/big_palette.rb +0 -0
  217. data/spec/{app → support}/models/birthday.rb +0 -0
  218. data/spec/{app → support}/models/bomb.rb +0 -0
  219. data/spec/{app → support}/models/book.rb +0 -0
  220. data/spec/{app → support}/models/breed.rb +0 -0
  221. data/spec/{app → support}/models/browser.rb +1 -1
  222. data/spec/{app → support}/models/building.rb +0 -0
  223. data/spec/{app → support}/models/building_address.rb +0 -0
  224. data/spec/{app → support}/models/bus.rb +0 -0
  225. data/spec/{app → support}/models/business.rb +0 -0
  226. data/spec/{app → support}/models/callback_test.rb +0 -0
  227. data/spec/{app → support}/models/canvas.rb +1 -1
  228. data/spec/{app → support}/models/car.rb +0 -0
  229. data/spec/{app → support}/models/cat.rb +0 -0
  230. data/spec/{app → support}/models/category.rb +0 -0
  231. data/spec/{app → support}/models/child.rb +0 -0
  232. data/spec/{app → support}/models/child_doc.rb +0 -0
  233. data/spec/{app → support}/models/church.rb +0 -0
  234. data/spec/{app → support}/models/circle.rb +0 -0
  235. data/spec/{app → support}/models/circuit.rb +0 -0
  236. data/spec/{app → support}/models/circus.rb +0 -0
  237. data/spec/{app → support}/models/code.rb +0 -0
  238. data/spec/{app → support}/models/coding.rb +1 -1
  239. data/spec/{app → support}/models/coding/pull_request.rb +0 -0
  240. data/spec/{app → support}/models/comment.rb +0 -0
  241. data/spec/{app → support}/models/company.rb +0 -0
  242. data/spec/{app → support}/models/consumption_period.rb +0 -0
  243. data/spec/{app → support}/models/contextable_item.rb +0 -0
  244. data/spec/{app → support}/models/contractor.rb +0 -0
  245. data/spec/{app → support}/models/cookie.rb +0 -0
  246. data/spec/{app → support}/models/country_code.rb +0 -0
  247. data/spec/{app → support}/models/courier_job.rb +0 -0
  248. data/spec/support/models/crate.rb +13 -0
  249. data/spec/support/models/deed.rb +8 -0
  250. data/spec/{app → support}/models/definition.rb +0 -0
  251. data/spec/{app → support}/models/delegating_patient.rb +0 -0
  252. data/spec/{app → support}/models/description.rb +0 -0
  253. data/spec/{app → support}/models/dictionary.rb +0 -0
  254. data/spec/{app → support}/models/division.rb +0 -0
  255. data/spec/{app → support}/models/doctor.rb +0 -0
  256. data/spec/{app → support}/models/dog.rb +0 -0
  257. data/spec/{app → support}/models/dokument.rb +0 -0
  258. data/spec/{app → support}/models/draft.rb +0 -0
  259. data/spec/{app → support}/models/dragon.rb +0 -0
  260. data/spec/{app → support}/models/driver.rb +1 -1
  261. data/spec/{app → support}/models/drug.rb +0 -0
  262. data/spec/{app → support}/models/dungeon.rb +0 -0
  263. data/spec/{app → support}/models/edit.rb +0 -0
  264. data/spec/{app → support}/models/email.rb +0 -0
  265. data/spec/{app → support}/models/employer.rb +0 -0
  266. data/spec/{app → support}/models/entry.rb +0 -0
  267. data/spec/{app → support}/models/eraser.rb +0 -0
  268. data/spec/{app → support}/models/even.rb +0 -0
  269. data/spec/{app → support}/models/event.rb +0 -0
  270. data/spec/{app → support}/models/exhibition.rb +0 -0
  271. data/spec/{app → support}/models/exhibitor.rb +0 -0
  272. data/spec/{app → support}/models/explosion.rb +0 -0
  273. data/spec/{app → support}/models/eye.rb +0 -0
  274. data/spec/{app → support}/models/eye_bowl.rb +0 -0
  275. data/spec/{app → support}/models/face.rb +0 -0
  276. data/spec/{app → support}/models/favorite.rb +0 -0
  277. data/spec/{app → support}/models/filesystem.rb +0 -0
  278. data/spec/{app → support}/models/fire_hydrant.rb +0 -0
  279. data/spec/{app → support}/models/firefox.rb +0 -0
  280. data/spec/{app → support}/models/fish.rb +0 -0
  281. data/spec/{app → support}/models/folder.rb +0 -0
  282. data/spec/{app → support}/models/folder_item.rb +0 -0
  283. data/spec/{app → support}/models/fruits.rb +0 -0
  284. data/spec/{app → support}/models/game.rb +0 -0
  285. data/spec/{app → support}/models/ghost.rb +0 -0
  286. data/spec/support/models/guitar.rb +5 -0
  287. data/spec/{app → support}/models/home.rb +0 -0
  288. data/spec/{app → support}/models/house.rb +0 -0
  289. data/spec/{app → support}/models/html_writer.rb +0 -0
  290. data/spec/{app → support}/models/id_key.rb +0 -0
  291. data/spec/support/models/idnodef.rb +8 -0
  292. data/spec/{app → support}/models/image.rb +0 -0
  293. data/spec/{app → support}/models/implant.rb +0 -0
  294. data/spec/support/models/instrument.rb +9 -0
  295. data/spec/{app → support}/models/item.rb +1 -1
  296. data/spec/{app → support}/models/jar.rb +0 -0
  297. data/spec/{app → support}/models/kaleidoscope.rb +0 -0
  298. data/spec/{app → support}/models/kangaroo.rb +0 -0
  299. data/spec/{app → support}/models/label.rb +0 -0
  300. data/spec/{app → support}/models/language.rb +0 -0
  301. data/spec/{app → support}/models/lat_lng.rb +0 -0
  302. data/spec/{app → support}/models/league.rb +0 -0
  303. data/spec/{app → support}/models/learner.rb +0 -0
  304. data/spec/{app → support}/models/line_item.rb +0 -0
  305. data/spec/{app → support}/models/location.rb +0 -0
  306. data/spec/{app → support}/models/login.rb +0 -0
  307. data/spec/{app → support}/models/manufacturer.rb +0 -0
  308. data/spec/{app → support}/models/meat.rb +0 -0
  309. data/spec/{app → support}/models/membership.rb +0 -0
  310. data/spec/{app → support}/models/message.rb +0 -0
  311. data/spec/{app → support}/models/minim.rb +0 -0
  312. data/spec/{app → support}/models/mixed_drink.rb +0 -0
  313. data/spec/support/models/mop.rb +16 -0
  314. data/spec/{app → support}/models/movie.rb +0 -0
  315. data/spec/{app → support}/models/my_hash.rb +0 -0
  316. data/spec/{app → support}/models/name.rb +0 -0
  317. data/spec/{app → support}/models/name_only.rb +0 -0
  318. data/spec/{app → support}/models/node.rb +0 -0
  319. data/spec/{app → support}/models/note.rb +0 -0
  320. data/spec/{app → support}/models/odd.rb +0 -0
  321. data/spec/support/models/order.rb +11 -0
  322. data/spec/{app → support}/models/ordered_post.rb +0 -0
  323. data/spec/{app → support}/models/ordered_preference.rb +0 -0
  324. data/spec/{app → support}/models/oscar.rb +0 -0
  325. data/spec/{app → support}/models/other_owner_object.rb +0 -0
  326. data/spec/{app → support}/models/override.rb +0 -0
  327. data/spec/{app → support}/models/ownable.rb +0 -0
  328. data/spec/{app → support}/models/owner.rb +2 -0
  329. data/spec/{app → support}/models/pack.rb +0 -0
  330. data/spec/{app → support}/models/page.rb +0 -0
  331. data/spec/{app → support}/models/page_question.rb +0 -0
  332. data/spec/{app → support}/models/palette.rb +1 -1
  333. data/spec/{app → support}/models/parent.rb +0 -0
  334. data/spec/{app → support}/models/parent_doc.rb +0 -0
  335. data/spec/{app → support}/models/passport.rb +1 -0
  336. data/spec/{app → support}/models/patient.rb +0 -0
  337. data/spec/{app → support}/models/pdf_writer.rb +0 -0
  338. data/spec/{app → support}/models/pencil.rb +0 -0
  339. data/spec/{app → support}/models/person.rb +3 -1
  340. data/spec/{app → support}/models/pet.rb +0 -0
  341. data/spec/{app → support}/models/pet_owner.rb +0 -0
  342. data/spec/{app → support}/models/phone.rb +1 -0
  343. data/spec/support/models/piano.rb +5 -0
  344. data/spec/{app → support}/models/pizza.rb +0 -0
  345. data/spec/{app → support}/models/player.rb +0 -0
  346. data/spec/{app → support}/models/post.rb +0 -0
  347. data/spec/{app → support}/models/post_genre.rb +0 -0
  348. data/spec/{app → support}/models/powerup.rb +0 -0
  349. data/spec/{app → support}/models/preference.rb +0 -0
  350. data/spec/{app → support}/models/princess.rb +0 -0
  351. data/spec/{app → support}/models/product.rb +0 -0
  352. data/spec/support/models/profile.rb +18 -0
  353. data/spec/{app → support}/models/pronunciation.rb +0 -0
  354. data/spec/{app → support}/models/pub.rb +0 -0
  355. data/spec/support/models/publication.rb +5 -0
  356. data/spec/{app → support}/models/publication/encyclopedia.rb +0 -0
  357. data/spec/{app → support}/models/publication/review.rb +0 -0
  358. data/spec/{app → support}/models/purchase.rb +0 -0
  359. data/spec/{app → support}/models/question.rb +0 -0
  360. data/spec/{app → support}/models/quiz.rb +0 -0
  361. data/spec/{app → support}/models/rating.rb +0 -0
  362. data/spec/{app → support}/models/record.rb +0 -0
  363. data/spec/{app → support}/models/registry.rb +0 -0
  364. data/spec/{app → support}/models/role.rb +0 -0
  365. data/spec/{app → support}/models/root_category.rb +0 -0
  366. data/spec/{app → support}/models/sandwich.rb +0 -0
  367. data/spec/{app → support}/models/scheduler.rb +0 -0
  368. data/spec/{app/models/profile.rb → support/models/scribe.rb} +2 -2
  369. data/spec/support/models/seat.rb +25 -0
  370. data/spec/{app → support}/models/seo.rb +0 -0
  371. data/spec/{app → support}/models/series.rb +1 -0
  372. data/spec/{app → support}/models/server.rb +0 -0
  373. data/spec/{app → support}/models/service.rb +0 -0
  374. data/spec/{app → support}/models/shape.rb +2 -2
  375. data/spec/{app → support}/models/shelf.rb +0 -0
  376. data/spec/{app → support}/models/shipment_address.rb +0 -0
  377. data/spec/{app → support}/models/shipping_container.rb +0 -0
  378. data/spec/{app → support}/models/shipping_pack.rb +0 -0
  379. data/spec/{app → support}/models/shop.rb +0 -0
  380. data/spec/{app → support}/models/short_agent.rb +0 -0
  381. data/spec/{app → support}/models/short_quiz.rb +0 -0
  382. data/spec/{app → support}/models/simple.rb +0 -0
  383. data/spec/{app → support}/models/slave.rb +0 -0
  384. data/spec/{app → support}/models/song.rb +0 -0
  385. data/spec/{app → support}/models/sound.rb +0 -0
  386. data/spec/{app → support}/models/square.rb +0 -0
  387. data/spec/{app → support}/models/staff.rb +0 -0
  388. data/spec/{app → support}/models/store_as_dup_test1.rb +0 -0
  389. data/spec/{app → support}/models/store_as_dup_test2.rb +0 -0
  390. data/spec/{app → support}/models/store_as_dup_test3.rb +0 -0
  391. data/spec/{app → support}/models/store_as_dup_test4.rb +0 -0
  392. data/spec/{app → support}/models/strategy.rb +0 -0
  393. data/spec/{app → support}/models/sub_item.rb +0 -0
  394. data/spec/{app → support}/models/subscription.rb +0 -0
  395. data/spec/{app → support}/models/survey.rb +0 -0
  396. data/spec/{app → support}/models/symptom.rb +0 -0
  397. data/spec/support/models/system_role.rb +7 -0
  398. data/spec/{app → support}/models/tag.rb +0 -0
  399. data/spec/{app → support}/models/target.rb +0 -0
  400. data/spec/{app → support}/models/template.rb +0 -0
  401. data/spec/{app → support}/models/thing.rb +0 -0
  402. data/spec/{app → support}/models/title.rb +0 -0
  403. data/spec/{app → support}/models/tool.rb +2 -2
  404. data/spec/{app → support}/models/topping.rb +0 -0
  405. data/spec/support/models/toy.rb +10 -0
  406. data/spec/{app → support}/models/track.rb +0 -0
  407. data/spec/{app → support}/models/translation.rb +0 -0
  408. data/spec/{app → support}/models/tree.rb +0 -0
  409. data/spec/{app → support}/models/truck.rb +2 -0
  410. data/spec/{app → support}/models/updatable.rb +0 -0
  411. data/spec/{app → support}/models/user.rb +0 -0
  412. data/spec/{app → support}/models/user_account.rb +0 -0
  413. data/spec/{app → support}/models/validation_callback.rb +0 -0
  414. data/spec/{app → support}/models/vehicle.rb +7 -2
  415. data/spec/{app → support}/models/version.rb +0 -0
  416. data/spec/{app → support}/models/vertex.rb +0 -0
  417. data/spec/{app → support}/models/vet_visit.rb +0 -0
  418. data/spec/{app → support}/models/video.rb +0 -0
  419. data/spec/{app → support}/models/video_game.rb +0 -0
  420. data/spec/{app → support}/models/weapon.rb +0 -0
  421. data/spec/{app → support}/models/wiki_page.rb +1 -0
  422. data/spec/{app → support}/models/word.rb +0 -0
  423. data/spec/{app → support}/models/word_origin.rb +0 -0
  424. data/spec/{app → support}/models/writer.rb +2 -2
  425. data/spec/support/session_registry.rb +50 -0
  426. data/spec/support/spec_config.rb +1 -1
  427. metadata +857 -739
  428. metadata.gz.sig +0 -0
  429. data/lib/mongoid/matchable/all.rb +0 -30
  430. data/lib/mongoid/matchable/and.rb +0 -32
  431. data/lib/mongoid/matchable/default.rb +0 -121
  432. data/lib/mongoid/matchable/elem_match.rb +0 -36
  433. data/lib/mongoid/matchable/eq.rb +0 -23
  434. data/lib/mongoid/matchable/exists.rb +0 -25
  435. data/lib/mongoid/matchable/gt.rb +0 -25
  436. data/lib/mongoid/matchable/gte.rb +0 -25
  437. data/lib/mongoid/matchable/in.rb +0 -26
  438. data/lib/mongoid/matchable/lt.rb +0 -25
  439. data/lib/mongoid/matchable/lte.rb +0 -25
  440. data/lib/mongoid/matchable/ne.rb +0 -23
  441. data/lib/mongoid/matchable/nin.rb +0 -24
  442. data/lib/mongoid/matchable/nor.rb +0 -38
  443. data/lib/mongoid/matchable/or.rb +0 -35
  444. data/lib/mongoid/matchable/regexp.rb +0 -30
  445. data/lib/mongoid/matchable/size.rb +0 -23
  446. data/spec/app/models/publication.rb +0 -5
  447. data/spec/mongoid/matchable/all_spec.rb +0 -34
  448. data/spec/mongoid/matchable/and_spec.rb +0 -190
  449. data/spec/mongoid/matchable/default_spec.rb +0 -140
  450. data/spec/mongoid/matchable/elem_match_spec.rb +0 -109
  451. data/spec/mongoid/matchable/eq_spec.rb +0 -49
  452. data/spec/mongoid/matchable/exists_spec.rb +0 -60
  453. data/spec/mongoid/matchable/gt_spec.rb +0 -89
  454. data/spec/mongoid/matchable/gte_spec.rb +0 -87
  455. data/spec/mongoid/matchable/in_spec.rb +0 -52
  456. data/spec/mongoid/matchable/lt_spec.rb +0 -88
  457. data/spec/mongoid/matchable/lte_spec.rb +0 -88
  458. data/spec/mongoid/matchable/ne_spec.rb +0 -49
  459. data/spec/mongoid/matchable/nin_spec.rb +0 -51
  460. data/spec/mongoid/matchable/nor_spec.rb +0 -210
  461. data/spec/mongoid/matchable/or_spec.rb +0 -134
  462. data/spec/mongoid/matchable/regexp_spec.rb +0 -62
  463. data/spec/mongoid/matchable/size_spec.rb +0 -28
  464. data/spec/mongoid/matchable_spec.rb +0 -856
  465. data/spec/support/child_process_helper.rb +0 -76
  466. data/spec/support/lite_constraints.rb +0 -22
@@ -6,6 +6,6 @@ module Helpers
6
6
  Object.class_eval do
7
7
  remove_const(name)
8
8
  end
9
- load "spec/app/models/#{name.to_s.underscore}.rb"
9
+ load "spec/support/models/#{name.to_s.underscore}.rb"
10
10
  end
11
11
  end
File without changes
File without changes
@@ -18,4 +18,4 @@ class Actor
18
18
  end
19
19
  end
20
20
 
21
- require "app/models/actress"
21
+ require "support/models/actress"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+ # encoding: utf-8
3
+
4
+ class Armrest
5
+ include Mongoid::Document
6
+
7
+ embedded_in :seat
8
+
9
+ field :side
10
+ end
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -6,4 +6,4 @@ class Browser < Canvas
6
6
  def render; end
7
7
  end
8
8
 
9
- require "app/models/firefox"
9
+ require "support/models/firefox"
File without changes
File without changes
File without changes
@@ -25,4 +25,4 @@ class Canvas
25
25
  end
26
26
  end
27
27
 
28
- require "app/models/browser"
28
+ require "support/models/browser"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  # encoding: utf-8
3
3
 
4
- require 'app/models/coding/pull_request'
4
+ require 'support/models/coding/pull_request'
File without changes
File without changes
File without changes
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+ # encoding: utf-8
3
+
4
+ class Crate
5
+ include Mongoid::Document
6
+
7
+ embedded_in :vehicle
8
+ embeds_many :toys
9
+
10
+ accepts_nested_attributes_for :toys
11
+
12
+ field :volume
13
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+ # encoding: utf-8
3
+
4
+ class Deed
5
+ include Mongoid::Document
6
+ field :title, type: String
7
+ embedded_in :owner
8
+ end
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -7,4 +7,4 @@ class Driver
7
7
  accepts_nested_attributes_for :vehicle
8
8
  end
9
9
 
10
- require "app/models/learner"
10
+ require "support/models/learner"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+ # encoding: utf-8
3
+
4
+ class Guitar < Instrument
5
+ end
File without changes
File without changes
File without changes
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+ # encoding: utf-8
3
+
4
+ class Idnodef
5
+ include Mongoid::Document
6
+
7
+ field :_id, type: String, overwrite: true
8
+ end
File without changes
File without changes
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+ # encoding: utf-8
3
+
4
+ class Instrument
5
+ include Mongoid::Document
6
+ end
7
+
8
+ require "support/models/guitar"
9
+ require "support/models/piano"
@@ -8,4 +8,4 @@ class Item
8
8
  field :user_login, type: String
9
9
  end
10
10
 
11
- require "app/models/sub_item"
11
+ require "support/models/sub_item"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+ # encoding: utf-8
3
+
4
+ # This class is used for embedded matcher testing.
5
+ class Mop
6
+ include Mongoid::Document
7
+
8
+ # The dynamic attributes are used so that the tests can use various
9
+ # field names as makes sense for the particular operator.
10
+ include Mongoid::Attributes::Dynamic
11
+
12
+ # We need some fields of specific types because the query conditions are
13
+ # transformed differently based on the type of field being queried.
14
+ field :int_field, type: Integer
15
+ field :array_field, type: Array
16
+ end
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+ # encoding: utf-8
3
+
4
+ class Order
5
+ include Mongoid::Document
6
+ field :status, type: Mongoid::StringifiedSymbol
7
+
8
+ # This is a dummy field that verifies the Mongoid::Fields::StringifiedSymbol
9
+ # alias.
10
+ field :saved_status, type: StringifiedSymbol
11
+ end
File without changes
File without changes
File without changes
@@ -6,4 +6,6 @@ class Owner
6
6
  field :name
7
7
  has_many :events
8
8
  embeds_many :birthdays
9
+ embeds_many :deeds
10
+ embeds_one :scribe
9
11
  end
File without changes
File without changes
@@ -7,4 +7,4 @@ class Palette
7
7
  embeds_many :tools
8
8
  end
9
9
 
10
- require "app/models/big_palette"
10
+ require "support/models/big_palette"
File without changes
@@ -4,5 +4,6 @@
4
4
  class Passport
5
5
  include Mongoid::Document
6
6
  field :number, type: String
7
+ field :country, type: String
7
8
  embedded_in :person, autobuild: true
8
9
  end