mongoid 7.3.4 → 7.4.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 (884) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/CHANGELOG.md +17 -17
  4. data/README.md +2 -2
  5. data/lib/config/locales/en.yml +21 -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 +9 -39
  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 +6 -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 +8 -56
  54. data/lib/mongoid/association/referenced/has_many/proxy.rb +18 -61
  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 -5
  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 +5 -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 +37 -29
  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 +4 -59
  105. data/lib/mongoid/contextual/mongo.rb +132 -78
  106. data/lib/mongoid/contextual/none.rb +39 -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 +1 -26
  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 +0 -25
  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 +1 -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 +20 -67
  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 +7 -3
  146. data/lib/mongoid/criteria/queryable.rb +0 -7
  147. data/lib/mongoid/criteria/scopable.rb +25 -19
  148. data/lib/mongoid/criteria.rb +0 -57
  149. data/lib/mongoid/document.rb +0 -51
  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 +0 -9
  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 +64 -57
  242. data/lib/mongoid/findable.rb +0 -5
  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 +64 -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.rb +0 -15
  302. data/lib/rails/generators/mongoid/config/config_generator.rb +0 -1
  303. data/lib/rails/generators/mongoid/model/model_generator.rb +0 -1
  304. data/lib/rails/generators/mongoid_generator.rb +0 -1
  305. data/lib/rails/mongoid.rb +0 -3
  306. data/spec/integration/app_spec.rb +0 -1
  307. data/spec/integration/associations/belongs_to_spec.rb +0 -1
  308. data/spec/integration/associations/embedded_dirty_spec.rb +29 -0
  309. data/spec/integration/associations/embedded_spec.rb +0 -1
  310. data/spec/integration/associations/embeds_many_spec.rb +0 -1
  311. data/spec/integration/associations/embeds_one_spec.rb +0 -1
  312. data/spec/integration/associations/foreign_key_spec.rb +0 -1
  313. data/spec/integration/associations/foreign_key_spec_models.rb +0 -1
  314. data/spec/integration/associations/has_many_spec.rb +0 -1
  315. data/spec/integration/associations/has_one_spec.rb +0 -1
  316. data/spec/integration/associations/nested_attributes_assignment_spec.rb +0 -1
  317. data/spec/integration/associations/reverse_population_spec.rb +0 -1
  318. data/spec/integration/associations/reverse_population_spec_models.rb +0 -1
  319. data/spec/integration/associations/scope_option_spec.rb +101 -0
  320. data/spec/integration/atomic/modifiers_spec.rb +0 -1
  321. data/spec/integration/bson_regexp_raw_spec.rb +0 -1
  322. data/spec/integration/callbacks_models.rb +12 -0
  323. data/spec/integration/callbacks_spec.rb +18 -6
  324. data/spec/integration/contextual/empty_spec.rb +0 -1
  325. data/spec/integration/criteria/alias_query_spec.rb +161 -0
  326. data/spec/integration/criteria/date_field_spec.rb +0 -1
  327. data/spec/integration/criteria/default_scope_spec.rb +51 -0
  328. data/spec/integration/criteria/logical_spec.rb +30 -0
  329. data/spec/integration/criteria/range_spec.rb +265 -0
  330. data/spec/integration/criteria/time_with_zone_spec.rb +125 -15
  331. data/spec/integration/discriminator_key_spec.rb +0 -1
  332. data/spec/integration/discriminator_value_spec.rb +0 -1
  333. data/spec/integration/document_spec.rb +0 -1
  334. data/spec/integration/i18n_fallbacks_spec.rb +0 -1
  335. data/spec/integration/matcher_examples_spec.rb +0 -1
  336. data/spec/integration/matcher_operator_spec.rb +27 -3
  337. data/spec/integration/matcher_spec.rb +95 -1
  338. data/spec/integration/server_query_spec.rb +0 -1
  339. data/spec/integration/shardable_spec.rb +0 -1
  340. data/spec/integration/stringified_symbol_field_spec.rb +14 -1
  341. data/spec/lite_spec_helper.rb +8 -2
  342. data/spec/mongoid/association/accessors_spec.rb +44 -15
  343. data/spec/mongoid/association/auto_save_spec.rb +72 -34
  344. data/spec/mongoid/association/builders_spec.rb +1 -2
  345. data/spec/mongoid/association/constrainable_spec.rb +0 -1
  346. data/spec/mongoid/association/counter_cache_spec.rb +32 -33
  347. data/spec/mongoid/association/depending_spec.rb +12 -13
  348. data/spec/mongoid/association/eager_spec.rb +4 -5
  349. data/spec/mongoid/association/embedded/cyclic_spec.rb +2 -3
  350. data/spec/mongoid/association/embedded/dirty_spec.rb +2 -3
  351. data/spec/mongoid/association/embedded/embedded_in/binding_spec.rb +0 -1
  352. data/spec/mongoid/association/embedded/embedded_in/buildable_spec.rb +0 -1
  353. data/spec/mongoid/association/embedded/embedded_in/proxy_spec.rb +13 -14
  354. data/spec/mongoid/association/embedded/embedded_in_spec.rb +0 -1
  355. data/spec/mongoid/association/embedded/embeds_many/binding_spec.rb +0 -1
  356. data/spec/mongoid/association/embedded/embeds_many/buildable_spec.rb +0 -1
  357. data/spec/mongoid/association/embedded/embeds_many/proxy_spec.rb +384 -135
  358. data/spec/mongoid/association/embedded/embeds_many_models.rb +16 -1
  359. data/spec/mongoid/association/embedded/embeds_many_query_spec.rb +0 -1
  360. data/spec/mongoid/association/embedded/embeds_many_spec.rb +0 -1
  361. data/spec/mongoid/association/embedded/embeds_one/binding_spec.rb +0 -1
  362. data/spec/mongoid/association/embedded/embeds_one/buildable_spec.rb +0 -1
  363. data/spec/mongoid/association/embedded/embeds_one/proxy_spec.rb +21 -22
  364. data/spec/mongoid/association/embedded/embeds_one_dnl_models.rb +0 -1
  365. data/spec/mongoid/association/embedded/embeds_one_models.rb +0 -1
  366. data/spec/mongoid/association/embedded/embeds_one_query_spec.rb +0 -1
  367. data/spec/mongoid/association/embedded/embeds_one_spec.rb +0 -1
  368. data/spec/mongoid/association/macros_spec.rb +9 -10
  369. data/spec/mongoid/association/nested/many_spec.rb +0 -1
  370. data/spec/mongoid/association/nested/one_spec.rb +0 -1
  371. data/spec/mongoid/association/options_spec.rb +0 -1
  372. data/spec/mongoid/association/polymorphic_spec.rb +0 -1
  373. data/spec/mongoid/association/referenced/belongs_to/binding_spec.rb +0 -1
  374. data/spec/mongoid/association/referenced/belongs_to/buildable_spec.rb +55 -17
  375. data/spec/mongoid/association/referenced/belongs_to/eager_spec.rb +50 -15
  376. data/spec/mongoid/association/referenced/belongs_to/proxy_spec.rb +57 -53
  377. data/spec/mongoid/association/referenced/belongs_to_query_spec.rb +0 -1
  378. data/spec/mongoid/association/referenced/belongs_to_spec.rb +22 -2
  379. data/spec/mongoid/association/referenced/has_and_belongs_to_many/binding_spec.rb +0 -1
  380. data/spec/mongoid/association/referenced/has_and_belongs_to_many/buildable_spec.rb +26 -2
  381. data/spec/mongoid/association/referenced/has_and_belongs_to_many/eager_spec.rb +31 -3
  382. data/spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_persistence_spec.rb +0 -1
  383. data/spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_spec.rb +179 -154
  384. data/spec/mongoid/association/referenced/has_and_belongs_to_many_models.rb +18 -1
  385. data/spec/mongoid/association/referenced/has_and_belongs_to_many_query_spec.rb +0 -1
  386. data/spec/mongoid/association/referenced/has_and_belongs_to_many_spec.rb +21 -1
  387. data/spec/mongoid/association/referenced/has_many/binding_spec.rb +0 -1
  388. data/spec/mongoid/association/referenced/has_many/buildable_spec.rb +21 -1
  389. data/spec/mongoid/association/referenced/has_many/eager_spec.rb +23 -7
  390. data/spec/mongoid/association/referenced/has_many/enumerable_spec.rb +59 -33
  391. data/spec/mongoid/association/referenced/has_many/proxy_query_spec.rb +0 -1
  392. data/spec/mongoid/association/referenced/has_many/proxy_spec.rb +221 -158
  393. data/spec/mongoid/association/referenced/has_many_models.rb +18 -1
  394. data/spec/mongoid/association/referenced/has_many_query_spec.rb +0 -1
  395. data/spec/mongoid/association/referenced/has_many_spec.rb +21 -1
  396. data/spec/mongoid/association/referenced/has_one/binding_spec.rb +0 -1
  397. data/spec/mongoid/association/referenced/has_one/buildable_spec.rb +51 -8
  398. data/spec/mongoid/association/referenced/has_one/eager_spec.rb +17 -2
  399. data/spec/mongoid/association/referenced/has_one/proxy_spec.rb +26 -27
  400. data/spec/mongoid/association/referenced/has_one_models.rb +18 -1
  401. data/spec/mongoid/association/referenced/has_one_query_spec.rb +0 -1
  402. data/spec/mongoid/association/referenced/has_one_spec.rb +21 -1
  403. data/spec/mongoid/association/reflections_spec.rb +0 -1
  404. data/spec/mongoid/association/syncable_spec.rb +31 -32
  405. data/spec/mongoid/association_spec.rb +0 -1
  406. data/spec/mongoid/atomic/modifiers_spec.rb +0 -1
  407. data/spec/mongoid/atomic/paths/embedded/many_spec.rb +0 -1
  408. data/spec/mongoid/atomic/paths/embedded/one_spec.rb +0 -1
  409. data/spec/mongoid/atomic/paths/root_spec.rb +0 -1
  410. data/spec/mongoid/atomic/paths_spec.rb +0 -1
  411. data/spec/mongoid/atomic_spec.rb +6 -7
  412. data/spec/mongoid/attributes/dynamic_spec.rb +0 -1
  413. data/spec/mongoid/attributes/nested_spec.rb +66 -67
  414. data/spec/mongoid/attributes/projector_spec.rb +5 -2
  415. data/spec/mongoid/attributes/readonly_spec.rb +22 -23
  416. data/spec/mongoid/attributes_spec.rb +32 -33
  417. data/spec/mongoid/cacheable_spec.rb +1 -2
  418. data/spec/mongoid/changeable_spec.rb +35 -36
  419. data/spec/mongoid/clients/factory_spec.rb +0 -1
  420. data/spec/mongoid/clients/options_spec.rb +4 -5
  421. data/spec/mongoid/clients/sessions_spec.rb +22 -23
  422. data/spec/mongoid/clients/transactions_spec.rb +49 -27
  423. data/spec/mongoid/clients_spec.rb +6 -7
  424. data/spec/mongoid/composable_spec.rb +0 -1
  425. data/spec/mongoid/config/environment_spec.rb +0 -1
  426. data/spec/mongoid/config/options_spec.rb +0 -1
  427. data/spec/mongoid/config_spec.rb +105 -1
  428. data/spec/mongoid/contextual/aggregable/memory_spec.rb +51 -12
  429. data/spec/mongoid/contextual/aggregable/mongo_spec.rb +120 -21
  430. data/spec/mongoid/contextual/aggregable/none_spec.rb +60 -0
  431. data/spec/mongoid/contextual/atomic_spec.rb +46 -47
  432. data/spec/mongoid/contextual/geo_near_spec.rb +17 -18
  433. data/spec/mongoid/contextual/map_reduce_spec.rb +2 -3
  434. data/spec/mongoid/contextual/memory_spec.rb +23 -24
  435. data/spec/mongoid/contextual/mongo_spec.rb +339 -77
  436. data/spec/mongoid/contextual/none_spec.rb +7 -82
  437. data/spec/mongoid/copyable_spec.rb +12 -13
  438. data/spec/mongoid/copyable_spec_models.rb +0 -1
  439. data/spec/mongoid/criteria/findable_spec.rb +23 -24
  440. data/spec/mongoid/criteria/inspectable_spec.rb +0 -1
  441. data/spec/mongoid/criteria/marshalable_spec.rb +0 -1
  442. data/spec/mongoid/criteria/modifiable_spec.rb +36 -37
  443. data/spec/mongoid/criteria/options_spec.rb +0 -1
  444. data/spec/mongoid/criteria/queryable/aggregable_spec.rb +1 -2
  445. data/spec/mongoid/criteria/queryable/expandable_spec.rb +0 -1
  446. data/spec/mongoid/criteria/queryable/extensions/array_spec.rb +0 -1
  447. data/spec/mongoid/criteria/queryable/extensions/big_decimal_spec.rb +0 -1
  448. data/spec/mongoid/criteria/queryable/extensions/bignum_spec.rb +0 -1
  449. data/spec/mongoid/criteria/queryable/extensions/boolean_spec.rb +0 -1
  450. data/spec/mongoid/criteria/queryable/extensions/date_spec.rb +0 -1
  451. data/spec/mongoid/criteria/queryable/extensions/date_time_spec.rb +0 -1
  452. data/spec/mongoid/criteria/queryable/extensions/fixnum_spec.rb +0 -1
  453. data/spec/mongoid/criteria/queryable/extensions/float_spec.rb +0 -1
  454. data/spec/mongoid/criteria/queryable/extensions/hash_spec.rb +0 -1
  455. data/spec/mongoid/criteria/queryable/extensions/integer_spec.rb +0 -1
  456. data/spec/mongoid/criteria/queryable/extensions/nil_class_spec.rb +0 -1
  457. data/spec/mongoid/criteria/queryable/extensions/numeric_spec.rb +0 -1
  458. data/spec/mongoid/criteria/queryable/extensions/object_spec.rb +0 -1
  459. data/spec/mongoid/criteria/queryable/extensions/range_spec.rb +237 -179
  460. data/spec/mongoid/criteria/queryable/extensions/regexp_raw_spec.rb +0 -1
  461. data/spec/mongoid/criteria/queryable/extensions/regexp_spec.rb +0 -1
  462. data/spec/mongoid/criteria/queryable/extensions/set_spec.rb +0 -1
  463. data/spec/mongoid/criteria/queryable/extensions/string_spec.rb +0 -1
  464. data/spec/mongoid/criteria/queryable/extensions/symbol_spec.rb +0 -1
  465. data/spec/mongoid/criteria/queryable/extensions/time_spec.rb +0 -1
  466. data/spec/mongoid/criteria/queryable/extensions/time_with_zone_spec.rb +0 -1
  467. data/spec/mongoid/criteria/queryable/key_spec.rb +0 -1
  468. data/spec/mongoid/criteria/queryable/mergeable_spec.rb +0 -1
  469. data/spec/mongoid/criteria/queryable/optional_spec.rb +1 -2
  470. data/spec/mongoid/criteria/queryable/options_spec.rb +0 -1
  471. data/spec/mongoid/criteria/queryable/pipeline_spec.rb +0 -1
  472. data/spec/mongoid/criteria/queryable/queryable_spec.rb +1 -2
  473. data/spec/mongoid/criteria/queryable/selectable_logical_spec.rb +0 -1
  474. data/spec/mongoid/criteria/queryable/selectable_shared_examples.rb +0 -1
  475. data/spec/mongoid/criteria/queryable/selectable_spec.rb +15 -16
  476. data/spec/mongoid/criteria/queryable/selectable_where_spec.rb +0 -1
  477. data/spec/mongoid/criteria/queryable/selector_spec.rb +0 -1
  478. data/spec/mongoid/criteria/queryable/smash_spec.rb +0 -1
  479. data/spec/mongoid/criteria/queryable/storable_spec.rb +37 -1
  480. data/spec/mongoid/criteria/scopable_spec.rb +127 -1
  481. data/spec/mongoid/criteria_projection_spec.rb +3 -4
  482. data/spec/mongoid/criteria_spec.rb +546 -186
  483. data/spec/mongoid/document_fields_spec.rb +0 -1
  484. data/spec/mongoid/document_persistence_context_spec.rb +0 -1
  485. data/spec/mongoid/document_query_spec.rb +0 -1
  486. data/spec/mongoid/document_spec.rb +11 -33
  487. data/spec/mongoid/equality_spec.rb +142 -41
  488. data/spec/mongoid/errors/ambiguous_relationship_spec.rb +0 -1
  489. data/spec/mongoid/errors/callback_spec.rb +0 -1
  490. data/spec/mongoid/errors/delete_restriction_spec.rb +0 -1
  491. data/spec/mongoid/errors/document_not_destroyed_spec.rb +0 -1
  492. data/spec/mongoid/errors/document_not_found_spec.rb +0 -1
  493. data/spec/mongoid/errors/eager_load_spec.rb +0 -1
  494. data/spec/mongoid/errors/invalid_collection_spec.rb +0 -1
  495. data/spec/mongoid/errors/invalid_config_file_spec.rb +0 -1
  496. data/spec/mongoid/errors/invalid_config_option_spec.rb +0 -1
  497. data/spec/mongoid/errors/invalid_field_option_spec.rb +0 -1
  498. data/spec/mongoid/errors/invalid_field_spec.rb +0 -1
  499. data/spec/mongoid/errors/invalid_find_spec.rb +0 -1
  500. data/spec/mongoid/errors/invalid_includes_spec.rb +0 -1
  501. data/spec/mongoid/errors/invalid_index_spec.rb +0 -1
  502. data/spec/mongoid/errors/invalid_options_spec.rb +0 -1
  503. data/spec/mongoid/errors/invalid_path_spec.rb +0 -1
  504. data/spec/mongoid/errors/invalid_relation_spec.rb +0 -1
  505. data/spec/mongoid/errors/invalid_scope_spec.rb +1 -2
  506. data/spec/mongoid/errors/invalid_set_polymorphic_relation_spec.rb +0 -1
  507. data/spec/mongoid/errors/invalid_storage_options_spec.rb +0 -1
  508. data/spec/mongoid/errors/invalid_time_spec.rb +0 -1
  509. data/spec/mongoid/errors/inverse_not_found_spec.rb +0 -1
  510. data/spec/mongoid/errors/mixed_client_configuration_spec.rb +0 -1
  511. data/spec/mongoid/errors/mixed_relations_spec.rb +0 -1
  512. data/spec/mongoid/errors/mongoid_error_spec.rb +0 -1
  513. data/spec/mongoid/errors/nested_attributes_metadata_not_found_spec.rb +0 -1
  514. data/spec/mongoid/errors/no_client_config_spec.rb +0 -1
  515. data/spec/mongoid/errors/no_client_database_spec.rb +0 -1
  516. data/spec/mongoid/errors/no_client_hosts_spec.rb +0 -1
  517. data/spec/mongoid/errors/no_clients_config_spec.rb +0 -1
  518. data/spec/mongoid/errors/no_environment_spec.rb +0 -1
  519. data/spec/mongoid/errors/no_map_reduce_output_spec.rb +0 -1
  520. data/spec/mongoid/errors/no_metadata_spec.rb +0 -1
  521. data/spec/mongoid/errors/no_parent_spec.rb +0 -1
  522. data/spec/mongoid/errors/readonly_attribute_spec.rb +0 -1
  523. data/spec/mongoid/errors/readonly_document_spec.rb +0 -1
  524. data/spec/mongoid/errors/scope_overwrite_spec.rb +0 -1
  525. data/spec/mongoid/errors/too_many_nested_attribute_records_spec.rb +0 -1
  526. data/spec/mongoid/errors/unknown_attribute_spec.rb +2 -3
  527. data/spec/mongoid/errors/unsaved_document_spec.rb +0 -1
  528. data/spec/mongoid/errors/unsupported_javascript_spec.rb +0 -1
  529. data/spec/mongoid/errors/validations_spec.rb +0 -1
  530. data/spec/mongoid/extensions/array_spec.rb +0 -1
  531. data/spec/mongoid/extensions/big_decimal_spec.rb +0 -1
  532. data/spec/mongoid/extensions/binary_spec.rb +0 -1
  533. data/spec/mongoid/extensions/boolean_spec.rb +0 -1
  534. data/spec/mongoid/extensions/date_class_mongoize_spec.rb +0 -1
  535. data/spec/mongoid/extensions/date_spec.rb +0 -1
  536. data/spec/mongoid/extensions/date_time_spec.rb +0 -1
  537. data/spec/mongoid/extensions/decimal128_spec.rb +0 -1
  538. data/spec/mongoid/extensions/false_class_spec.rb +0 -1
  539. data/spec/mongoid/extensions/float_spec.rb +0 -1
  540. data/spec/mongoid/extensions/hash_spec.rb +0 -1
  541. data/spec/mongoid/extensions/integer_spec.rb +0 -1
  542. data/spec/mongoid/extensions/module_spec.rb +0 -1
  543. data/spec/mongoid/extensions/nil_class_spec.rb +0 -1
  544. data/spec/mongoid/extensions/object_id_spec.rb +0 -1
  545. data/spec/mongoid/extensions/object_spec.rb +0 -1
  546. data/spec/mongoid/extensions/range_spec.rb +0 -1
  547. data/spec/mongoid/extensions/regexp_spec.rb +0 -1
  548. data/spec/mongoid/extensions/set_spec.rb +0 -1
  549. data/spec/mongoid/extensions/string_spec.rb +2 -3
  550. data/spec/mongoid/extensions/stringified_symbol_spec.rb +0 -1
  551. data/spec/mongoid/extensions/symbol_spec.rb +0 -1
  552. data/spec/mongoid/extensions/time_spec.rb +0 -1
  553. data/spec/mongoid/extensions/time_with_zone_spec.rb +0 -1
  554. data/spec/mongoid/extensions/true_class_spec.rb +0 -1
  555. data/spec/mongoid/extensions_spec.rb +14 -3
  556. data/spec/mongoid/factory_spec.rb +1 -1
  557. data/spec/mongoid/fields/foreign_key_spec.rb +0 -1
  558. data/spec/mongoid/fields/localized_spec.rb +0 -1
  559. data/spec/mongoid/fields/standard_spec.rb +0 -1
  560. data/spec/mongoid/fields_spec.rb +326 -31
  561. data/spec/mongoid/findable_spec.rb +21 -22
  562. data/spec/mongoid/indexable/specification_spec.rb +0 -1
  563. data/spec/mongoid/indexable_spec.rb +0 -1
  564. data/spec/mongoid/inspectable_spec.rb +0 -1
  565. data/spec/mongoid/interceptable_spec.rb +102 -95
  566. data/spec/mongoid/loggable_spec.rb +0 -1
  567. data/spec/mongoid/matcher/extract_attribute_spec.rb +5 -2
  568. data/spec/mongoid/persistable/creatable_spec.rb +2 -3
  569. data/spec/mongoid/persistable/deletable_spec.rb +18 -19
  570. data/spec/mongoid/persistable/destroyable_spec.rb +8 -9
  571. data/spec/mongoid/persistable/incrementable_spec.rb +8 -9
  572. data/spec/mongoid/persistable/logical_spec.rb +4 -5
  573. data/spec/mongoid/persistable/poppable_spec.rb +4 -5
  574. data/spec/mongoid/persistable/pullable_spec.rb +8 -9
  575. data/spec/mongoid/persistable/pushable_spec.rb +8 -9
  576. data/spec/mongoid/persistable/renamable_spec.rb +3 -4
  577. data/spec/mongoid/persistable/savable_spec.rb +15 -11
  578. data/spec/mongoid/persistable/settable_spec.rb +9 -10
  579. data/spec/mongoid/persistable/unsettable_spec.rb +4 -5
  580. data/spec/mongoid/persistable/updatable_spec.rb +41 -24
  581. data/spec/mongoid/persistable/upsertable_spec.rb +1 -2
  582. data/spec/mongoid/persistable_spec.rb +1 -2
  583. data/spec/mongoid/persistence_context_spec.rb +0 -1
  584. data/spec/mongoid/positional_spec.rb +0 -1
  585. data/spec/mongoid/query_cache_middleware_spec.rb +1 -2
  586. data/spec/mongoid/query_cache_spec.rb +32 -10
  587. data/spec/mongoid/relations/proxy_spec.rb +6 -7
  588. data/spec/mongoid/reloadable_spec.rb +209 -23
  589. data/spec/mongoid/scopable_spec.rb +65 -22
  590. data/spec/mongoid/selectable_spec.rb +6 -7
  591. data/spec/mongoid/serializable_spec.rb +9 -10
  592. data/spec/mongoid/shardable_spec.rb +2 -3
  593. data/spec/mongoid/stateful_spec.rb +1 -2
  594. data/spec/mongoid/tasks/database_rake_spec.rb +0 -1
  595. data/spec/mongoid/tasks/database_spec.rb +0 -1
  596. data/spec/mongoid/threaded_spec.rb +2 -3
  597. data/spec/mongoid/timestamps/created/short_spec.rb +1 -2
  598. data/spec/mongoid/timestamps/created_spec.rb +1 -2
  599. data/spec/mongoid/timestamps/timeless_spec.rb +2 -3
  600. data/spec/mongoid/timestamps/updated/short_spec.rb +3 -4
  601. data/spec/mongoid/timestamps/updated_spec.rb +3 -4
  602. data/spec/mongoid/timestamps_spec.rb +6 -7
  603. data/spec/mongoid/touchable_spec.rb +15 -20
  604. data/spec/mongoid/touchable_spec_models.rb +0 -1
  605. data/spec/mongoid/traversable_spec.rb +65 -2
  606. data/spec/mongoid/validatable/associated_spec.rb +0 -1
  607. data/spec/mongoid/validatable/format_spec.rb +0 -1
  608. data/spec/mongoid/validatable/length_spec.rb +0 -1
  609. data/spec/mongoid/validatable/numericality_spec.rb +0 -1
  610. data/spec/mongoid/validatable/presence_spec.rb +26 -23
  611. data/spec/mongoid/validatable/uniqueness_spec.rb +67 -68
  612. data/spec/mongoid/validatable_spec.rb +2 -3
  613. data/spec/mongoid_spec.rb +0 -1
  614. data/spec/rails/controller_extension/controller_runtime_spec.rb +0 -1
  615. data/spec/rails/mongoid_spec.rb +0 -1
  616. data/spec/shared/lib/mrss/cluster_config.rb +6 -1
  617. data/spec/shared/lib/mrss/constraints.rb +2 -1
  618. data/spec/shared/lib/mrss/docker_runner.rb +1 -1
  619. data/spec/shared/lib/mrss/lite_constraints.rb +8 -0
  620. data/spec/shared/lib/mrss/session_registry.rb +69 -0
  621. data/spec/shared/lib/mrss/session_registry_legacy.rb +60 -0
  622. data/spec/shared/share/Dockerfile.erb +22 -6
  623. data/spec/shared/shlib/distro.sh +2 -1
  624. data/spec/shared/shlib/server.sh +15 -3
  625. data/spec/shared/shlib/set_env.sh +6 -5
  626. data/spec/spec_helper.rb +12 -22
  627. data/spec/support/authorization.rb +0 -1
  628. data/spec/support/constraints.rb +0 -1
  629. data/spec/support/expectations.rb +0 -1
  630. data/spec/support/macros.rb +22 -1
  631. data/spec/support/models/account.rb +1 -2
  632. data/spec/support/models/acolyte.rb +0 -1
  633. data/spec/support/models/actor.rb +0 -1
  634. data/spec/support/models/actress.rb +0 -1
  635. data/spec/support/models/address.rb +0 -1
  636. data/spec/support/models/address_component.rb +0 -1
  637. data/spec/support/models/address_number.rb +0 -1
  638. data/spec/support/models/agency.rb +0 -1
  639. data/spec/support/models/agent.rb +0 -1
  640. data/spec/support/models/album.rb +0 -1
  641. data/spec/support/models/alert.rb +0 -1
  642. data/spec/support/models/animal.rb +0 -1
  643. data/spec/support/models/answer.rb +0 -1
  644. data/spec/support/models/appointment.rb +0 -1
  645. data/spec/support/models/armrest.rb +0 -1
  646. data/spec/support/models/array_field.rb +0 -1
  647. data/spec/support/models/article.rb +0 -1
  648. data/spec/support/models/artist.rb +2 -1
  649. data/spec/support/models/artwork.rb +0 -1
  650. data/spec/support/models/audible_sound.rb +3 -0
  651. data/spec/support/models/audio.rb +0 -1
  652. data/spec/support/models/augmentation.rb +0 -1
  653. data/spec/support/models/author.rb +0 -1
  654. data/spec/support/models/baby.rb +0 -1
  655. data/spec/support/models/band.rb +4 -1
  656. data/spec/support/models/bar.rb +0 -1
  657. data/spec/support/models/basic.rb +0 -1
  658. data/spec/support/models/bed.rb +0 -1
  659. data/spec/support/models/big_palette.rb +0 -1
  660. data/spec/support/models/birthday.rb +0 -1
  661. data/spec/support/models/bolt.rb +0 -1
  662. data/spec/support/models/bomb.rb +0 -1
  663. data/spec/support/models/book.rb +0 -1
  664. data/spec/support/models/breed.rb +0 -1
  665. data/spec/support/models/browser.rb +0 -1
  666. data/spec/support/models/building.rb +0 -1
  667. data/spec/support/models/building_address.rb +0 -1
  668. data/spec/support/models/bus.rb +0 -1
  669. data/spec/support/models/business.rb +0 -1
  670. data/spec/support/models/callback_test.rb +0 -1
  671. data/spec/support/models/canvas.rb +0 -1
  672. data/spec/support/models/car.rb +0 -1
  673. data/spec/support/models/cat.rb +0 -1
  674. data/spec/support/models/category.rb +0 -1
  675. data/spec/support/models/child.rb +0 -1
  676. data/spec/support/models/child_doc.rb +3 -4
  677. data/spec/support/models/church.rb +0 -1
  678. data/spec/support/models/circle.rb +0 -1
  679. data/spec/support/models/circuit.rb +0 -1
  680. data/spec/support/models/circus.rb +0 -1
  681. data/spec/support/models/code.rb +0 -1
  682. data/spec/support/models/coding/pull_request.rb +0 -1
  683. data/spec/support/models/coding.rb +0 -1
  684. data/spec/support/models/comment.rb +0 -1
  685. data/spec/support/models/company.rb +0 -1
  686. data/spec/support/models/consumption_period.rb +0 -1
  687. data/spec/support/models/contextable_item.rb +0 -1
  688. data/spec/support/models/contractor.rb +0 -1
  689. data/spec/support/models/cookie.rb +0 -1
  690. data/spec/support/models/country_code.rb +2 -1
  691. data/spec/support/models/courier_job.rb +0 -1
  692. data/spec/support/models/crate.rb +0 -1
  693. data/spec/support/models/customer.rb +0 -1
  694. data/spec/support/models/customer_address.rb +0 -1
  695. data/spec/support/models/deed.rb +0 -1
  696. data/spec/support/models/definition.rb +0 -1
  697. data/spec/support/models/delegating_patient.rb +0 -1
  698. data/spec/support/models/description.rb +0 -1
  699. data/spec/support/models/dictionary.rb +0 -1
  700. data/spec/support/models/division.rb +0 -1
  701. data/spec/support/models/doctor.rb +0 -1
  702. data/spec/support/models/dog.rb +0 -1
  703. data/spec/support/models/dokument.rb +0 -1
  704. data/spec/support/models/draft.rb +0 -1
  705. data/spec/support/models/dragon.rb +0 -1
  706. data/spec/support/models/driver.rb +0 -1
  707. data/spec/support/models/drug.rb +0 -1
  708. data/spec/support/models/dungeon.rb +0 -1
  709. data/spec/support/models/edit.rb +0 -1
  710. data/spec/support/models/email.rb +0 -1
  711. data/spec/support/models/employer.rb +0 -1
  712. data/spec/support/models/entry.rb +0 -1
  713. data/spec/support/models/eraser.rb +0 -1
  714. data/spec/support/models/even.rb +0 -1
  715. data/spec/support/models/event.rb +0 -1
  716. data/spec/support/models/exhibition.rb +0 -1
  717. data/spec/support/models/exhibitor.rb +0 -1
  718. data/spec/support/models/explosion.rb +0 -1
  719. data/spec/support/models/eye.rb +0 -1
  720. data/spec/support/models/eye_bowl.rb +0 -1
  721. data/spec/support/models/face.rb +0 -1
  722. data/spec/support/models/favorite.rb +0 -1
  723. data/spec/support/models/filesystem.rb +0 -1
  724. data/spec/support/models/fire_hydrant.rb +0 -1
  725. data/spec/support/models/firefox.rb +0 -1
  726. data/spec/support/models/fish.rb +0 -1
  727. data/spec/support/models/folder.rb +0 -1
  728. data/spec/support/models/folder_item.rb +0 -1
  729. data/spec/support/models/fruits.rb +0 -1
  730. data/spec/support/models/game.rb +0 -1
  731. data/spec/support/models/ghost.rb +0 -1
  732. data/spec/support/models/guitar.rb +0 -1
  733. data/spec/support/models/hole.rb +0 -1
  734. data/spec/support/models/home.rb +0 -1
  735. data/spec/support/models/house.rb +0 -1
  736. data/spec/support/models/html_writer.rb +0 -1
  737. data/spec/support/models/id_key.rb +0 -1
  738. data/spec/support/models/idnodef.rb +0 -1
  739. data/spec/support/models/image.rb +0 -1
  740. data/spec/support/models/implant.rb +0 -1
  741. data/spec/support/models/instrument.rb +0 -1
  742. data/spec/support/models/item.rb +0 -1
  743. data/spec/support/models/jar.rb +0 -1
  744. data/spec/support/models/kaleidoscope.rb +0 -1
  745. data/spec/support/models/kangaroo.rb +0 -1
  746. data/spec/support/models/label.rb +2 -2
  747. data/spec/support/models/language.rb +0 -1
  748. data/spec/support/models/lat_lng.rb +0 -1
  749. data/spec/support/models/league.rb +0 -1
  750. data/spec/support/models/learner.rb +0 -1
  751. data/spec/support/models/line_item.rb +0 -1
  752. data/spec/support/models/location.rb +0 -1
  753. data/spec/support/models/login.rb +0 -1
  754. data/spec/support/models/manufacturer.rb +0 -1
  755. data/spec/support/models/meat.rb +0 -1
  756. data/spec/support/models/membership.rb +0 -1
  757. data/spec/support/models/message.rb +0 -1
  758. data/spec/support/models/minim.rb +0 -1
  759. data/spec/support/models/mixed_drink.rb +0 -1
  760. data/spec/support/models/mop.rb +0 -1
  761. data/spec/support/models/movie.rb +0 -1
  762. data/spec/support/models/my_hash.rb +0 -1
  763. data/spec/support/models/name.rb +0 -1
  764. data/spec/support/models/name_only.rb +0 -1
  765. data/spec/support/models/node.rb +0 -1
  766. data/spec/support/models/note.rb +0 -1
  767. data/spec/support/models/nut.rb +0 -1
  768. data/spec/support/models/odd.rb +0 -1
  769. data/spec/support/models/order.rb +2 -1
  770. data/spec/support/models/ordered_post.rb +1 -2
  771. data/spec/support/models/ordered_preference.rb +0 -1
  772. data/spec/support/models/oscar.rb +0 -1
  773. data/spec/support/models/other_owner_object.rb +0 -1
  774. data/spec/support/models/override.rb +0 -1
  775. data/spec/support/models/ownable.rb +0 -1
  776. data/spec/support/models/owner.rb +0 -1
  777. data/spec/support/models/pack.rb +0 -1
  778. data/spec/support/models/page.rb +0 -1
  779. data/spec/support/models/page_question.rb +0 -1
  780. data/spec/support/models/palette.rb +0 -1
  781. data/spec/support/models/parent.rb +0 -1
  782. data/spec/support/models/parent_doc.rb +0 -1
  783. data/spec/support/models/passport.rb +5 -1
  784. data/spec/support/models/patient.rb +0 -1
  785. data/spec/support/models/pdf_writer.rb +0 -1
  786. data/spec/support/models/pencil.rb +0 -1
  787. data/spec/support/models/person.rb +1 -1
  788. data/spec/support/models/pet.rb +0 -1
  789. data/spec/support/models/pet_owner.rb +0 -1
  790. data/spec/support/models/phone.rb +2 -2
  791. data/spec/support/models/piano.rb +0 -1
  792. data/spec/support/models/pizza.rb +0 -1
  793. data/spec/support/models/player.rb +0 -1
  794. data/spec/support/models/post.rb +0 -1
  795. data/spec/support/models/post_genre.rb +0 -1
  796. data/spec/support/models/powerup.rb +0 -1
  797. data/spec/support/models/preference.rb +0 -1
  798. data/spec/support/models/princess.rb +0 -1
  799. data/spec/support/models/product.rb +0 -1
  800. data/spec/support/models/profile.rb +0 -1
  801. data/spec/support/models/pronunciation.rb +0 -1
  802. data/spec/support/models/pub.rb +0 -1
  803. data/spec/support/models/publication/encyclopedia.rb +0 -1
  804. data/spec/support/models/publication/review.rb +0 -1
  805. data/spec/support/models/publication.rb +0 -1
  806. data/spec/support/models/purchase.rb +0 -1
  807. data/spec/support/models/purchased_item.rb +10 -0
  808. data/spec/support/models/question.rb +0 -1
  809. data/spec/support/models/quiz.rb +0 -1
  810. data/spec/support/models/rating.rb +0 -1
  811. data/spec/support/models/record.rb +0 -1
  812. data/spec/support/models/registry.rb +0 -1
  813. data/spec/support/models/role.rb +0 -1
  814. data/spec/support/models/root_category.rb +0 -1
  815. data/spec/support/models/sandwich.rb +0 -1
  816. data/spec/support/models/scheduler.rb +0 -1
  817. data/spec/support/models/scribe.rb +0 -1
  818. data/spec/support/models/sealer.rb +0 -1
  819. data/spec/support/models/seat.rb +0 -1
  820. data/spec/support/models/seo.rb +0 -1
  821. data/spec/support/models/series.rb +0 -1
  822. data/spec/support/models/server.rb +0 -1
  823. data/spec/support/models/service.rb +0 -1
  824. data/spec/support/models/shape.rb +0 -1
  825. data/spec/support/models/shelf.rb +0 -1
  826. data/spec/support/models/shipment_address.rb +0 -1
  827. data/spec/support/models/shipping_container.rb +0 -1
  828. data/spec/support/models/shipping_pack.rb +0 -1
  829. data/spec/support/models/shirt.rb +0 -1
  830. data/spec/support/models/shop.rb +0 -1
  831. data/spec/support/models/short_agent.rb +0 -1
  832. data/spec/support/models/short_quiz.rb +0 -1
  833. data/spec/support/models/simple.rb +0 -1
  834. data/spec/support/models/slave.rb +0 -1
  835. data/spec/support/models/song.rb +0 -1
  836. data/spec/support/models/sound.rb +0 -1
  837. data/spec/support/models/spacer.rb +0 -1
  838. data/spec/support/models/square.rb +0 -1
  839. data/spec/support/models/staff.rb +0 -1
  840. data/spec/support/models/store_as_dup_test1.rb +0 -1
  841. data/spec/support/models/store_as_dup_test2.rb +0 -1
  842. data/spec/support/models/store_as_dup_test3.rb +0 -1
  843. data/spec/support/models/store_as_dup_test4.rb +0 -1
  844. data/spec/support/models/strategy.rb +0 -1
  845. data/spec/support/models/sub_item.rb +0 -1
  846. data/spec/support/models/subscription.rb +0 -1
  847. data/spec/support/models/survey.rb +0 -1
  848. data/spec/support/models/symptom.rb +0 -1
  849. data/spec/support/models/tag.rb +0 -1
  850. data/spec/support/models/target.rb +0 -1
  851. data/spec/support/models/template.rb +0 -1
  852. data/spec/support/models/thing.rb +0 -1
  853. data/spec/support/models/threadlocker.rb +0 -1
  854. data/spec/support/models/title.rb +0 -1
  855. data/spec/support/models/tool.rb +0 -1
  856. data/spec/support/models/topping.rb +0 -1
  857. data/spec/support/models/toy.rb +0 -1
  858. data/spec/support/models/track.rb +0 -1
  859. data/spec/support/models/translation.rb +0 -1
  860. data/spec/support/models/tree.rb +0 -1
  861. data/spec/support/models/truck.rb +0 -1
  862. data/spec/support/models/updatable.rb +0 -1
  863. data/spec/support/models/user.rb +0 -1
  864. data/spec/support/models/user_account.rb +0 -1
  865. data/spec/support/models/validation_callback.rb +0 -1
  866. data/spec/support/models/vehicle.rb +0 -1
  867. data/spec/support/models/version.rb +0 -1
  868. data/spec/support/models/vertex.rb +0 -1
  869. data/spec/support/models/vet_visit.rb +0 -1
  870. data/spec/support/models/video.rb +0 -1
  871. data/spec/support/models/video_game.rb +0 -1
  872. data/spec/support/models/washer.rb +0 -1
  873. data/spec/support/models/weapon.rb +0 -1
  874. data/spec/support/models/wiki_page.rb +0 -1
  875. data/spec/support/models/word.rb +0 -1
  876. data/spec/support/models/word_origin.rb +0 -1
  877. data/spec/support/models/writer.rb +0 -1
  878. data/spec/support/shared/time.rb +0 -1
  879. data/spec/support/spec_config.rb +3 -1
  880. data.tar.gz.sig +0 -0
  881. metadata +604 -587
  882. metadata.gz.sig +0 -0
  883. data/lib/support/ruby_version.rb +0 -29
  884. data/spec/support/session_registry.rb +0 -50
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # encoding: utf-8
3
2
 
