mongoid 7.3.2 → 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 (886) 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 +30 -16
  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 +11 -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 +11 -63
  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 +2 -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 +27 -44
  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 +13 -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 +7 -27
  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 +42 -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 +22 -69
  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 +11 -7
  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 +3 -53
  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 +25 -0
  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 +25 -0
  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 +2 -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 +3 -28
  268. data/lib/mongoid/positional.rb +0 -5
  269. data/lib/mongoid/query_cache.rb +11 -34
  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 +1 -6
  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 +10 -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 +139 -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 +141 -0
  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 +16 -3
  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 +20 -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 +303 -125
  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 +227 -164
  393. data/spec/mongoid/association/referenced/has_many_models.rb +35 -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 +9 -4
  420. data/spec/mongoid/clients/options_spec.rb +15 -10
  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 +86 -9
  426. data/spec/mongoid/config/options_spec.rb +0 -1
  427. data/spec/mongoid/config_spec.rb +194 -17
  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 +109 -71
  432. data/spec/mongoid/contextual/geo_near_spec.rb +18 -19
  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 +11 -12
  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 +32 -34
  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 +31 -0
  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 +43 -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 +56 -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 +33 -20
  604. data/spec/mongoid/touchable_spec_models.rb +2 -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 +23 -5
  618. data/spec/shared/lib/mrss/docker_runner.rb +1 -1
  619. data/spec/shared/lib/mrss/event_subscriber.rb +200 -0
  620. data/spec/shared/lib/mrss/lite_constraints.rb +8 -0
  621. data/spec/shared/lib/mrss/server_version_registry.rb +17 -12
  622. data/spec/shared/lib/mrss/session_registry.rb +69 -0
  623. data/spec/shared/lib/mrss/session_registry_legacy.rb +60 -0
  624. data/spec/shared/share/Dockerfile.erb +27 -10
  625. data/spec/shared/shlib/distro.sh +2 -1
  626. data/spec/shared/shlib/server.sh +85 -23
  627. data/spec/shared/shlib/set_env.sh +6 -5
  628. data/spec/spec_helper.rb +12 -22
  629. data/spec/support/authorization.rb +0 -1
  630. data/spec/support/constraints.rb +0 -1
  631. data/spec/support/expectations.rb +0 -1
  632. data/spec/support/macros.rb +22 -1
  633. data/spec/support/models/account.rb +1 -2
  634. data/spec/support/models/acolyte.rb +0 -1
  635. data/spec/support/models/actor.rb +0 -1
  636. data/spec/support/models/actress.rb +0 -1
  637. data/spec/support/models/address.rb +0 -1
  638. data/spec/support/models/address_component.rb +0 -1
  639. data/spec/support/models/address_number.rb +0 -1
  640. data/spec/support/models/agency.rb +0 -1
  641. data/spec/support/models/agent.rb +0 -1
  642. data/spec/support/models/album.rb +0 -1
  643. data/spec/support/models/alert.rb +0 -1
  644. data/spec/support/models/animal.rb +0 -1
  645. data/spec/support/models/answer.rb +0 -1
  646. data/spec/support/models/appointment.rb +0 -1
  647. data/spec/support/models/armrest.rb +0 -1
  648. data/spec/support/models/array_field.rb +0 -1
  649. data/spec/support/models/article.rb +0 -1
  650. data/spec/support/models/artist.rb +2 -1
  651. data/spec/support/models/artwork.rb +0 -1
  652. data/spec/support/models/audible_sound.rb +3 -0
  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 +0 -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 +0 -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/shared/time.rb +0 -1
  881. data/spec/support/spec_config.rb +3 -1
  882. data.tar.gz.sig +0 -0
  883. metadata +642 -610
  884. metadata.gz.sig +0 -0
  885. data/lib/support/ruby_version.rb +0 -29
  886. 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 "spec_helper"
5
4
 
@@ -8,7 +7,7 @@ describe Mongoid::Association::Accessors do
8
7
  describe "\#{getter}?" do
9
8
 
10
9
  let(:person) do
11
- Person.create
10
+ Person.create!
12
11
  end
13
12
 
14
13
  context "when the association is a has one" do
