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
 
@@ -192,7 +191,7 @@ describe Mongoid::Attributes::Nested do
192
191
  end
193
192
 
194
193
  context "when adding existing document to a relation" do
195
- let(:preference) { Preference.create(name: 'sample preference') }
194
+ let(:preference) { Preference.create!(name: 'sample preference') }
196
195
  let(:person) do
197
196
  Person.new(
198
197
  preferences_attributes: { 0 => { id: preference.id, name: preference.name } }
@@ -243,7 +242,7 @@ describe Mongoid::Attributes::Nested do
243
242
  context "when the parent document is persisted" do
244
243
 
245
244
  let(:person) do
246
- Person.create
245
+ Person.create!
247
246
  end
248
247
 
249
248
  before do
@@ -273,7 +272,7 @@ describe Mongoid::Attributes::Nested do
273
272
  context "when saving the parent" do
274
273
 
275
274
  before do
276
- person.save
275
+ person.save!
277
276
  person.reload
278
277
  end
279
278
 
@@ -375,7 +374,7 @@ describe Mongoid::Attributes::Nested do
375
374
  context "when all attributes are empty" do
376
375
 
377
376
  let(:product) do
378
- Product.create(name: "testing")
377
+ Product.create!(name: "testing")
379
378
  end
380
379
 
381
380
  it "does not add the document" do
@@ -608,7 +607,7 @@ describe Mongoid::Attributes::Nested do
608
607
  end
609
608
 
610
609
  let(:owner) do
611
- PetOwner.create
610
+ PetOwner.create!
612
611
  end
613
612
 
614
613
  let!(:pet) do
@@ -617,7 +616,7 @@ describe Mongoid::Attributes::Nested do
617
616
 
618
617
  before do
619
618
  owner.pet_attributes = { id: pet.id, _destroy: truth }
620
- owner.save
619
+ owner.save!
621
620
  end
622
621
 
623
622
  it "destroys the existing document" do
@@ -1035,7 +1034,7 @@ describe Mongoid::Attributes::Nested do
1035
1034
  context "when the parent document is persisted" do
1036
1035
 
1037
1036
  let(:person) do
1038
- Person.create
1037
+ Person.create!
1039
1038
  end
1040
1039
 
1041
1040
  before do
@@ -1069,7 +1068,7 @@ describe Mongoid::Attributes::Nested do
1069
1068
  context "when saving the parent" do
1070
1069
 
1071
1070
  before do
1072
- person.save
1071
+ person.save!
1073
1072
  person.reload
1074
1073
  end
1075
1074
 
@@ -1185,7 +1184,7 @@ describe Mongoid::Attributes::Nested do
1185
1184
  context "when the parent is saved" do
1186
1185
 
1187
1186
  before do
1188
- band.save
1187
+ band.save!
1189
1188
  end
1190
1189
 
1191
1190
  it "runs the first child create callbacks" do
@@ -1377,7 +1376,7 @@ describe Mongoid::Attributes::Nested do
1377
1376
  end
1378
1377
 
1379
1378
  let!(:record) do
1380
- band.records.create
1379
+ band.records.create!
1381
1380
  end
1382
1381
 
1383
1382
  let(:attributes) do
@@ -1415,17 +1414,17 @@ describe Mongoid::Attributes::Nested do
1415
1414
  end
1416
1415
 
1417
1416
  let!(:band) do
1418
- Band.create
1417
+ Band.create!
1419
1418
  end
1420
1419
 
1421
1420
  let!(:record) do
1422
- band.records.create
1421
+ band.records.create!
1423
1422
  end
1424
1423
 
1425
1424
  before do
1426
1425
  band.records_attributes =
1427
1426
  { "foo" => { "id" => record.id, "_destroy" => true }}
1428
- band.save
1427
+ band.save!
1429
1428
  end
1430
1429
 
1431
1430
  it "deletes the child document" do
@@ -1450,7 +1449,7 @@ describe Mongoid::Attributes::Nested do
1450
1449
  context "when the parent is persisted" do
1451
1450
 
1452
1451
  let!(:persisted) do
1453
- Person.create(age: 42)
1452
+ Person.create!(age: 42)
1454
1453
  end
1455
1454
 
1456
1455
  context "when the child halts the callback chain in a before callback" do
@@ -1458,11 +1457,11 @@ describe Mongoid::Attributes::Nested do
1458
1457
  context "when the child is not paranoid" do
1459
1458
 
1460
1459
  let(:actor) do
1461
- Actor.create
1460
+ Actor.create!
1462
1461
  end
1463
1462
 
1464
1463
  let!(:thing) do
1465
- actor.things.create
1464
+ actor.things.create!
1466
1465
  end
1467
1466
 
1468
1467
  before do
@@ -1480,11 +1479,11 @@ describe Mongoid::Attributes::Nested do
1480
1479
  context "when only 1 child has the default persisted" do
1481
1480
 
1482
1481
  let!(:app_one) do
1483
- persisted.appointments.create
1482
+ persisted.appointments.create!
1484
1483
  end
1485
1484
 
1486
1485
  let!(:app_two) do
1487
- persisted.appointments.create.tap do |app|
1486
+ persisted.appointments.create!.tap do |app|
1488
1487
  app.unset(:timed)
1489
1488
  end
1490
1489
  end
@@ -1501,7 +1500,7 @@ describe Mongoid::Attributes::Nested do
1501
1500
  "bar" => { "id" => app_one.id, "_destroy" => true },
1502
1501
  "foo" => { "id" => app_two.id, "_destroy" => true }
1503
1502
  }
1504
- from_db.save
1503
+ from_db.save!
1505
1504
  end
1506
1505
 
1507
1506
  it "destroys both children" do
@@ -1576,7 +1575,7 @@ describe Mongoid::Attributes::Nested do
1576
1575
  context "when the parent is persisted" do
1577
1576
 
1578
1577
  let!(:persisted) do
1579
- Person.create do |p|
1578
+ Person.create! do |p|
1580
1579
  p.addresses << [ address_one, address_two ]
1581
1580
  end
1582
1581
  end
@@ -1623,7 +1622,7 @@ describe Mongoid::Attributes::Nested do
1623
1622
  context "when saving the parent" do
1624
1623
 
1625
1624
  before do
1626
- persisted.save
1625
+ persisted.save!
1627
1626
  end
1628
1627
 
1629
1628
  it "deletes the marked document from the relation" do
@@ -1679,7 +1678,7 @@ describe Mongoid::Attributes::Nested do
1679
1678
  context "when saving the parent" do
1680
1679
 
1681
1680
  before do
1682
- persisted.save
1681
+ persisted.save!
1683
1682
  end
1684
1683
 
1685
1684
  it "deletes the marked document from the relation" do
@@ -2391,8 +2390,8 @@ describe Mongoid::Attributes::Nested do
2391
2390
  end
2392
2391
 
2393
2392
  before do
2394
- pizza.topping = Topping.create(name: "cheese")
2395
- pizza.update_attributes(topping_attributes: { name: "onions" })
2393
+ pizza.topping = Topping.create!(name: "cheese")
2394
+ pizza.update_attributes!(topping_attributes: { name: "onions" })
2396
2395
  end
2397
2396
 
2398
2397
  it "persists the attribute changes" do
@@ -2967,7 +2966,7 @@ describe Mongoid::Attributes::Nested do
2967
2966
  context "when ids are passed" do
2968
2967
 
2969
2968
  let(:person) do
2970
- Person.create
2969
+ Person.create!
2971
2970
  end
2972
2971
 
2973
2972
  before do
@@ -3032,7 +3031,7 @@ describe Mongoid::Attributes::Nested do
3032
3031
  "0" => { "id" => post_one.id, "title" => "testing again" },
3033
3032
  "1" => { "id" => post_two.id, "title" => "$$$" }
3034
3033
  }
3035
- person.save
3034
+ person.save!
3036
3035
  end
3037
3036
 
3038
3037
  it "does not perist the invalid value" do
@@ -3308,7 +3307,7 @@ describe Mongoid::Attributes::Nested do
3308
3307
  context "when the parent is saved" do
3309
3308
 
3310
3309
  before do
3311
- person.save
3310
+ person.save!
3312
3311
  person.posts_attributes =
3313
3312
  [
3314
3313
  { "title" => "Third" },
@@ -3723,7 +3722,7 @@ describe Mongoid::Attributes::Nested do
3723
3722
  context "when ids are passed" do
3724
3723
 
3725
3724
  let(:person) do
3726
- Person.create
3725
+ Person.create!
3727
3726
  end
3728
3727
 
3729
3728
  before do
@@ -4305,7 +4304,7 @@ describe Mongoid::Attributes::Nested do
4305
4304
  end
4306
4305
  end
4307
4306
 
4308
- describe "#update_attributes" do
4307
+ describe "#update_attributes!" do
4309
4308
 
4310
4309
  before do
4311
4310
  Person.send(:undef_method, :addresses_attributes=)
@@ -4315,11 +4314,11 @@ describe Mongoid::Attributes::Nested do
4315
4314
  context "when embedding one level behind a has many" do
4316
4315
 
4317
4316
  let(:node) do
4318
- Node.create
4317
+ Node.create!
4319
4318
  end
4320
4319
 
4321
4320
  let!(:server) do
4322
- node.servers.create(name: "prod")
4321
+ node.servers.create!(name: "prod")
4323
4322
  end
4324
4323
 
4325
4324
  context "when adding a new embedded document" do
@@ -4338,7 +4337,7 @@ describe Mongoid::Attributes::Nested do
4338
4337
  end
4339
4338
 
4340
4339
  before do
4341
- node.update_attributes(attributes)
4340
+ node.update_attributes!(attributes)
4342
4341
  end
4343
4342
 
4344
4343
  it "adds the new embedded document" do
@@ -4354,11 +4353,11 @@ describe Mongoid::Attributes::Nested do
4354
4353
  context "when deleting the child document" do
4355
4354
 
4356
4355
  let(:person) do
4357
- Person.create
4356
+ Person.create!
4358
4357
  end
4359
4358
 
4360
4359
  let!(:service) do
4361
- person.services.create(sid: "123")
4360
+ person.services.create!(sid: "123")
4362
4361
  end
4363
4362
 
4364
4363
  let(:attributes) do
@@ -4370,7 +4369,7 @@ describe Mongoid::Attributes::Nested do
4370
4369
  end
4371
4370
 
4372
4371
  before do
4373
- person.update_attributes(attributes)
4372
+ person.update_attributes!(attributes)
4374
4373
  end
4375
4374
 
4376
4375
  it "removes the document from the parent" do
@@ -4408,15 +4407,15 @@ describe Mongoid::Attributes::Nested do
4408
4407
  end
4409
4408
 
4410
4409
  let(:dokument) do
4411
- Dokument.create
4410
+ Dokument.create!
4412
4411
  end
4413
4412
 
4414
4413
  let!(:address) do
4415
- dokument.addresses.create(street: "hobrecht")
4414
+ dokument.addresses.create!(street: "hobrecht")
4416
4415
  end
4417
4416
 
4418
4417
  let!(:location) do
4419
- address.locations.create(name: "work")
4418
+ address.locations.create!(name: "work")
4420
4419
  end
4421
4420
 
4422
4421
  let(:attributes) do
@@ -4428,7 +4427,7 @@ describe Mongoid::Attributes::Nested do
4428
4427
  end
4429
4428
 
4430
4429
  before do
4431
- address.update_attributes(attributes)
4430
+ address.update_attributes!(attributes)
4432
4431
  address.reload
4433
4432
  end
4434
4433
 
@@ -4440,21 +4439,21 @@ describe Mongoid::Attributes::Nested do
4440
4439
  context "when nesting multiple levels" do
4441
4440
 
4442
4441
  let!(:person) do
4443
- Person.create
4442
+ Person.create!
4444
4443
  end
4445
4444
 
4446
4445
  context "when second level is a one to many" do
4447
4446
 
4448
4447
  let(:person_one) do
4449
- Person.create
4448
+ Person.create!
4450
4449
  end
4451
4450
 
4452
4451
  let!(:address_one) do
4453
- person_one.addresses.create(street: "hobrecht")
4452
+ person_one.addresses.create!(street: "hobrecht")
4454
4453
  end
4455
4454
 
4456
4455
  let!(:location_one) do
4457
- address_one.locations.create(name: "home")
4456
+ address_one.locations.create!(name: "home")
4458
4457
  end
4459
4458
 
4460
4459
  context "when destroying a second level document" do
@@ -4471,7 +4470,7 @@ describe Mongoid::Attributes::Nested do
4471
4470
  end
4472
4471
 
4473
4472
  before do
4474
- person_one.update_attributes(attributes)
4473
+ person_one.update_attributes!(attributes)
4475
4474
  end
4476
4475
 
4477
4476
  it "deletes the document from the relation" do
@@ -4486,15 +4485,15 @@ describe Mongoid::Attributes::Nested do
4486
4485
  context "when destroying a second level document with callbacks" do
4487
4486
 
4488
4487
  let(:band) do
4489
- Band.create(name: "Tool")
4488
+ Band.create!(name: "Tool")
4490
4489
  end
4491
4490
 
4492
4491
  let(:record) do
4493
- band.records.create(name: "Undertow")
4492
+ band.records.create!(name: "Undertow")
4494
4493
  end
4495
4494
 
4496
4495
  let!(:track) do
4497
- record.tracks.create(name: "Sober")
4496
+ record.tracks.create!(name: "Sober")
4498
4497
  end
4499
4498
 
4500
4499
  context "when cascading callbacks" do
@@ -4521,7 +4520,7 @@ describe Mongoid::Attributes::Nested do
4521
4520
  end
4522
4521
 
4523
4522
  before do
4524
- band.update_attributes(attributes)
4523
+ band.update_attributes!(attributes)
4525
4524
  end
4526
4525
 
4527
4526
  it "removes the child from the relation" do
@@ -4554,7 +4553,7 @@ describe Mongoid::Attributes::Nested do
4554
4553
  end
4555
4554
 
4556
4555
  before do
4557
- person.update_attributes(attributes)
4556
+ person.update_attributes!(attributes)
4558
4557
  end
4559
4558
 
4560
4559
  let(:address) do
@@ -4577,11 +4576,11 @@ describe Mongoid::Attributes::Nested do
4577
4576
  context "when adding to an existing document in the first level" do
4578
4577
 
4579
4578
  let!(:address) do
4580
- person.addresses.create(street: "hobrecht")
4579
+ person.addresses.create!(street: "hobrecht")
4581
4580
  end
4582
4581
 
4583
4582
  let!(:location) do
4584
- address.locations.create(name: "work")
4583
+ address.locations.create!(name: "work")
4585
4584
  end
4586
4585
 
4587
4586
  let(:attributes) do
@@ -4594,7 +4593,7 @@ describe Mongoid::Attributes::Nested do
4594
4593
  end
4595
4594
 
4596
4595
  before do
4597
- person.update_attributes(attributes)
4596
+ person.update_attributes!(attributes)
4598
4597
  person.reload
4599
4598
  end
4600
4599
 
@@ -4625,7 +4624,7 @@ describe Mongoid::Attributes::Nested do
4625
4624
  end
4626
4625
 
4627
4626
  before do
4628
- person.update_attributes(attributes)
4627
+ person.update_attributes!(attributes)
4629
4628
  end
4630
4629
 
4631
4630
  let(:address) do
@@ -4651,7 +4650,7 @@ describe Mongoid::Attributes::Nested do
4651
4650
  context "when the nested document is not polymorphic" do
4652
4651
 
4653
4652
  let!(:address) do
4654
- person.addresses.create(street: "Alexanderstr", number: 1)
4653
+ person.addresses.create!(street: "Alexanderstr", number: 1)
4655
4654
  end
4656
4655
 
4657
4656
  let!(:code) do
@@ -4674,7 +4673,7 @@ describe Mongoid::Attributes::Nested do
4674
4673
  end
4675
4674
 
4676
4675
  before do
4677
- person.update_attributes(attributes)
4676
+ person.update_attributes!(attributes)
4678
4677
  end
4679
4678
 
4680
4679
  it "updates the first level embedded document" do
@@ -4691,7 +4690,7 @@ describe Mongoid::Attributes::Nested do
4691
4690
  context "when the first level is an embeds many" do
4692
4691
 
4693
4692
  let!(:address) do
4694
- person.addresses.create(street: "Alexanderstr", number: 1)
4693
+ person.addresses.create!(street: "Alexanderstr", number: 1)
4695
4694
  end
4696
4695
 
4697
4696
  let!(:target) do
@@ -4714,7 +4713,7 @@ describe Mongoid::Attributes::Nested do
4714
4713
  end
4715
4714
 
4716
4715
  before do
4717
- person.update_attributes(attributes)
4716
+ person.update_attributes!(attributes)
4718
4717
  end
4719
4718
 
4720
4719
  it "updates the first level embedded document" do
@@ -4750,7 +4749,7 @@ describe Mongoid::Attributes::Nested do
4750
4749
  end
4751
4750
 
4752
4751
  before do
4753
- person.update_attributes(attributes)
4752
+ person.update_attributes!(attributes)
4754
4753
  end
4755
4754
 
4756
4755
  it "updates the nested embedded document" do
@@ -4767,7 +4766,7 @@ describe Mongoid::Attributes::Nested do
4767
4766
  context "when updating with valid attributes" do
4768
4767
 
4769
4768
  let(:user) do
4770
- User.create
4769
+ User.create!
4771
4770
  end
4772
4771
 
4773
4772
  let(:params) do
@@ -4777,7 +4776,7 @@ describe Mongoid::Attributes::Nested do
4777
4776
  end
4778
4777
 
4779
4778
  before do
4780
- user.update_attributes(params)
4779
+ user.update_attributes!(params)
4781
4780
  end
4782
4781
 
4783
4782
  around do |example|
@@ -4803,11 +4802,11 @@ describe Mongoid::Attributes::Nested do
4803
4802
  context "when the document is freshly loaded from the db" do
4804
4803
 
4805
4804
  let!(:node) do
4806
- Node.create
4805
+ Node.create!
4807
4806
  end
4808
4807
 
4809
4808
  let!(:server) do
4810
- node.servers.create(name: "test")
4809
+ node.servers.create!(name: "test")
4811
4810
  end
4812
4811
 
4813
4812
  before do
@@ -4840,11 +4839,11 @@ describe Mongoid::Attributes::Nested do
4840
4839
  context "when the relation is an embeds many" do
4841
4840
 
4842
4841
  let(:league) do
4843
- League.create
4842
+ League.create!
4844
4843
  end
4845
4844
 
4846
4845
  let!(:division) do
4847
- league.divisions.create(name: "Old Name")
4846
+ league.divisions.create!(name: "Old Name")
4848
4847
  end
4849
4848
 
4850
4849
  context "when additional validation is set" do
@@ -4899,7 +4898,7 @@ describe Mongoid::Attributes::Nested do
4899
4898
  end
4900
4899
 
4901
4900
  before do
4902
- league.update_attributes(params)
4901
+ league.update_attributes!(params)
4903
4902
  end
4904
4903
 
4905
4904
  it "sets the nested attributes" do
@@ -4919,7 +4918,7 @@ describe Mongoid::Attributes::Nested do
4919
4918
  end
4920
4919
 
4921
4920
  before do
4922
- league.update_attributes(new_params)
4921
+ league.update_attributes!(new_params)
4923
4922
  end
4924
4923
 
4925
4924
  it "sets the nested attributes" do
@@ -1,12 +1,15 @@
1
1
  # frozen_string_literal: true
2
- # encoding: utf-8
3
2
 
4
3
  require "spec_helper"
5
4
 
6
5
  describe Mongoid::Attributes::Projector do
7
6
  Dir[File.join(File.dirname(__FILE__), 'projector_data', '*.yml')].sort.each do |path|
8
7
  context File.basename(path) do
9
- specs = YAML.load(File.read(path))
8
+ specs = if RUBY_VERSION.start_with?("2.5")
9
+ YAML.safe_load(File.read(path), [], [], true)
10
+ else
11
+ YAML.safe_load(File.read(path), aliases: true)
12
+ end
10
13
 
11
14
  specs.each do |spec|
12
15
  context spec['name'] do
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # encoding: utf-8
3
2
 
4
3
  require "spec_helper"
5
4
 
@@ -58,7 +57,7 @@ describe Mongoid::Attributes::Readonly do
58
57
  end
59
58
 
60
59
  let(:person) do
61
- Person.create(title: "sir", terms: true, aliased_timestamp: Time.at(42))
60
+ Person.create!(title: "sir", terms: true, aliased_timestamp: Time.at(42))
62
61
  end
63
62
 
64
63
  it "sets the first readonly value" do
@@ -93,20 +92,20 @@ describe Mongoid::Attributes::Readonly do
93
92
  end
94
93
 
95
94
  let(:person) do
96
- Person.create(title: "sir", terms: true, score: 1, aliased_timestamp: Time.at(42))
95
+ Person.create!(title: "sir", terms: true, score: 1, aliased_timestamp: Time.at(42))
97
96
  end
98
97
 
99
98
  context "when updating via the setter" do
100
99
 
101
100
  it "does not update the first field" do
102
101
  person.title = 'mr'
103
- person.save
102
+ person.save!
104
103
  expect(person.reload.title).to eq("sir")
105
104
  end
106
105
 
107
106
  it "does not update the second field" do
108
107
  person.aliased_timestamp = Time.at(43)
109
- person.save
108
+ person.save!
110
109
  expect(person.reload.aliased_timestamp).to eq(Time.at(42))
111
110
  end
112
111
  end
@@ -117,7 +116,7 @@ describe Mongoid::Attributes::Readonly do
117
116
 
118
117
  it "updates the field" do
119
118
  person.inc(score: 1)
120
- person.save
119
+ person.save!
121
120
  expect(person.reload.score).to eq(2)
122
121
  end
123
122
  end
@@ -126,7 +125,7 @@ describe Mongoid::Attributes::Readonly do
126
125
 
127
126
  it "updates the fields" do
128
127
  person.inc(score: 1, age: 1)
129
- person.save
128
+ person.save!
130
129
  expect(person.reload.score).to eq(2)
131
130
  expect(person.reload.age).to eq(101)
132
131
  end
@@ -139,16 +138,16 @@ describe Mongoid::Attributes::Readonly do
139
138
 
140
139
  it "does the update" do
141
140
  person.bit(score: { or: 13 })
142
- person.save
141
+ person.save!
143
142
  expect(person.reload.score).to eq(13)
144
143
  end
145
144
  end
146
145
 
147
146
  context 'with multiple fields operation' do
148
147
 
149
- it "udpates the attribute" do
148
+ it "updates the attribute" do
150
149
  person.bit(age: {and: 13}, score: {or: 13})
151
- person.save
150
+ person.save!
152
151
  expect(person.reload.score).to eq(13)
153
152
  expect(person.reload.age).to eq(4)
154
153
  end
@@ -159,13 +158,13 @@ describe Mongoid::Attributes::Readonly do
159
158
 
160
159
  it "does not update the first field" do
161
160
  person[:title] = "mr"
162
- person.save
161
+ person.save!
163
162
  expect(person.reload.title).to eq("sir")
164
163
  end
165
164
 
166
165
  it "does not update the second field" do
167
166
  person[:aliased_timestamp] = Time.at(43)
168
- person.save
167
+ person.save!
169
168
  expect(person.reload.aliased_timestamp).to eq(Time.at(42))
170
169
  end
171
170
  end
@@ -174,13 +173,13 @@ describe Mongoid::Attributes::Readonly do
174
173
 
175
174
  it "does not update the first field" do
176
175
  person.write_attribute(:title, "mr")
177
- person.save
176
+ person.save!
178
177
  expect(person.reload.title).to eq("sir")
179
178
  end
180
179
 
181
180
  it "does not update the second field" do
182
181
  person.write_attribute(:aliased_timestamp, Time.at(43))
183
- person.save
182
+ person.save!
184
183
  expect(person.reload.aliased_timestamp).to eq(Time.at(42))
185
184
  end
186
185
  end
@@ -188,14 +187,14 @@ describe Mongoid::Attributes::Readonly do
188
187
  context "when updating via update_attributes" do
189
188
 
190
189
  it "does not update the first field" do
191
- person.update_attributes(title: "mr", aliased_timestamp: Time.at(43))
192
- person.save
190
+ person.update_attributes!(title: "mr", aliased_timestamp: Time.at(43))
191
+ person.save!
193
192
  expect(person.reload.title).to eq("sir")
194
193
  end
195
194
 
196
195
  it "does not update the second field" do
197
- person.update_attributes(title: "mr", aliased_timestamp: Time.at(43))
198
- person.save
196
+ person.update_attributes!(title: "mr", aliased_timestamp: Time.at(43))
197
+ person.save!
199
198
  expect(person.reload.aliased_timestamp).to eq(Time.at(42))
200
199
  end
201
200
  end
@@ -204,13 +203,13 @@ describe Mongoid::Attributes::Readonly do
204
203
 
205
204
  it "does not update the first field" do
206
205
  person.update_attributes!(title: "mr", aliased_timestamp: Time.at(43))
207
- person.save
206
+ person.save!
208
207
  expect(person.reload.title).to eq("sir")
209
208
  end
210
209
 
211
210
  it "does not update the second field" do
212
211
  person.update_attributes!(title: "mr", aliased_timestamp: Time.at(43))
213
- person.save
212
+ person.save!
214
213
  expect(person.reload.aliased_timestamp).to eq(Time.at(42))
215
214
  end
216
215
  end
@@ -243,11 +242,11 @@ describe Mongoid::Attributes::Readonly do
243
242
  context 'when the relation exists' do
244
243
 
245
244
  let(:mother) do
246
- Person.create
245
+ Person.create!
247
246
  end
248
247
 
249
248
  let(:child) do
250
- Person.create(mother: mother)
249
+ Person.create!(mother: mother)
251
250
  Person.find_by(mother: mother)
252
251
  end
253
252
 
@@ -259,7 +258,7 @@ describe Mongoid::Attributes::Readonly do
259
258
  context 'when the relation does not exist' do
260
259
 
261
260
  let(:child) do
262
- Person.create
261
+ Person.create!
263
262
  end
264
263
 
265
264
  it 'the relation is nil' do