4
3
  require 'mongoid/association/referenced/has_one/binding'
5
4
  require 'mongoid/association/referenced/has_one/buildable'
@@ -11,8 +10,6 @@ module Mongoid
11
10
  module Referenced
12
11
 
13
12
  # The has_one association.
14
- #
15
- # @since 7.0
16
13
  class HasOne
17
14
  include Relatable
18
15
  include Buildable
@@ -21,37 +18,30 @@ module Mongoid
21
18
  # common ones.
22
19
  #
23
20
  # @return [ Array<Symbol> ] The extra valid options.
24
- #
25
- # @since 7.0
26
21
  ASSOCIATION_OPTIONS = [
27
22
  :as,
28
23
  :autobuild,
29
24
  :autosave,
30
25
  :dependent,
31
26
  :foreign_key,
32
- :primary_key
27
+ :primary_key,
28
+ :scope,
33
29
  ].freeze
34
30
 
35
31
  # The complete list of valid options for this association, including
36
32
  # the shared ones.
37
33
  #
38
34
  # @return [ Array<Symbol> ] The valid options.
39
- #
40
- # @since 7.0
41
35
  VALID_OPTIONS = (ASSOCIATION_OPTIONS + SHARED_OPTIONS).freeze
42
36
 
43
37
  # The default foreign key suffix.
