mongoid 7.1.11 → 7.2.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
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/Rakefile +11 -30
  5. data/lib/config/locales/en.yml +37 -14
  6. data/lib/mongoid/association/depending.rb +1 -6
  7. data/lib/mongoid/association/embedded/embeds_many/proxy.rb +1 -1
  8. data/lib/mongoid/association/many.rb +3 -3
  9. data/lib/mongoid/association/proxy.rb +1 -1
  10. data/lib/mongoid/association/referenced/belongs_to/buildable.rb +1 -1
  11. data/lib/mongoid/association/referenced/has_and_belongs_to_many/proxy.rb +1 -1
  12. data/lib/mongoid/association/referenced/has_many/enumerable.rb +37 -2
  13. data/lib/mongoid/association/referenced/has_many/proxy.rb +9 -2
  14. data/lib/mongoid/association/referenced/has_one/buildable.rb +1 -1
  15. data/lib/mongoid/association/referenced/has_one/proxy.rb +1 -6
  16. data/lib/mongoid/atomic/modifiers.rb +1 -1
  17. data/lib/mongoid/attributes/dynamic.rb +1 -1
  18. data/lib/mongoid/attributes.rb +1 -8
  19. data/lib/mongoid/clients/factory.rb +17 -0
  20. data/lib/mongoid/composable.rb +1 -0
  21. data/lib/mongoid/config/environment.rb +1 -9
  22. data/lib/mongoid/config.rb +3 -0
  23. data/lib/mongoid/contextual/atomic.rb +2 -7
  24. data/lib/mongoid/contextual/mongo.rb +23 -4
  25. data/lib/mongoid/contextual/none.rb +0 -3
  26. data/lib/mongoid/copyable.rb +2 -2
  27. data/lib/mongoid/criteria/queryable/key.rb +1 -1
  28. data/lib/mongoid/criteria/queryable/mergeable.rb +2 -2
  29. data/lib/mongoid/criteria/queryable/selectable.rb +23 -8
  30. data/lib/mongoid/criteria/queryable/selector.rb +7 -3
  31. data/lib/mongoid/criteria/queryable/storable.rb +7 -7
  32. data/lib/mongoid/criteria.rb +58 -8
  33. data/lib/mongoid/document.rb +19 -9
  34. data/lib/mongoid/errors/invalid_discriminator_key_target.rb +25 -0
  35. data/lib/mongoid/errors/invalid_elem_match_operator.rb +33 -0
  36. data/lib/mongoid/errors/invalid_estimated_count_criteria.rb +26 -0
  37. data/lib/mongoid/errors/invalid_expression_operator.rb +28 -0
  38. data/lib/mongoid/errors/invalid_field_operator.rb +33 -0
  39. data/lib/mongoid/errors/invalid_query.rb +41 -0
  40. data/lib/mongoid/errors/mongoid_error.rb +1 -1
  41. data/lib/mongoid/errors.rb +7 -2
  42. data/lib/mongoid/factory.rb +27 -10
  43. data/lib/mongoid/fields/validators/macro.rb +22 -9
  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/tasks/database.rb +1 -1
  79. data/lib/mongoid/traversable.rb +111 -4
  80. data/lib/mongoid/validatable/associated.rb +1 -1
  81. data/lib/mongoid/validatable/presence.rb +3 -3
  82. data/lib/mongoid/validatable/uniqueness.rb +1 -1
  83. data/lib/mongoid/version.rb +1 -1
  84. data/lib/mongoid.rb +23 -1
  85. data/lib/rails/generators/mongoid/config/config_generator.rb +1 -8
  86. data/lib/rails/generators/mongoid/config/templates/mongoid.yml +1 -1
  87. data/spec/integration/app_spec.rb +88 -178
  88. data/spec/integration/associations/embedded_spec.rb +94 -0
  89. data/spec/integration/associations/has_many_spec.rb +39 -46
  90. data/spec/integration/associations/has_one_spec.rb +39 -46
  91. data/spec/integration/associations/nested_attributes_assignment_spec.rb +116 -0
  92. data/spec/integration/atomic/modifiers_spec.rb +117 -0
  93. data/spec/integration/discriminator_key_spec.rb +354 -0
  94. data/spec/integration/discriminator_value_spec.rb +207 -0
  95. data/spec/integration/document_spec.rb +0 -21
  96. data/spec/integration/{matchable_spec.rb → matcher_examples_spec.rb} +120 -41
  97. data/spec/integration/matcher_operator_data/all.yml +140 -0
  98. data/spec/integration/matcher_operator_data/and.yml +93 -0
  99. data/spec/integration/matcher_operator_data/elem_match.yml +363 -0
  100. data/spec/integration/matcher_operator_data/elem_match_expr.yml +213 -0
  101. data/spec/integration/matcher_operator_data/eq.yml +191 -0
  102. data/spec/integration/matcher_operator_data/exists.yml +213 -0
  103. data/spec/integration/matcher_operator_data/generic_op.yml +17 -0
  104. data/spec/integration/matcher_operator_data/gt.yml +132 -0
  105. data/spec/integration/matcher_operator_data/gte.yml +132 -0
  106. data/spec/integration/matcher_operator_data/implicit.yml +331 -0
  107. data/spec/integration/matcher_operator_data/implicit_traversal.yml +16 -0
  108. data/spec/integration/matcher_operator_data/in.yml +194 -0
  109. data/spec/integration/matcher_operator_data/invalid_op.yml +59 -0
  110. data/spec/integration/matcher_operator_data/invalid_syntax.yml +39 -0
  111. data/spec/integration/matcher_operator_data/lt.yml +132 -0
  112. data/spec/integration/matcher_operator_data/lte.yml +132 -0
  113. data/spec/integration/matcher_operator_data/multiple.yml +29 -0
  114. data/spec/integration/matcher_operator_data/ne.yml +150 -0
  115. data/spec/integration/matcher_operator_data/nin.yml +114 -0
  116. data/spec/integration/matcher_operator_data/nor.yml +126 -0
  117. data/spec/integration/matcher_operator_data/not.yml +196 -0
  118. data/spec/integration/matcher_operator_data/or.yml +137 -0
  119. data/spec/integration/matcher_operator_data/regex.yml +174 -0
  120. data/spec/integration/matcher_operator_data/regex_options.yml +72 -0
  121. data/spec/integration/matcher_operator_data/size.yml +174 -0
  122. data/spec/integration/matcher_operator_spec.rb +100 -0
  123. data/spec/integration/matcher_spec.rb +189 -0
  124. data/spec/integration/server_query_spec.rb +142 -0
  125. data/spec/lite_spec_helper.rb +7 -7
  126. data/spec/mongoid/association/depending_spec.rb +78 -26
  127. data/spec/mongoid/association/embedded/embedded_in/proxy_spec.rb +0 -50
  128. data/spec/mongoid/association/embedded/embeds_many/proxy_spec.rb +37 -17
  129. data/spec/mongoid/association/embedded/embeds_many_models.rb +1 -0
  130. data/spec/mongoid/association/embedded/embeds_one_models.rb +1 -0
  131. data/spec/mongoid/association/referenced/belongs_to/proxy_spec.rb +0 -17
  132. data/spec/mongoid/association/referenced/has_many/proxy_spec.rb +460 -186
  133. data/spec/mongoid/association/referenced/has_many_models.rb +9 -0
  134. data/spec/mongoid/association/referenced/has_one_models.rb +9 -0
  135. data/spec/mongoid/atomic/modifiers_spec.rb +47 -0
  136. data/spec/mongoid/atomic/paths_spec.rb +0 -41
  137. data/spec/mongoid/atomic_spec.rb +23 -0
  138. data/spec/mongoid/attributes/nested_spec.rb +1 -1
  139. data/spec/mongoid/attributes_spec.rb +0 -241
  140. data/spec/mongoid/clients/factory_spec.rb +35 -9
  141. data/spec/mongoid/clients/options_spec.rb +3 -11
  142. data/spec/mongoid/clients/sessions_spec.rb +1 -6
  143. data/spec/mongoid/config/environment_spec.rb +8 -86
  144. data/spec/mongoid/config_spec.rb +28 -0
  145. data/spec/mongoid/contextual/atomic_spec.rb +29 -81
  146. data/spec/mongoid/contextual/geo_near_spec.rb +1 -1
  147. data/spec/mongoid/contextual/mongo_spec.rb +70 -16
  148. data/spec/mongoid/copyable_spec.rb +153 -1
  149. data/spec/mongoid/copyable_spec_models.rb +14 -0
  150. data/spec/mongoid/criteria/queryable/selectable_logical_spec.rb +0 -36
  151. data/spec/mongoid/criteria/queryable/selectable_spec.rb +84 -82
  152. data/spec/mongoid/criteria_spec.rb +204 -43
  153. data/spec/mongoid/document_query_spec.rb +0 -51
  154. data/spec/mongoid/document_spec.rb +90 -36
  155. data/spec/mongoid/errors/delete_restriction_spec.rb +1 -1
  156. data/spec/mongoid/errors/mongoid_error_spec.rb +8 -20
  157. data/spec/mongoid/factory_spec.rb +261 -28
  158. data/spec/mongoid/fields_spec.rb +48 -2
  159. data/spec/mongoid/findable_spec.rb +32 -0
  160. data/spec/mongoid/indexable_spec.rb +28 -2
  161. data/spec/mongoid/inspectable_spec.rb +29 -2
  162. data/spec/mongoid/interceptable_spec.rb +2 -2
  163. data/spec/mongoid/matcher/extract_attribute_data/traversal.yml +259 -0
  164. data/spec/mongoid/matcher/extract_attribute_spec.rb +47 -0
  165. data/spec/mongoid/persistable/creatable_spec.rb +108 -25
  166. data/spec/mongoid/persistable/deletable_spec.rb +86 -0
  167. data/spec/mongoid/persistable/savable_spec.rb +174 -16
  168. data/spec/mongoid/persistable/settable_spec.rb +0 -30
  169. data/spec/mongoid/persistable/updatable_spec.rb +0 -2
  170. data/spec/mongoid/persistable_spec.rb +2 -2
  171. data/spec/mongoid/query_cache_middleware_spec.rb +16 -3
  172. data/spec/mongoid/query_cache_spec.rb +442 -41
  173. data/spec/mongoid/reloadable_spec.rb +72 -0
  174. data/spec/mongoid/serializable_spec.rb +21 -3
  175. data/spec/mongoid/traversable_spec.rb +1100 -0
  176. data/spec/spec_helper.rb +3 -5
  177. data/spec/support/child_process_helper.rb +79 -0
  178. data/spec/support/constraints.rb +250 -0
  179. data/spec/support/helpers.rb +1 -1
  180. data/spec/support/lite_constraints.rb +22 -0
  181. data/spec/{app → support}/models/account.rb +0 -0
  182. data/spec/{app → support}/models/acolyte.rb +0 -0
  183. data/spec/{app → support}/models/actor.rb +1 -1
  184. data/spec/{app → support}/models/actress.rb +0 -0
  185. data/spec/{app → support}/models/address.rb +0 -4
  186. data/spec/{app → support}/models/address_component.rb +0 -0
  187. data/spec/{app → support}/models/address_number.rb +0 -0
  188. data/spec/{app → support}/models/agency.rb +0 -0
  189. data/spec/{app → support}/models/agent.rb +0 -0
  190. data/spec/{app → support}/models/album.rb +0 -0
  191. data/spec/{app → support}/models/alert.rb +0 -0
  192. data/spec/{app → support}/models/animal.rb +0 -0
  193. data/spec/{app → support}/models/answer.rb +0 -0
  194. data/spec/{app → support}/models/appointment.rb +0 -0
  195. data/spec/support/models/armrest.rb +10 -0
  196. data/spec/{app → support}/models/array_field.rb +0 -0
  197. data/spec/{app → support}/models/article.rb +0 -0
  198. data/spec/{app → support}/models/artist.rb +0 -0
  199. data/spec/{app → support}/models/artwork.rb +0 -0
  200. data/spec/{app → support}/models/audio.rb +0 -0
  201. data/spec/{app → support}/models/augmentation.rb +0 -0
  202. data/spec/{app → support}/models/author.rb +0 -0
  203. data/spec/{app → support}/models/baby.rb +0 -0
  204. data/spec/{app → support}/models/band.rb +0 -0
  205. data/spec/{app → support}/models/bar.rb +0 -0
  206. data/spec/{app → support}/models/basic.rb +0 -0
  207. data/spec/{app → support}/models/bed.rb +0 -0
  208. data/spec/{app → support}/models/big_palette.rb +0 -0
  209. data/spec/{app → support}/models/birthday.rb +0 -0
  210. data/spec/{app → support}/models/bomb.rb +0 -0
  211. data/spec/{app → support}/models/book.rb +0 -0
  212. data/spec/{app → support}/models/breed.rb +0 -0
  213. data/spec/{app → support}/models/browser.rb +1 -1
  214. data/spec/{app → support}/models/building.rb +0 -0
  215. data/spec/{app → support}/models/building_address.rb +0 -0
  216. data/spec/{app → support}/models/bus.rb +0 -0
  217. data/spec/{app → support}/models/business.rb +0 -0
  218. data/spec/{app → support}/models/callback_test.rb +0 -0
  219. data/spec/{app → support}/models/canvas.rb +1 -1
  220. data/spec/{app → support}/models/car.rb +0 -0
  221. data/spec/{app → support}/models/cat.rb +0 -0
  222. data/spec/{app → support}/models/category.rb +0 -0
  223. data/spec/{app → support}/models/child.rb +0 -0
  224. data/spec/{app → support}/models/child_doc.rb +0 -0
  225. data/spec/{app → support}/models/church.rb +0 -0
  226. data/spec/{app → support}/models/circle.rb +0 -0
  227. data/spec/{app → support}/models/circuit.rb +0 -0
  228. data/spec/{app → support}/models/circus.rb +0 -0
  229. data/spec/{app → support}/models/code.rb +0 -0
  230. data/spec/{app → support}/models/coding/pull_request.rb +0 -0
  231. data/spec/{app → support}/models/coding.rb +1 -1
  232. data/spec/{app → support}/models/comment.rb +0 -0
  233. data/spec/{app → support}/models/company.rb +0 -0
  234. data/spec/{app → support}/models/consumption_period.rb +0 -0
  235. data/spec/{app → support}/models/contextable_item.rb +0 -0
  236. data/spec/{app → support}/models/contractor.rb +0 -0
  237. data/spec/{app → support}/models/cookie.rb +0 -0
  238. data/spec/{app → support}/models/country_code.rb +0 -0
  239. data/spec/{app → support}/models/courier_job.rb +0 -0
  240. data/spec/support/models/crate.rb +13 -0
  241. data/spec/support/models/deed.rb +8 -0
  242. data/spec/{app → support}/models/definition.rb +0 -0
  243. data/spec/{app → support}/models/delegating_patient.rb +0 -0
  244. data/spec/{app → support}/models/description.rb +0 -0
  245. data/spec/{app → support}/models/dictionary.rb +0 -6
  246. data/spec/{app → support}/models/division.rb +0 -0
  247. data/spec/{app → support}/models/doctor.rb +0 -0
  248. data/spec/{app → support}/models/dog.rb +0 -0
  249. data/spec/{app → support}/models/dokument.rb +0 -0
  250. data/spec/{app → support}/models/draft.rb +0 -0
  251. data/spec/{app → support}/models/dragon.rb +0 -0
  252. data/spec/{app → support}/models/driver.rb +1 -1
  253. data/spec/{app → support}/models/drug.rb +0 -0
  254. data/spec/{app → support}/models/dungeon.rb +0 -0
  255. data/spec/{app → support}/models/edit.rb +0 -0
  256. data/spec/{app → support}/models/email.rb +0 -0
  257. data/spec/{app → support}/models/employer.rb +0 -0
  258. data/spec/{app → support}/models/entry.rb +0 -0
  259. data/spec/{app → support}/models/eraser.rb +0 -0
  260. data/spec/{app → support}/models/even.rb +0 -0
  261. data/spec/{app → support}/models/event.rb +0 -0
  262. data/spec/{app → support}/models/exhibition.rb +0 -0
  263. data/spec/{app → support}/models/exhibitor.rb +0 -0
  264. data/spec/{app → support}/models/explosion.rb +0 -0
  265. data/spec/{app → support}/models/eye.rb +0 -0
  266. data/spec/{app → support}/models/eye_bowl.rb +0 -0
  267. data/spec/{app → support}/models/face.rb +0 -0
  268. data/spec/{app → support}/models/favorite.rb +0 -0
  269. data/spec/{app → support}/models/filesystem.rb +0 -0
  270. data/spec/{app → support}/models/fire_hydrant.rb +0 -0
  271. data/spec/{app → support}/models/firefox.rb +0 -0
  272. data/spec/{app → support}/models/fish.rb +0 -0
  273. data/spec/{app → support}/models/folder.rb +0 -0
  274. data/spec/{app → support}/models/folder_item.rb +0 -0
  275. data/spec/{app → support}/models/fruits.rb +0 -0
  276. data/spec/{app → support}/models/game.rb +0 -0
  277. data/spec/{app → support}/models/ghost.rb +0 -0
  278. data/spec/support/models/guitar.rb +5 -0
  279. data/spec/{app → support}/models/home.rb +0 -0
  280. data/spec/{app → support}/models/house.rb +0 -0
  281. data/spec/{app → support}/models/html_writer.rb +0 -0
  282. data/spec/{app → support}/models/id_key.rb +0 -0
  283. data/spec/support/models/idnodef.rb +8 -0
  284. data/spec/{app → support}/models/image.rb +0 -0
  285. data/spec/{app → support}/models/implant.rb +0 -0
  286. data/spec/support/models/instrument.rb +9 -0
  287. data/spec/{app → support}/models/item.rb +1 -1
  288. data/spec/{app → support}/models/jar.rb +0 -0
  289. data/spec/{app → support}/models/kaleidoscope.rb +0 -0
  290. data/spec/{app → support}/models/kangaroo.rb +0 -0
  291. data/spec/{app → support}/models/label.rb +0 -0
  292. data/spec/{app → support}/models/language.rb +0 -0
  293. data/spec/{app → support}/models/lat_lng.rb +0 -0
  294. data/spec/{app → support}/models/league.rb +0 -0
  295. data/spec/{app → support}/models/learner.rb +0 -0
  296. data/spec/{app → support}/models/line_item.rb +0 -0
  297. data/spec/{app → support}/models/location.rb +0 -0
  298. data/spec/{app → support}/models/login.rb +0 -0
  299. data/spec/{app → support}/models/manufacturer.rb +0 -0
  300. data/spec/{app → support}/models/meat.rb +0 -0
  301. data/spec/{app → support}/models/membership.rb +0 -0
  302. data/spec/{app → support}/models/message.rb +0 -0
  303. data/spec/{app → support}/models/minim.rb +0 -0
  304. data/spec/{app → support}/models/mixed_drink.rb +0 -0
  305. data/spec/{app → support}/models/mop.rb +0 -10
  306. data/spec/{app → support}/models/movie.rb +0 -0
  307. data/spec/{app → support}/models/my_hash.rb +0 -0
  308. data/spec/{app → support}/models/name.rb +0 -0
  309. data/spec/{app → support}/models/name_only.rb +0 -0
  310. data/spec/{app → support}/models/node.rb +0 -0
  311. data/spec/{app → support}/models/note.rb +0 -0
  312. data/spec/{app → support}/models/odd.rb +0 -0
  313. data/spec/{app → support}/models/ordered_post.rb +0 -0
  314. data/spec/{app → support}/models/ordered_preference.rb +0 -0
  315. data/spec/{app → support}/models/oscar.rb +0 -0
  316. data/spec/{app → support}/models/other_owner_object.rb +0 -0
  317. data/spec/{app → support}/models/override.rb +0 -0
  318. data/spec/{app → support}/models/ownable.rb +0 -0
  319. data/spec/{app → support}/models/owner.rb +2 -0
  320. data/spec/{app → support}/models/pack.rb +0 -0
  321. data/spec/{app → support}/models/page.rb +0 -0
  322. data/spec/{app → support}/models/page_question.rb +0 -0
  323. data/spec/{app → support}/models/palette.rb +1 -1
  324. data/spec/{app → support}/models/parent.rb +0 -0
  325. data/spec/{app → support}/models/parent_doc.rb +0 -0
  326. data/spec/{app → support}/models/passport.rb +0 -0
  327. data/spec/{app → support}/models/patient.rb +0 -0
  328. data/spec/{app → support}/models/pdf_writer.rb +0 -0
  329. data/spec/{app → support}/models/pencil.rb +0 -0
  330. data/spec/{app → support}/models/person.rb +1 -12
  331. data/spec/{app → support}/models/pet.rb +0 -0
  332. data/spec/{app → support}/models/pet_owner.rb +0 -0
  333. data/spec/{app → support}/models/phone.rb +0 -0
  334. data/spec/support/models/piano.rb +5 -0
  335. data/spec/{app → support}/models/pizza.rb +0 -0
  336. data/spec/{app → support}/models/player.rb +0 -0
  337. data/spec/{app → support}/models/post.rb +0 -0
  338. data/spec/{app → support}/models/post_genre.rb +0 -0
  339. data/spec/{app → support}/models/powerup.rb +0 -0
  340. data/spec/{app → support}/models/preference.rb +0 -0
  341. data/spec/{app → support}/models/princess.rb +0 -0
  342. data/spec/{app → support}/models/product.rb +0 -0
  343. data/spec/support/models/profile.rb +18 -0
  344. data/spec/{app → support}/models/pronunciation.rb +0 -0
  345. data/spec/{app → support}/models/pub.rb +0 -0
  346. data/spec/{app → support}/models/publication/encyclopedia.rb +0 -0
  347. data/spec/{app → support}/models/publication/review.rb +0 -0
  348. data/spec/support/models/publication.rb +5 -0
  349. data/spec/{app → support}/models/purchase.rb +0 -0
  350. data/spec/{app → support}/models/question.rb +0 -0
  351. data/spec/{app → support}/models/quiz.rb +0 -0
  352. data/spec/{app → support}/models/rating.rb +0 -0
  353. data/spec/{app → support}/models/record.rb +0 -0
  354. data/spec/{app → support}/models/registry.rb +0 -0
  355. data/spec/{app → support}/models/role.rb +0 -0
  356. data/spec/{app → support}/models/root_category.rb +0 -0
  357. data/spec/{app → support}/models/sandwich.rb +0 -0
  358. data/spec/{app → support}/models/scheduler.rb +0 -0
  359. data/spec/{app/models/profile.rb → support/models/scribe.rb} +2 -2
  360. data/spec/support/models/seat.rb +25 -0
  361. data/spec/{app → support}/models/seo.rb +0 -0
  362. data/spec/{app → support}/models/series.rb +0 -1
  363. data/spec/{app → support}/models/server.rb +0 -0
  364. data/spec/{app → support}/models/service.rb +0 -0
  365. data/spec/{app → support}/models/shape.rb +2 -2
  366. data/spec/{app → support}/models/shelf.rb +0 -0
  367. data/spec/{app → support}/models/shipment_address.rb +0 -0
  368. data/spec/{app → support}/models/shipping_container.rb +0 -0
  369. data/spec/{app → support}/models/shipping_pack.rb +0 -0
  370. data/spec/{app → support}/models/shop.rb +0 -0
  371. data/spec/{app → support}/models/short_agent.rb +0 -0
  372. data/spec/{app → support}/models/short_quiz.rb +0 -0
  373. data/spec/{app → support}/models/simple.rb +0 -0
  374. data/spec/{app → support}/models/slave.rb +0 -0
  375. data/spec/{app → support}/models/song.rb +0 -0
  376. data/spec/{app → support}/models/sound.rb +0 -0
  377. data/spec/{app → support}/models/square.rb +0 -0
  378. data/spec/{app → support}/models/staff.rb +0 -0
  379. data/spec/{app → support}/models/store_as_dup_test1.rb +0 -0
  380. data/spec/{app → support}/models/store_as_dup_test2.rb +0 -0
  381. data/spec/{app → support}/models/store_as_dup_test3.rb +0 -0
  382. data/spec/{app → support}/models/store_as_dup_test4.rb +0 -0
  383. data/spec/{app → support}/models/strategy.rb +0 -0
  384. data/spec/{app → support}/models/sub_item.rb +0 -0
  385. data/spec/{app → support}/models/subscription.rb +0 -0
  386. data/spec/{app → support}/models/survey.rb +0 -0
  387. data/spec/{app → support}/models/symptom.rb +0 -0
  388. data/spec/support/models/system_role.rb +7 -0
  389. data/spec/{app → support}/models/tag.rb +0 -0
  390. data/spec/{app → support}/models/target.rb +0 -0
  391. data/spec/{app → support}/models/template.rb +0 -0
  392. data/spec/{app → support}/models/thing.rb +0 -0
  393. data/spec/{app → support}/models/title.rb +0 -0
  394. data/spec/{app → support}/models/tool.rb +2 -2
  395. data/spec/{app → support}/models/topping.rb +0 -0
  396. data/spec/support/models/toy.rb +10 -0
  397. data/spec/{app → support}/models/track.rb +0 -0
  398. data/spec/{app → support}/models/translation.rb +0 -0
  399. data/spec/{app → support}/models/tree.rb +0 -0
  400. data/spec/{app → support}/models/truck.rb +2 -0
  401. data/spec/{app → support}/models/updatable.rb +0 -0
  402. data/spec/{app → support}/models/user.rb +0 -0
  403. data/spec/{app → support}/models/user_account.rb +0 -0
  404. data/spec/{app → support}/models/validation_callback.rb +0 -0
  405. data/spec/{app → support}/models/vehicle.rb +7 -2
  406. data/spec/{app → support}/models/version.rb +0 -0
  407. data/spec/{app → support}/models/vertex.rb +0 -0
  408. data/spec/{app → support}/models/vet_visit.rb +0 -0
  409. data/spec/{app → support}/models/video.rb +0 -0
  410. data/spec/{app → support}/models/video_game.rb +0 -0
  411. data/spec/{app → support}/models/weapon.rb +0 -0
  412. data/spec/{app → support}/models/wiki_page.rb +0 -1
  413. data/spec/{app → support}/models/word.rb +0 -0
  414. data/spec/{app → support}/models/word_origin.rb +0 -0
  415. data/spec/{app → support}/models/writer.rb +2 -2
  416. data/spec/support/spec_config.rb +1 -9
  417. data/spec/support/spec_organizer.rb +130 -0
  418. data.tar.gz.sig +0 -0
  419. metadata +847 -844
  420. metadata.gz.sig +0 -0
  421. data/lib/mongoid/errors/empty_config_file.rb +0 -26
  422. data/lib/mongoid/errors/invalid_config_file.rb +0 -26
  423. data/lib/mongoid/matchable/all.rb +0 -30
  424. data/lib/mongoid/matchable/and.rb +0 -32
  425. data/lib/mongoid/matchable/default.rb +0 -121
  426. data/lib/mongoid/matchable/elem_match.rb +0 -36
  427. data/lib/mongoid/matchable/eq.rb +0 -23
  428. data/lib/mongoid/matchable/exists.rb +0 -25
  429. data/lib/mongoid/matchable/gt.rb +0 -25
  430. data/lib/mongoid/matchable/gte.rb +0 -25
  431. data/lib/mongoid/matchable/in.rb +0 -26
  432. data/lib/mongoid/matchable/lt.rb +0 -25
  433. data/lib/mongoid/matchable/lte.rb +0 -25
  434. data/lib/mongoid/matchable/ne.rb +0 -23
  435. data/lib/mongoid/matchable/nin.rb +0 -24
  436. data/lib/mongoid/matchable/nor.rb +0 -38
  437. data/lib/mongoid/matchable/or.rb +0 -35
  438. data/lib/mongoid/matchable/regexp.rb +0 -30
  439. data/lib/mongoid/matchable/size.rb +0 -23
  440. data/spec/app/models/customer.rb +0 -11
  441. data/spec/app/models/customer_address.rb +0 -12
  442. data/spec/app/models/publication.rb +0 -5
  443. data/spec/integration/associations/embeds_many_spec.rb +0 -24
  444. data/spec/integration/associations/embeds_one_spec.rb +0 -24
  445. data/spec/integration/callbacks_models.rb +0 -49
  446. data/spec/integration/callbacks_spec.rb +0 -216
  447. data/spec/integration/contextual/empty_spec.rb +0 -142
  448. data/spec/mongoid/errors/invalid_config_file_spec.rb +0 -32
  449. data/spec/mongoid/matchable/all_spec.rb +0 -34
  450. data/spec/mongoid/matchable/and_spec.rb +0 -190
  451. data/spec/mongoid/matchable/default_spec.rb +0 -140
  452. data/spec/mongoid/matchable/elem_match_spec.rb +0 -109
  453. data/spec/mongoid/matchable/eq_spec.rb +0 -49
  454. data/spec/mongoid/matchable/exists_spec.rb +0 -60
  455. data/spec/mongoid/matchable/gt_spec.rb +0 -89
  456. data/spec/mongoid/matchable/gte_spec.rb +0 -87
  457. data/spec/mongoid/matchable/in_spec.rb +0 -52
  458. data/spec/mongoid/matchable/lt_spec.rb +0 -88
  459. data/spec/mongoid/matchable/lte_spec.rb +0 -88
  460. data/spec/mongoid/matchable/ne_spec.rb +0 -49
  461. data/spec/mongoid/matchable/nin_spec.rb +0 -51
  462. data/spec/mongoid/matchable/nor_spec.rb +0 -210
  463. data/spec/mongoid/matchable/or_spec.rb +0 -134
  464. data/spec/mongoid/matchable/regexp_spec.rb +0 -62
  465. data/spec/mongoid/matchable/size_spec.rb +0 -28
  466. data/spec/mongoid/matchable_spec.rb +0 -856
  467. data/spec/shared/LICENSE +0 -20
  468. data/spec/shared/bin/get-mongodb-download-url +0 -17
  469. data/spec/shared/bin/s3-copy +0 -45
  470. data/spec/shared/bin/s3-upload +0 -69
  471. data/spec/shared/lib/mrss/child_process_helper.rb +0 -80
  472. data/spec/shared/lib/mrss/cluster_config.rb +0 -226
  473. data/spec/shared/lib/mrss/constraints.rb +0 -385
  474. data/spec/shared/lib/mrss/docker_runner.rb +0 -271
  475. data/spec/shared/lib/mrss/event_subscriber.rb +0 -200
  476. data/spec/shared/lib/mrss/lite_constraints.rb +0 -191
  477. data/spec/shared/lib/mrss/server_version_registry.rb +0 -120
  478. data/spec/shared/lib/mrss/spec_organizer.rb +0 -179
  479. data/spec/shared/lib/mrss/utils.rb +0 -15
  480. data/spec/shared/share/Dockerfile.erb +0 -323
  481. data/spec/shared/share/haproxy-1.conf +0 -16
  482. data/spec/shared/share/haproxy-2.conf +0 -17
  483. data/spec/shared/shlib/distro.sh +0 -73
  484. data/spec/shared/shlib/server.sh +0 -367
  485. data/spec/shared/shlib/set_env.sh +0 -131
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
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
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
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -13,14 +13,4 @@ class Mop
13
13
  # transformed differently based on the type of field being queried.
