mongoid 7.5.4 → 8.1.3

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 (421) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/CHANGELOG.md +3 -3
  4. data/README.md +6 -6
  5. data/lib/config/locales/en.yml +92 -43
  6. data/lib/mongoid/association/accessors.rb +40 -11
  7. data/lib/mongoid/association/bindable.rb +50 -2
  8. data/lib/mongoid/association/builders.rb +5 -3
  9. data/lib/mongoid/association/constrainable.rb +0 -1
  10. data/lib/mongoid/association/eager_loadable.rb +29 -7
  11. data/lib/mongoid/association/embedded/batchable.rb +34 -11
  12. data/lib/mongoid/association/embedded/cyclic.rb +1 -1
  13. data/lib/mongoid/association/embedded/embedded_in/binding.rb +24 -2
  14. data/lib/mongoid/association/embedded/embedded_in/buildable.rb +2 -2
  15. data/lib/mongoid/association/embedded/embedded_in/proxy.rb +4 -3
  16. data/lib/mongoid/association/embedded/embedded_in.rb +3 -2
  17. data/lib/mongoid/association/embedded/embeds_many/binding.rb +1 -0
  18. data/lib/mongoid/association/embedded/embeds_many/buildable.rb +4 -3
  19. data/lib/mongoid/association/embedded/embeds_many/proxy.rb +69 -45
  20. data/lib/mongoid/association/embedded/embeds_many.rb +2 -2
  21. data/lib/mongoid/association/embedded/embeds_one/buildable.rb +19 -5
  22. data/lib/mongoid/association/embedded/embeds_one/proxy.rb +24 -5
  23. data/lib/mongoid/association/embedded/embeds_one.rb +3 -3
  24. data/lib/mongoid/association/macros.rb +8 -1
  25. data/lib/mongoid/association/many.rb +11 -7
  26. data/lib/mongoid/association/nested/many.rb +5 -4
  27. data/lib/mongoid/association/nested/nested_buildable.rb +4 -4
  28. data/lib/mongoid/association/nested/one.rb +45 -7
  29. data/lib/mongoid/association/one.rb +2 -2
  30. data/lib/mongoid/association/options.rb +9 -9
  31. data/lib/mongoid/association/proxy.rb +15 -4
  32. data/lib/mongoid/association/referenced/auto_save.rb +4 -3
  33. data/lib/mongoid/association/referenced/belongs_to/binding.rb +1 -0
  34. data/lib/mongoid/association/referenced/belongs_to/buildable.rb +1 -1
  35. data/lib/mongoid/association/referenced/belongs_to/proxy.rb +5 -6
  36. data/lib/mongoid/association/referenced/belongs_to.rb +2 -2
  37. data/lib/mongoid/association/referenced/counter_cache.rb +10 -10
  38. data/lib/mongoid/association/referenced/eager.rb +2 -2
  39. data/lib/mongoid/association/referenced/has_and_belongs_to_many/proxy.rb +70 -13
  40. data/lib/mongoid/association/referenced/has_and_belongs_to_many.rb +6 -3
  41. data/lib/mongoid/association/referenced/has_many/enumerable.rb +22 -30
  42. data/lib/mongoid/association/referenced/has_many/proxy.rb +29 -19
  43. data/lib/mongoid/association/referenced/has_many.rb +3 -3
  44. data/lib/mongoid/association/referenced/has_one/buildable.rb +1 -1
  45. data/lib/mongoid/association/referenced/has_one/nested_builder.rb +5 -5
  46. data/lib/mongoid/association/referenced/has_one/proxy.rb +9 -12
  47. data/lib/mongoid/association/referenced/has_one.rb +3 -3
  48. data/lib/mongoid/association/referenced/syncable.rb +4 -4
  49. data/lib/mongoid/association/reflections.rb +4 -4
  50. data/lib/mongoid/association/relatable.rb +44 -10
  51. data/lib/mongoid/association.rb +5 -5
  52. data/lib/mongoid/atomic/modifiers.rb +2 -2
  53. data/lib/mongoid/atomic.rb +7 -0
  54. data/lib/mongoid/attributes/dynamic.rb +4 -4
  55. data/lib/mongoid/attributes/nested.rb +6 -6
  56. data/lib/mongoid/attributes/processing.rb +37 -6
  57. data/lib/mongoid/attributes/projector.rb +2 -2
  58. data/lib/mongoid/attributes/readonly.rb +3 -3
  59. data/lib/mongoid/attributes.rb +51 -42
  60. data/lib/mongoid/changeable.rb +147 -14
  61. data/lib/mongoid/clients/options.rb +5 -1
  62. data/lib/mongoid/clients/sessions.rb +2 -14
  63. data/lib/mongoid/clients/storage_options.rb +2 -5
  64. data/lib/mongoid/clients/validators/storage.rb +3 -15
  65. data/lib/mongoid/collection_configurable.rb +58 -0
  66. data/lib/mongoid/composable.rb +2 -0
  67. data/lib/mongoid/config/defaults.rb +60 -0
  68. data/lib/mongoid/config/options.rb +3 -0
  69. data/lib/mongoid/config/validators/async_query_executor.rb +24 -0
  70. data/lib/mongoid/config/validators/client.rb +6 -6
  71. data/lib/mongoid/config/validators.rb +1 -0
  72. data/lib/mongoid/config.rb +153 -18
  73. data/lib/mongoid/contextual/aggregable/memory.rb +24 -16
  74. data/lib/mongoid/contextual/aggregable/mongo.rb +5 -5
  75. data/lib/mongoid/contextual/aggregable/none.rb +1 -1
  76. data/lib/mongoid/contextual/atomic.rb +1 -1
  77. data/lib/mongoid/contextual/geo_near.rb +7 -7
  78. data/lib/mongoid/contextual/map_reduce.rb +2 -2
  79. data/lib/mongoid/contextual/memory.rb +285 -58
  80. data/lib/mongoid/contextual/mongo/documents_loader.rb +177 -0
  81. data/lib/mongoid/contextual/mongo.rb +540 -346
  82. data/lib/mongoid/contextual/none.rb +193 -20
  83. data/lib/mongoid/contextual/queryable.rb +1 -1
  84. data/lib/mongoid/contextual.rb +14 -2
  85. data/lib/mongoid/copyable.rb +32 -8
  86. data/lib/mongoid/criteria/findable.rb +8 -5
  87. data/lib/mongoid/criteria/includable.rb +27 -22
  88. data/lib/mongoid/criteria/marshalable.rb +10 -2
  89. data/lib/mongoid/criteria/permission.rb +1 -1
  90. data/lib/mongoid/criteria/queryable/aggregable.rb +2 -2
  91. data/lib/mongoid/criteria/queryable/extensions/array.rb +3 -16
  92. data/lib/mongoid/criteria/queryable/extensions/big_decimal.rb +25 -4
  93. data/lib/mongoid/criteria/queryable/extensions/boolean.rb +2 -2
  94. data/lib/mongoid/criteria/queryable/extensions/date.rb +6 -1
  95. data/lib/mongoid/criteria/queryable/extensions/date_time.rb +6 -1
  96. data/lib/mongoid/criteria/queryable/extensions/hash.rb +1 -17
  97. data/lib/mongoid/criteria/queryable/extensions/numeric.rb +1 -9
  98. data/lib/mongoid/criteria/queryable/extensions/object.rb +2 -1
  99. data/lib/mongoid/criteria/queryable/extensions/range.rb +13 -5
  100. data/lib/mongoid/criteria/queryable/extensions/regexp.rb +3 -3
  101. data/lib/mongoid/criteria/queryable/extensions/set.rb +1 -1
  102. data/lib/mongoid/criteria/queryable/extensions/string.rb +4 -14
  103. data/lib/mongoid/criteria/queryable/extensions/symbol.rb +4 -12
  104. data/lib/mongoid/criteria/queryable/extensions/time.rb +6 -1
  105. data/lib/mongoid/criteria/queryable/extensions/time_with_zone.rb +6 -1
  106. data/lib/mongoid/criteria/queryable/key.rb +4 -4
  107. data/lib/mongoid/criteria/queryable/mergeable.rb +1 -1
  108. data/lib/mongoid/criteria/queryable/optional.rb +11 -17
  109. data/lib/mongoid/criteria/queryable/options.rb +2 -2
  110. data/lib/mongoid/criteria/queryable/pipeline.rb +1 -1
  111. data/lib/mongoid/criteria/queryable/selectable.rb +47 -38
  112. data/lib/mongoid/criteria/queryable/selector.rb +92 -7
  113. data/lib/mongoid/criteria/queryable/smash.rb +40 -7
  114. data/lib/mongoid/criteria/queryable.rb +12 -7
  115. data/lib/mongoid/criteria/scopable.rb +2 -2
  116. data/lib/mongoid/criteria/translator.rb +45 -0
  117. data/lib/mongoid/criteria.rb +20 -40
  118. data/lib/mongoid/deprecable.rb +37 -0
  119. data/lib/mongoid/deprecation.rb +25 -0
  120. data/lib/mongoid/document.rb +127 -35
  121. data/lib/mongoid/equality.rb +8 -8
  122. data/lib/mongoid/errors/create_collection_failure.rb +33 -0
  123. data/lib/mongoid/errors/document_not_found.rb +10 -6
  124. data/lib/mongoid/errors/drop_collection_failure.rb +27 -0
  125. data/lib/mongoid/errors/immutable_attribute.rb +26 -0
  126. data/lib/mongoid/errors/invalid_async_query_executor.rb +25 -0
  127. data/lib/mongoid/errors/invalid_config_option.rb +1 -1
  128. data/lib/mongoid/errors/invalid_dependent_strategy.rb +1 -1
  129. data/lib/mongoid/errors/invalid_dot_dollar_assignment.rb +23 -0
  130. data/lib/mongoid/errors/invalid_field.rb +6 -2
  131. data/lib/mongoid/errors/invalid_field_type.rb +26 -0
  132. data/lib/mongoid/errors/invalid_global_executor_concurrency.rb +22 -0
  133. data/lib/mongoid/errors/invalid_relation.rb +1 -1
  134. data/lib/mongoid/errors/invalid_relation_option.rb +1 -1
  135. data/lib/mongoid/errors/invalid_session_use.rb +1 -1
  136. data/lib/mongoid/errors/invalid_storage_options.rb +1 -1
  137. data/lib/mongoid/errors/invalid_storage_parent.rb +2 -0
  138. data/lib/mongoid/errors/mongoid_error.rb +3 -3
  139. data/lib/mongoid/errors/nested_attributes_metadata_not_found.rb +1 -1
  140. data/lib/mongoid/errors/no_client_database.rb +1 -1
  141. data/lib/mongoid/errors/no_client_hosts.rb +1 -1
  142. data/lib/mongoid/errors/readonly_attribute.rb +1 -1
  143. data/lib/mongoid/errors/too_many_nested_attribute_records.rb +1 -1
  144. data/lib/mongoid/errors/unknown_attribute.rb +1 -1
  145. data/lib/mongoid/errors.rb +6 -3
  146. data/lib/mongoid/extensions/array.rb +9 -7
  147. data/lib/mongoid/extensions/big_decimal.rb +33 -10
  148. data/lib/mongoid/extensions/binary.rb +42 -0
  149. data/lib/mongoid/extensions/boolean.rb +8 -2
  150. data/lib/mongoid/extensions/date.rb +26 -20
  151. data/lib/mongoid/extensions/date_time.rb +1 -1
  152. data/lib/mongoid/extensions/false_class.rb +1 -1
  153. data/lib/mongoid/extensions/float.rb +7 -4
  154. data/lib/mongoid/extensions/hash.rb +37 -8
  155. data/lib/mongoid/extensions/integer.rb +7 -4
  156. data/lib/mongoid/extensions/module.rb +1 -1
  157. data/lib/mongoid/extensions/object.rb +10 -8
  158. data/lib/mongoid/extensions/range.rb +41 -10
  159. data/lib/mongoid/extensions/regexp.rb +11 -4
  160. data/lib/mongoid/extensions/set.rb +11 -4
  161. data/lib/mongoid/extensions/string.rb +11 -22
  162. data/lib/mongoid/extensions/symbol.rb +4 -15
  163. data/lib/mongoid/extensions/time.rb +29 -16
  164. data/lib/mongoid/extensions/time_with_zone.rb +1 -2
  165. data/lib/mongoid/extensions/true_class.rb +1 -1
  166. data/lib/mongoid/extensions.rb +1 -0
  167. data/lib/mongoid/factory.rb +55 -7
  168. data/lib/mongoid/fields/foreign_key.rb +11 -4
  169. data/lib/mongoid/fields/localized.rb +19 -4
  170. data/lib/mongoid/fields/standard.rb +17 -7
  171. data/lib/mongoid/fields/validators/macro.rb +3 -9
  172. data/lib/mongoid/fields.rb +129 -20
  173. data/lib/mongoid/findable.rb +54 -24
  174. data/lib/mongoid/indexable/specification.rb +2 -2
  175. data/lib/mongoid/indexable/validators/options.rb +6 -2
  176. data/lib/mongoid/interceptable.rb +188 -16
  177. data/lib/mongoid/matchable.rb +1 -1
  178. data/lib/mongoid/matcher/eq_impl.rb +1 -1
  179. data/lib/mongoid/matcher/type.rb +1 -1
  180. data/lib/mongoid/matcher.rb +33 -13
  181. data/lib/mongoid/persistable/creatable.rb +19 -9
  182. data/lib/mongoid/persistable/deletable.rb +2 -2
  183. data/lib/mongoid/persistable/destroyable.rb +1 -1
  184. data/lib/mongoid/persistable/savable.rb +14 -2
  185. data/lib/mongoid/persistable/unsettable.rb +2 -2
  186. data/lib/mongoid/persistable/updatable.rb +69 -12
  187. data/lib/mongoid/persistable/upsertable.rb +21 -2
  188. data/lib/mongoid/persistable.rb +6 -3
  189. data/lib/mongoid/persistence_context.rb +6 -4
  190. data/lib/mongoid/query_cache.rb +13 -261
  191. data/lib/mongoid/railties/controller_runtime.rb +1 -1
  192. data/lib/mongoid/railties/database.rake +7 -2
  193. data/lib/mongoid/reloadable.rb +10 -8
  194. data/lib/mongoid/scopable.rb +15 -13
  195. data/lib/mongoid/selectable.rb +1 -2
  196. data/lib/mongoid/serializable.rb +10 -6
  197. data/lib/mongoid/stateful.rb +57 -10
  198. data/lib/mongoid/tasks/database.rake +12 -0
  199. data/lib/mongoid/tasks/database.rb +20 -2
  200. data/lib/mongoid/threaded/lifecycle.rb +5 -5
  201. data/lib/mongoid/threaded.rb +42 -12
  202. data/lib/mongoid/timestamps/created.rb +1 -1
  203. data/lib/mongoid/timestamps/updated.rb +2 -2
  204. data/lib/mongoid/touchable.rb +2 -3
  205. data/lib/mongoid/traversable.rb +5 -4
  206. data/lib/mongoid/utils.rb +22 -0
  207. data/lib/mongoid/validatable/localizable.rb +1 -1
  208. data/lib/mongoid/validatable/macros.rb +5 -7
  209. data/lib/mongoid/validatable/presence.rb +2 -2
  210. data/lib/mongoid/validatable/uniqueness.rb +9 -8
  211. data/lib/mongoid/validatable.rb +9 -6
  212. data/lib/mongoid/version.rb +1 -1
  213. data/lib/mongoid/warnings.rb +19 -4
  214. data/lib/mongoid.rb +17 -3
  215. data/spec/config/mongoid.yml +16 -0
  216. data/spec/integration/app_spec.rb +10 -14
  217. data/spec/integration/associations/belongs_to_spec.rb +18 -0
  218. data/spec/integration/associations/embedded_spec.rb +15 -0
  219. data/spec/integration/associations/embeds_many_spec.rb +15 -2
  220. data/spec/integration/associations/embeds_one_spec.rb +18 -0
  221. data/spec/integration/associations/foreign_key_spec.rb +9 -0
  222. data/spec/integration/associations/has_and_belongs_to_many_spec.rb +21 -0
  223. data/spec/integration/associations/has_one_spec.rb +97 -1
  224. data/spec/integration/associations/scope_option_spec.rb +1 -1
  225. data/spec/integration/callbacks_models.rb +132 -1
  226. data/spec/integration/callbacks_spec.rb +381 -4
  227. data/spec/integration/criteria/range_spec.rb +95 -1
  228. data/spec/integration/discriminator_key_spec.rb +118 -80
  229. data/spec/integration/dots_and_dollars_spec.rb +277 -0
  230. data/spec/integration/i18n_fallbacks_spec.rb +3 -32
  231. data/spec/integration/matcher_examples_spec.rb +20 -13
  232. data/spec/integration/matcher_operator_data/type_decimal.yml +3 -2
  233. data/spec/integration/matcher_operator_spec.rb +3 -5
  234. data/spec/integration/persistence/range_field_spec.rb +350 -0
  235. data/spec/mongoid/association/counter_cache_spec.rb +1 -1
  236. data/spec/mongoid/association/depending_spec.rb +9 -9
  237. data/spec/mongoid/association/eager_spec.rb +2 -1
  238. data/spec/mongoid/association/embedded/embedded_in/binding_spec.rb +2 -1
  239. data/spec/mongoid/association/embedded/embedded_in/buildable_spec.rb +54 -0
  240. data/spec/mongoid/association/embedded/embedded_in/proxy_spec.rb +96 -9
  241. data/spec/mongoid/association/embedded/embeds_many/buildable_spec.rb +112 -0
  242. data/spec/mongoid/association/embedded/embeds_many/proxy_spec.rb +255 -65
  243. data/spec/mongoid/association/embedded/embeds_many_models.rb +37 -0
  244. data/spec/mongoid/association/embedded/embeds_many_query_spec.rb +12 -0
  245. data/spec/mongoid/association/embedded/embeds_many_spec.rb +68 -0
  246. data/spec/mongoid/association/embedded/embeds_one/buildable_spec.rb +25 -0
  247. data/spec/mongoid/association/embedded/embeds_one/proxy_spec.rb +15 -2
  248. data/spec/mongoid/association/embedded/embeds_one_models.rb +19 -0
  249. data/spec/mongoid/association/embedded/embeds_one_spec.rb +28 -0
  250. data/spec/mongoid/association/referenced/belongs_to/binding_spec.rb +2 -1
  251. data/spec/mongoid/association/referenced/belongs_to/buildable_spec.rb +54 -0
  252. data/spec/mongoid/association/referenced/belongs_to/proxy_spec.rb +15 -0
  253. data/spec/mongoid/association/referenced/belongs_to_models.rb +11 -0
  254. data/spec/mongoid/association/referenced/belongs_to_spec.rb +4 -20
  255. data/spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_spec.rb +186 -229
  256. data/spec/mongoid/association/referenced/has_and_belongs_to_many_models.rb +25 -0
  257. data/spec/mongoid/association/referenced/has_and_belongs_to_many_spec.rb +35 -2
  258. data/spec/mongoid/association/referenced/has_many/buildable_spec.rb +109 -0
  259. data/spec/mongoid/association/referenced/has_many/enumerable_spec.rb +2 -56
  260. data/spec/mongoid/association/referenced/has_many/proxy_spec.rb +173 -177
  261. data/spec/mongoid/association/referenced/has_many_models.rb +3 -1
  262. data/spec/mongoid/association/referenced/has_many_spec.rb +25 -0
  263. data/spec/mongoid/association/referenced/has_one/buildable_spec.rb +2 -2
  264. data/spec/mongoid/association/referenced/has_one/proxy_spec.rb +107 -1
  265. data/spec/mongoid/association/referenced/has_one_models.rb +16 -0
  266. data/spec/mongoid/association/syncable_spec.rb +15 -1
  267. data/spec/mongoid/atomic/paths_spec.rb +0 -14
  268. data/spec/mongoid/attributes/nested_spec.rb +80 -11
  269. data/spec/mongoid/attributes/nested_spec_models.rb +48 -0
  270. data/spec/mongoid/attributes/projector_spec.rb +1 -5
  271. data/spec/mongoid/attributes_spec.rb +510 -33
  272. data/spec/mongoid/changeable_spec.rb +429 -37
  273. data/spec/mongoid/clients/factory_spec.rb +23 -30
  274. data/spec/mongoid/clients/sessions_spec.rb +0 -38
  275. data/spec/mongoid/clients_spec.rb +149 -15
  276. data/spec/mongoid/collection_configurable_spec.rb +158 -0
  277. data/spec/mongoid/config/defaults_spec.rb +160 -0
  278. data/spec/mongoid/config_spec.rb +214 -31
  279. data/spec/mongoid/contextual/aggregable/memory_spec.rb +396 -158
  280. data/spec/mongoid/contextual/aggregable/memory_table.yml +88 -0
  281. data/spec/mongoid/contextual/aggregable/memory_table_spec.rb +62 -0
  282. data/spec/mongoid/contextual/map_reduce_spec.rb +2 -16
  283. data/spec/mongoid/contextual/memory_spec.rb +850 -88
  284. data/spec/mongoid/contextual/mongo/documents_loader_spec.rb +187 -0
  285. data/spec/mongoid/contextual/mongo_spec.rb +2309 -1127
  286. data/spec/mongoid/contextual/none_spec.rb +60 -21
  287. data/spec/mongoid/copyable_spec.rb +453 -11
  288. data/spec/mongoid/criteria/findable_spec.rb +86 -210
  289. data/spec/mongoid/criteria/includable_spec.rb +1492 -0
  290. data/spec/mongoid/criteria/includable_spec_models.rb +54 -0
  291. data/spec/mongoid/criteria/marshalable_spec.rb +18 -1
  292. data/spec/mongoid/criteria/queryable/extensions/array_spec.rb +7 -19
  293. data/spec/mongoid/criteria/queryable/extensions/big_decimal_spec.rb +134 -26
  294. data/spec/mongoid/criteria/queryable/extensions/date_spec.rb +11 -0
  295. data/spec/mongoid/criteria/queryable/extensions/date_time_spec.rb +11 -0
  296. data/spec/mongoid/criteria/queryable/extensions/hash_spec.rb +0 -15
  297. data/spec/mongoid/criteria/queryable/extensions/numeric_spec.rb +73 -7
  298. data/spec/mongoid/criteria/queryable/extensions/string_spec.rb +4 -69
  299. data/spec/mongoid/criteria/queryable/extensions/symbol_spec.rb +0 -59
  300. data/spec/mongoid/criteria/queryable/extensions/time_spec.rb +11 -0
  301. data/spec/mongoid/criteria/queryable/extensions/time_with_zone_spec.rb +11 -0
  302. data/spec/mongoid/criteria/queryable/optional_spec.rb +15 -484
  303. data/spec/mongoid/criteria/queryable/options_spec.rb +1 -1
  304. data/spec/mongoid/criteria/queryable/selectable_logical_spec.rb +469 -0
  305. data/spec/mongoid/criteria/queryable/selectable_spec.rb +78 -86
  306. data/spec/mongoid/criteria/queryable/selector_spec.rb +15 -3
  307. data/spec/mongoid/criteria/translator_spec.rb +132 -0
  308. data/spec/mongoid/criteria_projection_spec.rb +1 -5
  309. data/spec/mongoid/criteria_spec.rb +469 -1205
  310. data/spec/mongoid/document_fields_spec.rb +173 -24
  311. data/spec/mongoid/document_spec.rb +32 -41
  312. data/spec/mongoid/errors/document_not_found_spec.rb +29 -2
  313. data/spec/mongoid/errors/invalid_field_spec.rb +1 -1
  314. data/spec/mongoid/errors/invalid_field_type_spec.rb +55 -0
  315. data/spec/mongoid/errors/mongoid_error_spec.rb +3 -1
  316. data/spec/mongoid/errors/no_environment_spec.rb +3 -3
  317. data/spec/mongoid/errors/readonly_document_spec.rb +2 -2
  318. data/spec/mongoid/errors/too_many_nested_attribute_records_spec.rb +1 -1
  319. data/spec/mongoid/extensions/array_spec.rb +16 -2
  320. data/spec/mongoid/extensions/big_decimal_spec.rb +712 -212
  321. data/spec/mongoid/extensions/binary_spec.rb +44 -9
  322. data/spec/mongoid/extensions/boolean_spec.rb +68 -82
  323. data/spec/mongoid/extensions/date_class_mongoize_spec.rb +7 -3
  324. data/spec/mongoid/extensions/date_spec.rb +71 -1
  325. data/spec/mongoid/extensions/date_time_spec.rb +15 -9
  326. data/spec/mongoid/extensions/float_spec.rb +53 -74
  327. data/spec/mongoid/extensions/hash_spec.rb +33 -3
  328. data/spec/mongoid/extensions/integer_spec.rb +50 -64
  329. data/spec/mongoid/extensions/range_spec.rb +255 -54
  330. data/spec/mongoid/extensions/regexp_spec.rb +58 -33
  331. data/spec/mongoid/extensions/set_spec.rb +106 -0
  332. data/spec/mongoid/extensions/string_spec.rb +53 -25
  333. data/spec/mongoid/extensions/symbol_spec.rb +18 -25
  334. data/spec/mongoid/extensions/time_spec.rb +639 -106
  335. data/spec/mongoid/extensions/time_with_zone_spec.rb +24 -83
  336. data/spec/mongoid/factory_spec.rb +61 -1
  337. data/spec/mongoid/fields/localized_spec.rb +80 -37
  338. data/spec/mongoid/fields_spec.rb +500 -84
  339. data/spec/mongoid/findable_spec.rb +450 -58
  340. data/spec/mongoid/indexable/specification_spec.rb +2 -2
  341. data/spec/mongoid/indexable_spec.rb +55 -30
  342. data/spec/mongoid/interceptable_spec.rb +824 -22
  343. data/spec/mongoid/interceptable_spec_models.rb +235 -4
  344. data/spec/mongoid/matcher/extract_attribute_spec.rb +1 -5
  345. data/spec/mongoid/mongoizable_spec.rb +285 -0
  346. data/spec/mongoid/persistable/creatable_spec.rb +2 -2
  347. data/spec/mongoid/persistable/deletable_spec.rb +28 -8
  348. data/spec/mongoid/persistable/destroyable_spec.rb +28 -8
  349. data/spec/mongoid/persistable/incrementable_spec.rb +37 -0
  350. data/spec/mongoid/persistable/logical_spec.rb +37 -0
  351. data/spec/mongoid/persistable/poppable_spec.rb +36 -0
  352. data/spec/mongoid/persistable/pullable_spec.rb +72 -0
  353. data/spec/mongoid/persistable/pushable_spec.rb +72 -0
  354. data/spec/mongoid/persistable/renamable_spec.rb +36 -0
  355. data/spec/mongoid/persistable/savable_spec.rb +96 -0
  356. data/spec/mongoid/persistable/settable_spec.rb +37 -0
  357. data/spec/mongoid/persistable/unsettable_spec.rb +36 -0
  358. data/spec/mongoid/persistable/updatable_spec.rb +20 -28
  359. data/spec/mongoid/persistable/upsertable_spec.rb +89 -1
  360. data/spec/mongoid/persistence_context_spec.rb +31 -57
  361. data/spec/mongoid/query_cache_middleware_spec.rb +0 -18
  362. data/spec/mongoid/query_cache_spec.rb +56 -215
  363. data/spec/mongoid/reloadable_spec.rb +83 -6
  364. data/spec/mongoid/scopable_spec.rb +91 -1
  365. data/spec/mongoid/serializable_spec.rb +9 -30
  366. data/spec/mongoid/shardable_spec.rb +4 -4
  367. data/spec/mongoid/stateful_spec.rb +150 -8
  368. data/spec/mongoid/tasks/database_rake_spec.rb +74 -0
  369. data/spec/mongoid/tasks/database_spec.rb +127 -0
  370. data/spec/mongoid/timestamps_spec.rb +392 -4
  371. data/spec/mongoid/timestamps_spec_models.rb +67 -0
  372. data/spec/mongoid/touchable_spec.rb +390 -2
  373. data/spec/mongoid/touchable_spec_models.rb +14 -8
  374. data/spec/mongoid/traversable_spec.rb +13 -35
  375. data/spec/mongoid/validatable/presence_spec.rb +1 -1
  376. data/spec/mongoid/validatable/uniqueness_spec.rb +58 -31
  377. data/spec/mongoid/warnings_spec.rb +35 -0
  378. data/spec/mongoid_spec.rb +34 -16
  379. data/spec/rails/controller_extension/controller_runtime_spec.rb +2 -2
  380. data/spec/rails/mongoid_spec.rb +4 -16
  381. data/spec/shared/lib/mrss/docker_runner.rb +8 -0
  382. data/spec/shared/lib/mrss/lite_constraints.rb +2 -2
  383. data/spec/shared/lib/mrss/server_version_registry.rb +16 -23
  384. data/spec/shared/lib/mrss/utils.rb +28 -6
  385. data/spec/shared/share/Dockerfile.erb +36 -40
  386. data/spec/shared/shlib/server.sh +28 -4
  387. data/spec/shared/shlib/set_env.sh +4 -4
  388. data/spec/spec_helper.rb +5 -0
  389. data/spec/support/constraints.rb +24 -0
  390. data/spec/support/immutable_ids.rb +118 -0
  391. data/spec/support/macros.rb +78 -0
  392. data/spec/support/models/artist.rb +0 -1
  393. data/spec/support/models/augmentation.rb +12 -0
  394. data/spec/support/models/band.rb +4 -0
  395. data/spec/support/models/book.rb +1 -0
  396. data/spec/support/models/building.rb +2 -0
  397. data/spec/support/models/catalog.rb +24 -0
  398. data/spec/support/models/circus.rb +3 -0
  399. data/spec/support/models/cover.rb +10 -0
  400. data/spec/support/models/fanatic.rb +8 -0
  401. data/spec/support/models/implant.rb +9 -0
  402. data/spec/support/models/label.rb +2 -0
  403. data/spec/support/models/passport.rb +9 -0
  404. data/spec/support/models/person.rb +2 -0
  405. data/spec/support/models/player.rb +2 -0
  406. data/spec/support/models/powerup.rb +12 -0
  407. data/spec/support/models/product.rb +1 -0
  408. data/spec/support/models/purse.rb +9 -0
  409. data/spec/support/models/registry.rb +1 -0
  410. data/spec/support/models/school.rb +14 -0
  411. data/spec/support/models/shield.rb +18 -0
  412. data/spec/support/models/student.rb +14 -0
  413. data/spec/support/models/weapon.rb +12 -0
  414. data.tar.gz.sig +0 -0
  415. metadata +100 -22
  416. metadata.gz.sig +0 -0
  417. data/lib/mongoid/errors/eager_load.rb +0 -23
  418. data/lib/mongoid/errors/invalid_value.rb +0 -17
  419. data/spec/mongoid/criteria/queryable/extensions/bignum_spec.rb +0 -60
  420. data/spec/mongoid/criteria/queryable/extensions/fixnum_spec.rb +0 -60
  421. data/spec/mongoid/errors/eager_load_spec.rb +0 -31
metadata CHANGED
@@ -1,11 +1,11 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongoid
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.5.4
4
+ version: 8.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - The MongoDB Ruby Team
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain:
11
11
  - |
@@ -35,7 +35,7 @@ cert_chain:
35
35
  wkeAWhd5b+5JS0zgDL4SvGB8/W2IY+y0zELkojBMgJPyrpAWHL/WSsSBMuhyI2Pv
36
36
  xxaBVLklnJJ/qCCOZ3lG2MyVc/Nb0Mmq8ygWNsfwHmKKYuuWcviit0D0Tek=
37
37
  -----END CERTIFICATE-----
38
- date: 2023-08-24 00:00:00.000000000 Z
38
+ date: 2023-10-23 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: activemodel
@@ -46,7 +46,7 @@ dependencies:
46
46
  version: '5.1'
47
47
  - - "<"
48
48
  - !ruby/object:Gem::Version
49
- version: '7.1'
49
+ version: '7.2'
50
50
  - - "!="
51
51
  - !ruby/object:Gem::Version
52
52
  version: 7.0.0
@@ -59,7 +59,7 @@ dependencies:
59
59
  version: '5.1'
60
60
  - - "<"
61
61
  - !ruby/object:Gem::Version
62
- version: '7.1'
62
+ version: '7.2'
63
63
  - - "!="
64
64
  - !ruby/object:Gem::Version
65
65
  version: 7.0.0
@@ -69,7 +69,7 @@ dependencies:
69
69
  requirements:
70
70
  - - ">="
71
71
  - !ruby/object:Gem::Version
72
- version: 2.10.5
72
+ version: 2.18.0
73
73
  - - "<"
74
74
  - !ruby/object:Gem::Version
75
75
  version: 3.0.0
@@ -79,10 +79,30 @@ dependencies:
79
79
  requirements:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: 2.10.5
82
+ version: 2.18.0
83
83
  - - "<"
84
84
  - !ruby/object:Gem::Version
85
85
  version: 3.0.0
86
+ - !ruby/object:Gem::Dependency
87
+ name: concurrent-ruby
88
+ requirement: !ruby/object:Gem::Requirement
89
+ requirements:
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ version: 1.0.5
93
+ - - "<"
94
+ - !ruby/object:Gem::Version
95
+ version: '2.0'
96
+ type: :runtime
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: 1.0.5
103
+ - - "<"
104
+ - !ruby/object:Gem::Version
105
+ version: '2.0'
86
106
  - !ruby/object:Gem::Dependency
87
107
  name: ruby2_keywords
88
108
  requirement: !ruby/object:Gem::Requirement
@@ -103,7 +123,7 @@ dependencies:
103
123
  requirements:
104
124
  - - ">="
105
125
  - !ruby/object:Gem::Version
106
- version: 4.9.4
126
+ version: 4.14.0
107
127
  - - "<"
108
128
  - !ruby/object:Gem::Version
109
129
  version: 5.0.0
@@ -113,7 +133,7 @@ dependencies:
113
133
  requirements:
114
134
  - - ">="
115
135
  - !ruby/object:Gem::Version
116
- version: 4.9.4
136
+ version: 4.14.0
117
137
  - - "<"
118
138
  - !ruby/object:Gem::Version
119
139
  version: 5.0.0
@@ -213,11 +233,14 @@ files:
213
233
  - lib/mongoid/clients/storage_options.rb
214
234
  - lib/mongoid/clients/validators.rb
215
235
  - lib/mongoid/clients/validators/storage.rb
236
+ - lib/mongoid/collection_configurable.rb
216
237
  - lib/mongoid/composable.rb
217
238
  - lib/mongoid/config.rb
239
+ - lib/mongoid/config/defaults.rb
218
240
  - lib/mongoid/config/environment.rb
219
241
  - lib/mongoid/config/options.rb
220
242
  - lib/mongoid/config/validators.rb
243
+ - lib/mongoid/config/validators/async_query_executor.rb
221
244
  - lib/mongoid/config/validators/client.rb
222
245
  - lib/mongoid/config/validators/option.rb
223
246
  - lib/mongoid/contextual.rb
@@ -231,6 +254,7 @@ files:
231
254
  - lib/mongoid/contextual/map_reduce.rb
232
255
  - lib/mongoid/contextual/memory.rb
233
256
  - lib/mongoid/contextual/mongo.rb
257
+ - lib/mongoid/contextual/mongo/documents_loader.rb
234
258
  - lib/mongoid/contextual/none.rb
235
259
  - lib/mongoid/contextual/queryable.rb
236
260
  - lib/mongoid/copyable.rb
@@ -273,30 +297,39 @@ files:
273
297
  - lib/mongoid/criteria/queryable/smash.rb
274
298
  - lib/mongoid/criteria/queryable/storable.rb
275
299
  - lib/mongoid/criteria/scopable.rb
300
+ - lib/mongoid/criteria/translator.rb
301
+ - lib/mongoid/deprecable.rb
302
+ - lib/mongoid/deprecation.rb
276
303
  - lib/mongoid/document.rb
277
304
  - lib/mongoid/equality.rb
278
305
  - lib/mongoid/errors.rb
279
306
  - lib/mongoid/errors/ambiguous_relationship.rb
280
307
  - lib/mongoid/errors/callback.rb
308
+ - lib/mongoid/errors/create_collection_failure.rb
281
309
  - lib/mongoid/errors/criteria_argument_required.rb
282
310
  - lib/mongoid/errors/delete_restriction.rb
283
311
  - lib/mongoid/errors/document_not_destroyed.rb
284
312
  - lib/mongoid/errors/document_not_found.rb
285
- - lib/mongoid/errors/eager_load.rb
313
+ - lib/mongoid/errors/drop_collection_failure.rb
286
314
  - lib/mongoid/errors/empty_config_file.rb
315
+ - lib/mongoid/errors/immutable_attribute.rb
287
316
  - lib/mongoid/errors/in_memory_collation_not_supported.rb
317
+ - lib/mongoid/errors/invalid_async_query_executor.rb
288
318
  - lib/mongoid/errors/invalid_collection.rb
289
319
  - lib/mongoid/errors/invalid_config_file.rb
290
320
  - lib/mongoid/errors/invalid_config_option.rb
291
321
  - lib/mongoid/errors/invalid_dependent_strategy.rb
292
322
  - lib/mongoid/errors/invalid_discriminator_key_target.rb
323
+ - lib/mongoid/errors/invalid_dot_dollar_assignment.rb
293
324
  - lib/mongoid/errors/invalid_elem_match_operator.rb
294
325
  - lib/mongoid/errors/invalid_estimated_count_criteria.rb
295
326
  - lib/mongoid/errors/invalid_expression_operator.rb
296
327
  - lib/mongoid/errors/invalid_field.rb
297
328
  - lib/mongoid/errors/invalid_field_operator.rb
298
329
  - lib/mongoid/errors/invalid_field_option.rb
330
+ - lib/mongoid/errors/invalid_field_type.rb
299
331
  - lib/mongoid/errors/invalid_find.rb
332
+ - lib/mongoid/errors/invalid_global_executor_concurrency.rb
300
333
  - lib/mongoid/errors/invalid_includes.rb
301
334
  - lib/mongoid/errors/invalid_index.rb
302
335
  - lib/mongoid/errors/invalid_options.rb
@@ -311,7 +344,6 @@ files:
311
344
  - lib/mongoid/errors/invalid_storage_options.rb
312
345
  - lib/mongoid/errors/invalid_storage_parent.rb
313
346
  - lib/mongoid/errors/invalid_time.rb
314
- - lib/mongoid/errors/invalid_value.rb
315
347
  - lib/mongoid/errors/inverse_not_found.rb
316
348
  - lib/mongoid/errors/mixed_client_configuration.rb
317
349
  - lib/mongoid/errors/mixed_relations.rb
@@ -339,6 +371,7 @@ files:
339
371
  - lib/mongoid/extensions.rb
340
372
  - lib/mongoid/extensions/array.rb
341
373
  - lib/mongoid/extensions/big_decimal.rb
374
+ - lib/mongoid/extensions/binary.rb
342
375
  - lib/mongoid/extensions/boolean.rb
343
376
  - lib/mongoid/extensions/date.rb
344
377
  - lib/mongoid/extensions/date_time.rb
@@ -447,6 +480,7 @@ files:
447
480
  - lib/mongoid/timestamps/updated/short.rb
448
481
  - lib/mongoid/touchable.rb
449
482
  - lib/mongoid/traversable.rb
483
+ - lib/mongoid/utils.rb
450
484
  - lib/mongoid/validatable.rb
451
485
  - lib/mongoid/validatable/associated.rb
452
486
  - lib/mongoid/validatable/format.rb
@@ -475,6 +509,7 @@ files:
475
509
  - spec/integration/associations/embeds_one_spec.rb
476
510
  - spec/integration/associations/foreign_key_spec.rb
477
511
  - spec/integration/associations/foreign_key_spec_models.rb
512
+ - spec/integration/associations/has_and_belongs_to_many_spec.rb
478
513
  - spec/integration/associations/has_many_spec.rb
479
514
  - spec/integration/associations/has_one_spec.rb
480
515
  - spec/integration/associations/nested_attributes_assignment_spec.rb
@@ -495,6 +530,7 @@ files:
495
530
  - spec/integration/discriminator_key_spec.rb
496
531
  - spec/integration/discriminator_value_spec.rb
497
532
  - spec/integration/document_spec.rb
533
+ - spec/integration/dots_and_dollars_spec.rb
498
534
  - spec/integration/i18n_fallbacks_spec.rb
499
535
  - spec/integration/matcher_examples_spec.rb
500
536
  - spec/integration/matcher_operator_data/all.yml
@@ -557,6 +593,7 @@ files:
557
593
  - spec/integration/matcher_operator_data/type_undefined.yml
558
594
  - spec/integration/matcher_operator_spec.rb
559
595
  - spec/integration/matcher_spec.rb
596
+ - spec/integration/persistence/range_field_spec.rb
560
597
  - spec/integration/server_query_spec.rb
561
598
  - spec/integration/shardable_spec.rb
562
599
  - spec/integration/stringified_symbol_field_spec.rb
@@ -596,6 +633,7 @@ files:
596
633
  - spec/mongoid/association/referenced/belongs_to/buildable_spec.rb
597
634
  - spec/mongoid/association/referenced/belongs_to/eager_spec.rb
598
635
  - spec/mongoid/association/referenced/belongs_to/proxy_spec.rb
636
+ - spec/mongoid/association/referenced/belongs_to_models.rb
599
637
  - spec/mongoid/association/referenced/belongs_to_query_spec.rb
600
638
  - spec/mongoid/association/referenced/belongs_to_spec.rb
601
639
  - spec/mongoid/association/referenced/has_and_belongs_to_many/binding_spec.rb
@@ -633,6 +671,7 @@ files:
633
671
  - spec/mongoid/atomic_spec.rb
634
672
  - spec/mongoid/attributes/dynamic_spec.rb
635
673
  - spec/mongoid/attributes/nested_spec.rb
674
+ - spec/mongoid/attributes/nested_spec_models.rb
636
675
  - spec/mongoid/attributes/projector_data/embedded.yml
637
676
  - spec/mongoid/attributes/projector_data/fields.yml
638
677
  - spec/mongoid/attributes/projector_spec.rb
@@ -645,22 +684,29 @@ files:
645
684
  - spec/mongoid/clients/sessions_spec.rb
646
685
  - spec/mongoid/clients/transactions_spec.rb
647
686
  - spec/mongoid/clients_spec.rb
687
+ - spec/mongoid/collection_configurable_spec.rb
648
688
  - spec/mongoid/composable_spec.rb
689
+ - spec/mongoid/config/defaults_spec.rb
649
690
  - spec/mongoid/config/environment_spec.rb
650
691
  - spec/mongoid/config/options_spec.rb
651
692
  - spec/mongoid/config_spec.rb
652
693
  - spec/mongoid/contextual/aggregable/memory_spec.rb
694
+ - spec/mongoid/contextual/aggregable/memory_table.yml
695
+ - spec/mongoid/contextual/aggregable/memory_table_spec.rb
653
696
  - spec/mongoid/contextual/aggregable/mongo_spec.rb
654
697
  - spec/mongoid/contextual/aggregable/none_spec.rb
655
698
  - spec/mongoid/contextual/atomic_spec.rb
656
699
  - spec/mongoid/contextual/geo_near_spec.rb
657
700
  - spec/mongoid/contextual/map_reduce_spec.rb
658
701
  - spec/mongoid/contextual/memory_spec.rb
702
+ - spec/mongoid/contextual/mongo/documents_loader_spec.rb
659
703
  - spec/mongoid/contextual/mongo_spec.rb
660
704
  - spec/mongoid/contextual/none_spec.rb
661
705
  - spec/mongoid/copyable_spec.rb
662
706
  - spec/mongoid/copyable_spec_models.rb
663
707
  - spec/mongoid/criteria/findable_spec.rb
708
+ - spec/mongoid/criteria/includable_spec.rb
709
+ - spec/mongoid/criteria/includable_spec_models.rb
664
710
  - spec/mongoid/criteria/inspectable_spec.rb
665
711
  - spec/mongoid/criteria/marshalable_spec.rb
666
712
  - spec/mongoid/criteria/modifiable_spec.rb
@@ -669,11 +715,9 @@ files:
669
715
  - spec/mongoid/criteria/queryable/expandable_spec.rb
670
716
  - spec/mongoid/criteria/queryable/extensions/array_spec.rb
671
717
  - spec/mongoid/criteria/queryable/extensions/big_decimal_spec.rb
672
- - spec/mongoid/criteria/queryable/extensions/bignum_spec.rb
673
718
  - spec/mongoid/criteria/queryable/extensions/boolean_spec.rb
674
719
  - spec/mongoid/criteria/queryable/extensions/date_spec.rb
675
720
  - spec/mongoid/criteria/queryable/extensions/date_time_spec.rb
676
- - spec/mongoid/criteria/queryable/extensions/fixnum_spec.rb
677
721
  - spec/mongoid/criteria/queryable/extensions/float_spec.rb
678
722
  - spec/mongoid/criteria/queryable/extensions/hash_spec.rb
679
723
  - spec/mongoid/criteria/queryable/extensions/integer_spec.rb
@@ -702,6 +746,7 @@ files:
702
746
  - spec/mongoid/criteria/queryable/smash_spec.rb
703
747
  - spec/mongoid/criteria/queryable/storable_spec.rb
704
748
  - spec/mongoid/criteria/scopable_spec.rb
749
+ - spec/mongoid/criteria/translator_spec.rb
705
750
  - spec/mongoid/criteria_projection_spec.rb
706
751
  - spec/mongoid/criteria_spec.rb
707
752
  - spec/mongoid/document_fields_spec.rb
@@ -714,12 +759,12 @@ files:
714
759
  - spec/mongoid/errors/delete_restriction_spec.rb
715
760
  - spec/mongoid/errors/document_not_destroyed_spec.rb
716
761
  - spec/mongoid/errors/document_not_found_spec.rb
717
- - spec/mongoid/errors/eager_load_spec.rb
718
762
  - spec/mongoid/errors/invalid_collection_spec.rb
719
763
  - spec/mongoid/errors/invalid_config_file_spec.rb
720
764
  - spec/mongoid/errors/invalid_config_option_spec.rb
721
765
  - spec/mongoid/errors/invalid_field_option_spec.rb
722
766
  - spec/mongoid/errors/invalid_field_spec.rb
767
+ - spec/mongoid/errors/invalid_field_type_spec.rb
723
768
  - spec/mongoid/errors/invalid_find_spec.rb
724
769
  - spec/mongoid/errors/invalid_includes_spec.rb
725
770
  - spec/mongoid/errors/invalid_index_spec.rb
@@ -792,6 +837,7 @@ files:
792
837
  - spec/mongoid/matcher/extract_attribute_data/numeric_keys.yml
793
838
  - spec/mongoid/matcher/extract_attribute_data/traversal.yml
794
839
  - spec/mongoid/matcher/extract_attribute_spec.rb
840
+ - spec/mongoid/mongoizable_spec.rb
795
841
  - spec/mongoid/persistable/creatable_spec.rb
796
842
  - spec/mongoid/persistable/deletable_spec.rb
797
843
  - spec/mongoid/persistable/destroyable_spec.rb
@@ -828,6 +874,7 @@ files:
828
874
  - spec/mongoid/timestamps/updated/short_spec.rb
829
875
  - spec/mongoid/timestamps/updated_spec.rb
830
876
  - spec/mongoid/timestamps_spec.rb
877
+ - spec/mongoid/timestamps_spec_models.rb
831
878
  - spec/mongoid/touchable_spec.rb
832
879
  - spec/mongoid/touchable_spec_models.rb
833
880
  - spec/mongoid/traversable_spec.rb
@@ -838,6 +885,7 @@ files:
838
885
  - spec/mongoid/validatable/presence_spec.rb
839
886
  - spec/mongoid/validatable/uniqueness_spec.rb
840
887
  - spec/mongoid/validatable_spec.rb
888
+ - spec/mongoid/warnings_spec.rb
841
889
  - spec/mongoid_spec.rb
842
890
  - spec/rails/controller_extension/controller_runtime_spec.rb
843
891
  - spec/rails/mongoid_spec.rb
@@ -870,6 +918,7 @@ files:
870
918
  - spec/support/constraints.rb
871
919
  - spec/support/expectations.rb
872
920
  - spec/support/helpers.rb
921
+ - spec/support/immutable_ids.rb
873
922
  - spec/support/macros.rb
874
923
  - spec/support/models/account.rb
875
924
  - spec/support/models/acolyte.rb
@@ -914,6 +963,7 @@ files:
914
963
  - spec/support/models/canvas.rb
915
964
  - spec/support/models/car.rb
916
965
  - spec/support/models/cat.rb
966
+ - spec/support/models/catalog.rb
917
967
  - spec/support/models/category.rb
918
968
  - spec/support/models/child.rb
919
969
  - spec/support/models/child_doc.rb
@@ -932,6 +982,7 @@ files:
932
982
  - spec/support/models/cookie.rb
933
983
  - spec/support/models/country_code.rb
934
984
  - spec/support/models/courier_job.rb
985
+ - spec/support/models/cover.rb
935
986
  - spec/support/models/crate.rb
936
987
  - spec/support/models/customer.rb
937
988
  - spec/support/models/customer_address.rb
@@ -962,6 +1013,7 @@ files:
962
1013
  - spec/support/models/eye.rb
963
1014
  - spec/support/models/eye_bowl.rb
964
1015
  - spec/support/models/face.rb
1016
+ - spec/support/models/fanatic.rb
965
1017
  - spec/support/models/favorite.rb
966
1018
  - spec/support/models/filesystem.rb
967
1019
  - spec/support/models/fire_hydrant.rb
@@ -1048,6 +1100,7 @@ files:
1048
1100
  - spec/support/models/publication/review.rb
1049
1101
  - spec/support/models/purchase.rb
1050
1102
  - spec/support/models/purchased_item.rb
1103
+ - spec/support/models/purse.rb
1051
1104
  - spec/support/models/question.rb
1052
1105
  - spec/support/models/quiz.rb
1053
1106
  - spec/support/models/rating.rb
@@ -1057,6 +1110,7 @@ files:
1057
1110
  - spec/support/models/root_category.rb
1058
1111
  - spec/support/models/sandwich.rb
1059
1112
  - spec/support/models/scheduler.rb
1113
+ - spec/support/models/school.rb
1060
1114
  - spec/support/models/scribe.rb
1061
1115
  - spec/support/models/sealer.rb
1062
1116
  - spec/support/models/seat.rb
@@ -1066,6 +1120,7 @@ files:
1066
1120
  - spec/support/models/service.rb
1067
1121
  - spec/support/models/shape.rb
1068
1122
  - spec/support/models/shelf.rb
1123
+ - spec/support/models/shield.rb
1069
1124
  - spec/support/models/shipment_address.rb
1070
1125
  - spec/support/models/shipping_container.rb
1071
1126
  - spec/support/models/shipping_pack.rb
@@ -1085,6 +1140,7 @@ files:
1085
1140
  - spec/support/models/store_as_dup_test3.rb
1086
1141
  - spec/support/models/store_as_dup_test4.rb
1087
1142
  - spec/support/models/strategy.rb
1143
+ - spec/support/models/student.rb
1088
1144
  - spec/support/models/sub_item.rb
1089
1145
  - spec/support/models/subscription.rb
1090
1146
  - spec/support/models/survey.rb
@@ -1137,10 +1193,10 @@ licenses:
1137
1193
  metadata:
1138
1194
  bug_tracker_uri: https://jira.mongodb.org/projects/MONGOID
1139
1195
  changelog_uri: https://github.com/mongodb/mongoid/releases
1140
- documentation_uri: https://docs.mongodb.com/mongoid/
1196
+ documentation_uri: https://www.mongodb.com/docs/mongoid/
1141
1197
  homepage_uri: https://mongoid.org/
1142
1198
  source_code_uri: https://github.com/mongodb/mongoid
1143
- post_install_message:
1199
+ post_install_message:
1144
1200
  rdoc_options: []
1145
1201
  require_paths:
1146
1202
  - lib
@@ -1148,15 +1204,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
1148
1204
  requirements:
1149
1205
  - - ">="
1150
1206
  - !ruby/object:Gem::Version
1151
- version: '2.5'
1207
+ version: '2.6'
1152
1208
  required_rubygems_version: !ruby/object:Gem::Requirement
1153
1209
  requirements:
1154
1210
  - - ">="
1155
1211
  - !ruby/object:Gem::Version
1156
1212
  version: 1.3.6
1157
1213
  requirements: []
1158
- rubygems_version: 3.4.17
1159
- signing_key:
1214
+ rubygems_version: 3.4.21
1215
+ signing_key:
1160
1216
  specification_version: 4
1161
1217
  summary: Elegant Persistence in Ruby for MongoDB.
1162
1218
  test_files:
@@ -1171,6 +1227,7 @@ test_files:
1171
1227
  - spec/integration/associations/embeds_one_spec.rb
1172
1228
  - spec/integration/associations/foreign_key_spec.rb
1173
1229
  - spec/integration/associations/foreign_key_spec_models.rb
1230
+ - spec/integration/associations/has_and_belongs_to_many_spec.rb
1174
1231
  - spec/integration/associations/has_many_spec.rb
1175
1232
  - spec/integration/associations/has_one_spec.rb
1176
1233
  - spec/integration/associations/nested_attributes_assignment_spec.rb
@@ -1191,6 +1248,7 @@ test_files:
1191
1248
  - spec/integration/discriminator_key_spec.rb
1192
1249
  - spec/integration/discriminator_value_spec.rb
1193
1250
  - spec/integration/document_spec.rb
1251
+ - spec/integration/dots_and_dollars_spec.rb
1194
1252
  - spec/integration/i18n_fallbacks_spec.rb
1195
1253
  - spec/integration/matcher_examples_spec.rb
1196
1254
  - spec/integration/matcher_operator_data/all.yml
@@ -1253,6 +1311,7 @@ test_files:
1253
1311
  - spec/integration/matcher_operator_data/type_undefined.yml
1254
1312
  - spec/integration/matcher_operator_spec.rb
1255
1313
  - spec/integration/matcher_spec.rb
1314
+ - spec/integration/persistence/range_field_spec.rb
1256
1315
  - spec/integration/server_query_spec.rb
1257
1316
  - spec/integration/shardable_spec.rb
1258
1317
  - spec/integration/stringified_symbol_field_spec.rb
@@ -1292,6 +1351,7 @@ test_files:
1292
1351
  - spec/mongoid/association/referenced/belongs_to/buildable_spec.rb
1293
1352
  - spec/mongoid/association/referenced/belongs_to/eager_spec.rb
1294
1353
  - spec/mongoid/association/referenced/belongs_to/proxy_spec.rb
1354
+ - spec/mongoid/association/referenced/belongs_to_models.rb
1295
1355
  - spec/mongoid/association/referenced/belongs_to_query_spec.rb
1296
1356
  - spec/mongoid/association/referenced/belongs_to_spec.rb
1297
1357
  - spec/mongoid/association/referenced/has_and_belongs_to_many/binding_spec.rb
@@ -1329,6 +1389,7 @@ test_files:
1329
1389
  - spec/mongoid/atomic_spec.rb
1330
1390
  - spec/mongoid/attributes/dynamic_spec.rb
1331
1391
  - spec/mongoid/attributes/nested_spec.rb
1392
+ - spec/mongoid/attributes/nested_spec_models.rb
1332
1393
  - spec/mongoid/attributes/projector_data/embedded.yml
1333
1394
  - spec/mongoid/attributes/projector_data/fields.yml
1334
1395
  - spec/mongoid/attributes/projector_spec.rb
@@ -1341,22 +1402,29 @@ test_files:
1341
1402
  - spec/mongoid/clients/sessions_spec.rb
1342
1403
  - spec/mongoid/clients/transactions_spec.rb
1343
1404
  - spec/mongoid/clients_spec.rb
1405
+ - spec/mongoid/collection_configurable_spec.rb
1344
1406
  - spec/mongoid/composable_spec.rb
1407
+ - spec/mongoid/config/defaults_spec.rb
1345
1408
  - spec/mongoid/config/environment_spec.rb
1346
1409
  - spec/mongoid/config/options_spec.rb
1347
1410
  - spec/mongoid/config_spec.rb
1348
1411
  - spec/mongoid/contextual/aggregable/memory_spec.rb
1412
+ - spec/mongoid/contextual/aggregable/memory_table.yml
1413
+ - spec/mongoid/contextual/aggregable/memory_table_spec.rb
1349
1414
  - spec/mongoid/contextual/aggregable/mongo_spec.rb
1350
1415
  - spec/mongoid/contextual/aggregable/none_spec.rb
1351
1416
  - spec/mongoid/contextual/atomic_spec.rb
1352
1417
  - spec/mongoid/contextual/geo_near_spec.rb
1353
1418
  - spec/mongoid/contextual/map_reduce_spec.rb
1354
1419
  - spec/mongoid/contextual/memory_spec.rb
1420
+ - spec/mongoid/contextual/mongo/documents_loader_spec.rb
1355
1421
  - spec/mongoid/contextual/mongo_spec.rb
1356
1422
  - spec/mongoid/contextual/none_spec.rb
1357
1423
  - spec/mongoid/copyable_spec.rb
1358
1424
  - spec/mongoid/copyable_spec_models.rb
1359
1425
  - spec/mongoid/criteria/findable_spec.rb
1426
+ - spec/mongoid/criteria/includable_spec.rb
1427
+ - spec/mongoid/criteria/includable_spec_models.rb
1360
1428
  - spec/mongoid/criteria/inspectable_spec.rb
1361
1429
  - spec/mongoid/criteria/marshalable_spec.rb
1362
1430
  - spec/mongoid/criteria/modifiable_spec.rb
@@ -1365,11 +1433,9 @@ test_files:
1365
1433
  - spec/mongoid/criteria/queryable/expandable_spec.rb
1366
1434
  - spec/mongoid/criteria/queryable/extensions/array_spec.rb
1367
1435
  - spec/mongoid/criteria/queryable/extensions/big_decimal_spec.rb
1368
- - spec/mongoid/criteria/queryable/extensions/bignum_spec.rb
1369
1436
  - spec/mongoid/criteria/queryable/extensions/boolean_spec.rb
1370
1437
  - spec/mongoid/criteria/queryable/extensions/date_spec.rb
1371
1438
  - spec/mongoid/criteria/queryable/extensions/date_time_spec.rb
1372
- - spec/mongoid/criteria/queryable/extensions/fixnum_spec.rb
1373
1439
  - spec/mongoid/criteria/queryable/extensions/float_spec.rb
1374
1440
  - spec/mongoid/criteria/queryable/extensions/hash_spec.rb
1375
1441
  - spec/mongoid/criteria/queryable/extensions/integer_spec.rb
@@ -1398,6 +1464,7 @@ test_files:
1398
1464
  - spec/mongoid/criteria/queryable/smash_spec.rb
1399
1465
  - spec/mongoid/criteria/queryable/storable_spec.rb
1400
1466
  - spec/mongoid/criteria/scopable_spec.rb
1467
+ - spec/mongoid/criteria/translator_spec.rb
1401
1468
  - spec/mongoid/criteria_projection_spec.rb
1402
1469
  - spec/mongoid/criteria_spec.rb
1403
1470
  - spec/mongoid/document_fields_spec.rb
@@ -1410,12 +1477,12 @@ test_files:
1410
1477
  - spec/mongoid/errors/delete_restriction_spec.rb
1411
1478
  - spec/mongoid/errors/document_not_destroyed_spec.rb
1412
1479
  - spec/mongoid/errors/document_not_found_spec.rb
1413
- - spec/mongoid/errors/eager_load_spec.rb
1414
1480
  - spec/mongoid/errors/invalid_collection_spec.rb
1415
1481
  - spec/mongoid/errors/invalid_config_file_spec.rb
1416
1482
  - spec/mongoid/errors/invalid_config_option_spec.rb
1417
1483
  - spec/mongoid/errors/invalid_field_option_spec.rb
1418
1484
  - spec/mongoid/errors/invalid_field_spec.rb
1485
+ - spec/mongoid/errors/invalid_field_type_spec.rb
1419
1486
  - spec/mongoid/errors/invalid_find_spec.rb
1420
1487
  - spec/mongoid/errors/invalid_includes_spec.rb
1421
1488
  - spec/mongoid/errors/invalid_index_spec.rb
@@ -1488,6 +1555,7 @@ test_files:
1488
1555
  - spec/mongoid/matcher/extract_attribute_data/numeric_keys.yml
1489
1556
  - spec/mongoid/matcher/extract_attribute_data/traversal.yml
1490
1557
  - spec/mongoid/matcher/extract_attribute_spec.rb
1558
+ - spec/mongoid/mongoizable_spec.rb
1491
1559
  - spec/mongoid/persistable/creatable_spec.rb
1492
1560
  - spec/mongoid/persistable/deletable_spec.rb
1493
1561
  - spec/mongoid/persistable/destroyable_spec.rb
@@ -1524,6 +1592,7 @@ test_files:
1524
1592
  - spec/mongoid/timestamps/updated/short_spec.rb
1525
1593
  - spec/mongoid/timestamps/updated_spec.rb
1526
1594
  - spec/mongoid/timestamps_spec.rb
1595
+ - spec/mongoid/timestamps_spec_models.rb
1527
1596
  - spec/mongoid/touchable_spec.rb
1528
1597
  - spec/mongoid/touchable_spec_models.rb
1529
1598
  - spec/mongoid/traversable_spec.rb
@@ -1534,6 +1603,7 @@ test_files:
1534
1603
  - spec/mongoid/validatable/presence_spec.rb
1535
1604
  - spec/mongoid/validatable/uniqueness_spec.rb
1536
1605
  - spec/mongoid/validatable_spec.rb
1606
+ - spec/mongoid/warnings_spec.rb
1537
1607
  - spec/mongoid_spec.rb
1538
1608
  - spec/rails/controller_extension/controller_runtime_spec.rb
1539
1609
  - spec/rails/mongoid_spec.rb
@@ -1566,6 +1636,7 @@ test_files:
1566
1636
  - spec/support/constraints.rb
1567
1637
  - spec/support/expectations.rb
1568
1638
  - spec/support/helpers.rb
1639
+ - spec/support/immutable_ids.rb
1569
1640
  - spec/support/macros.rb
1570
1641
  - spec/support/models/account.rb
1571
1642
  - spec/support/models/acolyte.rb
@@ -1610,6 +1681,7 @@ test_files:
1610
1681
  - spec/support/models/canvas.rb
1611
1682
  - spec/support/models/car.rb
1612
1683
  - spec/support/models/cat.rb
1684
+ - spec/support/models/catalog.rb
1613
1685
  - spec/support/models/category.rb
1614
1686
  - spec/support/models/child.rb
1615
1687
  - spec/support/models/child_doc.rb
@@ -1628,6 +1700,7 @@ test_files:
1628
1700
  - spec/support/models/cookie.rb
1629
1701
  - spec/support/models/country_code.rb
1630
1702
  - spec/support/models/courier_job.rb
1703
+ - spec/support/models/cover.rb
1631
1704
  - spec/support/models/crate.rb
1632
1705
  - spec/support/models/customer.rb
1633
1706
  - spec/support/models/customer_address.rb
@@ -1658,6 +1731,7 @@ test_files:
1658
1731
  - spec/support/models/eye.rb
1659
1732
  - spec/support/models/eye_bowl.rb
1660
1733
  - spec/support/models/face.rb
1734
+ - spec/support/models/fanatic.rb
1661
1735
  - spec/support/models/favorite.rb
1662
1736
  - spec/support/models/filesystem.rb
1663
1737
  - spec/support/models/fire_hydrant.rb
@@ -1744,6 +1818,7 @@ test_files:
1744
1818
  - spec/support/models/publication.rb
1745
1819
  - spec/support/models/purchase.rb
1746
1820
  - spec/support/models/purchased_item.rb
1821
+ - spec/support/models/purse.rb
1747
1822
  - spec/support/models/question.rb
1748
1823
  - spec/support/models/quiz.rb
1749
1824
  - spec/support/models/rating.rb
@@ -1753,6 +1828,7 @@ test_files:
1753
1828
  - spec/support/models/root_category.rb
1754
1829
  - spec/support/models/sandwich.rb
1755
1830
  - spec/support/models/scheduler.rb
1831
+ - spec/support/models/school.rb
1756
1832
  - spec/support/models/scribe.rb
1757
1833
  - spec/support/models/sealer.rb
1758
1834
  - spec/support/models/seat.rb
@@ -1762,6 +1838,7 @@ test_files:
1762
1838
  - spec/support/models/service.rb
1763
1839
  - spec/support/models/shape.rb
1764
1840
  - spec/support/models/shelf.rb
1841
+ - spec/support/models/shield.rb
1765
1842
  - spec/support/models/shipment_address.rb
1766
1843
  - spec/support/models/shipping_container.rb
1767
1844
  - spec/support/models/shipping_pack.rb
@@ -1781,6 +1858,7 @@ test_files:
1781
1858
  - spec/support/models/store_as_dup_test3.rb
1782
1859
  - spec/support/models/store_as_dup_test4.rb
1783
1860
  - spec/support/models/strategy.rb
1861
+ - spec/support/models/student.rb
1784
1862
  - spec/support/models/sub_item.rb
1785
1863
  - spec/support/models/subscription.rb
1786
1864
  - spec/support/models/survey.rb
metadata.gz.sig CHANGED
Binary file
@@ -1,23 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Mongoid
4
- module Errors
5
-
6
- # This error is raised when attempting to eager load a many to many
7
- # association.
8
- #
9
- # @deprecated No longer used by Mongoid per MONGOID-4841.
10
- class EagerLoad < MongoidError
11
-
12
- # Create the new eager load error.
13
- #
14
- # @example Create the new eager load error.
15
- # EagerLoad.new(:preferences)
16
- #
17
- # @param [ Symbol ] name The name of the association.
18
- def initialize(name)
19
- super(compose_message("eager_load", { name: name }))
20
- end
21
- end
22
- end
23
- end
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Mongoid
4
- module Errors
5
-
6
- # This error is raised when trying to set an attribute with an invalid value.
7
- # For example when try to set an Array value to a Hash attribute.
8
- #
9
- class InvalidValue < MongoidError
10
- def initialize(field_class, value_class)
11
- super(
12
- compose_message("invalid_value", { value_class: value_class, field_class: field_class })
13
- )
14
- end
15
- end
16
- end
17
- end