44
38
  #
45
39
  # @return [ String ] '_id'
46
- #
47
- # @since 7.0
48
40
  FOREIGN_KEY_SUFFIX = '_id'.freeze
49
41
 
50
42
  # The list of association complements.
51
43
  #
52
44
  # @return [ Array<Association> ] The association complements.
53
- #
54
- # @since 7.0
55
45
  def relation_complements
56
46
  @relation_complements ||= [ Referenced::BelongsTo ].freeze
57
47
  end
@@ -59,8 +49,6 @@ module Mongoid
59
49
  # Setup the instance methods, fields, etc. on the association owning class.
60
50
  #
61
51
  # @return [ self ]
62
- #
63
- # @since 7.0
64
52
  def setup!
65
53
  setup_instance_methods!
66
54
  self
@@ -70,8 +58,6 @@ module Mongoid
70
58
  #
71
59
  # @return [ String ] The foreign key field for saving the
72
60
  # association reference.
73
- #
74
- # @since 7.0
75
61
  def foreign_key
76
62
  @foreign_key ||= @options[:foreign_key] ? @options[:foreign_key].to_s :
77
63
  default_foreign_key_field
@@ -80,22 +66,16 @@ module Mongoid
80
66
  # Is this association type embedded?
81
67
  #
82
68
  # @return [ false ] Always false.
83
- #
84
- # @since 7.0
85
69
  def embedded?; false; end
86
70
 
87
71
  # The default for validation the association object.
88
72
  #
89
73
  # @return [ true ] Always true.
90
- #
91
- # @since 7.0
92
74
  def validation_default; true; end
93
75
 
94
76
  # Get the association proxy class for this association type.
95
77
  #
96
78
  # @return [ Association::HasOne::Proxy ] The proxy class.
97
- #
98
- # @since 7.0
99
79
  def relation
100
80
  Proxy
101
81
  end
@@ -106,8 +86,6 @@ module Mongoid
106
86
  # @param [ Hash ] options The options for the association.
107
87
  #
108
88
  # @return [ Association::Nested::Many ] The Nested Builder object.
109
- #
110
- # @since 7.0
111
89
  def nested_builder(attributes, options)
112
90
  Nested::One.new(self, attributes, options)
113
91
  end
@@ -115,8 +93,6 @@ module Mongoid
115
93
  # Is this association polymorphic?
116
94
  #
117
95
  # @return [ true, false ] Whether this association is polymorphic.
118
- #
119
- # @since 7.0
120
96
  def polymorphic?
121
97
  @polymorphic ||= !!as
122
98
  end
@@ -126,8 +102,6 @@ module Mongoid
126
102
  # @note Only relevant for polymorphic associations.