14
14
  field :int_field, type: Integer
15
15
  field :array_field, type: Array
16
- field :date_field, type: Date
17
- field :time_field, type: Time
18
- field :datetime_field, type: DateTime
19
- field :big_decimal_field, type: BigDecimal
20
- field :decimal128_field, type: BSON::Decimal128
21
- field :symbol_field, type: Symbol
22
- field :bson_symbol_field, type: BSON::Symbol::Raw
23
- field :regexp_field, type: Regexp
24
- field :bson_regexp_field, type: BSON::Regexp::Raw
25
16
  end
26
-
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,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
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
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -80,7 +80,6 @@ class Person
80
80
  end
81
81
  embeds_one :quiz, validate: false
82
82
 
83
- # Must have dependent: :destroy
84
83
  has_one :game, dependent: :destroy, validate: false do
85
84
  def extension
86
85
  "Testing"
@@ -106,7 +105,6 @@ class Person
106
105
  has_and_belongs_to_many :ordered_preferences, order: :value.desc, validate: false
107
106
 
108
107
  has_many :drugs, validate: false
109
- # Must not have dependent: :destroy
110
108
  has_one :account, validate: false
111
109
  has_one :cat, dependent: :nullify, validate: false, primary_key: :username
112
110
  has_one :book, autobuild: true, validate: false