@@ -89,7 +88,7 @@ describe Mongoid::Association::Accessors do
89
88
  context "when the association is named next" do
90
89
 
91
90
  let(:user) do
92
- User.create
91
+ User.create!
93
92
  end
94
93
 
95
94
  it "allows the existence check" do
@@ -167,6 +166,36 @@ describe Mongoid::Association::Accessors do
167
166
  end
168
167
  end
169
168
  end
169
+
170
+ context "when the association is set to nil first" do
171
+ context "when broken_updates feature flag is not set" do
172
+ config_override :broken_updates, false
173
+
174
+ let!(:name) do
175
+ person.build_name
176
+ end
177
+
178
+ it "returns true" do
179
+ person.name = nil
180
+ person.name = name
181
+ expect(person).to have_name
182
+ end
183
+ end
184
+
185
+ context "when broken_updates feature flag is set" do
186
+ config_override :broken_updates, true
187
+
188
+ let!(:name) do
189
+ person.build_name
190
+ end
191
+
192
+ it "returns true" do
193
+ person.name = nil
194
+ person.name = name
195
+ expect(person).to have_name
196
+ end
197
+ end
198
+ end
170
199
  end
171
200
 
172
201
  context "when the association is an embeds many" do
@@ -355,13 +384,13 @@ describe Mongoid::Association::Accessors do
355
384
  context "when the association is not polymorphic" do
356
385
 
357
386
  let(:person) do
358
- Person.create
387
+ Person.create!
359
388
  end
360
389
 
361
390
  context "when the association is a many to many" do
362
391
 
363
392
  let!(:preference) do
364
- Preference.create(name: "Setting")
393
+ Preference.create!(name: "Setting")
365
394
  end
366
395
 
367
396
  before do
@@ -413,7 +442,7 @@ describe Mongoid::Association::Accessors do
413
442
  context "when the association is a many to one" do
414
443
 
415
444
  let!(:post) do
416
- Post.create(title: "First!")
445
+ Post.create!(title: "First!")
417
446
  end
418
447
 
419
448
  before do
@@ -465,7 +494,7 @@ describe Mongoid::Association::Accessors do
465
494
  context "when the association is a references one" do
466
495
 
467
496
  let!(:game) do
468
- Game.create(name: "Centipeded")
497
+ Game.create!(name: "Centipeded")
469
498
  end
470
499
 
471
500
  before do
@@ -520,15 +549,15 @@ describe Mongoid::Association::Accessors do
520
549
  context "when there's a single references many/one" do
521
550
 
522
551
  let!(:movie) do
523
- Movie.create(title: "Inception")
552
+ Movie.create!(title: "Inception")
524
553
  end
525
554
 
526
555
  let!(:book) do
527
- Book.create(title: "Jurassic Park")
556
+ Book.create!(title: "Jurassic Park")
528
557
  end
529
558
 
530
559
  let!(:movie_rating) do
531
- movie.ratings.create(value: 10)
560
+ movie.ratings.create!(value: 10)
532
561
  end
533
562
 
534
563
  let!(:book_rating) do
@@ -833,7 +862,7 @@ describe Mongoid::Association::Accessors do
833
862
  context "when setting the _ids accessor" do
834
863
 
835
864
  let(:post) do
836
- Post.create
865
+ Post.create!
837
866
  end
838
867
 
839
868
  before do
@@ -911,7 +940,7 @@ describe Mongoid::Association::Accessors do
911
940
  end
912
941
 
913
942
  let(:person) do
914
- Person.create
943
+ Person.create!
915
944
  end
916
945
 
917
946
  context "when value is an empty string" do
@@ -970,13 +999,13 @@ describe Mongoid::Association::Accessors do
970
999
  context 'when setting the association more than once' do
971
1000
 
972
1001
  let(:person) do
973
- Person.create
1002
+ Person.create!
974
1003
  end
975
1004
 
976
1005
  context 'when the association is a references one' do
977
1006
 
978
1007
  let(:game) do
979
- Game.create
1008
+ Game.create!
980
1009
  end
981
1010
 
982
1011
  before do
@@ -992,7 +1021,7 @@ describe Mongoid::Association::Accessors do
992
1021
  context 'when the association is a references many' do
993
1022
 
994
1023
  let!(:preference) do