127
103
  #
128
104
  # @return [ String, nil ] The type field.
129
- #
130
- # @since 7.0
131
105
  def type
132
106
  @type ||= "#{as}_type" if polymorphic?
133
107
  end
@@ -152,19 +126,22 @@ module Mongoid
152
126
  # @param [ Document ] document The document to calculate on.
153
127
  #
154
128
  # @return [ Root ] The root atomic path calculator.
155
- #
156
- # @since 2.1.0
157
129
  def path(document)
158
130
  Mongoid::Atomic::Paths::Root.new(document)
159
131
  end
160
132
 
133
+ # Get the scope to be applied when querying the association.
134
+ #
135
+ # @return [ Proc | Symbol | nil ] The association scope, if any.
136
+ def scope
137
+ @options[:scope]
138
+ end
139
+
161
140
  private
162
141
 
163
142
  # Setup the instance methods on the class having this association type.
164
143
  #
165
144
  # @return [ self ]
166
- #
167
- # @since 7.0
168
145
  def setup_instance_methods!
169
146
  define_getter!
170
147
  define_setter!
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # encoding: utf-8
3
2
 
4
3
  module Mongoid
5
4
  module Association
@@ -18,8 +17,6 @@ module Mongoid
18
17
  # @param [ Association ] association The association metadata.