@@ -136,10 +134,6 @@ class Person
136
134
  scope :without_ssn, ->{ without(:ssn) }
137
135
  scope :search, ->(query){ any_of({ title: query }) }
138
136
 
139
- def self.older_than(age:)
140
- where(:age.gt => age)
141
- end
142
-
143
137
  def score_with_rescoring=(score)
144
138
  @rescored = score.to_i + 20
145
139
  self.score_without_rescoring = score
@@ -210,15 +204,10 @@ class Person
210
204
  self.map_with_default["key"] = value
211
205
  end
212
206
 
213
- def set_personal_data(ssn:, age:)
214
- self.ssn = ssn
215
- self.age = age
216
- end
217
-
218
207
  reset_callbacks(:validate)
219
208
  reset_callbacks(:create)
220
209
  reset_callbacks(:save)
221
210
  reset_callbacks(:destroy)
222
211
  end
223
212
 
224
- require "app/models/doctor"
213
+ require "support/models/doctor"
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 Piano < Instrument
5
+ 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
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+ # encoding: utf-8
3
+
4
+ class Profile
5
+ include Mongoid::Document
6
+ field :name, type: String
7
+
8
+ embeds_one :profile_image
9
+
10
+ shard_key :name
11
+ end
12
+
13
+ class ProfileImage
14
+ include Mongoid::Document
15
+ field :url, type: String
16
+
17
+ embedded_in :profile
18
+ end
File without changes
File without changes
File without changes
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+ # encoding: utf-8
3
+
4
+ require 'support/models/publication/encyclopedia'
5
+ require 'support/models/publication/review'
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
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
  # encoding: utf-8