995
- Preference.create(name: "Setting")
1024
+ Preference.create!(name: "Setting")
996
1025
  end
997
1026
 
998
1027
  before do
@@ -1,7 +1,8 @@
1
1
  # frozen_string_literal: true
2
- # encoding: utf-8
3
2
 
4
3
  require "spec_helper"
4
+ require_relative './referenced/has_many_models'
5
+ require_relative './referenced/has_one_models'
5
6
 
6
7
  describe Mongoid::Association::Referenced::AutoSave do
7
8
 
@@ -22,22 +23,59 @@ describe Mongoid::Association::Referenced::AutoSave do
22
23
 
23
24
  context "when the option is not provided" do
24
25
 
25
- let(:game) do
26
- Game.new(name: "Tekken")
27
- end
26
+ context 'has_many' do
27
+
28
+ let(:parent) do
29
+ HmmSchool.new
30
+ end
31
+
32
+ let(:child) do
33
+ HmmStudent.new(name: "Panda")
34
+ end
35
+
36
+ before do
37
+ parent.students = [child]
38
+ end
39
+
40
+ context "when saving the parent document" do
41
+
42
+ before do
43
+ parent.associations[:students].options[:autosave].should be_falsy
44
+
45
+ parent.save!
46
+ end
28
47
 
29
- before do
30
- person.game = game
48
+ it "does not save the child" do
49
+ expect(child).to_not be_persisted
50
+ end
51
+ end
31
52
  end
32
53
 
33
- context "when saving the parent document" do
54
+ context 'has_one' do
55
+
56
+ let(:parent) do
57
+ HomCollege.new
58
+ end
59
+
60
+ let(:child) do
61
+ HomAccreditation.new
62
+ end
34
63
 
35
64
  before do
36
- person.save
65
+ parent.accreditation = child
37
66
  end
38
67
 
39
- it "does not save the relation" do
40
- expect(game).to_not be_persisted
68
+ context "when saving the parent document" do
69
+
70
+ before do
71
+ parent.associations[:accreditation].options[:autosave].should be_falsy
72
+
73
+ parent.save!
74
+ end
75
+
76
+ it "does not save the child" do
77
+ expect(child).to_not be_persisted
78
+ end
41
79
  end
42
80
  end
43
81
  end
@@ -57,7 +95,7 @@ describe Mongoid::Association::Referenced::AutoSave do
57
95
  it "does not add the autosave callback twice" do
58
96
  expect(drug).to receive(:save).once
59
97
  person.drugs.push(drug)
60
- person.save
98
+ person.save!
61
99
  end
62
100
  end
63
101
 
@@ -77,7 +115,7 @@ describe Mongoid::Association::Referenced::AutoSave do
77
115
 
78
116
  before do
79
117
  person.drugs << drug
80
- person.save
118
+ person.save!
81
119
  end
82
120
 
83
121
  it "saves the relation" do
@@ -103,7 +141,7 @@ describe Mongoid::Association::Referenced::AutoSave do
103
141
  before do
104
142
  person.with(database: other_database) do |per|
105
143
  per.drugs << drug
106
- per.save
144
+ per.save!
107
145
  end
108
146
  end
109
147
 
@@ -118,9 +156,9 @@ describe Mongoid::Association::Referenced::AutoSave do
118
156
  context "when saving an existing parent document" do
119
157
 
120
158
  before do
121
- person.save
159
+ person.save!
122
160
  person.drugs << drug
123
- person.save
161
+ person.save!
124
162
  end
125
163
 
126
164
  it "saves the relation" do
@@ -136,11 +174,11 @@ describe Mongoid::Association::Referenced::AutoSave do
136
174
 
137
175
  before do
138
176
  person.drugs << drug
139
- person.save
177
+ person.save!
140
178
  end
141
179
 
142
180
  it 'does not load the association' do
143
- from_db.save
181
+ from_db.save!
144
182
  expect(from_db.ivar(:drugs)).to be false
145
183
  end
146
184
  end
@@ -156,7 +194,7 @@ describe Mongoid::Association::Referenced::AutoSave do
156
194
 
157
195
  before do
158
196
  person.account = account
159
- person.save
197
+ person.save!
160
198
  end
161
199
 