19
18
  #
20
19
  # @return [ true, false ] If we can sync.
21
- #
22
- # @since 2.1.0
23
20
  def _syncable?(association)
24
21
  !_synced?(association.foreign_key) && send(association.foreign_key_check)
25
22
  end
@@ -30,8 +27,6 @@ module Mongoid
30
27
  # document._synced
31
28
  #
32
29
  # @return [ Hash ] The synced foreign keys.
33
- #
34
- # @since 2.1.0
35
30
  def _synced
36
31
  @_synced ||= {}
37
32
  end
@@ -44,8 +39,6 @@ module Mongoid
44
39
  # @param [ String ] foreign_key The foreign key.
45
40
  #
46
41
  # @return [ true, false ] If we can sync.
47
- #
48
- # @since 2.1.0
49
42
  def _synced?(foreign_key)
50
43
  !!_synced[foreign_key]
51
44
  end
@@ -58,8 +51,6 @@ module Mongoid
58
51
  # @param [ Association ] association The association.
59
52
  #
60
53
  # @return [ Object ] The updated values.
61
- #
62
- # @since 2.2.1
63
54
  def remove_inverse_keys(association)
64
55
  foreign_keys = send(association.foreign_key)
65
56
  unless foreign_keys.nil? || foreign_keys.empty?
@@ -75,8 +66,6 @@ module Mongoid
75
66
  # @param [ Association ] association The document association.
76
67
  #
77
68
  # @return [ Object ] The updated values.
78
- #
79
- # @since 2.1.0
80
69
  def update_inverse_keys(association)
81
70
  if changes.has_key?(association.foreign_key)
82
71
  old, new = changes[association.foreign_key]
@@ -110,8 +99,6 @@ module Mongoid
110
99
  # Person._synced(association)
111
100
  #
112
101
  # @param [ Association ] association The association metadata.
113
- #
114
- # @since 2.1.0
115
102
  def _synced(association)
116
103
  unless association.forced_nil_inverse?
117
104
  synced_save(association)
@@ -133,8 +120,6 @@ module Mongoid
133
120
  # @param [ Association ] association The association metadata.
134
121
  #
135
122
  # @return [ Class ] The class getting set up.
136
- #
137
- # @since 2.1.0
138
123
  def synced_save(association)
139
124
  set_callback(
140
125
  :save,
@@ -154,8 +139,6 @@ module Mongoid
154
139
  # @param [ Association ] association The association metadata.
155
140
  #
156
141
  # @return [ Class ] The class getting set up.
157
- #
158
- # @since 2.2.1
159
142
  def synced_destroy(association)
160
143
  set_callback(
161
144
  :destroy,
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # encoding: utf-8
3
2
 
4
3
  require 'mongoid/association/referenced/auto_save'
5
4
  require 'mongoid/association/referenced/counter_cache'
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # encoding: utf-8
3
2
 
4
3
  module Mongoid
5
4
  module Association
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # encoding: utf-8
3
2
 
4
3
  require 'mongoid/association/constrainable'
5
4
  require 'mongoid/association/options'
@@ -8,8 +7,6 @@ module Mongoid
8
7
  module Association
9
8
 
10
9
  # This module provides behaviors shared between Association types.
11
- #
12
- # @since 7.0
13
10
  module Relatable
14
11
  include Constrainable
15
12
  include Options
@@ -17,8 +14,6 @@ module Mongoid
17
14
  # The options shared between all association types.
18
15
  #
19
16
  # @return [ Array<Symbol> ] The shared options.
20
- #
21
- # @since 7.0
22
17
  SHARED_OPTIONS = [
23
18
  :class_name,
24
19
  :inverse_of,
@@ -29,22 +24,16 @@ module Mongoid
29
24
  # The primary key default.
30
25
  #
31
26
  # @return [ String ] The primary key field default.
32
- #
33
- # @since 7.0
34
27
  PRIMARY_KEY_DEFAULT = '_id'.freeze
35
28
 
36
29
  # The name of the association.
37
30
  #
38
31
  # @return [ Symbol ] The name of the association.
39
- #
40
- # @since 7.0
41
32
  attr_reader :name
42
33
 
43
34
  # The options on this association.
44
35
  #
45
36
  # @return [ Hash ] The options.
46
- #
47
- # @since 7.0
48
37
  attr_reader :options
49
38
 
50
39
  # Initialize the Association.
@@ -53,8 +42,6 @@ module Mongoid
53
42
  # @param [ Symbol ] name The name of the association.
54
43
  # @param [ Hash ] opts The association options.
55
44
  # @param [ Block ] block The optional block.
56
- #
57
- # @since 7.0
58
45
  def initialize(_class, name, opts = {}, &block)
59
46
  @owner_class = _class
60
47
  @name = name
@@ -71,8 +58,6 @@ module Mongoid
71
58
  # Compare this association to another.
72
59
  #
73
60
  # @return [ Object ] The object to compare to this association.
74
- #
75
- # @since 7.0
76
61
  def ==(other)
77
62
  relation_class_name == other.relation_class_name &&
78
63
  inverse_class_name == other.inverse_class_name &&
@@ -86,8 +71,6 @@ module Mongoid
86
71
  #
87
72
  # @return [ Array<Proc, Symbol> ] A list of the callbacks, either method
88
73
  # names or Procs.
89
- #
90
- # @since 7.0
91
74
  def get_callbacks(callback_type)
92
75
  Array(options[callback_type])
93
76
  end
@@ -96,8 +79,6 @@ module Mongoid
96
79
  # @note Only relevant for polymorphic associations that take the :as option.
97
80
  #
98
81
  # @return [ String ] The type setter method.
99
- #
100
- # @since 7.0
101
82
  def type_setter
102
83
  @type_setter ||= type.__setter__
103
84
  end
@@ -108,8 +89,6 @@ module Mongoid
108
89
  # @param [ Document ] doc The document to be bound.
109
90
  #
110
91
  # @return [ true, false ] Whether the document can be bound.
111
- #
112
- # @since 7.0
113
92
  def bindable?(doc); false; end
114
93
 
115
94
  # Get the inverse names.
@@ -118,8 +97,6 @@ module Mongoid
118
97
  # determining inverses.
119
98
  #
120
99
  # @return [ Array<Symbol> ] The list of inverse names.
121
- #
122
- # @since 7.0
123
100
  def inverses(other = nil)
124
101
  return [ inverse_of ] if inverse_of
125
102
  return [] if @options.key?(:inverse_of) && !inverse_of
@@ -137,8 +114,6 @@ module Mongoid
137
114
  # determining inverses.
138
115
  #
139
116
  # @return [ Association ] The inverse's association metadata.
140
- #
141
- # @since 7.0
142
117
  def inverse_association(other = nil)
143
118
  (other || relation_class).relations[inverse(other)]
144
119
  end
@@ -146,8 +121,6 @@ module Mongoid
146
121
  # Get the inverse type.
147
122
  #
148
123
  # @return [ nil ] Default is nil for an association.
149
- #
150
- # @since 7.0
151
124
  def inverse_type; end
152
125
 
153
126
  # The class name, possibly unqualified or :: prefixed, of the association
@@ -171,8 +144,6 @@ module Mongoid
171
144
  # the +relation_class+ method.
172
145
  #
173
146
  # @return [ String ] The association objects' class name.
174
- #
175
- # @since 7.0
176
147
  def relation_class_name
177
148
  @class_name ||= @options[:class_name] || ActiveSupport::Inflector.classify(name)
178
149
  end
@@ -192,8 +163,6 @@ module Mongoid
192
163
  # happen to be defined with the same name as the association name).
193
164
  #
194
165
  # @return [ String ] The association objects' class.
195
- #
196
- # @since 7.0
197
166
  def relation_class
198
167
  @klass ||= begin
199
168
  cls_name = @options[:class_name] || ActiveSupport::Inflector.classify(name)
@@ -205,8 +174,6 @@ module Mongoid
205
174
  # The class name of the object owning this association.
206
175
  #
207
176
  # @return [ String ] The owning objects' class name.
208
- #
209
- # @since 7.0
210
177
  def inverse_class_name
211
178
  @inverse_class_name ||= @owner_class.name
212
179
  end
@@ -214,8 +181,6 @@ module Mongoid
214
181
  # The class of the object owning this association.
215
182
  #
216
183
  # @return [ String ] The owning objects' class.
217
- #
218
- # @since 7.0
219
184
  def inverse_class
220
185
  @owner_class
221
186
  end
@@ -225,8 +190,6 @@ module Mongoid
225
190
  # Otherwise, the primary key.
226
191
  #
227
192
  # @return [ Symbol, String ] The primary key.
228
- #
229
- # @since 7.0
230
193
  def key
231
194
  stores_foreign_key? ? foreign_key : primary_key
232
195
  end
@@ -234,8 +197,6 @@ module Mongoid
234
197
  # The name of the setter on this object for assigning an associated object.
235
198
  #
236
199
  # @return [ String ] The setter name.
237
- #
238
- # @since 7.0
239
200
  def setter
240
201
  @setter ||= "#{name}="
241
202
  end
@@ -243,8 +204,6 @@ module Mongoid
243
204
  # The name of the inverse setter method.
244
205
  #
245
206
  # @return [ String ] The name of the inverse setter.
246
- #
247
- # @since 7.0
248
207
  def inverse_setter(other = nil)
249
208
  @inverse_setter ||= "#{inverses(other).first}=" unless inverses(other).blank?
250
209
  end
@@ -252,8 +211,6 @@ module Mongoid
252
211
  # The name of the foreign key setter method.
253
212
  #
254
213
  # @return [ String ] The name of the foreign key setter.
255
- #
256
- # @since 7.0
257
214
  def foreign_key_setter
258
215
  # note: You can't check if this association stores foreign key
259
216
  # See HasOne and HasMany binding, they referenced foreign_key_setter
@@ -263,8 +220,6 @@ module Mongoid
263
220
  # The atomic path for this association.
264
221
  #
265
222
  # @return [ Mongoid::Atomic::Paths::Root ] The atomic path object.
266
- #
267
- # @since 7.0
268
223
  def path(document)
269
224
  relation.path(document)
270
225
  end
@@ -276,8 +231,6 @@ module Mongoid
276
231
  # association.inverse_type_setter
277
232
  #
278
233
  # @return [ String ] The name of the setter.
279
- #
280
- # @since 7.0
281
234
  def inverse_type_setter
282
235
  @inverse_type_setter ||= inverse_type.__setter__
283
236
  end
@@ -288,8 +241,6 @@ module Mongoid
288
241
  # association.foreign_key_check
289
242
  #
290
243
  # @return [ String ] The foreign key check.
291
- #
292
- # @since 7.0
293
244
  def foreign_key_check
294
245
  @foreign_key_check ||= "#{foreign_key}_changed?" if (stores_foreign_key? && foreign_key)
295
246
  end
@@ -301,8 +252,6 @@ module Mongoid
301
252
  # association.
302
253
  #
303
254
  # @return [ Proxy ]
304
- #
305
- # @since 7.0
306
255
  def create_relation(owner, target)
307
256
  relation.new(owner, target, self)
308
257
  end
@@ -310,8 +259,6 @@ module Mongoid
310
259
  # Whether the dependent method is destructive.
311
260
  #
312
261
  # @return [ true, false ] If the dependent method is destructive.
313
- #
314
- # @since 7.0
315
262
  def destructive?
316
263
  @destructive ||= !!(dependent && (dependent == :delete_all || dependent == :destroy))
317
264
  end
@@ -319,8 +266,6 @@ module Mongoid
319
266
  # Get the counter cache column name.
320
267
  #
321
268
  # @return [ String ] The counter cache column name.
322
- #
323
- # @since 7.0
324
269
  def counter_cache_column_name
325
270
  @counter_cache_column_name ||= (@options[:counter_cache].is_a?(String) ||
326
271
  @options[:counter_cache].is_a?(Symbol)) ?
@@ -330,8 +275,6 @@ module Mongoid
330
275
  # Get the extension.
331
276
  #
332
277
  # @return [ Module ] The extension module, if one has been defined.
333
- #
334
- # @since 7.0
335
278
  def extension
336
279
  @extension ||= @options[:extend]
337
280
  end
@@ -339,8 +282,6 @@ module Mongoid
339
282
  # Get the inverse name.
340
283
  #
341
284
  # @return [ Symbol ] The inverse name.
342
- #
343
- # @since 7.0
344
285
  def inverse(other = nil)
345
286
  candidates = inverses(other)
346
287
  candidates.detect { |c| c } if candidates
@@ -350,8 +291,6 @@ module Mongoid
350
291
  #
351
292
  # @return [ true, false ] If the associated object(s)
352
293
  # should be validated.
353
- #
354
- # @since 7.0
355
294
  def validate?
356
295
  @validate ||= if @options[:validate].nil?
357
296
  validation_default
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # encoding: utf-8
3
2
 
4
3
  require 'mongoid/association/accessors'
5
4
  require 'mongoid/association/builders'
@@ -34,8 +33,6 @@ module Mongoid
34
33
  # Map the macros to their corresponding Association classes.
35
34
  #
36
35
  # @return [ Hash ] The mapping from macros to their Association class.
37
- #
38
- # @since 7.0
39
36
  MACRO_MAPPING = {
40
37
  embeds_one: Association::Embedded::EmbedsOne,
41
38
  embeds_many: Association::Embedded::EmbedsMany,
@@ -60,8 +57,6 @@ module Mongoid
60
57
  # address.embedded?
61
58
  #
62
59
  # @return [ true, false ] True if the document has a parent document.
63
- #
64
- # @since 2.0.0.rc.1
65
60
  def embedded?
66
61
  @embedded ||= (cyclic ? _parent.present? : self.class.embedded?)
67
62
  end
@@ -72,8 +67,6 @@ module Mongoid
72
67
  # address.embedded_many?
73
68
  #
74
69
  # @return [ true, false ] True if in an embeds many.
75
- #
76
- # @since 2.0.0.rc.1
77
70
  def embedded_many?
78
71
  _association && _association.is_a?(Association::Embedded::EmbedsMany)
79
72
  end
@@ -84,8 +77,6 @@ module Mongoid
84
77
  # address.embedded_one?
85
78
  #
86
79
  # @return [ true, false ] True if in an embeds one.
87
- #
88
- # @since 2.0.0.rc.1
89
80
  def embedded_one?
90
81
  _association && _association.is_a?(Association::Embedded::EmbedsOne)
91
82
  end
@@ -99,8 +90,6 @@ module Mongoid
99
90
  # @raise [ Errors::NoMetadata ] If no association metadata is present.
100
91
  #
101
92
  # @return [ Symbol ] The association name.
102
- #
103
- # @since 3.0.0
104
93
  def association_name
105
94
  raise Errors::NoMetadata.new(self.class.name) unless _association
106
95
  _association.name
@@ -112,8 +101,6 @@ module Mongoid
112
101
  # post.referenced_many?
113
102
  #
114
103
  # @return [ true, false ] True if in a references many.
115
- #
116
- # @since 2.0.0.rc.1
117
104
  def referenced_many?
118
105
  _association && _association.is_a?(Association::Referenced::HasMany)
119
106
  end
@@ -124,8 +111,6 @@ module Mongoid
124
111
  # address.referenced_one?
125
112
  #
126
113
  # @return [ true, false ] True if in a references one.
127
- #
128
- # @since 2.0.0.rc.1
129
114
  def referenced_one?
130
115
  _association && _association.is_a?(Association::Referenced::HasOne)
131
116
  end
@@ -137,8 +122,6 @@ module Mongoid
137
122
  # document.reload_relations
138
123
  #
139
124
  # @return [ Hash ] The association metadata.
140
- #
141
- # @since 2.1.6
142
125
  def reload_relations
143
126
  relations.each_pair do |name, meta|
144
127
  if instance_variable_defined?("@_#{name}")