3
3
 
4
- class Profile
4
+ class Scribe
5
5
  include Mongoid::Document
6
6
  field :name, type: String
7
- shard_key :name
7
+ embedded_in :owner
8
8
  end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+ # encoding: utf-8
3
+
4
+ class Seat
5
+ include Mongoid::Document
6
+
7
+ embedded_in :vehicle
8
+
9
+ field :rating, type: Integer
10
+
11
+ embeds_many :armrests
12
+
13
+ before_create :set_rating
14
+ before_update :update_rating
15
+
16
+ private
17
+
18
+ def set_rating
19
+ self.rating ||= 100
20
+ end
21
+
22
+ def update_rating
23
+ self.rating += 1
24
+ end
25
+ end
File without changes
@@ -3,6 +3,5 @@
3
3
 
4
4
  class Series
5
5
  include Mongoid::Document
6
- # Must not have dependent: :destroy
7
6
  has_many :books
8
7
  end
File without changes
File without changes
@@ -11,5 +11,5 @@ class Shape
11
11
  def render; end
12
12
  end
13
13
 
14
- require "app/models/circle"
15
- require "app/models/square"
14
+ require "support/models/circle"
15
+ require "support/models/square"
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
File without changes
File without changes
File without changes
@@ -0,0 +1,7 @@
1
+ class SystemRole
2
+ include Mongoid::Document
3
+
4
+ # NOTE: this model is for test purposes only. It is not recommended that you
5
+ # store Mongoid documents in system collections.
6
+ store_in collection: "system.roles", database: "admin"
7
+ end
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -7,5 +7,5 @@ class Tool
7
7
  accepts_nested_attributes_for :palette