162
200
  it "saves the relation" do
@@ -171,9 +209,9 @@ describe Mongoid::Association::Referenced::AutoSave do
171
209
  context "when saving an existing parent document" do
172
210
 
173
211
  before do
174
- person.save
212
+ person.save!
175
213
  person.account = account
176
- person.save
214
+ person.save!
177
215
  end
178
216
 
179
217
  it "saves the relation" do
@@ -189,14 +227,14 @@ describe Mongoid::Association::Referenced::AutoSave do
189
227
 
190
228
  before do
191
229
  person.account = account
192
- person.save
230
+ person.save!
193
231
  end
194
232
 
195
233
  it "sends one insert" do
196
234
  account.name = "account"
197
235
  expect_query(1) do
198
236
  person.with(write: {w:0}) do |_person|
199
- _person.save
237
+ _person.save!
200
238
  end
201
239
  end
202
240
  end
@@ -210,11 +248,11 @@ describe Mongoid::Association::Referenced::AutoSave do
210
248
 
211
249
  before do
212
250
  person.account = account
213
- person.save
251
+ person.save!
214
252
  end
215
253
 
216
254
  it 'does not load the association' do
217
- from_db.save
255
+ from_db.save!
218
256
  expect(from_db.ivar(:account)).to be false
219
257
  end
220
258
  end
@@ -234,7 +272,7 @@ describe Mongoid::Association::Referenced::AutoSave do
234
272
 
235
273
  before do
236
274
  ghost.movie = movie
237
- ghost.save
275
+ ghost.save!
238
276
  end
239
277
 
240
278
  it "saves the relation" do
@@ -245,9 +283,9 @@ describe Mongoid::Association::Referenced::AutoSave do
245
283
  context "when saving an existing parent document" do
246
284
 
247
285
  before do
248
- ghost.save
286
+ ghost.save!
249
287
  ghost.movie = movie
250
- ghost.save
288
+ ghost.save!
251
289
  end
252
290
 
253
291
  it "saves the relation" do
@@ -259,7 +297,7 @@ describe Mongoid::Association::Referenced::AutoSave do
259
297
  context "when it has two relations with autosaves" do
260
298
 
261
299
  let!(:person) do
262
- Person.create(drugs: [percocet], account: account)
300
+ Person.create!(drugs: [percocet], account: account)
263
301
  end
264
302
 
265
303
  let(:from_db) do
@@ -282,7 +320,7 @@ describe Mongoid::Association::Referenced::AutoSave do
282
320
 
283
321
  before do
284
322
  from_db.drugs = [placebo]
285
- from_db.save
323
+ from_db.save!
286
324
  end
287
325
 
288
326
  it 'loads the updated association' do
@@ -297,7 +335,7 @@ describe Mongoid::Association::Referenced::AutoSave do
297
335
  context "when updating none document" do
298
336
 
299
337
  before do
300
- from_db.save
338
+ from_db.save!
301
339
  end
302
340
 
303
341
  it 'doest not load drugs association' do
@@ -338,22 +376,22 @@ describe Mongoid::Association::Referenced::AutoSave do
338
376
  end
339
377
 
340
378
  let(:king) do
341
- King.create
379
+ King.create!
342
380
  end
343
381
 
344
382
  let(:peasant) do
345
- Peasant.create
383
+ Peasant.create!
346
384
  end
347
385
 
348
386
  let(:harvest) do
349
- Harvest.create(season: 'Summer')
387
+ Harvest.create!(season: 'Summer')
350
388
  end
351
389
 
352
390
  before do
353
391
  peasant.harvest = harvest
354
392
  king.peasant = peasant
355
393
  harvest.season = 'Fall'
356
- king.save
394
+ king.save!
357
395
  end
358
396
 
359
397
  it 'cascades the save' do
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # encoding: utf-8
3
2
 
4
3
  require "spec_helper"
5
4
 
@@ -177,7 +176,7 @@ describe Mongoid::Association::Builders do
177
176
  context "when the parent is persisted" do
178
177
 
179
178
  let(:person) do
180
- Person.create
179
+ Person.create!
181
180
  end
182
181
 
183
182
  context "when the relation is a has one" do
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # encoding: utf-8
3
2
 
4
3
  require "spec_helper"
5
4
 
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # encoding: utf-8
3
2
 
4
3
  require "spec_helper"
5
4
 
@@ -10,7 +9,7 @@ describe Mongoid::Association::Referenced::CounterCache do
10
9
  context "when counter is reset" do
11
10
 
12
11
  let(:person) do
13
- Person.create do |person|
12
+ Person.create! do |person|
14
13
  person[:drugs_count] = 3
15
14
  end
16
15
  end
@@ -31,7 +30,7 @@ describe Mongoid::Association::Referenced::CounterCache do
31
30
  context "when reset with invalid name" do
32
31
 
33
32
  let(:person) do
34
- Person.create
33
+ Person.create!
35
34
  end
36
35
 
37
36
  it "expect to raise an error" do
@@ -44,11 +43,11 @@ describe Mongoid::Association::Referenced::CounterCache do
44
43
  context "when counter gets messy" do
45
44
 
46
45
  let(:person) do
47
- Person.create
46
+ Person.create!
48
47
  end
49
48
 
50
49
  let!(:post) do
51
- person.posts.create(title: "my first post")
50
+ person.posts.create!(title: "my first post")
52
51
  end
53
52
 
54
53
  before do
@@ -69,11 +68,11 @@ describe Mongoid::Association::Referenced::CounterCache do
69
68
  context "when the counter is on a subclass" do
70
69
 
71
70
  let(:subscription) do
72
- Subscription.create
71
+ Subscription.create!
73
72
  end
74
73
 
75
74
  let!(:pack) do
76
- subscription.packs.create
75
+ subscription.packs.create!
77
76
  end
78
77
 
79
78
  before do
@@ -97,8 +96,8 @@ describe Mongoid::Association::Referenced::CounterCache do
97
96
 
98
97
  before do
99
98
  subscription.with(collection: 'other') do |sub|
100
- sub.save
101
- sub.packs.create
99
+ sub.save!
100
+ sub.packs.create!
102
101
  end
103
102
  end
104
103
 
@@ -115,7 +114,7 @@ describe Mongoid::Association::Referenced::CounterCache do
115
114
  context "when counter is reset" do
116
115
 
117
116
  let(:person) do
118
- Person.create do |person|
117
+ Person.create! do |person|
119
118
  person[:drugs_count] = 3
120
119
  end
121
120
  end
@@ -141,7 +140,7 @@ describe Mongoid::Association::Referenced::CounterCache do
141
140
  context "when reset with invalid name" do
142
141
 
143
142
  let(:person) do
144
- Person.create
143
+ Person.create!
145
144
  end
146
145
 
147
146
  it "expect to raise an error" do
@@ -154,11 +153,11 @@ describe Mongoid::Association::Referenced::CounterCache do
154
153
  context "when counter gets messy" do
155
154
 
156
155
  let(:person) do
157
- Person.create
156
+ Person.create!
158
157
  end
159
158
 
160
159
  let!(:post) do
161
- person.posts.create(title: "my first post")
160
+ person.posts.create!(title: "my first post")
162
161
  end
163
162
 
164
163
  before do
@@ -174,11 +173,11 @@ describe Mongoid::Association::Referenced::CounterCache do
174
173
  context "when the counter is on a subclass" do
175
174
 
176
175
  let(:subscription) do
177
- Subscription.create
176
+ Subscription.create!
178
177
  end
179
178
 
180
179
  let!(:pack) do
181
- subscription.packs.create
180
+ subscription.packs.create!
182
181
  end
183
182
 
184
183
  before do
@@ -196,7 +195,7 @@ describe Mongoid::Association::Referenced::CounterCache do
196
195
  context "when was 3 " do
197
196
 
198
197
  let(:person) do
199
- Person.create do |person|
198
+ Person.create! do |person|
200
199
  person[:drugs_count] = 3
201
200
  end
202
201
  end
@@ -225,7 +224,7 @@ describe Mongoid::Association::Referenced::CounterCache do
225
224
  end
226
225
  context "when update with 2 and use a string argument" do
227
226
 
228
- let(:person) { Person.create }
227
+ let(:person) { Person.create! }
229
228
 
230
229
  before do
231
230
  Person.update_counters person.id, "drugs_count" => 2
@@ -238,7 +237,7 @@ describe Mongoid::Association::Referenced::CounterCache do
238
237
 
239
238
  context "when update more multiple counters" do
240
239
 
241
- let(:person) { Person.create }
240
+ let(:person) { Person.create! }
242
241
 
243
242
  before do
244
243
  Person.update_counters(person.id, :drugs_count => 2, :second_counter => 5)
@@ -256,7 +255,7 @@ describe Mongoid::Association::Referenced::CounterCache do
256
255
 
257
256
  describe "#increment_counter" do
258
257
 
259
- let(:person) { Person.create }
258
+ let(:person) { Person.create! }
260
259
 
261
260
  context "when increment 3 times" do
262
261
 
@@ -288,8 +287,8 @@ describe Mongoid::Association::Referenced::CounterCache do
288
287
 
289
288
  before do
290
289
  person.with(collection: 'other') do |per|
291
- per.save
292
- per.drugs.create
290
+ per.save!
291
+ per.drugs.create!
293
292
  end
294
293
  end
295
294
 
@@ -304,7 +303,7 @@ describe Mongoid::Association::Referenced::CounterCache do
304
303
  describe "#decrement_counter" do
305
304
 
306
305
  let(:person) do
307
- Person.create do |p|
306
+ Person.create! do |p|
308
307
  p[:drugs_count] = 3
309
308
  end
310
309
  end
@@ -338,8 +337,8 @@ describe Mongoid::Association::Referenced::CounterCache do
338
337
 
339
338
  before do
340
339
  person.with(collection: 'other') do |per|
341
- per.save
342
- drug = per.drugs.create
340
+ per.save!
341
+ drug = per.drugs.create!
343
342
  drug.destroy
344
343
  end
345
344
  end
@@ -359,11 +358,11 @@ describe Mongoid::Association::Referenced::CounterCache do
359
358
  context 'when #destroy is called on the object' do
360
359
 
361
360
  let(:person) do
362
- Person.create
361
+ Person.create!
363
362
  end
364
363
 
365
364
  let!(:drug) do
366
- person.drugs.create
365
+ person.drugs.create!
367
366
  end
368
367
 
369
368
  before do
@@ -378,7 +377,7 @@ describe Mongoid::Association::Referenced::CounterCache do
378
377
  context 'when #create is called on the object' do
379
378
 
380
379
  let(:person) do
381
- Person.create { |p| p.drugs += [Drug.create, Drug.create] }
380
+ Person.create! { |p| p.drugs += [Drug.create!, Drug.create!] }
382
381
  end
383
382
 
384
383
  it "updates the counter cache" do
@@ -389,7 +388,7 @@ describe Mongoid::Association::Referenced::CounterCache do
389
388
  context 'when #update is called on the object' do
390
389
 
391
390
  let(:person1) do
392
- Person.create { |p| p.drugs += [Drug.create, Drug.create] }
391
+ Person.create! { |p| p.drugs += [Drug.create!, Drug.create!] }
393
392
  end
394
393
 
395
394
  let(:drug) do
@@ -397,7 +396,7 @@ describe Mongoid::Association::Referenced::CounterCache do
397
396
  end
398
397
 
399
398
  let(:person2) do
400
- Person.create
399
+ Person.create!
401
400
  end
402
401
 
403
402
  before do
@@ -418,9 +417,9 @@ describe Mongoid::Association::Referenced::CounterCache do
418
417
 
419
418
  context 'when foreign_key differs from model name' do
420
419
 
421
- let(:genre) { PostGenre.create }
420
+ let(:genre) { PostGenre.create! }
422
421
 
423
- let(:post) { Post.create }
422
+ let(:post) { Post.create! }
424
423
 
425
424
  it 'updates correct counter cache' do
426
425
  post.update post_genre: genre
@@ -433,11 +432,11 @@ describe Mongoid::Association::Referenced::CounterCache do
433
432
  context "when parent is frozen" do
434
433
 
435
434
  let(:person) do
436
- Person.create
435
+ Person.create!
437
436
  end
438
437
 
439
438
  let!(:drug) do
440
- person.drugs.create
439
+ person.drugs.create!
441
440
  end
442
441
 
443
442
  before do