mongoid 7.3.5 → 7.5.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 (895) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/CHANGELOG.md +17 -17
  4. data/README.md +3 -3
  5. data/lib/config/locales/en.yml +28 -20
  6. data/lib/mongoid/association/accessors.rb +0 -27
  7. data/lib/mongoid/association/bindable.rb +0 -21
  8. data/lib/mongoid/association/builders.rb +0 -9
  9. data/lib/mongoid/association/constrainable.rb +0 -3
  10. data/lib/mongoid/association/depending.rb +0 -7
  11. data/lib/mongoid/association/eager_loadable.rb +0 -3
  12. data/lib/mongoid/association/embedded/batchable.rb +12 -59
  13. data/lib/mongoid/association/embedded/cyclic.rb +2 -11
  14. data/lib/mongoid/association/embedded/embedded_in/binding.rb +0 -7
  15. data/lib/mongoid/association/embedded/embedded_in/buildable.rb +0 -3
  16. data/lib/mongoid/association/embedded/embedded_in/proxy.rb +0 -13
  17. data/lib/mongoid/association/embedded/embedded_in.rb +0 -23
  18. data/lib/mongoid/association/embedded/embeds_many/binding.rb +0 -7
  19. data/lib/mongoid/association/embedded/embeds_many/buildable.rb +0 -3
  20. data/lib/mongoid/association/embedded/embeds_many/proxy.rb +31 -44
  21. data/lib/mongoid/association/embedded/embeds_many.rb +0 -31
  22. data/lib/mongoid/association/embedded/embeds_one/binding.rb +0 -7
  23. data/lib/mongoid/association/embedded/embeds_one/buildable.rb +0 -3
  24. data/lib/mongoid/association/embedded/embeds_one/proxy.rb +26 -14
  25. data/lib/mongoid/association/embedded/embeds_one.rb +0 -27
  26. data/lib/mongoid/association/embedded.rb +0 -1
  27. data/lib/mongoid/association/macros.rb +26 -5
  28. data/lib/mongoid/association/many.rb +0 -17
  29. data/lib/mongoid/association/marshalable.rb +0 -5
  30. data/lib/mongoid/association/nested/many.rb +0 -11
  31. data/lib/mongoid/association/nested/nested_buildable.rb +0 -9
  32. data/lib/mongoid/association/nested/one.rb +1 -16
  33. data/lib/mongoid/association/nested.rb +0 -3
  34. data/lib/mongoid/association/one.rb +1 -10
  35. data/lib/mongoid/association/options.rb +0 -33
  36. data/lib/mongoid/association/proxy.rb +0 -21
  37. data/lib/mongoid/association/referenced/auto_save.rb +0 -9
  38. data/lib/mongoid/association/referenced/belongs_to/binding.rb +0 -7
  39. data/lib/mongoid/association/referenced/belongs_to/buildable.rb +4 -5
  40. data/lib/mongoid/association/referenced/belongs_to/eager.rb +0 -1
  41. data/lib/mongoid/association/referenced/belongs_to/proxy.rb +0 -13
  42. data/lib/mongoid/association/referenced/belongs_to.rb +9 -34
  43. data/lib/mongoid/association/referenced/counter_cache.rb +2 -15
  44. data/lib/mongoid/association/referenced/eager.rb +3 -24
  45. data/lib/mongoid/association/referenced/has_and_belongs_to_many/binding.rb +0 -5
  46. data/lib/mongoid/association/referenced/has_and_belongs_to_many/buildable.rb +0 -3
  47. data/lib/mongoid/association/referenced/has_and_belongs_to_many/eager.rb +0 -1
  48. data/lib/mongoid/association/referenced/has_and_belongs_to_many/proxy.rb +12 -39
  49. data/lib/mongoid/association/referenced/has_and_belongs_to_many.rb +11 -38
  50. data/lib/mongoid/association/referenced/has_many/binding.rb +0 -5
  51. data/lib/mongoid/association/referenced/has_many/buildable.rb +0 -3
  52. data/lib/mongoid/association/referenced/has_many/eager.rb +0 -1
  53. data/lib/mongoid/association/referenced/has_many/enumerable.rb +20 -64
  54. data/lib/mongoid/association/referenced/has_many/proxy.rb +20 -63
  55. data/lib/mongoid/association/referenced/has_many.rb +12 -39
  56. data/lib/mongoid/association/referenced/has_one/binding.rb +0 -7
  57. data/lib/mongoid/association/referenced/has_one/buildable.rb +3 -4
  58. data/lib/mongoid/association/referenced/has_one/eager.rb +0 -1
  59. data/lib/mongoid/association/referenced/has_one/nested_builder.rb +0 -15
  60. data/lib/mongoid/association/referenced/has_one/proxy.rb +0 -9
  61. data/lib/mongoid/association/referenced/has_one.rb +9 -32
  62. data/lib/mongoid/association/referenced/syncable.rb +0 -17
  63. data/lib/mongoid/association/referenced.rb +0 -1
  64. data/lib/mongoid/association/reflections.rb +0 -1
  65. data/lib/mongoid/association/relatable.rb +0 -61
  66. data/lib/mongoid/association.rb +0 -17
  67. data/lib/mongoid/atomic/modifiers.rb +4 -51
  68. data/lib/mongoid/atomic/paths/embedded/many.rb +0 -24
  69. data/lib/mongoid/atomic/paths/embedded/one.rb +0 -5
  70. data/lib/mongoid/atomic/paths/embedded.rb +0 -3
  71. data/lib/mongoid/atomic/paths/root.rb +0 -5
  72. data/lib/mongoid/atomic/paths.rb +0 -1
  73. data/lib/mongoid/atomic.rb +1 -42
  74. data/lib/mongoid/attributes/dynamic.rb +0 -17
  75. data/lib/mongoid/attributes/nested.rb +0 -5
  76. data/lib/mongoid/attributes/processing.rb +1 -18
  77. data/lib/mongoid/attributes/projector.rb +0 -1
  78. data/lib/mongoid/attributes/readonly.rb +0 -5
  79. data/lib/mongoid/attributes.rb +0 -33
  80. data/lib/mongoid/cacheable.rb +1 -6
  81. data/lib/mongoid/changeable.rb +3 -59
  82. data/lib/mongoid/clients/factory.rb +0 -7
  83. data/lib/mongoid/clients/options.rb +0 -5
  84. data/lib/mongoid/clients/sessions.rb +0 -7
  85. data/lib/mongoid/clients/storage_options.rb +0 -7
  86. data/lib/mongoid/clients/validators/storage.rb +0 -9
  87. data/lib/mongoid/clients/validators.rb +0 -1
  88. data/lib/mongoid/clients.rb +0 -9
  89. data/lib/mongoid/composable.rb +0 -7
  90. data/lib/mongoid/config/environment.rb +21 -6
  91. data/lib/mongoid/config/options.rb +0 -11
  92. data/lib/mongoid/config/validators/client.rb +0 -17
  93. data/lib/mongoid/config/validators/option.rb +0 -3
  94. data/lib/mongoid/config/validators.rb +0 -1
  95. data/lib/mongoid/config.rb +43 -30
  96. data/lib/mongoid/contextual/aggregable/memory.rb +14 -11
  97. data/lib/mongoid/contextual/aggregable/mongo.rb +15 -20
  98. data/lib/mongoid/contextual/aggregable/none.rb +65 -0
  99. data/lib/mongoid/contextual/aggregable.rb +17 -0
  100. data/lib/mongoid/contextual/atomic.rb +0 -25
  101. data/lib/mongoid/contextual/command.rb +0 -5
  102. data/lib/mongoid/contextual/geo_near.rb +1 -34
  103. data/lib/mongoid/contextual/map_reduce.rb +0 -31
  104. data/lib/mongoid/contextual/memory.rb +147 -70
  105. data/lib/mongoid/contextual/mongo.rb +249 -103
  106. data/lib/mongoid/contextual/none.rb +83 -28
  107. data/lib/mongoid/contextual/queryable.rb +0 -3
  108. data/lib/mongoid/contextual.rb +0 -5
  109. data/lib/mongoid/copyable.rb +0 -5
  110. data/lib/mongoid/criteria/findable.rb +0 -13
  111. data/lib/mongoid/criteria/includable.rb +0 -9
  112. data/lib/mongoid/criteria/inspectable.rb +0 -3
  113. data/lib/mongoid/criteria/marshalable.rb +0 -5
  114. data/lib/mongoid/criteria/modifiable.rb +0 -19
  115. data/lib/mongoid/criteria/options.rb +0 -3
  116. data/lib/mongoid/criteria/permission.rb +0 -1
  117. data/lib/mongoid/criteria/queryable/aggregable.rb +0 -13
  118. data/lib/mongoid/criteria/queryable/expandable.rb +0 -1
  119. data/lib/mongoid/criteria/queryable/extensions/array.rb +2 -25
  120. data/lib/mongoid/criteria/queryable/extensions/big_decimal.rb +0 -3
  121. data/lib/mongoid/criteria/queryable/extensions/boolean.rb +0 -3
  122. data/lib/mongoid/criteria/queryable/extensions/date.rb +0 -7
  123. data/lib/mongoid/criteria/queryable/extensions/date_time.rb +0 -5
  124. data/lib/mongoid/criteria/queryable/extensions/hash.rb +1 -24
  125. data/lib/mongoid/criteria/queryable/extensions/nil_class.rb +0 -13
  126. data/lib/mongoid/criteria/queryable/extensions/numeric.rb +0 -11
  127. data/lib/mongoid/criteria/queryable/extensions/object.rb +1 -28
  128. data/lib/mongoid/criteria/queryable/extensions/range.rb +38 -16
  129. data/lib/mongoid/criteria/queryable/extensions/regexp.rb +0 -9
  130. data/lib/mongoid/criteria/queryable/extensions/set.rb +0 -3
  131. data/lib/mongoid/criteria/queryable/extensions/string.rb +0 -17
  132. data/lib/mongoid/criteria/queryable/extensions/symbol.rb +0 -9
  133. data/lib/mongoid/criteria/queryable/extensions/time.rb +0 -7
  134. data/lib/mongoid/criteria/queryable/extensions/time_with_zone.rb +0 -7
  135. data/lib/mongoid/criteria/queryable/extensions.rb +0 -1
  136. data/lib/mongoid/criteria/queryable/key.rb +1 -14
  137. data/lib/mongoid/criteria/queryable/macroable.rb +0 -3
  138. data/lib/mongoid/criteria/queryable/mergeable.rb +22 -30
  139. data/lib/mongoid/criteria/queryable/optional.rb +0 -45
  140. data/lib/mongoid/criteria/queryable/options.rb +0 -19
  141. data/lib/mongoid/criteria/queryable/pipeline.rb +0 -13
  142. data/lib/mongoid/criteria/queryable/selectable.rb +45 -76
  143. data/lib/mongoid/criteria/queryable/selector.rb +0 -17
  144. data/lib/mongoid/criteria/queryable/smash.rb +0 -11
  145. data/lib/mongoid/criteria/queryable/storable.rb +6 -2
  146. data/lib/mongoid/criteria/queryable.rb +0 -7
  147. data/lib/mongoid/criteria/scopable.rb +25 -19
  148. data/lib/mongoid/criteria.rb +2 -57
  149. data/lib/mongoid/document.rb +1 -50
  150. data/lib/mongoid/equality.rb +26 -10
  151. data/lib/mongoid/errors/ambiguous_relationship.rb +2 -5
  152. data/lib/mongoid/errors/callback.rb +0 -3
  153. data/lib/mongoid/errors/criteria_argument_required.rb +0 -1
  154. data/lib/mongoid/errors/delete_restriction.rb +0 -3
  155. data/lib/mongoid/errors/document_not_destroyed.rb +2 -7
  156. data/lib/mongoid/errors/document_not_found.rb +23 -15
  157. data/lib/mongoid/errors/eager_load.rb +0 -3
  158. data/lib/mongoid/errors/empty_config_file.rb +0 -1
  159. data/lib/mongoid/errors/in_memory_collation_not_supported.rb +0 -3
  160. data/lib/mongoid/errors/invalid_collection.rb +0 -1
  161. data/lib/mongoid/errors/invalid_config_file.rb +0 -1
  162. data/lib/mongoid/errors/invalid_config_option.rb +0 -3
  163. data/lib/mongoid/errors/invalid_dependent_strategy.rb +0 -3
  164. data/lib/mongoid/errors/invalid_discriminator_key_target.rb +0 -1
  165. data/lib/mongoid/errors/invalid_elem_match_operator.rb +0 -1
  166. data/lib/mongoid/errors/invalid_estimated_count_criteria.rb +0 -1
  167. data/lib/mongoid/errors/invalid_expression_operator.rb +0 -1
  168. data/lib/mongoid/errors/invalid_field.rb +0 -5
  169. data/lib/mongoid/errors/invalid_field_operator.rb +0 -1
  170. data/lib/mongoid/errors/invalid_field_option.rb +0 -3
  171. data/lib/mongoid/errors/invalid_find.rb +0 -3
  172. data/lib/mongoid/errors/invalid_includes.rb +0 -3
  173. data/lib/mongoid/errors/invalid_index.rb +0 -3
  174. data/lib/mongoid/errors/invalid_options.rb +0 -3
  175. data/lib/mongoid/errors/invalid_path.rb +0 -3
  176. data/lib/mongoid/errors/invalid_persistence_option.rb +0 -5
  177. data/lib/mongoid/errors/invalid_query.rb +0 -1
  178. data/lib/mongoid/errors/invalid_relation.rb +0 -7
  179. data/lib/mongoid/errors/invalid_relation_option.rb +0 -3
  180. data/lib/mongoid/errors/invalid_scope.rb +0 -3
  181. data/lib/mongoid/errors/invalid_session_use.rb +1 -6
  182. data/lib/mongoid/errors/invalid_set_polymorphic_relation.rb +0 -1
  183. data/lib/mongoid/errors/invalid_storage_options.rb +0 -3
  184. data/lib/mongoid/errors/invalid_storage_parent.rb +0 -3
  185. data/lib/mongoid/errors/invalid_time.rb +0 -3
  186. data/lib/mongoid/errors/invalid_value.rb +0 -1
  187. data/lib/mongoid/errors/inverse_not_found.rb +0 -3
  188. data/lib/mongoid/errors/mixed_client_configuration.rb +0 -3
  189. data/lib/mongoid/errors/mixed_relations.rb +0 -3
  190. data/lib/mongoid/errors/mongoid_error.rb +0 -9
  191. data/lib/mongoid/errors/nested_attributes_metadata_not_found.rb +0 -3
  192. data/lib/mongoid/errors/no_client_config.rb +0 -3
  193. data/lib/mongoid/errors/no_client_database.rb +0 -3
  194. data/lib/mongoid/errors/no_client_hosts.rb +0 -3
  195. data/lib/mongoid/errors/no_clients_config.rb +0 -3
  196. data/lib/mongoid/errors/no_default_client.rb +0 -3
  197. data/lib/mongoid/errors/no_environment.rb +0 -3
  198. data/lib/mongoid/errors/no_map_reduce_output.rb +0 -3
  199. data/lib/mongoid/errors/no_metadata.rb +0 -3
  200. data/lib/mongoid/errors/no_parent.rb +0 -3
  201. data/lib/mongoid/errors/readonly_attribute.rb +0 -3
  202. data/lib/mongoid/errors/readonly_document.rb +1 -6
  203. data/lib/mongoid/errors/scope_overwrite.rb +0 -1
  204. data/lib/mongoid/errors/too_many_nested_attribute_records.rb +0 -1
  205. data/lib/mongoid/errors/unknown_attribute.rb +0 -3
  206. data/lib/mongoid/errors/unknown_model.rb +0 -3
  207. data/lib/mongoid/errors/unsaved_document.rb +1 -2
  208. data/lib/mongoid/errors/unsupported_javascript.rb +0 -3
  209. data/lib/mongoid/errors/validations.rb +0 -1
  210. data/lib/mongoid/errors.rb +0 -1
  211. data/lib/mongoid/evolvable.rb +0 -3
  212. data/lib/mongoid/extensions/array.rb +3 -29
  213. data/lib/mongoid/extensions/big_decimal.rb +0 -11
  214. data/lib/mongoid/extensions/boolean.rb +0 -3
  215. data/lib/mongoid/extensions/date.rb +0 -9
  216. data/lib/mongoid/extensions/date_time.rb +0 -9
  217. data/lib/mongoid/extensions/decimal128.rb +0 -5
  218. data/lib/mongoid/extensions/false_class.rb +1 -6
  219. data/lib/mongoid/extensions/float.rb +0 -7
  220. data/lib/mongoid/extensions/hash.rb +0 -27
  221. data/lib/mongoid/extensions/integer.rb +0 -9
  222. data/lib/mongoid/extensions/module.rb +0 -3
  223. data/lib/mongoid/extensions/nil_class.rb +0 -5
  224. data/lib/mongoid/extensions/object.rb +1 -40
  225. data/lib/mongoid/extensions/object_id.rb +0 -7
  226. data/lib/mongoid/extensions/range.rb +0 -11
  227. data/lib/mongoid/extensions/regexp.rb +0 -3
  228. data/lib/mongoid/extensions/set.rb +0 -7
  229. data/lib/mongoid/extensions/string.rb +1 -30
  230. data/lib/mongoid/extensions/symbol.rb +0 -7
  231. data/lib/mongoid/extensions/time.rb +0 -11
  232. data/lib/mongoid/extensions/time_with_zone.rb +13 -9
  233. data/lib/mongoid/extensions/true_class.rb +1 -6
  234. data/lib/mongoid/extensions.rb +15 -3
  235. data/lib/mongoid/factory.rb +1 -2
  236. data/lib/mongoid/fields/foreign_key.rb +0 -21
  237. data/lib/mongoid/fields/localized.rb +0 -11
  238. data/lib/mongoid/fields/standard.rb +0 -33
  239. data/lib/mongoid/fields/validators/macro.rb +0 -9
  240. data/lib/mongoid/fields/validators.rb +0 -1
  241. data/lib/mongoid/fields.rb +191 -60
  242. data/lib/mongoid/findable.rb +20 -10
  243. data/lib/mongoid/indexable/specification.rb +0 -15
  244. data/lib/mongoid/indexable/validators/options.rb +0 -7
  245. data/lib/mongoid/indexable.rb +1 -18
  246. data/lib/mongoid/inspectable.rb +1 -10
  247. data/lib/mongoid/interceptable.rb +0 -25
  248. data/lib/mongoid/loggable.rb +0 -9
  249. data/lib/mongoid/matchable.rb +0 -5
  250. data/lib/mongoid/matcher/eq_impl.rb +37 -2
  251. data/lib/mongoid/matcher/eq_impl_with_regexp.rb +6 -1
  252. data/lib/mongoid/persistable/creatable.rb +1 -20
  253. data/lib/mongoid/persistable/deletable.rb +0 -17
  254. data/lib/mongoid/persistable/destroyable.rb +0 -7
  255. data/lib/mongoid/persistable/incrementable.rb +0 -5
  256. data/lib/mongoid/persistable/logical.rb +0 -5
  257. data/lib/mongoid/persistable/poppable.rb +0 -5
  258. data/lib/mongoid/persistable/pullable.rb +0 -7
  259. data/lib/mongoid/persistable/pushable.rb +0 -7
  260. data/lib/mongoid/persistable/renamable.rb +0 -5
  261. data/lib/mongoid/persistable/savable.rb +0 -7
  262. data/lib/mongoid/persistable/settable.rb +0 -5
  263. data/lib/mongoid/persistable/unsettable.rb +0 -5
  264. data/lib/mongoid/persistable/updatable.rb +2 -17
  265. data/lib/mongoid/persistable/upsertable.rb +0 -7
  266. data/lib/mongoid/persistable.rb +0 -23
  267. data/lib/mongoid/persistence_context.rb +0 -27
  268. data/lib/mongoid/positional.rb +0 -5
  269. data/lib/mongoid/query_cache.rb +0 -33
  270. data/lib/mongoid/railtie.rb +0 -15
  271. data/lib/mongoid/railties/controller_runtime.rb +0 -1
  272. data/lib/mongoid/reloadable.rb +4 -16
  273. data/lib/mongoid/scopable.rb +6 -34
  274. data/lib/mongoid/selectable.rb +0 -9
  275. data/lib/mongoid/serializable.rb +0 -15
  276. data/lib/mongoid/shardable.rb +0 -7
  277. data/lib/mongoid/stateful.rb +0 -9
  278. data/lib/mongoid/stringified_symbol.rb +2 -3
  279. data/lib/mongoid/tasks/database.rb +0 -5
  280. data/lib/mongoid/threaded/lifecycle.rb +0 -21
  281. data/lib/mongoid/threaded.rb +0 -55
  282. data/lib/mongoid/timestamps/created/short.rb +0 -1
  283. data/lib/mongoid/timestamps/created.rb +0 -1
  284. data/lib/mongoid/timestamps/short.rb +0 -1
  285. data/lib/mongoid/timestamps/timeless.rb +0 -7
  286. data/lib/mongoid/timestamps/updated/short.rb +0 -1
  287. data/lib/mongoid/timestamps/updated.rb +0 -3
  288. data/lib/mongoid/timestamps.rb +0 -1
  289. data/lib/mongoid/touchable.rb +0 -7
  290. data/lib/mongoid/traversable.rb +67 -53
  291. data/lib/mongoid/validatable/associated.rb +0 -3
  292. data/lib/mongoid/validatable/format.rb +0 -1
  293. data/lib/mongoid/validatable/length.rb +0 -1
  294. data/lib/mongoid/validatable/localizable.rb +0 -3
  295. data/lib/mongoid/validatable/macros.rb +0 -7
  296. data/lib/mongoid/validatable/presence.rb +1 -8
  297. data/lib/mongoid/validatable/queryable.rb +0 -3
  298. data/lib/mongoid/validatable/uniqueness.rb +15 -30
  299. data/lib/mongoid/validatable.rb +1 -22
  300. data/lib/mongoid/version.rb +1 -2
  301. data/lib/mongoid/warnings.rb +29 -0
  302. data/lib/mongoid.rb +1 -15
  303. data/lib/rails/generators/mongoid/config/config_generator.rb +0 -1
  304. data/lib/rails/generators/mongoid/config/templates/mongoid.yml +4 -3
  305. data/lib/rails/generators/mongoid/model/model_generator.rb +0 -1
  306. data/lib/rails/generators/mongoid_generator.rb +0 -1
  307. data/lib/rails/mongoid.rb +0 -3
  308. data/spec/config/mongoid_with_schema_map_uuid.yml +27 -0
  309. data/spec/integration/app_spec.rb +20 -15
  310. data/spec/integration/associations/belongs_to_spec.rb +0 -1
  311. data/spec/integration/associations/embedded_dirty_spec.rb +57 -0
  312. data/spec/integration/associations/embedded_spec.rb +0 -1
  313. data/spec/integration/associations/embeds_many_spec.rb +0 -1
  314. data/spec/integration/associations/embeds_one_spec.rb +0 -1
  315. data/spec/integration/associations/foreign_key_spec.rb +0 -1
  316. data/spec/integration/associations/foreign_key_spec_models.rb +0 -1
  317. data/spec/integration/associations/has_many_spec.rb +0 -1
  318. data/spec/integration/associations/has_one_spec.rb +0 -1
  319. data/spec/integration/associations/nested_attributes_assignment_spec.rb +0 -1
  320. data/spec/integration/associations/reverse_population_spec.rb +0 -1
  321. data/spec/integration/associations/reverse_population_spec_models.rb +0 -1
  322. data/spec/integration/associations/scope_option_spec.rb +101 -0
  323. data/spec/integration/atomic/modifiers_spec.rb +0 -1
  324. data/spec/integration/bson_regexp_raw_spec.rb +0 -1
  325. data/spec/integration/callbacks_models.rb +12 -0
  326. data/spec/integration/callbacks_spec.rb +18 -6
  327. data/spec/integration/contextual/empty_spec.rb +0 -1
  328. data/spec/integration/criteria/alias_query_spec.rb +161 -0
  329. data/spec/integration/criteria/date_field_spec.rb +0 -1
  330. data/spec/integration/criteria/default_scope_spec.rb +51 -0
  331. data/spec/integration/criteria/logical_spec.rb +30 -0
  332. data/spec/integration/criteria/range_spec.rb +265 -0
  333. data/spec/integration/criteria/time_with_zone_spec.rb +125 -15
  334. data/spec/integration/discriminator_key_spec.rb +0 -1
  335. data/spec/integration/discriminator_value_spec.rb +0 -1
  336. data/spec/integration/document_spec.rb +0 -1
  337. data/spec/integration/i18n_fallbacks_spec.rb +15 -2
  338. data/spec/integration/matcher_examples_spec.rb +0 -1
  339. data/spec/integration/matcher_operator_spec.rb +27 -3
  340. data/spec/integration/matcher_spec.rb +95 -1
  341. data/spec/integration/server_query_spec.rb +0 -1
  342. data/spec/integration/shardable_spec.rb +0 -1
  343. data/spec/integration/stringified_symbol_field_spec.rb +14 -1
  344. data/spec/lite_spec_helper.rb +1 -2
  345. data/spec/mongoid/association/accessors_spec.rb +44 -15
  346. data/spec/mongoid/association/auto_save_spec.rb +72 -34
  347. data/spec/mongoid/association/builders_spec.rb +1 -2
  348. data/spec/mongoid/association/constrainable_spec.rb +0 -1
  349. data/spec/mongoid/association/counter_cache_spec.rb +32 -33
  350. data/spec/mongoid/association/depending_spec.rb +12 -13
  351. data/spec/mongoid/association/eager_spec.rb +4 -5
  352. data/spec/mongoid/association/embedded/cyclic_spec.rb +2 -3
  353. data/spec/mongoid/association/embedded/dirty_spec.rb +2 -3
  354. data/spec/mongoid/association/embedded/embedded_in/binding_spec.rb +0 -1
  355. data/spec/mongoid/association/embedded/embedded_in/buildable_spec.rb +0 -1
  356. data/spec/mongoid/association/embedded/embedded_in/proxy_spec.rb +13 -14
  357. data/spec/mongoid/association/embedded/embedded_in_spec.rb +0 -1
  358. data/spec/mongoid/association/embedded/embeds_many/binding_spec.rb +0 -1
  359. data/spec/mongoid/association/embedded/embeds_many/buildable_spec.rb +0 -1
  360. data/spec/mongoid/association/embedded/embeds_many/proxy_spec.rb +384 -156
  361. data/spec/mongoid/association/embedded/embeds_many_models.rb +0 -122
  362. data/spec/mongoid/association/embedded/embeds_many_query_spec.rb +0 -1
  363. data/spec/mongoid/association/embedded/embeds_many_spec.rb +0 -1
  364. data/spec/mongoid/association/embedded/embeds_one/binding_spec.rb +0 -1
  365. data/spec/mongoid/association/embedded/embeds_one/buildable_spec.rb +0 -1
  366. data/spec/mongoid/association/embedded/embeds_one/proxy_spec.rb +21 -22
  367. data/spec/mongoid/association/embedded/embeds_one_dnl_models.rb +0 -1
  368. data/spec/mongoid/association/embedded/embeds_one_models.rb +0 -1
  369. data/spec/mongoid/association/embedded/embeds_one_query_spec.rb +0 -1
  370. data/spec/mongoid/association/embedded/embeds_one_spec.rb +0 -1
  371. data/spec/mongoid/association/macros_spec.rb +9 -10
  372. data/spec/mongoid/association/nested/many_spec.rb +0 -1
  373. data/spec/mongoid/association/nested/one_spec.rb +0 -1
  374. data/spec/mongoid/association/options_spec.rb +0 -1
  375. data/spec/mongoid/association/polymorphic_spec.rb +0 -1
  376. data/spec/mongoid/association/referenced/belongs_to/binding_spec.rb +0 -1
  377. data/spec/mongoid/association/referenced/belongs_to/buildable_spec.rb +55 -17
  378. data/spec/mongoid/association/referenced/belongs_to/eager_spec.rb +50 -15
  379. data/spec/mongoid/association/referenced/belongs_to/proxy_spec.rb +57 -53
  380. data/spec/mongoid/association/referenced/belongs_to_query_spec.rb +0 -1
  381. data/spec/mongoid/association/referenced/belongs_to_spec.rb +22 -2
  382. data/spec/mongoid/association/referenced/has_and_belongs_to_many/binding_spec.rb +0 -1
  383. data/spec/mongoid/association/referenced/has_and_belongs_to_many/buildable_spec.rb +26 -2
  384. data/spec/mongoid/association/referenced/has_and_belongs_to_many/eager_spec.rb +31 -3
  385. data/spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_persistence_spec.rb +0 -1
  386. data/spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_spec.rb +179 -162
  387. data/spec/mongoid/association/referenced/has_and_belongs_to_many_models.rb +18 -1
  388. data/spec/mongoid/association/referenced/has_and_belongs_to_many_query_spec.rb +0 -1
  389. data/spec/mongoid/association/referenced/has_and_belongs_to_many_spec.rb +21 -1
  390. data/spec/mongoid/association/referenced/has_many/binding_spec.rb +0 -1
  391. data/spec/mongoid/association/referenced/has_many/buildable_spec.rb +21 -1
  392. data/spec/mongoid/association/referenced/has_many/eager_spec.rb +23 -7
  393. data/spec/mongoid/association/referenced/has_many/enumerable_spec.rb +113 -33
  394. data/spec/mongoid/association/referenced/has_many/proxy_query_spec.rb +0 -1
  395. data/spec/mongoid/association/referenced/has_many/proxy_spec.rb +225 -178
  396. data/spec/mongoid/association/referenced/has_many_models.rb +18 -1
  397. data/spec/mongoid/association/referenced/has_many_query_spec.rb +0 -1
  398. data/spec/mongoid/association/referenced/has_many_spec.rb +21 -1
  399. data/spec/mongoid/association/referenced/has_one/binding_spec.rb +0 -1
  400. data/spec/mongoid/association/referenced/has_one/buildable_spec.rb +51 -8
  401. data/spec/mongoid/association/referenced/has_one/eager_spec.rb +17 -2
  402. data/spec/mongoid/association/referenced/has_one/proxy_spec.rb +26 -27
  403. data/spec/mongoid/association/referenced/has_one_models.rb +18 -1
  404. data/spec/mongoid/association/referenced/has_one_query_spec.rb +0 -1
  405. data/spec/mongoid/association/referenced/has_one_spec.rb +21 -1
  406. data/spec/mongoid/association/reflections_spec.rb +0 -1
  407. data/spec/mongoid/association/syncable_spec.rb +31 -32
  408. data/spec/mongoid/association_spec.rb +0 -1
  409. data/spec/mongoid/atomic/modifiers_spec.rb +0 -1
  410. data/spec/mongoid/atomic/paths/embedded/many_spec.rb +0 -1
  411. data/spec/mongoid/atomic/paths/embedded/one_spec.rb +0 -1
  412. data/spec/mongoid/atomic/paths/root_spec.rb +0 -1
  413. data/spec/mongoid/atomic/paths_spec.rb +0 -1
  414. data/spec/mongoid/atomic_spec.rb +28 -7
  415. data/spec/mongoid/attributes/dynamic_spec.rb +0 -1
  416. data/spec/mongoid/attributes/nested_spec.rb +66 -67
  417. data/spec/mongoid/attributes/projector_spec.rb +5 -2
  418. data/spec/mongoid/attributes/readonly_spec.rb +22 -23
  419. data/spec/mongoid/attributes_spec.rb +32 -33
  420. data/spec/mongoid/cacheable_spec.rb +1 -2
  421. data/spec/mongoid/changeable_spec.rb +35 -36
  422. data/spec/mongoid/clients/factory_spec.rb +11 -13
  423. data/spec/mongoid/clients/options_spec.rb +5 -5
  424. data/spec/mongoid/clients/sessions_spec.rb +22 -23
  425. data/spec/mongoid/clients/transactions_spec.rb +49 -27
  426. data/spec/mongoid/clients_spec.rb +6 -7
  427. data/spec/mongoid/composable_spec.rb +0 -1
  428. data/spec/mongoid/config/environment_spec.rb +39 -2
  429. data/spec/mongoid/config/options_spec.rb +0 -1
  430. data/spec/mongoid/config_spec.rb +154 -4
  431. data/spec/mongoid/contextual/aggregable/memory_spec.rb +51 -12
  432. data/spec/mongoid/contextual/aggregable/mongo_spec.rb +120 -21
  433. data/spec/mongoid/contextual/aggregable/none_spec.rb +60 -0
  434. data/spec/mongoid/contextual/atomic_spec.rb +46 -47
  435. data/spec/mongoid/contextual/geo_near_spec.rb +17 -18
  436. data/spec/mongoid/contextual/map_reduce_spec.rb +2 -3
  437. data/spec/mongoid/contextual/memory_spec.rb +849 -89
  438. data/spec/mongoid/contextual/mongo_spec.rb +1185 -160
  439. data/spec/mongoid/contextual/none_spec.rb +43 -72
  440. data/spec/mongoid/copyable_spec.rb +12 -13
  441. data/spec/mongoid/copyable_spec_models.rb +0 -1
  442. data/spec/mongoid/criteria/findable_spec.rb +23 -24
  443. data/spec/mongoid/criteria/inspectable_spec.rb +0 -1
  444. data/spec/mongoid/criteria/marshalable_spec.rb +0 -1
  445. data/spec/mongoid/criteria/modifiable_spec.rb +36 -37
  446. data/spec/mongoid/criteria/options_spec.rb +0 -1
  447. data/spec/mongoid/criteria/queryable/aggregable_spec.rb +1 -2
  448. data/spec/mongoid/criteria/queryable/expandable_spec.rb +0 -1
  449. data/spec/mongoid/criteria/queryable/extensions/array_spec.rb +0 -1
  450. data/spec/mongoid/criteria/queryable/extensions/big_decimal_spec.rb +0 -1
  451. data/spec/mongoid/criteria/queryable/extensions/bignum_spec.rb +0 -1
  452. data/spec/mongoid/criteria/queryable/extensions/boolean_spec.rb +0 -1
  453. data/spec/mongoid/criteria/queryable/extensions/date_spec.rb +0 -1
  454. data/spec/mongoid/criteria/queryable/extensions/date_time_spec.rb +0 -1
  455. data/spec/mongoid/criteria/queryable/extensions/fixnum_spec.rb +0 -1
  456. data/spec/mongoid/criteria/queryable/extensions/float_spec.rb +0 -1
  457. data/spec/mongoid/criteria/queryable/extensions/hash_spec.rb +0 -1
  458. data/spec/mongoid/criteria/queryable/extensions/integer_spec.rb +0 -1
  459. data/spec/mongoid/criteria/queryable/extensions/nil_class_spec.rb +0 -1
  460. data/spec/mongoid/criteria/queryable/extensions/numeric_spec.rb +0 -1
  461. data/spec/mongoid/criteria/queryable/extensions/object_spec.rb +0 -1
  462. data/spec/mongoid/criteria/queryable/extensions/range_spec.rb +237 -179
  463. data/spec/mongoid/criteria/queryable/extensions/regexp_raw_spec.rb +0 -1
  464. data/spec/mongoid/criteria/queryable/extensions/regexp_spec.rb +0 -1
  465. data/spec/mongoid/criteria/queryable/extensions/set_spec.rb +0 -1
  466. data/spec/mongoid/criteria/queryable/extensions/string_spec.rb +0 -1
  467. data/spec/mongoid/criteria/queryable/extensions/symbol_spec.rb +0 -1
  468. data/spec/mongoid/criteria/queryable/extensions/time_spec.rb +0 -1
  469. data/spec/mongoid/criteria/queryable/extensions/time_with_zone_spec.rb +0 -1
  470. data/spec/mongoid/criteria/queryable/key_spec.rb +0 -1
  471. data/spec/mongoid/criteria/queryable/mergeable_spec.rb +0 -1
  472. data/spec/mongoid/criteria/queryable/optional_spec.rb +1 -2
  473. data/spec/mongoid/criteria/queryable/options_spec.rb +0 -1
  474. data/spec/mongoid/criteria/queryable/pipeline_spec.rb +0 -1
  475. data/spec/mongoid/criteria/queryable/queryable_spec.rb +1 -2
  476. data/spec/mongoid/criteria/queryable/selectable_logical_spec.rb +0 -1
  477. data/spec/mongoid/criteria/queryable/selectable_shared_examples.rb +0 -1
  478. data/spec/mongoid/criteria/queryable/selectable_spec.rb +227 -55
  479. data/spec/mongoid/criteria/queryable/selectable_where_spec.rb +0 -1
  480. data/spec/mongoid/criteria/queryable/selector_spec.rb +0 -1
  481. data/spec/mongoid/criteria/queryable/smash_spec.rb +0 -1
  482. data/spec/mongoid/criteria/queryable/storable_spec.rb +37 -1
  483. data/spec/mongoid/criteria/scopable_spec.rb +127 -1
  484. data/spec/mongoid/criteria_projection_spec.rb +3 -4
  485. data/spec/mongoid/criteria_spec.rb +523 -187
  486. data/spec/mongoid/document_fields_spec.rb +0 -1
  487. data/spec/mongoid/document_persistence_context_spec.rb +0 -1
  488. data/spec/mongoid/document_query_spec.rb +0 -1
  489. data/spec/mongoid/document_spec.rb +11 -33
  490. data/spec/mongoid/equality_spec.rb +142 -41
  491. data/spec/mongoid/errors/ambiguous_relationship_spec.rb +0 -1
  492. data/spec/mongoid/errors/callback_spec.rb +0 -1
  493. data/spec/mongoid/errors/delete_restriction_spec.rb +0 -1
  494. data/spec/mongoid/errors/document_not_destroyed_spec.rb +0 -1
  495. data/spec/mongoid/errors/document_not_found_spec.rb +49 -1
  496. data/spec/mongoid/errors/eager_load_spec.rb +0 -1
  497. data/spec/mongoid/errors/invalid_collection_spec.rb +0 -1
  498. data/spec/mongoid/errors/invalid_config_file_spec.rb +0 -1
  499. data/spec/mongoid/errors/invalid_config_option_spec.rb +0 -1
  500. data/spec/mongoid/errors/invalid_field_option_spec.rb +0 -1
  501. data/spec/mongoid/errors/invalid_field_spec.rb +0 -1
  502. data/spec/mongoid/errors/invalid_find_spec.rb +0 -1
  503. data/spec/mongoid/errors/invalid_includes_spec.rb +0 -1
  504. data/spec/mongoid/errors/invalid_index_spec.rb +0 -1
  505. data/spec/mongoid/errors/invalid_options_spec.rb +0 -1
  506. data/spec/mongoid/errors/invalid_path_spec.rb +0 -1
  507. data/spec/mongoid/errors/invalid_relation_spec.rb +0 -1
  508. data/spec/mongoid/errors/invalid_scope_spec.rb +1 -2
  509. data/spec/mongoid/errors/invalid_set_polymorphic_relation_spec.rb +0 -1
  510. data/spec/mongoid/errors/invalid_storage_options_spec.rb +0 -1
  511. data/spec/mongoid/errors/invalid_time_spec.rb +0 -1
  512. data/spec/mongoid/errors/inverse_not_found_spec.rb +0 -1
  513. data/spec/mongoid/errors/mixed_client_configuration_spec.rb +0 -1
  514. data/spec/mongoid/errors/mixed_relations_spec.rb +0 -1
  515. data/spec/mongoid/errors/mongoid_error_spec.rb +1 -2
  516. data/spec/mongoid/errors/nested_attributes_metadata_not_found_spec.rb +0 -1
  517. data/spec/mongoid/errors/no_client_config_spec.rb +0 -1
  518. data/spec/mongoid/errors/no_client_database_spec.rb +0 -1
  519. data/spec/mongoid/errors/no_client_hosts_spec.rb +0 -1
  520. data/spec/mongoid/errors/no_clients_config_spec.rb +0 -1
  521. data/spec/mongoid/errors/no_environment_spec.rb +0 -1
  522. data/spec/mongoid/errors/no_map_reduce_output_spec.rb +0 -1
  523. data/spec/mongoid/errors/no_metadata_spec.rb +0 -1
  524. data/spec/mongoid/errors/no_parent_spec.rb +0 -1
  525. data/spec/mongoid/errors/readonly_attribute_spec.rb +0 -1
  526. data/spec/mongoid/errors/readonly_document_spec.rb +0 -1
  527. data/spec/mongoid/errors/scope_overwrite_spec.rb +0 -1
  528. data/spec/mongoid/errors/too_many_nested_attribute_records_spec.rb +0 -1
  529. data/spec/mongoid/errors/unknown_attribute_spec.rb +2 -3
  530. data/spec/mongoid/errors/unsaved_document_spec.rb +0 -1
  531. data/spec/mongoid/errors/unsupported_javascript_spec.rb +0 -1
  532. data/spec/mongoid/errors/validations_spec.rb +0 -1
  533. data/spec/mongoid/extensions/array_spec.rb +0 -1
  534. data/spec/mongoid/extensions/big_decimal_spec.rb +0 -1
  535. data/spec/mongoid/extensions/binary_spec.rb +0 -1
  536. data/spec/mongoid/extensions/boolean_spec.rb +0 -1
  537. data/spec/mongoid/extensions/date_class_mongoize_spec.rb +0 -1
  538. data/spec/mongoid/extensions/date_spec.rb +0 -1
  539. data/spec/mongoid/extensions/date_time_spec.rb +0 -1
  540. data/spec/mongoid/extensions/decimal128_spec.rb +0 -1
  541. data/spec/mongoid/extensions/false_class_spec.rb +0 -1
  542. data/spec/mongoid/extensions/float_spec.rb +0 -1
  543. data/spec/mongoid/extensions/hash_spec.rb +0 -1
  544. data/spec/mongoid/extensions/integer_spec.rb +0 -1
  545. data/spec/mongoid/extensions/module_spec.rb +0 -1
  546. data/spec/mongoid/extensions/nil_class_spec.rb +0 -1
  547. data/spec/mongoid/extensions/object_id_spec.rb +0 -1
  548. data/spec/mongoid/extensions/object_spec.rb +0 -1
  549. data/spec/mongoid/extensions/range_spec.rb +0 -1
  550. data/spec/mongoid/extensions/regexp_spec.rb +0 -1
  551. data/spec/mongoid/extensions/set_spec.rb +0 -1
  552. data/spec/mongoid/extensions/string_spec.rb +2 -3
  553. data/spec/mongoid/extensions/stringified_symbol_spec.rb +0 -1
  554. data/spec/mongoid/extensions/symbol_spec.rb +0 -1
  555. data/spec/mongoid/extensions/time_spec.rb +0 -1
  556. data/spec/mongoid/extensions/time_with_zone_spec.rb +0 -1
  557. data/spec/mongoid/extensions/true_class_spec.rb +0 -1
  558. data/spec/mongoid/extensions_spec.rb +14 -3
  559. data/spec/mongoid/factory_spec.rb +1 -1
  560. data/spec/mongoid/fields/foreign_key_spec.rb +0 -1
  561. data/spec/mongoid/fields/localized_spec.rb +0 -1
  562. data/spec/mongoid/fields/standard_spec.rb +0 -1
  563. data/spec/mongoid/fields_spec.rb +326 -31
  564. data/spec/mongoid/findable_spec.rb +51 -22
  565. data/spec/mongoid/indexable/specification_spec.rb +0 -1
  566. data/spec/mongoid/indexable_spec.rb +0 -1
  567. data/spec/mongoid/inspectable_spec.rb +0 -1
  568. data/spec/mongoid/interceptable_spec.rb +102 -95
  569. data/spec/mongoid/loggable_spec.rb +0 -1
  570. data/spec/mongoid/matcher/extract_attribute_spec.rb +5 -2
  571. data/spec/mongoid/persistable/creatable_spec.rb +2 -3
  572. data/spec/mongoid/persistable/deletable_spec.rb +18 -19
  573. data/spec/mongoid/persistable/destroyable_spec.rb +8 -9
  574. data/spec/mongoid/persistable/incrementable_spec.rb +8 -9
  575. data/spec/mongoid/persistable/logical_spec.rb +4 -5
  576. data/spec/mongoid/persistable/poppable_spec.rb +4 -5
  577. data/spec/mongoid/persistable/pullable_spec.rb +8 -9
  578. data/spec/mongoid/persistable/pushable_spec.rb +8 -9
  579. data/spec/mongoid/persistable/renamable_spec.rb +3 -4
  580. data/spec/mongoid/persistable/savable_spec.rb +15 -11
  581. data/spec/mongoid/persistable/settable_spec.rb +9 -10
  582. data/spec/mongoid/persistable/unsettable_spec.rb +4 -5
  583. data/spec/mongoid/persistable/updatable_spec.rb +41 -24
  584. data/spec/mongoid/persistable/upsertable_spec.rb +1 -2
  585. data/spec/mongoid/persistable_spec.rb +1 -2
  586. data/spec/mongoid/persistence_context_spec.rb +0 -1
  587. data/spec/mongoid/positional_spec.rb +0 -1
  588. data/spec/mongoid/query_cache_middleware_spec.rb +1 -2
  589. data/spec/mongoid/query_cache_spec.rb +30 -8
  590. data/spec/mongoid/relations/proxy_spec.rb +6 -7
  591. data/spec/mongoid/reloadable_spec.rb +209 -23
  592. data/spec/mongoid/scopable_spec.rb +54 -22
  593. data/spec/mongoid/selectable_spec.rb +6 -7
  594. data/spec/mongoid/serializable_spec.rb +9 -10
  595. data/spec/mongoid/shardable_spec.rb +2 -3
  596. data/spec/mongoid/stateful_spec.rb +1 -2
  597. data/spec/mongoid/tasks/database_rake_spec.rb +0 -1
  598. data/spec/mongoid/tasks/database_spec.rb +0 -1
  599. data/spec/mongoid/threaded_spec.rb +2 -3
  600. data/spec/mongoid/timestamps/created/short_spec.rb +1 -2
  601. data/spec/mongoid/timestamps/created_spec.rb +1 -2
  602. data/spec/mongoid/timestamps/timeless_spec.rb +2 -3
  603. data/spec/mongoid/timestamps/updated/short_spec.rb +3 -4
  604. data/spec/mongoid/timestamps/updated_spec.rb +3 -4
  605. data/spec/mongoid/timestamps_spec.rb +6 -7
  606. data/spec/mongoid/touchable_spec.rb +15 -20
  607. data/spec/mongoid/touchable_spec_models.rb +0 -1
  608. data/spec/mongoid/traversable_spec.rb +65 -2
  609. data/spec/mongoid/validatable/associated_spec.rb +0 -1
  610. data/spec/mongoid/validatable/format_spec.rb +0 -1
  611. data/spec/mongoid/validatable/length_spec.rb +0 -1
  612. data/spec/mongoid/validatable/numericality_spec.rb +0 -1
  613. data/spec/mongoid/validatable/presence_spec.rb +26 -23
  614. data/spec/mongoid/validatable/uniqueness_spec.rb +67 -68
  615. data/spec/mongoid/validatable_spec.rb +2 -3
  616. data/spec/mongoid_spec.rb +0 -1
  617. data/spec/rails/controller_extension/controller_runtime_spec.rb +0 -1
  618. data/spec/rails/mongoid_spec.rb +0 -1
  619. data/spec/shared/lib/mrss/constraints.rb +10 -17
  620. data/spec/shared/lib/mrss/docker_runner.rb +23 -3
  621. data/spec/shared/lib/mrss/eg_config_utils.rb +51 -0
  622. data/spec/shared/lib/mrss/event_subscriber.rb +15 -5
  623. data/spec/shared/lib/mrss/lite_constraints.rb +40 -1
  624. data/spec/shared/share/Dockerfile.erb +56 -54
  625. data/spec/shared/shlib/config.sh +27 -0
  626. data/spec/shared/shlib/distro.sh +2 -1
  627. data/spec/shared/shlib/server.sh +46 -21
  628. data/spec/shared/shlib/set_env.sh +43 -5
  629. data/spec/spec_helper.rb +12 -22
  630. data/spec/support/authorization.rb +0 -1
  631. data/spec/support/constraints.rb +0 -1
  632. data/spec/support/expectations.rb +0 -1
  633. data/spec/support/macros.rb +31 -1
  634. data/spec/support/models/account.rb +1 -2
  635. data/spec/support/models/acolyte.rb +0 -1
  636. data/spec/support/models/actor.rb +0 -1
  637. data/spec/support/models/actress.rb +0 -1
  638. data/spec/support/models/address.rb +0 -1
  639. data/spec/support/models/address_component.rb +0 -1
  640. data/spec/support/models/address_number.rb +0 -1
  641. data/spec/support/models/agency.rb +0 -1
  642. data/spec/support/models/agent.rb +0 -1
  643. data/spec/support/models/album.rb +0 -1
  644. data/spec/support/models/alert.rb +0 -1
  645. data/spec/support/models/animal.rb +0 -1
  646. data/spec/support/models/answer.rb +0 -1
  647. data/spec/support/models/appointment.rb +0 -1
  648. data/spec/support/models/armrest.rb +0 -1
  649. data/spec/support/models/array_field.rb +0 -1
  650. data/spec/support/models/article.rb +0 -1
  651. data/spec/support/models/artist.rb +2 -1
  652. data/spec/support/models/artwork.rb +0 -1
  653. data/spec/support/models/audio.rb +0 -1
  654. data/spec/support/models/augmentation.rb +0 -1
  655. data/spec/support/models/author.rb +0 -1
  656. data/spec/support/models/baby.rb +0 -1
  657. data/spec/support/models/band.rb +4 -1
  658. data/spec/support/models/bar.rb +0 -1
  659. data/spec/support/models/basic.rb +0 -1
  660. data/spec/support/models/bed.rb +0 -1
  661. data/spec/support/models/big_palette.rb +0 -1
  662. data/spec/support/models/birthday.rb +0 -1
  663. data/spec/support/models/bolt.rb +0 -1
  664. data/spec/support/models/bomb.rb +0 -1
  665. data/spec/support/models/book.rb +0 -1
  666. data/spec/support/models/breed.rb +0 -1
  667. data/spec/support/models/browser.rb +0 -1
  668. data/spec/support/models/building.rb +0 -1
  669. data/spec/support/models/building_address.rb +0 -1
  670. data/spec/support/models/bus.rb +0 -1
  671. data/spec/support/models/business.rb +0 -1
  672. data/spec/support/models/callback_test.rb +0 -1
  673. data/spec/support/models/canvas.rb +0 -1
  674. data/spec/support/models/car.rb +0 -1
  675. data/spec/support/models/cat.rb +0 -1
  676. data/spec/support/models/category.rb +0 -1
  677. data/spec/support/models/child.rb +0 -1
  678. data/spec/support/models/child_doc.rb +3 -4
  679. data/spec/support/models/church.rb +0 -1
  680. data/spec/support/models/circle.rb +0 -1
  681. data/spec/support/models/circuit.rb +0 -1
  682. data/spec/support/models/circus.rb +0 -1
  683. data/spec/support/models/code.rb +2 -1
  684. data/spec/support/models/coding/pull_request.rb +0 -1
  685. data/spec/support/models/coding.rb +0 -1
  686. data/spec/support/models/comment.rb +0 -1
  687. data/spec/support/models/company.rb +0 -1
  688. data/spec/support/models/consumption_period.rb +0 -1
  689. data/spec/support/models/contextable_item.rb +0 -1
  690. data/spec/support/models/contractor.rb +0 -1
  691. data/spec/support/models/cookie.rb +0 -1
  692. data/spec/support/models/country_code.rb +2 -1
  693. data/spec/support/models/courier_job.rb +0 -1
  694. data/spec/support/models/crate.rb +0 -1
  695. data/spec/support/models/customer.rb +0 -1
  696. data/spec/support/models/customer_address.rb +0 -1
  697. data/spec/support/models/deed.rb +0 -1
  698. data/spec/support/models/definition.rb +0 -1
  699. data/spec/support/models/delegating_patient.rb +0 -1
  700. data/spec/support/models/description.rb +0 -1
  701. data/spec/support/models/dictionary.rb +0 -1
  702. data/spec/support/models/division.rb +0 -1
  703. data/spec/support/models/doctor.rb +0 -1
  704. data/spec/support/models/dog.rb +0 -1
  705. data/spec/support/models/dokument.rb +0 -1
  706. data/spec/support/models/draft.rb +0 -1
  707. data/spec/support/models/dragon.rb +0 -1
  708. data/spec/support/models/driver.rb +0 -1
  709. data/spec/support/models/drug.rb +0 -1
  710. data/spec/support/models/dungeon.rb +0 -1
  711. data/spec/support/models/edit.rb +0 -1
  712. data/spec/support/models/email.rb +0 -1
  713. data/spec/support/models/employer.rb +0 -1
  714. data/spec/support/models/entry.rb +0 -1
  715. data/spec/support/models/eraser.rb +0 -1
  716. data/spec/support/models/even.rb +0 -1
  717. data/spec/support/models/event.rb +0 -1
  718. data/spec/support/models/exhibition.rb +0 -1
  719. data/spec/support/models/exhibitor.rb +0 -1
  720. data/spec/support/models/explosion.rb +0 -1
  721. data/spec/support/models/eye.rb +0 -1
  722. data/spec/support/models/eye_bowl.rb +0 -1
  723. data/spec/support/models/face.rb +0 -1
  724. data/spec/support/models/favorite.rb +0 -1
  725. data/spec/support/models/filesystem.rb +0 -1
  726. data/spec/support/models/fire_hydrant.rb +0 -1
  727. data/spec/support/models/firefox.rb +0 -1
  728. data/spec/support/models/fish.rb +0 -1
  729. data/spec/support/models/folder.rb +0 -1
  730. data/spec/support/models/folder_item.rb +0 -1
  731. data/spec/support/models/fruits.rb +0 -1
  732. data/spec/support/models/game.rb +0 -1
  733. data/spec/support/models/ghost.rb +0 -1
  734. data/spec/support/models/guitar.rb +0 -1
  735. data/spec/support/models/hole.rb +0 -1
  736. data/spec/support/models/home.rb +0 -1
  737. data/spec/support/models/house.rb +0 -1
  738. data/spec/support/models/html_writer.rb +0 -1
  739. data/spec/support/models/id_key.rb +0 -1
  740. data/spec/support/models/idnodef.rb +0 -1
  741. data/spec/support/models/image.rb +0 -1
  742. data/spec/support/models/implant.rb +0 -1
  743. data/spec/support/models/instrument.rb +0 -1
  744. data/spec/support/models/item.rb +0 -1
  745. data/spec/support/models/jar.rb +0 -1
  746. data/spec/support/models/kaleidoscope.rb +0 -1
  747. data/spec/support/models/kangaroo.rb +0 -1
  748. data/spec/support/models/label.rb +2 -2
  749. data/spec/support/models/language.rb +0 -1
  750. data/spec/support/models/lat_lng.rb +0 -1
  751. data/spec/support/models/league.rb +0 -1
  752. data/spec/support/models/learner.rb +0 -1
  753. data/spec/support/models/line_item.rb +0 -1
  754. data/spec/support/models/location.rb +0 -1
  755. data/spec/support/models/login.rb +0 -1
  756. data/spec/support/models/manufacturer.rb +0 -1
  757. data/spec/support/models/meat.rb +0 -1
  758. data/spec/support/models/membership.rb +1 -1
  759. data/spec/support/models/message.rb +0 -1
  760. data/spec/support/models/minim.rb +0 -1
  761. data/spec/support/models/mixed_drink.rb +0 -1
  762. data/spec/support/models/mop.rb +0 -1
  763. data/spec/support/models/movie.rb +0 -1
  764. data/spec/support/models/my_hash.rb +0 -1
  765. data/spec/support/models/name.rb +0 -1
  766. data/spec/support/models/name_only.rb +0 -1
  767. data/spec/support/models/node.rb +0 -1
  768. data/spec/support/models/note.rb +0 -1
  769. data/spec/support/models/nut.rb +0 -1
  770. data/spec/support/models/odd.rb +0 -1
  771. data/spec/support/models/order.rb +2 -1
  772. data/spec/support/models/ordered_post.rb +1 -2
  773. data/spec/support/models/ordered_preference.rb +0 -1
  774. data/spec/support/models/oscar.rb +0 -1
  775. data/spec/support/models/other_owner_object.rb +0 -1
  776. data/spec/support/models/override.rb +0 -1
  777. data/spec/support/models/ownable.rb +0 -1
  778. data/spec/support/models/owner.rb +0 -1
  779. data/spec/support/models/pack.rb +0 -1
  780. data/spec/support/models/page.rb +0 -1
  781. data/spec/support/models/page_question.rb +0 -1
  782. data/spec/support/models/palette.rb +0 -1
  783. data/spec/support/models/parent.rb +0 -1
  784. data/spec/support/models/parent_doc.rb +0 -1
  785. data/spec/support/models/passport.rb +5 -1
  786. data/spec/support/models/patient.rb +0 -1
  787. data/spec/support/models/pdf_writer.rb +0 -1
  788. data/spec/support/models/pencil.rb +0 -1
  789. data/spec/support/models/person.rb +1 -1
  790. data/spec/support/models/pet.rb +0 -1
  791. data/spec/support/models/pet_owner.rb +0 -1
  792. data/spec/support/models/phone.rb +2 -2
  793. data/spec/support/models/piano.rb +0 -1
  794. data/spec/support/models/pizza.rb +0 -1
  795. data/spec/support/models/player.rb +0 -1
  796. data/spec/support/models/post.rb +0 -1
  797. data/spec/support/models/post_genre.rb +0 -1
  798. data/spec/support/models/powerup.rb +0 -1
  799. data/spec/support/models/preference.rb +0 -1
  800. data/spec/support/models/princess.rb +0 -1
  801. data/spec/support/models/product.rb +0 -1
  802. data/spec/support/models/profile.rb +0 -1
  803. data/spec/support/models/pronunciation.rb +0 -1
  804. data/spec/support/models/pub.rb +0 -1
  805. data/spec/support/models/publication/encyclopedia.rb +0 -1
  806. data/spec/support/models/publication/review.rb +0 -1
  807. data/spec/support/models/publication.rb +0 -1
  808. data/spec/support/models/purchase.rb +0 -1
  809. data/spec/support/models/purchased_item.rb +10 -0
  810. data/spec/support/models/question.rb +0 -1
  811. data/spec/support/models/quiz.rb +0 -1
  812. data/spec/support/models/rating.rb +0 -1
  813. data/spec/support/models/record.rb +0 -1
  814. data/spec/support/models/registry.rb +0 -1
  815. data/spec/support/models/role.rb +0 -1
  816. data/spec/support/models/root_category.rb +0 -1
  817. data/spec/support/models/sandwich.rb +0 -1
  818. data/spec/support/models/scheduler.rb +0 -1
  819. data/spec/support/models/scribe.rb +0 -1
  820. data/spec/support/models/sealer.rb +0 -1
  821. data/spec/support/models/seat.rb +0 -1
  822. data/spec/support/models/seo.rb +0 -1
  823. data/spec/support/models/series.rb +0 -1
  824. data/spec/support/models/server.rb +0 -1
  825. data/spec/support/models/service.rb +0 -1
  826. data/spec/support/models/shape.rb +0 -1
  827. data/spec/support/models/shelf.rb +0 -1
  828. data/spec/support/models/shipment_address.rb +0 -1
  829. data/spec/support/models/shipping_container.rb +0 -1
  830. data/spec/support/models/shipping_pack.rb +0 -1
  831. data/spec/support/models/shirt.rb +0 -1
  832. data/spec/support/models/shop.rb +0 -1
  833. data/spec/support/models/short_agent.rb +0 -1
  834. data/spec/support/models/short_quiz.rb +0 -1
  835. data/spec/support/models/simple.rb +0 -1
  836. data/spec/support/models/slave.rb +0 -1
  837. data/spec/support/models/song.rb +0 -1
  838. data/spec/support/models/sound.rb +0 -1
  839. data/spec/support/models/spacer.rb +0 -1
  840. data/spec/support/models/square.rb +0 -1
  841. data/spec/support/models/staff.rb +0 -1
  842. data/spec/support/models/store_as_dup_test1.rb +0 -1
  843. data/spec/support/models/store_as_dup_test2.rb +0 -1
  844. data/spec/support/models/store_as_dup_test3.rb +0 -1
  845. data/spec/support/models/store_as_dup_test4.rb +0 -1
  846. data/spec/support/models/strategy.rb +0 -1
  847. data/spec/support/models/sub_item.rb +0 -1
  848. data/spec/support/models/subscription.rb +0 -1
  849. data/spec/support/models/survey.rb +0 -1
  850. data/spec/support/models/symptom.rb +0 -1
  851. data/spec/support/models/tag.rb +0 -1
  852. data/spec/support/models/target.rb +0 -1
  853. data/spec/support/models/template.rb +0 -1
  854. data/spec/support/models/thing.rb +0 -1
  855. data/spec/support/models/threadlocker.rb +0 -1
  856. data/spec/support/models/title.rb +0 -1
  857. data/spec/support/models/tool.rb +0 -1
  858. data/spec/support/models/topping.rb +0 -1
  859. data/spec/support/models/toy.rb +0 -1
  860. data/spec/support/models/track.rb +0 -1
  861. data/spec/support/models/translation.rb +0 -1
  862. data/spec/support/models/tree.rb +0 -1
  863. data/spec/support/models/truck.rb +0 -1
  864. data/spec/support/models/updatable.rb +0 -1
  865. data/spec/support/models/user.rb +0 -1
  866. data/spec/support/models/user_account.rb +0 -1
  867. data/spec/support/models/validation_callback.rb +0 -1
  868. data/spec/support/models/vehicle.rb +0 -1
  869. data/spec/support/models/version.rb +0 -1
  870. data/spec/support/models/vertex.rb +0 -1
  871. data/spec/support/models/vet_visit.rb +0 -1
  872. data/spec/support/models/video.rb +0 -1
  873. data/spec/support/models/video_game.rb +0 -1
  874. data/spec/support/models/washer.rb +0 -1
  875. data/spec/support/models/weapon.rb +0 -1
  876. data/spec/support/models/wiki_page.rb +0 -1
  877. data/spec/support/models/word.rb +0 -1
  878. data/spec/support/models/word_origin.rb +0 -1
  879. data/spec/support/models/writer.rb +0 -1
  880. data/spec/support/schema_maps/schema_map_aws.json +17 -0
  881. data/spec/support/schema_maps/schema_map_aws_key_alt_names.json +12 -0
  882. data/spec/support/schema_maps/schema_map_azure.json +17 -0
  883. data/spec/support/schema_maps/schema_map_azure_key_alt_names.json +12 -0
  884. data/spec/support/schema_maps/schema_map_gcp.json +17 -0
  885. data/spec/support/schema_maps/schema_map_gcp_key_alt_names.json +12 -0
  886. data/spec/support/schema_maps/schema_map_kmip.json +17 -0
  887. data/spec/support/schema_maps/schema_map_kmip_key_alt_names.json +12 -0
  888. data/spec/support/schema_maps/schema_map_local.json +18 -0
  889. data/spec/support/schema_maps/schema_map_local_key_alt_names.json +12 -0
  890. data/spec/support/shared/time.rb +0 -1
  891. data/spec/support/spec_config.rb +7 -1
  892. data.tar.gz.sig +0 -0
  893. metadata +51 -11
  894. metadata.gz.sig +0 -0
  895. data/lib/support/ruby_version.rb +0 -29
@@ -1,12 +1,9 @@
1
1
  # frozen_string_literal: true
2
- # encoding: utf-8
3
2
 
4
3
  module Mongoid
5
4
 
6
5
  # This module contains behavior for all Mongoid scoping - named scopes,
7
6
  # default scopes, and criteria accessors via scoped and unscoped.
8
- #
9
- # @since 4.0.0
10
7
  module Scopable
11
8
  extend ActiveSupport::Concern
12
9
 
@@ -27,8 +24,6 @@ module Mongoid
27
24
  # document.apply_default_scoping
28
25
  #
29
26
  # @return [ true, false ] If default scoping was applied.
30
- #
31
- # @since 4.0.0
32
27
  def apply_default_scoping
33
28
  if default_scoping
34
29
  default_scoping.call.selector.each do |field, value|
@@ -52,8 +47,6 @@ module Mongoid
52
47
  # Band.scopes
53
48
  #
54
49
  # @return [ Hash ] The scopes defined for this class
55
- #
56
- # @since 3.1.4
57
50
  def scopes
58
51
  defined_scopes = {}
59
52
  ancestors.reverse.each do |klass|
@@ -86,8 +79,6 @@ module Mongoid
86
79
  # @raise [ Errors::InvalidScope ] If the scope is not a proc or criteria.
87
80
  #
88
81
  # @return [ Proc ] The default scope.
89
- #
90
- # @since 1.0.0
91
82
  def default_scope(value = nil)
92
83
  value = Proc.new { yield } if block_given?
93
84
  check_scope_validity(value)
@@ -100,8 +91,6 @@ module Mongoid
100
91
  # Band.default_scopable?
101
92
  #
102
93
  # @return [ true, false ] If the default scope can be applied.
103
- #
104
- # @since 3.0.0
105
94
  def default_scopable?
106
95
  default_scoping? && !Threaded.without_default_scope?(self)
107
96
  end
@@ -114,8 +103,6 @@ module Mongoid
114
103
  # Model.queryable
115
104
  #
116
105
  # @return [ Criteria ] The queryable.
117
- #
118
- # @since 3.0.0
119
106
  def queryable
120
107
  crit = Threaded.current_scope(self) || Criteria.new(self)
121
108
  crit.embedded = true if (crit.klass.embedded? && !crit.klass.cyclic?)
@@ -141,8 +128,6 @@ module Mongoid
141
128
  #
142
129
  # @raise [ Errors::InvalidScope ] If the scope is not a proc.
143
130
  # @raise [ Errors::ScopeOverwrite ] If the scope name already exists.
144
- #
145
- # @since 1.0.0
146
131
  def scope(name, value, &block)
147
132
  normalized = name.to_sym
148
133
  check_scope_validity(value)
@@ -169,8 +154,6 @@ module Mongoid
169
154
  # @option options [ Array ] :sort Optional sorting options.
170
155
  #
171
156
  # @return [ Criteria ] A scoped criteria.
172
- #
173
- # @since 3.0.0
174
157
  def scoped(options = nil)
175
158
  queryable.scoped(options)
176
159
  end
@@ -189,8 +172,6 @@ module Mongoid
189
172
  #
190
173
  # @return [ Criteria, Object ] The unscoped criteria or result of the
191
174
  # block.
192
- #
193
- # @since 3.0.0
194
175
  def unscoped
195
176
  if block_given?
196
177
  without_default_scope do
@@ -207,8 +188,6 @@ module Mongoid
207
188
  # Model.with_default_scope
208
189
  #
209
190
  # @return [ Criteria ] The criteria.
210
- #
211
- # @since 3.0.0
212
191
  def with_default_scope
213
192
  queryable.with_default_scope
214
193
  end
@@ -223,14 +202,17 @@ module Mongoid
223
202
  # @param [ Criteria ] criteria The criteria to apply.
224
203
  #
225
204
  # @return [ Criteria ] The yielded criteria.
226
- #
227
- # @since 1.0.0
228
205
  def with_scope(criteria)
206
+ previous = Threaded.current_scope(self)
229
207
  Threaded.set_current_scope(criteria, self)
230
208
  begin
231
209
  yield criteria
232
210
  ensure
233
- Threaded.set_current_scope(nil, self)
211
+ if Mongoid.broken_scoping
212
+ Threaded.set_current_scope(nil, self)
213
+ else
214
+ Threaded.set_current_scope(previous, self)
215
+ end
234
216
  end
235
217
  end
236
218
 
@@ -242,8 +224,6 @@ module Mongoid
242
224
  # end
243
225
  #
244
226
  # @return [ Object ] The result of the block.
245
- #
246
- # @since 3.0.0
247
227
  def without_default_scope
248
228
  Threaded.begin_without_default_scope(self)
249
229
  yield
@@ -264,8 +244,6 @@ module Mongoid
264
244
  #
265
245
  # @raise [ Errors::ScopeOverwrite ] If the name exists and configured to
266
246
  # raise the error.
267
- #
268
- # @since 2.1.0
269
247
  def check_scope_name(name)
270
248
  if _declared_scopes[name] || respond_to?(name, true)
271
249
  if Mongoid.scope_overwrite_exception
@@ -292,8 +270,6 @@ module Mongoid
292
270
  # @param [ Object ] value The intended scope.
293
271
  #
294
272
  # @raise [ Errors::InvalidScope ] If the scope is not a valid object.
295
- #
296
- # @since 3.0.0
297
273
  def check_scope_validity(value)
298
274
  unless value.respond_to?(:call)
299
275
  raise Errors::InvalidScope.new(self, value)
@@ -311,8 +287,6 @@ module Mongoid
311
287
  # @param [ Symbol ] name The method/scope name.
312
288
  #
313
289
  # @return [ Method ] The defined method.
314
- #
315
- # @since 3.0.0
316
290
  def define_scope_method(name)
317
291
  singleton_class.class_eval do
318
292
  define_method(name) do |*args|
@@ -336,8 +310,6 @@ module Mongoid
336
310
  # Model.process_default_scope(value)
337
311
  #
338
312
  # @param [ Criteria, Proc ] value The default scope value.
339
- #
340
- # @since 3.0.5
341
313
  def process_default_scope(value)
342
314
  if existing = default_scoping
343
315
  ->{ existing.call.merge(value.to_proc.call) }
@@ -1,11 +1,8 @@
1
1
  # frozen_string_literal: true
2
- # encoding: utf-8
3
2
 
4
3
  module Mongoid
5
4
 
6
5
  # Provides behavior for generating the selector for a specific document.
7
- #
8
- # @since 4.0.0
9
6
  module Selectable
10
7
  extend ActiveSupport::Concern
11
8
 
@@ -17,8 +14,6 @@ module Mongoid
17
14
  # document.atomic_selector
18
15
  #
19
16
  # @return [ Hash ] The document's selector.
20
- #
21
- # @since 1.0.0
22
17
  def atomic_selector
23
18
  @atomic_selector ||=
24
19
  (embedded? ? embedded_atomic_selector : root_atomic_selector_in_db)
@@ -34,8 +29,6 @@ module Mongoid
34
29
  # document.embedded_atomic_selector
35
30
  #
36
31
  # @return [ Hash ] The embedded document selector.
37
- #
38
- # @since 4.0.0
39
32
  def embedded_atomic_selector
40
33
  if persisted? && _id_changed?
41
34
  _parent.atomic_selector
@@ -50,8 +43,6 @@ module Mongoid
50
43
  # @api private
51
44
  #
52
45
  # @return [ Hash ] The root document selector.
53
- #
54
- # @since 4.0.0
55
46
  def root_atomic_selector_in_db
56
47
  { "_id" => _id }.merge!(shard_key_selector_in_db)
57
48
  end
@@ -1,12 +1,9 @@
1
1
  # frozen_string_literal: true
2
- # encoding: utf-8
3
2
 
4
3
  module Mongoid
5
4
 
6
5
  # This module provides the extra behavior for including associations in JSON
7
6
  # and XML serialization.
8
- #
9
- # @since 4.0.0
10
7
  module Serializable
11
8
  extend ActiveSupport::Concern
12
9
 
@@ -42,8 +39,6 @@ module Mongoid
42
39
  # @option options [ Symbol ] :methods What methods to include.
43
40
  #
44
41
  # @return [ Hash ] The document, ready to be serialized.
45
- #
46
- # @since 2.0.0.rc.6
47
42
  def serializable_hash(options = nil)
48
43
  options ||= {}
49
44
  attrs = {}
@@ -73,8 +68,6 @@ module Mongoid
73
68
  # document.send(:field_names)
74
69
  #
75
70
  # @return [ Array<String> ] The names of the fields.
76
- #
77
- # @since 3.0.0
78
71
  def field_names(options)
79
72
  names = (as_attributes.keys + attribute_names).uniq.sort
80
73
 
@@ -104,8 +97,6 @@ module Mongoid
104
97
  # @param [ Hash ] options The options.
105
98
  #
106
99
  # @return [ Object ] The attribute.
107
- #
108
- # @since 3.0.0
109
100
  def serialize_attribute(attrs, name, names, options)
110
101
  if relations.key?(name)
111
102
  value = send(name)
@@ -129,8 +120,6 @@ module Mongoid
129
120
  # @option options [ Symbol ] :include What associations to include
130
121
  # @option options [ Symbol ] :only Limit the fields to only these.
131
122
  # @option options [ Symbol ] :except Dont include these fields.
132
- #
133
- # @since 2.0.0.rc.6
134
123
  def serialize_relations(attributes = {}, options = {})
135
124
  inclusions = options[:include]
136
125
  relation_names(inclusions).each do |name|
@@ -151,8 +140,6 @@ module Mongoid
151
140
  # @param [ Hash, Symbol, Array<Symbol> ] inclusions The inclusions.
152
141
  #
153
142
  # @return [ Array<Symbol> ] The names of the included associations.
154
- #
155
- # @since 2.0.0.rc.6
156
143
  def relation_names(inclusions)
157
144
  inclusions.is_a?(Hash) ? inclusions.keys : Array.wrap(inclusions)
158
145
  end
@@ -168,8 +155,6 @@ module Mongoid
168
155
  # @param [ Symbol ] name The name of the association.
169
156
  #
170
157
  # @return [ Hash ] The options for the association.
171
- #
172
- # @since 2.0.0.rc.6
173
158
  def relation_options(inclusions, options, name)
174
159
  if inclusions.is_a?(Hash)
175
160
  inclusions[name]
@@ -1,11 +1,8 @@
1
1
  # frozen_string_literal: true
2
- # encoding: utf-8
3
2
 
4
3
  module Mongoid
5
4
 
6
5
  # This module contains behavior for adding shard key fields to updates.
7
- #
8
- # @since 4.0.0
9
6
  module Shardable
10
7
  extend ActiveSupport::Concern
11
8
 
@@ -46,8 +43,6 @@ module Mongoid
46
43
  # model.shard_key_fields
47
44
  #
48
45
  # @return [ Array<String> ] The shard key field names.
49
- #
50
- # @since 1.0.0
51
46
  def shard_key_fields
52
47
  self.class.shard_key_fields
53
48
  end
@@ -97,8 +92,6 @@ module Mongoid
97
92
  #
98
93
  # shard_key first_name: 1, last_name: 1
99
94
  # end
100
- #
101
- # @since 2.0.0
102
95
  def shard_key(*args)
103
96
  unless args.first.is_a?(Hash)
104
97
  # Shorthand syntax
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # encoding: utf-8
3
2
 
4
3
  module Mongoid
5
4
 
@@ -39,8 +38,6 @@ module Mongoid
39
38
  # document.flagged_for_destroy?
40
39
  #
41
40
  # @return [ true, false ] If the document is flagged.
42
- #
43
- # @since 2.3.2
44
41
  def flagged_for_destroy?
45
42
  @flagged_for_destroy ||= false
46
43
  end
@@ -78,8 +75,6 @@ module Mongoid
78
75
  # document.readonly?
79
76
  #
80
77
  # @return [ true, false ] If the document is readonly.
81
- #
82
- # @since 4.0.0
83
78
  def readonly?
84
79
  __selected_fields != nil
85
80
  end
@@ -90,8 +85,6 @@ module Mongoid
90
85
  # person.settable?
91
86
  #
92
87
  # @return [ true, false ] Is this document a new embeds one?
93
- #
94
- # @since 2.1.0
95
88
  def settable?
96
89
  new_record? && embedded_one? && _parent.persisted?
97
90
  end
@@ -102,8 +95,6 @@ module Mongoid
102
95
  # person.updateable?
103
96
  #
104
97
  # @return [ true, false ] If the document is changed and persisted.
105
- #
106
- # @since 2.1.0
107
98
  def updateable?
108
99
  persisted? && changed?
109
100
  end
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # encoding: utf-8
3
2
 
4
3
  # A class which sends values to the database as Strings but returns them to the user as Symbols.
5
4
  module Mongoid
@@ -10,7 +9,7 @@ module Mongoid
10
9
  # Convert the object from its mongo friendly ruby type to this type.
11
10
  #
12
11
  # @example Demongoize the object.
13
- # Symbol.demongoize(object)
12
+ # Mongoid::StringifiedSymbol.demongoize(object)
14
13
  #
15
14
  # @param [ Object ] object The object to demongoize.
16
15
  #
@@ -29,7 +28,7 @@ module Mongoid
29
28
  # type.
30
29
  #
31
30
  # @example Mongoize the object.
32
- # Symbol.mongoize("123.11")
31
+ # Mongoid::StringifiedSymbol.mongoize("123.11")
33
32
  #
34
33
  # @param [ Object ] object The object to mongoize.
35
34
  #
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # encoding: utf-8
3
2
 
4
3
  module Mongoid
5
4
  module Tasks
@@ -13,8 +12,6 @@ module Mongoid
13
12
  # Mongoid::Tasks::Database.create_indexes
14
13
  #
15
14
  # @return [ Array<Class> ] The indexed models.
16
- #
17
- # @since 2.1.0
18
15
  def create_indexes(models = ::Mongoid.models)
19
16
  models.each do |model|
20
17
  next if model.index_specifications.empty?
@@ -72,8 +69,6 @@ module Mongoid
72
69
  # Mongoid::Tasks::Database.remove_undefined_indexes
73
70
  #
74
71
  # @return [ Hash{Class => Array(Hash)}] The list of indexes that were removed by model.
75
- #
76
- # @since 4.0.0
77
72
  def remove_undefined_indexes(models = ::Mongoid.models)
78
73
  undefined_indexes(models).each do |model, indexes|
79
74
  indexes.each do |index|
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # encoding: utf-8
3
2
 
4
3
  module Mongoid
5
4
  module Threaded
@@ -26,8 +25,6 @@ module Mongoid
26
25
  # end
27
26
  #
28
27
  # @return [ Object ] The yielded value.
29
- #
30
- # @since 2.2.0
31
28
  def _assigning
32
29
  Threaded.begin_execution(ASSIGN)
33
30
  yield
@@ -41,8 +38,6 @@ module Mongoid
41
38
  # proxy._assigning?
42
39
  #
43
40
  # @return [ true, false ] If the thread is assigning.
44
- #
45
- # @since 2.1.0
46
41
  def _assigning?
47
42
  Threaded.executing?(ASSIGN)
48
43
  end
@@ -55,8 +50,6 @@ module Mongoid
55
50
  # end
56
51
  #
57
52
  # @return [ Object ] The return value of the block.
58
- #
59
- # @since 2.1.0
60
53
  def _binding
61
54
  Threaded.begin_execution(BIND)
62
55
  yield
@@ -70,8 +63,6 @@ module Mongoid
70
63
  # proxy.binding?
71
64
  #
72
65
  # @return [ true, false ] If the thread is binding.
73
- #
74
- # @since 2.1.0
75
66
  def _binding?
76
67
  Threaded.executing?(BIND)
77
68
  end
@@ -84,8 +75,6 @@ module Mongoid
84
75
  # end
85
76
  #
86
77
  # @return [ Object ] The return value of the block.
87
- #
88
- # @since 2.1.0
89
78
  def _building
90
79
  Threaded.begin_execution(BUILD)
91
80
  yield
@@ -99,8 +88,6 @@ module Mongoid
99
88
  # proxy._building?
100
89
  #
101
90
  # @return [ true, false ] If the thread is building.
102
- #
103
- # @since 2.1.0
104
91
  def _building?
105
92
  Threaded.executing?(BUILD)
106
93
  end
@@ -111,8 +98,6 @@ module Mongoid
111
98
  # proxy.creating?
112
99
  #
113
100
  # @return [ true, false ] If the thread is creating.
114
- #
115
- # @since 2.1.0
116
101
  def _creating?
117
102
  Threaded.executing?(CREATE)
118
103
  end
@@ -125,8 +110,6 @@ module Mongoid
125
110
  # end
126
111
  #
127
112
  # @return [ Object ] The return value of the block.
128
- #
129
- # @since 2.3.2
130
113
  def _loading
131
114
  Threaded.begin_execution(LOAD)
132
115
  yield
@@ -140,8 +123,6 @@ module Mongoid
140
123
  # proxy._loading?
141
124
  #
142
125
  # @return [ true, false ] If the thread is loading.
143
- #
144
- # @since 2.3.2
145
126
  def _loading?
146
127
  Threaded.executing?(LOAD)
147
128
  end
@@ -156,8 +137,6 @@ module Mongoid
156
137
  # end
157
138
  #
158
139
  # @return [ Object ] The return value of the block.
159
- #
160
- # @since 2.1.0
161
140
  def _creating
162
141
  Threaded.begin_execution(CREATE)
163
142
  yield
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # encoding: utf-8
3
2
 
4
3
  require "mongoid/threaded/lifecycle"
5
4
 
@@ -12,18 +11,12 @@ module Mongoid
12
11
  DATABASE_OVERRIDE_KEY = "[mongoid]:db-override"
13
12
 
14
13
  # Constant for the key to store clients.
15
- #
16
- # @since 5.0.0
17
14
  CLIENTS_KEY = "[mongoid]:clients"
18
15
 
19
16
  # The key to override the client.
20
- #
21
- # @since 5.0.0
22
17
  CLIENT_OVERRIDE_KEY = "[mongoid]:client-override"
23
18
 
24
19
  # The key for the current thread's scope stack.
25
- #
26
- # @since 2.0.0
27
20
  CURRENT_SCOPE_KEY = "[mongoid]:current-scope"
28
21
 
29
22
  AUTOSAVES_KEY = "[mongoid]:autosaves"
@@ -43,8 +36,6 @@ module Mongoid
43
36
  # @param [ String ] name The name of the stack
44
37
  #
45
38
  # @return [ true ] True.
46
- #
47
- # @since 2.4.0
48
39
  def begin_execution(name)
49
40
  stack(name).push(true)
50
41
  end
@@ -55,8 +46,6 @@ module Mongoid
55
46
  # Threaded.database_override
56
47
  #
57
48
  # @return [ String, Symbol ] The override.
58
- #
59
- # @since 3.0.0
60
49
  def database_override
61
50
  Thread.current[DATABASE_OVERRIDE_KEY]
62
51
  end
@@ -69,8 +58,6 @@ module Mongoid
69
58
  # @param [ String, Symbol ] name The global override name.
70
59
  #
71
60
  # @return [ String, Symbol ] The override.
72
- #
73
- # @since 3.0.0
74
61
  def database_override=(name)
75
62
  Thread.current[DATABASE_OVERRIDE_KEY] = name
76
63
  end
@@ -83,8 +70,6 @@ module Mongoid
83
70
  # @param [ Symbol ] name The name of the stack
84
71
  #
85
72
  # @return [ true ] If the stack is being executed.
86
- #
87
- # @since 2.4.0
88
73
  def executing?(name)
89
74
  !stack(name).empty?
90
75
  end
@@ -97,8 +82,6 @@ module Mongoid
97
82
  # @param [ Symbol ] name The name of the stack
98
83
  #
99
84
  # @return [ true ] True.
100
- #
101
- # @since 2.4.0
102
85
  def exit_execution(name)
103
86
  stack(name).pop
104
87
  end
@@ -111,8 +94,6 @@ module Mongoid
111
94
  # @param [ Symbol ] name The name of the stack
112
95
  #
113
96
  # @return [ Array ] The stack.
114
- #
115
- # @since 2.4.0
116
97
  def stack(name)
117
98
  Thread.current[STACK_KEYS[name]] ||= []
118
99
  end
@@ -123,8 +104,6 @@ module Mongoid
123
104
  # Threaded.begin_autosave(doc)
124
105
  #
125
106
  # @param [ Document ] document The document to autosave.
126
- #
127
- # @since 3.0.0
128
107
  def begin_autosave(document)
129
108
  autosaves_for(document.class).push(document._id)
130
109
  end
@@ -135,8 +114,6 @@ module Mongoid
135
114
  # Threaded.begin_validate(doc)
136
115
  #
137
116
  # @param [ Document ] document The document to validate.
138
- #
139
- # @since 2.1.9
140
117
  def begin_validate(document)
141
118
  validations_for(document.class).push(document._id)
142
119
  end
@@ -147,8 +124,6 @@ module Mongoid
147
124
  # Threaded.exit_autosave(doc)
148
125
  #
149
126
  # @param [ Document ] document The document to autosave.
150
- #
151
- # @since 3.0.0
152
127
  def exit_autosave(document)
153
128
  autosaves_for(document.class).delete_one(document._id)
154
129
  end
@@ -159,8 +134,6 @@ module Mongoid
159
134
  # Threaded.exit_validate(doc)
160
135
  #
161
136
  # @param [ Document ] document The document to validate.
162
- #
163
- # @since 2.1.9
164
137
  def exit_validate(document)
165
138
  validations_for(document.class).delete_one(document._id)
166
139
  end
@@ -195,8 +168,6 @@ module Mongoid
195
168
  # Threaded.client_override
196
169
  #
197
170
  # @return [ String, Symbol ] The override.
198
- #
199
- # @since 5.0.0
200
171
  def client_override
201
172
  Thread.current[CLIENT_OVERRIDE_KEY]
202
173
  end
@@ -209,8 +180,6 @@ module Mongoid
209
180
  # @param [ String, Symbol ] name The global override name.
210
181
  #
211
182
  # @return [ String, Symbol ] The override.
212
- #
213
- # @since 3.0.0
214
183
  def client_override=(name)
215
184
  Thread.current[CLIENT_OVERRIDE_KEY] = name
216
185
  end
@@ -224,8 +193,6 @@ module Mongoid
224
193
  # @param [ Klass ] klass The class type of the scope.
225
194
  #
226
195
  # @return [ Criteria ] The scope.
227
- #
228
- # @since 5.0.0
229
196
  def current_scope(klass = nil)
230
197
  if klass && Thread.current[CURRENT_SCOPE_KEY].respond_to?(:keys)
231
198
  Thread.current[CURRENT_SCOPE_KEY][
@@ -244,8 +211,6 @@ module Mongoid
244
211
  # @param [ Criteria ] scope The current scope.
245
212
  #
246
213
  # @return [ Criteria ] The scope.
247
- #
248
- # @since 5.0.0
249
214
  def current_scope=(scope)
250
215
  Thread.current[CURRENT_SCOPE_KEY] = scope
251
216
  end
@@ -259,8 +224,6 @@ module Mongoid
259
224
  # @param [ Class ] klass The current model class.
260
225
  #
261
226
  # @return [ Criteria ] The scope.
262
- #
263
- # @since 5.0.1
264
227
  def set_current_scope(scope, klass)
265
228
  if scope.nil?
266
229
  if Thread.current[CURRENT_SCOPE_KEY]
@@ -293,8 +256,6 @@ module Mongoid
293
256
  # @param [ Document ] document The document to check.
294
257
  #
295
258
  # @return [ true, false ] If the document is autosaved.
296
- #
297
- # @since 2.1.9
298
259
  def autosaved?(document)
299
260
  autosaves_for(document.class).include?(document._id)
300
261
  end
@@ -307,8 +268,6 @@ module Mongoid
307
268
  # @param [ Document ] document The document to check.
308
269
  #
309
270
  # @return [ true, false ] If the document is validated.
310
- #
311
- # @since 2.1.9
312
271
  def validated?(document)
313
272
  validations_for(document.class).include?(document._id)
314
273
  end
@@ -319,8 +278,6 @@ module Mongoid
319
278
  # Threaded.autosaves
320
279
  #
321
280
  # @return [ Hash ] The current autosaves.
322
- #
323
- # @since 3.0.0
324
281
  def autosaves
325
282
  Thread.current[AUTOSAVES_KEY] ||= {}
326
283
  end
@@ -331,8 +288,6 @@ module Mongoid
331
288
  # Threaded.validations
332
289
  #
333
290
  # @return [ Hash ] The current validations.
334
- #
335
- # @since 2.1.9
336
291
  def validations
337
292
  Thread.current[VALIDATIONS_KEY] ||= {}
338
293
  end
@@ -345,8 +300,6 @@ module Mongoid
345
300
  # @param [ Class ] klass The class to check.
346
301
  #
347
302
  # @return [ Array ] The current autosaves.
348
- #
349
- # @since 3.0.0
350
303
  def autosaves_for(klass)
351
304
  autosaves[klass] ||= []
352
305
  end
@@ -358,8 +311,6 @@ module Mongoid
358
311
  # @param [ Class ] klass The class to check.
359
312
  #
360
313
  # @return [ Array ] The current validations.
361
- #
362
- # @since 2.1.9
363
314
  def validations_for(klass)
364
315
  validations[klass] ||= []
365
316
  end
@@ -370,8 +321,6 @@ module Mongoid
370
321
  # Threaded.set_session(session)
371
322
  #
372
323
  # @param [ Mongo::Session ] session The session to save.
373
- #
374
- # @since 6.4.0
375
324
  def set_session(session)
376
325
  Thread.current[:session] = session
377
326
  end
@@ -382,8 +331,6 @@ module Mongoid
382
331
  # Threaded.get_session
383
332
  #
384
333
  # @return [ Mongo::Session, nil ] The session cached on this thread or nil.
385
- #
386
- # @since 6.4.0
387
334
  def get_session
388
335
  Thread.current[:session]
389
336
  end
@@ -394,8 +341,6 @@ module Mongoid
394
341
  # Threaded.clear_session
395
342
  #
396
343
  # @return [ nil ]
397
- #
398
- # @since 6.4.0
399
344
  def clear_session
400
345
  session = get_session
401
346
  session.end_session if session
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # encoding: utf-8
3
2
 
4
3
  module Mongoid
5
4
  module Timestamps
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # encoding: utf-8
3
2
 
4
3
  require "mongoid/timestamps/created/short"
5
4