8
8
  end
9
9
 
10
- require "app/models/eraser"
11
- require "app/models/pencil"
10
+ require "support/models/eraser"
11
+ require "support/models/pencil"
File without changes
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+ # encoding: utf-8
3
+
4
+ class Toy
5
+ include Mongoid::Document
6
+
7
+ embedded_in :crate
8
+
9
+ field :name
10
+ end
File without changes
File without changes
File without changes
@@ -3,4 +3,6 @@
3
3
 
4
4
  class Truck < Vehicle
5
5
  embeds_one :bed
6
+
7
+ field :capacity, type: Integer
6
8
  end
File without changes
File without changes
File without changes
File without changes
@@ -3,12 +3,17 @@
3
3
 
4
4
  class Vehicle
5
5
  include Mongoid::Document
6
+
6
7
  belongs_to :shipping_container
7
8
  belongs_to :driver
8
9
 
10
+ embeds_many :crates
11
+ embeds_many :seats, cascade_callbacks: true
12
+
9
13
  accepts_nested_attributes_for :driver
10
14
  accepts_nested_attributes_for :shipping_container
15
+ accepts_nested_attributes_for :crates
11
16
  end
12
17
 
13
- require "app/models/car"
14
- require "app/models/truck"
18
+ require "support/models/car"
19
+ require "support/models/truck"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes