mongoid 3.1.6 → 4.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (571) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +479 -8
  3. data/README.md +10 -7
  4. data/lib/config/locales/en.yml +34 -20
  5. data/lib/mongoid.rb +10 -76
  6. data/lib/mongoid/atomic.rb +3 -14
  7. data/lib/mongoid/atomic/paths/embedded.rb +0 -30
  8. data/lib/mongoid/atomic/paths/embedded/many.rb +1 -1
  9. data/lib/mongoid/atomic/paths/embedded/one.rb +1 -1
  10. data/lib/mongoid/atomic/paths/root.rb +0 -13
  11. data/lib/mongoid/attributes.rb +65 -101
  12. data/lib/mongoid/attributes/dynamic.rb +154 -0
  13. data/lib/mongoid/attributes/nested.rb +82 -0
  14. data/lib/mongoid/attributes/processing.rb +13 -66
  15. data/lib/mongoid/{dirty.rb → changeable.rb} +32 -2
  16. data/lib/mongoid/composable.rb +105 -0
  17. data/lib/mongoid/config.rb +3 -9
  18. data/lib/mongoid/config/options.rb +1 -1
  19. data/lib/mongoid/contextual.rb +2 -0
  20. data/lib/mongoid/contextual/aggregable/memory.rb +2 -2
  21. data/lib/mongoid/contextual/aggregable/mongo.rb +7 -9
  22. data/lib/mongoid/contextual/atomic.rb +53 -53
  23. data/lib/mongoid/contextual/geo_near.rb +1 -1
  24. data/lib/mongoid/contextual/map_reduce.rb +4 -2
  25. data/lib/mongoid/contextual/memory.rb +23 -11
  26. data/lib/mongoid/contextual/mongo.rb +75 -57
  27. data/lib/mongoid/contextual/none.rb +90 -0
  28. data/lib/mongoid/contextual/text_search.rb +178 -0
  29. data/lib/mongoid/copyable.rb +2 -3
  30. data/lib/mongoid/criteria.rb +39 -34
  31. data/lib/mongoid/criteria/#findable.rb# +141 -0
  32. data/lib/mongoid/{criterion → criteria}/findable.rb +7 -47
  33. data/lib/mongoid/{criterion/inspection.rb → criteria/inspectable.rb} +2 -2
  34. data/lib/mongoid/{criterion → criteria}/marshalable.rb +3 -1
  35. data/lib/mongoid/{criterion → criteria}/modifiable.rb +28 -8
  36. data/lib/mongoid/criteria/permission.rb +70 -0
  37. data/lib/mongoid/{criterion/scoping.rb → criteria/scopable.rb} +2 -2
  38. data/lib/mongoid/document.rb +39 -24
  39. data/lib/mongoid/errors.rb +4 -1
  40. data/lib/mongoid/errors/document_not_destroyed.rb +25 -0
  41. data/lib/mongoid/errors/document_not_found.rb +2 -1
  42. data/lib/mongoid/errors/invalid_storage_options.rb +1 -1
  43. data/lib/mongoid/errors/invalid_storage_parent.rb +26 -0
  44. data/lib/mongoid/errors/invalid_value.rb +16 -0
  45. data/lib/mongoid/errors/mongoid_error.rb +1 -1
  46. data/lib/mongoid/errors/readonly_document.rb +24 -0
  47. data/lib/mongoid/extensions.rb +15 -7
  48. data/lib/mongoid/extensions/array.rb +3 -3
  49. data/lib/mongoid/extensions/big_decimal.rb +1 -1
  50. data/lib/mongoid/extensions/boolean.rb +15 -17
  51. data/lib/mongoid/extensions/date.rb +1 -1
  52. data/lib/mongoid/extensions/date_time.rb +3 -3
  53. data/lib/mongoid/extensions/float.rb +2 -1
  54. data/lib/mongoid/extensions/hash.rb +3 -3
  55. data/lib/mongoid/extensions/integer.rb +1 -1
  56. data/lib/mongoid/extensions/object.rb +7 -7
  57. data/lib/mongoid/extensions/object_id.rb +5 -5
  58. data/lib/mongoid/extensions/range.rb +9 -3
  59. data/lib/mongoid/extensions/regexp.rb +1 -1
  60. data/lib/mongoid/extensions/set.rb +1 -1
  61. data/lib/mongoid/extensions/string.rb +6 -18
  62. data/lib/mongoid/extensions/symbol.rb +1 -1
  63. data/lib/mongoid/extensions/time.rb +3 -3
  64. data/lib/mongoid/extensions/time_with_zone.rb +1 -1
  65. data/lib/mongoid/factory.rb +8 -6
  66. data/lib/mongoid/fields.rb +41 -8
  67. data/lib/mongoid/fields/foreign_key.rb +3 -3
  68. data/lib/mongoid/fields/localized.rb +1 -1
  69. data/lib/mongoid/fields/standard.rb +5 -17
  70. data/lib/mongoid/fields/validators/macro.rb +15 -5
  71. data/lib/mongoid/{finders.rb → findable.rb} +35 -7
  72. data/lib/mongoid/{indexes.rb → indexable.rb} +50 -55
  73. data/lib/mongoid/indexable/specification.rb +104 -0
  74. data/lib/mongoid/{indexes → indexable}/validators/options.rb +2 -1
  75. data/lib/mongoid/{inspection.rb → inspectable.rb} +15 -11
  76. data/lib/mongoid/{callbacks.rb → interceptable.rb} +30 -62
  77. data/lib/mongoid/log_subscriber.rb +55 -0
  78. data/lib/mongoid/matchable.rb +152 -0
  79. data/lib/mongoid/{matchers → matchable}/all.rb +1 -1
  80. data/lib/mongoid/{matchers → matchable}/and.rb +2 -2
  81. data/lib/mongoid/{matchers → matchable}/default.rb +1 -1
  82. data/lib/mongoid/{matchers → matchable}/exists.rb +1 -1
  83. data/lib/mongoid/{matchers → matchable}/gt.rb +1 -1
  84. data/lib/mongoid/{matchers → matchable}/gte.rb +1 -1
  85. data/lib/mongoid/{matchers → matchable}/in.rb +2 -2
  86. data/lib/mongoid/{matchers → matchable}/lt.rb +1 -1
  87. data/lib/mongoid/{matchers → matchable}/lte.rb +1 -1
  88. data/lib/mongoid/{matchers → matchable}/ne.rb +2 -2
  89. data/lib/mongoid/{matchers → matchable}/nin.rb +3 -2
  90. data/lib/mongoid/{matchers → matchable}/or.rb +2 -2
  91. data/lib/mongoid/{matchers → matchable}/size.rb +1 -1
  92. data/lib/mongoid/persistable.rb +216 -0
  93. data/lib/mongoid/persistable/creatable.rb +189 -0
  94. data/lib/mongoid/persistable/deletable.rb +149 -0
  95. data/lib/mongoid/persistable/destroyable.rb +60 -0
  96. data/lib/mongoid/persistable/incrementable.rb +36 -0
  97. data/lib/mongoid/persistable/logical.rb +38 -0
  98. data/lib/mongoid/persistable/poppable.rb +39 -0
  99. data/lib/mongoid/persistable/pullable.rb +55 -0
  100. data/lib/mongoid/persistable/pushable.rb +62 -0
  101. data/lib/mongoid/persistable/renamable.rb +35 -0
  102. data/lib/mongoid/persistable/savable.rb +52 -0
  103. data/lib/mongoid/persistable/settable.rb +33 -0
  104. data/lib/mongoid/persistable/unsettable.rb +36 -0
  105. data/lib/mongoid/persistable/updatable.rb +153 -0
  106. data/lib/mongoid/persistable/upsertable.rb +55 -0
  107. data/lib/mongoid/positional.rb +71 -0
  108. data/lib/mongoid/query_cache.rb +255 -0
  109. data/lib/mongoid/railtie.rb +34 -60
  110. data/lib/mongoid/railties/database.rake +9 -25
  111. data/lib/mongoid/relations.rb +11 -25
  112. data/lib/mongoid/relations/accessors.rb +15 -51
  113. data/lib/mongoid/relations/auto_save.rb +15 -36
  114. data/lib/mongoid/relations/binding.rb +2 -25
  115. data/lib/mongoid/relations/bindings/embedded/in.rb +1 -1
  116. data/lib/mongoid/relations/bindings/embedded/many.rb +1 -3
  117. data/lib/mongoid/relations/bindings/referenced/in.rb +3 -8
  118. data/lib/mongoid/relations/bindings/referenced/many_to_many.rb +4 -2
  119. data/lib/mongoid/relations/builder.rb +1 -1
  120. data/lib/mongoid/relations/builders.rb +2 -2
  121. data/lib/mongoid/relations/builders/embedded/one.rb +1 -1
  122. data/lib/mongoid/relations/builders/nested_attributes/many.rb +10 -13
  123. data/lib/mongoid/relations/builders/nested_attributes/one.rb +5 -6
  124. data/lib/mongoid/relations/builders/referenced/in.rb +1 -1
  125. data/lib/mongoid/relations/builders/referenced/many.rb +1 -2
  126. data/lib/mongoid/relations/builders/referenced/many_to_many.rb +1 -2
  127. data/lib/mongoid/relations/builders/referenced/one.rb +1 -1
  128. data/lib/mongoid/relations/cascading.rb +3 -5
  129. data/lib/mongoid/relations/constraint.rb +1 -1
  130. data/lib/mongoid/relations/conversions.rb +1 -1
  131. data/lib/mongoid/relations/counter_cache.rb +39 -15
  132. data/lib/mongoid/relations/eager.rb +46 -0
  133. data/lib/mongoid/relations/eager/base.rb +149 -0
  134. data/lib/mongoid/relations/eager/belongs_to.rb +31 -0
  135. data/lib/mongoid/relations/eager/has_and_belongs_to_many.rb +47 -0
  136. data/lib/mongoid/relations/eager/has_many.rb +38 -0
  137. data/lib/mongoid/relations/eager/has_one.rb +30 -0
  138. data/lib/mongoid/relations/embedded/batchable.rb +4 -5
  139. data/lib/mongoid/relations/embedded/in.rb +4 -4
  140. data/lib/mongoid/relations/embedded/many.rb +14 -32
  141. data/lib/mongoid/relations/embedded/one.rb +1 -1
  142. data/lib/mongoid/relations/macros.rb +3 -4
  143. data/lib/mongoid/relations/many.rb +51 -31
  144. data/lib/mongoid/relations/marshalable.rb +3 -3
  145. data/lib/mongoid/relations/metadata.rb +14 -79
  146. data/lib/mongoid/relations/nested_builder.rb +2 -2
  147. data/lib/mongoid/relations/one.rb +1 -1
  148. data/lib/mongoid/relations/options.rb +1 -0
  149. data/lib/mongoid/relations/polymorphic.rb +0 -1
  150. data/lib/mongoid/relations/proxy.rb +21 -41
  151. data/lib/mongoid/relations/referenced/in.rb +4 -20
  152. data/lib/mongoid/relations/referenced/many.rb +22 -35
  153. data/lib/mongoid/relations/referenced/many_to_many.rb +19 -42
  154. data/lib/mongoid/relations/referenced/one.rb +6 -25
  155. data/lib/mongoid/relations/synchronization.rb +4 -4
  156. data/lib/mongoid/relations/targets/enumerable.rb +10 -10
  157. data/lib/mongoid/relations/touchable.rb +34 -1
  158. data/lib/mongoid/{reloading.rb → reloadable.rb} +7 -5
  159. data/lib/mongoid/{scoping.rb → scopable.rb} +36 -36
  160. data/lib/mongoid/selectable.rb +59 -0
  161. data/lib/mongoid/{serialization.rb → serializable.rb} +11 -2
  162. data/lib/mongoid/sessions.rb +37 -345
  163. data/lib/mongoid/sessions/factory.rb +2 -0
  164. data/lib/mongoid/sessions/options.rb +185 -0
  165. data/lib/mongoid/sessions/storage_options.rb +140 -0
  166. data/lib/mongoid/sessions/thread_options.rb +19 -0
  167. data/lib/mongoid/sessions/validators/storage.rb +16 -3
  168. data/lib/mongoid/{sharding.rb → shardable.rb} +5 -1
  169. data/lib/mongoid/{state.rb → stateful.rb} +13 -1
  170. data/lib/mongoid/support/query_counter.rb +23 -0
  171. data/lib/mongoid/tasks/database.rake +31 -0
  172. data/lib/mongoid/tasks/database.rb +107 -0
  173. data/lib/mongoid/threaded.rb +26 -172
  174. data/lib/mongoid/threaded/lifecycle.rb +0 -28
  175. data/lib/mongoid/timestamps/updated/short.rb +2 -2
  176. data/lib/mongoid/{hierarchy.rb → traversable.rb} +15 -7
  177. data/lib/mongoid/{validations.rb → validatable.rb} +23 -10
  178. data/lib/mongoid/{validations → validatable}/associated.rb +4 -2
  179. data/lib/mongoid/{validations → validatable}/format.rb +1 -1
  180. data/lib/mongoid/{validations → validatable}/length.rb +1 -1
  181. data/lib/mongoid/{validations → validatable}/localizable.rb +1 -1
  182. data/lib/mongoid/{validations → validatable}/macros.rb +4 -3
  183. data/lib/mongoid/{validations → validatable}/presence.rb +1 -1
  184. data/lib/mongoid/{validations → validatable}/queryable.rb +1 -2
  185. data/lib/mongoid/{validations → validatable}/uniqueness.rb +25 -21
  186. data/lib/mongoid/version.rb +1 -1
  187. data/lib/rails/generators/mongoid/config/templates/mongoid.yml +46 -25
  188. data/lib/rails/generators/mongoid/model/model_generator.rb +0 -1
  189. data/lib/rails/generators/mongoid/model/templates/model.rb.tt +0 -3
  190. data/lib/rails/generators/mongoid_generator.rb +3 -40
  191. data/lib/rails/mongoid.rb +0 -122
  192. data/lib/support/ruby_version.rb +1 -1
  193. data/spec/app/models/account.rb +2 -6
  194. data/spec/app/models/acolyte.rb +2 -1
  195. data/spec/app/models/actor.rb +0 -1
  196. data/spec/app/models/address.rb +8 -3
  197. data/spec/app/models/animal.rb +1 -1
  198. data/spec/app/models/appointment.rb +3 -3
  199. data/spec/app/models/article.rb +1 -4
  200. data/spec/app/models/audio.rb +5 -0
  201. data/spec/app/models/author.rb +0 -2
  202. data/spec/app/models/band.rb +3 -2
  203. data/spec/app/models/bar.rb +1 -0
  204. data/spec/app/models/book.rb +1 -0
  205. data/spec/app/models/building.rb +0 -2
  206. data/spec/app/models/building_address.rb +0 -2
  207. data/spec/app/models/bus.rb +1 -1
  208. data/spec/app/models/canvas.rb +1 -1
  209. data/spec/app/models/contextable_item.rb +5 -0
  210. data/spec/app/models/contractor.rb +0 -2
  211. data/spec/app/models/country_code.rb +1 -1
  212. data/spec/app/models/definition.rb +2 -2
  213. data/spec/app/models/dog.rb +1 -1
  214. data/spec/app/models/draft.rb +9 -0
  215. data/spec/app/models/dragon.rb +4 -0
  216. data/spec/app/models/drug.rb +1 -3
  217. data/spec/app/models/dungeon.rb +4 -0
  218. data/spec/app/models/edit.rb +5 -0
  219. data/spec/app/models/even.rb +7 -0
  220. data/spec/app/models/event.rb +1 -1
  221. data/spec/app/models/filesystem.rb +1 -0
  222. data/spec/app/models/fish.rb +0 -1
  223. data/spec/app/models/fruits.rb +6 -0
  224. data/spec/app/models/game.rb +0 -2
  225. data/spec/app/models/house.rb +1 -3
  226. data/spec/app/models/id_key.rb +6 -0
  227. data/spec/app/models/item.rb +1 -5
  228. data/spec/app/models/jar.rb +1 -1
  229. data/spec/app/models/label.rb +4 -4
  230. data/spec/app/models/line_item.rb +1 -1
  231. data/spec/app/models/login.rb +1 -1
  232. data/spec/app/models/message.rb +8 -0
  233. data/spec/app/models/movie.rb +1 -0
  234. data/spec/app/models/name.rb +3 -3
  235. data/spec/app/models/note.rb +3 -1
  236. data/spec/app/models/odd.rb +7 -0
  237. data/spec/app/models/oscar.rb +1 -1
  238. data/spec/app/models/parent_doc.rb +1 -1
  239. data/spec/app/models/person.rb +16 -10
  240. data/spec/app/models/phone.rb +1 -3
  241. data/spec/app/models/player.rb +3 -3
  242. data/spec/app/models/post.rb +5 -3
  243. data/spec/app/models/preference.rb +1 -1
  244. data/spec/app/models/quiz.rb +0 -3
  245. data/spec/app/models/record.rb +10 -5
  246. data/spec/app/models/registry.rb +1 -1
  247. data/spec/app/models/server.rb +1 -1
  248. data/spec/app/models/service.rb +3 -3
  249. data/spec/app/models/sound.rb +5 -0
  250. data/spec/app/models/symptom.rb +1 -1
  251. data/spec/app/models/template.rb +1 -1
  252. data/spec/app/models/title.rb +0 -1
  253. data/spec/app/models/track.rb +5 -5
  254. data/spec/app/models/tree.rb +3 -3
  255. data/spec/app/models/video.rb +1 -5
  256. data/spec/app/models/wiki_page.rb +2 -5
  257. data/spec/app/models/word.rb +3 -0
  258. data/spec/app/models/word_origin.rb +1 -1
  259. data/spec/config/mongoid.yml +7 -8
  260. data/spec/helpers.rb +18 -0
  261. data/spec/mongoid/#atomic_spec.rb# +365 -0
  262. data/spec/mongoid/atomic/modifiers_spec.rb +22 -22
  263. data/spec/mongoid/atomic/paths/embedded/many_spec.rb +8 -49
  264. data/spec/mongoid/atomic/paths/embedded/one_spec.rb +7 -49
  265. data/spec/mongoid/atomic/paths/root_spec.rb +3 -61
  266. data/spec/mongoid/atomic/paths_spec.rb +19 -19
  267. data/spec/mongoid/atomic_spec.rb +19 -19
  268. data/spec/mongoid/{nested_attributes_spec.rb → attributes/nested_spec.rb} +474 -592
  269. data/spec/mongoid/attributes/readonly_spec.rb +58 -18
  270. data/spec/mongoid/attributes_spec.rb +349 -434
  271. data/spec/mongoid/{dirty_spec.rb → changeable_spec.rb} +203 -153
  272. data/spec/mongoid/{components_spec.rb → composable_spec.rb} +3 -3
  273. data/spec/mongoid/config/environment_spec.rb +3 -3
  274. data/spec/mongoid/config/options_spec.rb +6 -6
  275. data/spec/mongoid/config_spec.rb +24 -48
  276. data/spec/mongoid/contextual/aggregable/memory_spec.rb +12 -12
  277. data/spec/mongoid/contextual/aggregable/mongo_spec.rb +78 -38
  278. data/spec/mongoid/contextual/atomic_spec.rb +60 -56
  279. data/spec/mongoid/contextual/find_and_modify_spec.rb +14 -14
  280. data/spec/mongoid/contextual/geo_near_spec.rb +22 -22
  281. data/spec/mongoid/contextual/map_reduce_spec.rb +27 -27
  282. data/spec/mongoid/contextual/memory_spec.rb +156 -94
  283. data/spec/mongoid/contextual/mongo_spec.rb +238 -150
  284. data/spec/mongoid/contextual/none_spec.rb +127 -0
  285. data/spec/mongoid/contextual/text_search_spec.rb +209 -0
  286. data/spec/mongoid/copyable_spec.rb +56 -68
  287. data/spec/mongoid/criteria/findable_spec.rb +991 -0
  288. data/spec/mongoid/{criterion/inspection_spec.rb → criteria/inspectable_spec.rb} +5 -5
  289. data/spec/mongoid/{criterion → criteria}/marshalable_spec.rb +2 -2
  290. data/spec/mongoid/criteria/modifiable_spec.rb +1252 -0
  291. data/spec/mongoid/{criterion/scoping_spec.rb → criteria/scopable_spec.rb} +37 -37
  292. data/spec/mongoid/criteria_spec.rb +715 -2421
  293. data/spec/mongoid/document_spec.rb +171 -121
  294. data/spec/mongoid/equality_spec.rb +22 -22
  295. data/spec/mongoid/errors/ambiguous_relationship_spec.rb +3 -3
  296. data/spec/mongoid/errors/callback_spec.rb +3 -3
  297. data/spec/mongoid/errors/delete_restriction_spec.rb +3 -3
  298. data/spec/mongoid/errors/document_not_destroyed_spec.rb +33 -0
  299. data/spec/mongoid/errors/document_not_found_spec.rb +11 -11
  300. data/spec/mongoid/errors/eager_load_spec.rb +3 -3
  301. data/spec/mongoid/errors/invalid_collection_spec.rb +3 -3
  302. data/spec/mongoid/errors/invalid_config_option_spec.rb +3 -3
  303. data/spec/mongoid/errors/invalid_field_option_spec.rb +3 -3
  304. data/spec/mongoid/errors/invalid_field_spec.rb +3 -3
  305. data/spec/mongoid/errors/invalid_find_spec.rb +3 -3
  306. data/spec/mongoid/errors/invalid_includes_spec.rb +3 -3
  307. data/spec/mongoid/errors/invalid_index_spec.rb +3 -3
  308. data/spec/mongoid/errors/invalid_options_spec.rb +3 -3
  309. data/spec/mongoid/errors/invalid_path_spec.rb +3 -3
  310. data/spec/mongoid/errors/invalid_scope_spec.rb +5 -5
  311. data/spec/mongoid/errors/invalid_set_polymorphic_relation_spec.rb +3 -3
  312. data/spec/mongoid/errors/invalid_storage_options_spec.rb +3 -3
  313. data/spec/mongoid/errors/invalid_time_spec.rb +3 -3
  314. data/spec/mongoid/errors/inverse_not_found_spec.rb +3 -3
  315. data/spec/mongoid/errors/mixed_relations_spec.rb +3 -3
  316. data/spec/mongoid/errors/mixed_session_configuration_spec.rb +3 -3
  317. data/spec/mongoid/errors/mongoid_error_spec.rb +8 -8
  318. data/spec/mongoid/errors/nested_attributes_metadata_not_found_spec.rb +3 -3
  319. data/spec/mongoid/errors/no_environment_spec.rb +3 -3
  320. data/spec/mongoid/errors/no_map_reduce_output_spec.rb +3 -3
  321. data/spec/mongoid/errors/no_metadata_spec.rb +3 -3
  322. data/spec/mongoid/errors/no_parent_spec.rb +3 -3
  323. data/spec/mongoid/errors/no_session_config_spec.rb +3 -3
  324. data/spec/mongoid/errors/no_session_database_spec.rb +3 -3
  325. data/spec/mongoid/errors/no_session_hosts_spec.rb +3 -3
  326. data/spec/mongoid/errors/no_sessions_config_spec.rb +3 -3
  327. data/spec/mongoid/errors/readonly_attribute_spec.rb +3 -3
  328. data/spec/mongoid/errors/readonly_document_spec.rb +29 -0
  329. data/spec/mongoid/errors/scope_overwrite_spec.rb +3 -3
  330. data/spec/mongoid/errors/too_many_nested_attribute_records_spec.rb +3 -3
  331. data/spec/mongoid/errors/unknown_attribute_spec.rb +5 -5
  332. data/spec/mongoid/errors/unsaved_document_spec.rb +3 -3
  333. data/spec/mongoid/errors/unsupported_javascript_spec.rb +3 -3
  334. data/spec/mongoid/errors/validations_spec.rb +7 -7
  335. data/spec/mongoid/extensions/array_spec.rb +61 -61
  336. data/spec/mongoid/extensions/big_decimal_spec.rb +11 -11
  337. data/spec/mongoid/extensions/binary_spec.rb +12 -12
  338. data/spec/mongoid/extensions/boolean_spec.rb +18 -18
  339. data/spec/mongoid/extensions/date_spec.rb +13 -13
  340. data/spec/mongoid/extensions/date_time_spec.rb +8 -8
  341. data/spec/mongoid/extensions/false_class_spec.rb +5 -5
  342. data/spec/mongoid/extensions/float_spec.rb +29 -15
  343. data/spec/mongoid/extensions/hash_spec.rb +29 -29
  344. data/spec/mongoid/extensions/integer_spec.rb +15 -15
  345. data/spec/mongoid/extensions/module_spec.rb +2 -2
  346. data/spec/mongoid/extensions/nil_class_spec.rb +1 -1
  347. data/spec/mongoid/extensions/object_id_spec.rb +134 -134
  348. data/spec/mongoid/extensions/object_spec.rb +26 -26
  349. data/spec/mongoid/extensions/range_spec.rb +61 -12
  350. data/spec/mongoid/extensions/regexp_spec.rb +4 -4
  351. data/spec/mongoid/extensions/set_spec.rb +4 -4
  352. data/spec/mongoid/extensions/string_spec.rb +35 -46
  353. data/spec/mongoid/extensions/symbol_spec.rb +9 -9
  354. data/spec/mongoid/extensions/time_spec.rb +49 -49
  355. data/spec/mongoid/extensions/time_with_zone_spec.rb +34 -34
  356. data/spec/mongoid/extensions/true_class_spec.rb +5 -5
  357. data/spec/mongoid/extensions_spec.rb +29 -0
  358. data/spec/mongoid/factory_spec.rb +15 -15
  359. data/spec/mongoid/fields/foreign_key_spec.rb +73 -66
  360. data/spec/mongoid/fields/internal/foreign_keys/array_spec.rb +15 -15
  361. data/spec/mongoid/fields/internal/foreign_keys/object_spec.rb +22 -22
  362. data/spec/mongoid/fields/localized_spec.rb +38 -23
  363. data/spec/mongoid/fields/standard_spec.rb +12 -12
  364. data/spec/mongoid/fields_spec.rb +263 -217
  365. data/spec/mongoid/findable_spec.rb +509 -0
  366. data/spec/mongoid/indexable/specification_spec.rb +102 -0
  367. data/spec/mongoid/{indexes_spec.rb → indexable_spec.rb} +171 -51
  368. data/spec/mongoid/{inspection_spec.rb → inspectable_spec.rb} +6 -14
  369. data/spec/mongoid/{callbacks_spec.rb → interceptable_spec.rb} +117 -116
  370. data/spec/mongoid/log_subscriber_spec.rb +75 -0
  371. data/spec/mongoid/loggable_spec.rb +1 -1
  372. data/spec/mongoid/{matchers → matchable}/all_spec.rb +4 -4
  373. data/spec/mongoid/{matchers → matchable}/and_spec.rb +11 -11
  374. data/spec/mongoid/{matchers → matchable}/default_spec.rb +15 -15
  375. data/spec/mongoid/{matchers → matchable}/exists_spec.rb +5 -5
  376. data/spec/mongoid/{matchers → matchable}/gt_spec.rb +9 -8
  377. data/spec/mongoid/{matchers → matchable}/gte_spec.rb +7 -7
  378. data/spec/mongoid/matchable/in_spec.rb +49 -0
  379. data/spec/mongoid/{matchers → matchable}/lt_spec.rb +7 -7
  380. data/spec/mongoid/{matchers → matchable}/lte_spec.rb +7 -7
  381. data/spec/mongoid/matchable/ne_spec.rb +46 -0
  382. data/spec/mongoid/matchable/nin_spec.rb +48 -0
  383. data/spec/mongoid/{matchers → matchable}/or_spec.rb +6 -6
  384. data/spec/mongoid/{matchers → matchable}/size_spec.rb +3 -3
  385. data/spec/mongoid/{matchers_spec.rb → matchable_spec.rb} +41 -41
  386. data/spec/mongoid/persistable/creatable_spec.rb +553 -0
  387. data/spec/mongoid/persistable/deletable_spec.rb +218 -0
  388. data/spec/mongoid/persistable/destroyable_spec.rb +192 -0
  389. data/spec/mongoid/persistable/incrementable_spec.rb +173 -0
  390. data/spec/mongoid/persistable/logical_spec.rb +143 -0
  391. data/spec/mongoid/persistable/poppable_spec.rb +115 -0
  392. data/spec/mongoid/persistable/pullable_spec.rb +228 -0
  393. data/spec/mongoid/persistable/pushable_spec.rb +258 -0
  394. data/spec/mongoid/persistable/renamable_spec.rb +135 -0
  395. data/spec/mongoid/persistable/savable_spec.rb +498 -0
  396. data/spec/mongoid/persistable/settable_spec.rb +162 -0
  397. data/spec/mongoid/persistable/unsettable_spec.rb +155 -0
  398. data/spec/mongoid/persistable/updatable_spec.rb +558 -0
  399. data/spec/mongoid/persistable/upsertable_spec.rb +106 -0
  400. data/spec/mongoid/persistable_spec.rb +206 -0
  401. data/spec/mongoid/{atomic/positionable_spec.rb → positional_spec.rb} +14 -19
  402. data/spec/mongoid/query_cache_spec.rb +263 -0
  403. data/spec/mongoid/railties/document_spec.rb +2 -2
  404. data/spec/mongoid/relations/accessors_spec.rb +53 -145
  405. data/spec/mongoid/relations/auto_save_spec.rb +37 -17
  406. data/spec/mongoid/relations/bindings/embedded/in_spec.rb +12 -12
  407. data/spec/mongoid/relations/bindings/embedded/many_spec.rb +3 -3
  408. data/spec/mongoid/relations/bindings/embedded/one_spec.rb +5 -5
  409. data/spec/mongoid/relations/bindings/referenced/in_spec.rb +26 -26
  410. data/spec/mongoid/relations/bindings/referenced/many_spec.rb +10 -10
  411. data/spec/mongoid/relations/bindings/referenced/many_to_many_spec.rb +19 -19
  412. data/spec/mongoid/relations/bindings/referenced/one_spec.rb +12 -12
  413. data/spec/mongoid/relations/builders/embedded/in_spec.rb +4 -4
  414. data/spec/mongoid/relations/builders/embedded/many_spec.rb +18 -18
  415. data/spec/mongoid/relations/builders/embedded/one_spec.rb +11 -11
  416. data/spec/mongoid/relations/builders/nested_attributes/many_spec.rb +12 -13
  417. data/spec/mongoid/relations/builders/nested_attributes/one_spec.rb +14 -14
  418. data/spec/mongoid/relations/builders/referenced/in_spec.rb +24 -35
  419. data/spec/mongoid/relations/builders/referenced/many_spec.rb +15 -15
  420. data/spec/mongoid/relations/builders/referenced/many_to_many_spec.rb +18 -18
  421. data/spec/mongoid/relations/builders/referenced/one_spec.rb +12 -25
  422. data/spec/mongoid/relations/builders_spec.rb +21 -21
  423. data/spec/mongoid/relations/cascading/delete_spec.rb +9 -9
  424. data/spec/mongoid/relations/cascading/destroy_spec.rb +6 -6
  425. data/spec/mongoid/relations/cascading/nullify_spec.rb +4 -4
  426. data/spec/mongoid/relations/cascading/restrict_spec.rb +7 -7
  427. data/spec/mongoid/relations/cascading_spec.rb +16 -16
  428. data/spec/mongoid/relations/constraint_spec.rb +8 -7
  429. data/spec/mongoid/relations/conversions_spec.rb +16 -14
  430. data/spec/mongoid/relations/counter_cache_spec.rb +85 -0
  431. data/spec/mongoid/relations/cyclic_spec.rb +18 -18
  432. data/spec/mongoid/relations/eager/belongs_to_spec.rb +154 -0
  433. data/spec/mongoid/relations/eager/has_and_belongs_to_many_spec.rb +117 -0
  434. data/spec/mongoid/relations/eager/has_many_spec.rb +207 -0
  435. data/spec/mongoid/relations/eager/has_one_spec.rb +163 -0
  436. data/spec/mongoid/relations/eager_spec.rb +228 -0
  437. data/spec/mongoid/relations/embedded/dirty_spec.rb +8 -8
  438. data/spec/mongoid/relations/embedded/in_spec.rb +56 -57
  439. data/spec/mongoid/relations/embedded/many_spec.rb +467 -372
  440. data/spec/mongoid/relations/embedded/one_spec.rb +108 -141
  441. data/spec/mongoid/relations/macros_spec.rb +108 -102
  442. data/spec/mongoid/relations/metadata_spec.rb +180 -255
  443. data/spec/mongoid/relations/options_spec.rb +1 -1
  444. data/spec/mongoid/relations/polymorphic_spec.rb +13 -17
  445. data/spec/mongoid/relations/proxy_spec.rb +2 -2
  446. data/spec/mongoid/relations/referenced/in_spec.rb +128 -303
  447. data/spec/mongoid/relations/referenced/many_spec.rb +587 -527
  448. data/spec/mongoid/relations/referenced/many_to_many_spec.rb +401 -424
  449. data/spec/mongoid/relations/referenced/one_spec.rb +149 -264
  450. data/spec/mongoid/relations/reflections_spec.rb +6 -6
  451. data/spec/mongoid/relations/synchronization_spec.rb +46 -50
  452. data/spec/mongoid/relations/targets/enumerable_spec.rb +118 -118
  453. data/spec/mongoid/relations/touchable_spec.rb +333 -0
  454. data/spec/mongoid/relations_spec.rb +16 -15
  455. data/spec/mongoid/{reloading_spec.rb → reloadable_spec.rb} +38 -55
  456. data/spec/mongoid/{scoping_spec.rb → scopable_spec.rb} +89 -164
  457. data/spec/mongoid/selectable_spec.rb +134 -0
  458. data/spec/mongoid/{serialization_spec.rb → serializable_spec.rb} +129 -82
  459. data/spec/mongoid/sessions/factory_spec.rb +49 -28
  460. data/spec/mongoid/sessions/mongo_uri_spec.rb +7 -7
  461. data/spec/mongoid/sessions/options_spec.rb +108 -0
  462. data/spec/mongoid/sessions_spec.rb +319 -178
  463. data/spec/mongoid/{sharding_spec.rb → shardable_spec.rb} +8 -8
  464. data/spec/mongoid/{state_spec.rb → stateful_spec.rb} +36 -11
  465. data/spec/mongoid/tasks/database_rake_spec.rb +285 -0
  466. data/spec/mongoid/tasks/database_spec.rb +160 -0
  467. data/spec/mongoid/threaded_spec.rb +17 -70
  468. data/spec/mongoid/timestamps/created/short_spec.rb +6 -6
  469. data/spec/mongoid/timestamps/created_spec.rb +5 -5
  470. data/spec/mongoid/timestamps/timeless_spec.rb +6 -6
  471. data/spec/mongoid/timestamps/updated/short_spec.rb +11 -11
  472. data/spec/mongoid/timestamps/updated_spec.rb +9 -13
  473. data/spec/mongoid/timestamps_spec.rb +9 -13
  474. data/spec/mongoid/{hierarchy_spec.rb → traversable_spec.rb} +19 -19
  475. data/spec/mongoid/{validations → validatable}/associated_spec.rb +45 -22
  476. data/spec/mongoid/{validations → validatable}/format_spec.rb +6 -6
  477. data/spec/mongoid/{validations → validatable}/length_spec.rb +14 -14
  478. data/spec/mongoid/{validations → validatable}/numericality_spec.rb +1 -1
  479. data/spec/mongoid/{validations → validatable}/presence_spec.rb +37 -44
  480. data/spec/mongoid/{validations → validatable}/uniqueness_spec.rb +184 -192
  481. data/spec/mongoid/{validations_spec.rb → validatable_spec.rb} +28 -28
  482. data/spec/mongoid_spec.rb +8 -8
  483. data/spec/rails/mongoid_spec.rb +19 -335
  484. data/spec/spec_helper.rb +31 -13
  485. metadata +303 -283
  486. data/lib/mongoid/atomic/positionable.rb +0 -73
  487. data/lib/mongoid/components.rb +0 -92
  488. data/lib/mongoid/config/inflections.rb +0 -6
  489. data/lib/mongoid/contextual/eager.rb +0 -158
  490. data/lib/mongoid/errors/versioning_not_on_root.rb +0 -23
  491. data/lib/mongoid/identity_map.rb +0 -163
  492. data/lib/mongoid/json.rb +0 -16
  493. data/lib/mongoid/matchers.rb +0 -32
  494. data/lib/mongoid/matchers/strategies.rb +0 -97
  495. data/lib/mongoid/multi_parameter_attributes.rb +0 -105
  496. data/lib/mongoid/nested_attributes.rb +0 -78
  497. data/lib/mongoid/observer.rb +0 -192
  498. data/lib/mongoid/paranoia.rb +0 -136
  499. data/lib/mongoid/persistence.rb +0 -357
  500. data/lib/mongoid/persistence/atomic.rb +0 -231
  501. data/lib/mongoid/persistence/atomic/add_to_set.rb +0 -47
  502. data/lib/mongoid/persistence/atomic/bit.rb +0 -35
  503. data/lib/mongoid/persistence/atomic/inc.rb +0 -45
  504. data/lib/mongoid/persistence/atomic/operation.rb +0 -154
  505. data/lib/mongoid/persistence/atomic/pop.rb +0 -32
  506. data/lib/mongoid/persistence/atomic/pull.rb +0 -32
  507. data/lib/mongoid/persistence/atomic/pull_all.rb +0 -32
  508. data/lib/mongoid/persistence/atomic/push.rb +0 -25
  509. data/lib/mongoid/persistence/atomic/push_all.rb +0 -25
  510. data/lib/mongoid/persistence/atomic/rename.rb +0 -30
  511. data/lib/mongoid/persistence/atomic/sets.rb +0 -28
  512. data/lib/mongoid/persistence/atomic/unset.rb +0 -27
  513. data/lib/mongoid/persistence/deletion.rb +0 -31
  514. data/lib/mongoid/persistence/insertion.rb +0 -38
  515. data/lib/mongoid/persistence/modification.rb +0 -35
  516. data/lib/mongoid/persistence/operations.rb +0 -214
  517. data/lib/mongoid/persistence/operations/embedded/insert.rb +0 -46
  518. data/lib/mongoid/persistence/operations/embedded/remove.rb +0 -43
  519. data/lib/mongoid/persistence/operations/insert.rb +0 -34
  520. data/lib/mongoid/persistence/operations/remove.rb +0 -33
  521. data/lib/mongoid/persistence/operations/update.rb +0 -59
  522. data/lib/mongoid/persistence/operations/upsert.rb +0 -28
  523. data/lib/mongoid/persistence/upsertion.rb +0 -31
  524. data/lib/mongoid/unit_of_work.rb +0 -61
  525. data/lib/mongoid/versioning.rb +0 -217
  526. data/lib/rack/mongoid.rb +0 -2
  527. data/lib/rack/mongoid/middleware/identity_map.rb +0 -39
  528. data/lib/rails/generators/mongoid/observer/observer_generator.rb +0 -17
  529. data/lib/rails/generators/mongoid/observer/templates/observer.rb.tt +0 -4
  530. data/spec/app/models/actor_observer.rb +0 -15
  531. data/spec/app/models/callback_recorder.rb +0 -25
  532. data/spec/app/models/paranoid_phone.rb +0 -25
  533. data/spec/app/models/paranoid_post.rb +0 -36
  534. data/spec/app/models/phone_observer.rb +0 -6
  535. data/spec/mongoid/attributes/processing_spec.rb +0 -149
  536. data/spec/mongoid/criterion/destructive_spec.rb +0 -101
  537. data/spec/mongoid/criterion/modifiable_spec.rb +0 -409
  538. data/spec/mongoid/criterion/modification_spec.rb +0 -402
  539. data/spec/mongoid/errors/versioning_not_on_root_spec.rb +0 -29
  540. data/spec/mongoid/finders_spec.rb +0 -321
  541. data/spec/mongoid/identity_map_spec.rb +0 -564
  542. data/spec/mongoid/json_spec.rb +0 -33
  543. data/spec/mongoid/matchers/in_spec.rb +0 -25
  544. data/spec/mongoid/matchers/ne_spec.rb +0 -25
  545. data/spec/mongoid/matchers/nin_spec.rb +0 -25
  546. data/spec/mongoid/multi_parameter_attributes_spec.rb +0 -128
  547. data/spec/mongoid/observer_spec.rb +0 -290
  548. data/spec/mongoid/paranoia_spec.rb +0 -759
  549. data/spec/mongoid/persistence/atomic/add_to_set_spec.rb +0 -262
  550. data/spec/mongoid/persistence/atomic/bit_spec.rb +0 -88
  551. data/spec/mongoid/persistence/atomic/inc_spec.rb +0 -133
  552. data/spec/mongoid/persistence/atomic/pop_spec.rb +0 -111
  553. data/spec/mongoid/persistence/atomic/pull_all_spec.rb +0 -77
  554. data/spec/mongoid/persistence/atomic/pull_spec.rb +0 -80
  555. data/spec/mongoid/persistence/atomic/push_all_spec.rb +0 -77
  556. data/spec/mongoid/persistence/atomic/push_spec.rb +0 -77
  557. data/spec/mongoid/persistence/atomic/rename_spec.rb +0 -42
  558. data/spec/mongoid/persistence/atomic/sets_spec.rb +0 -154
  559. data/spec/mongoid/persistence/atomic/unset_spec.rb +0 -65
  560. data/spec/mongoid/persistence/atomic_spec.rb +0 -216
  561. data/spec/mongoid/persistence/operations/embedded/insert_spec.rb +0 -191
  562. data/spec/mongoid/persistence/operations/embedded/remove_spec.rb +0 -8
  563. data/spec/mongoid/persistence/operations/insert_spec.rb +0 -149
  564. data/spec/mongoid/persistence/operations/remove_spec.rb +0 -113
  565. data/spec/mongoid/persistence/operations/update_spec.rb +0 -141
  566. data/spec/mongoid/persistence/operations/upsert_spec.rb +0 -59
  567. data/spec/mongoid/persistence/operations_spec.rb +0 -313
  568. data/spec/mongoid/persistence_spec.rb +0 -2279
  569. data/spec/mongoid/unit_of_work_spec.rb +0 -196
  570. data/spec/mongoid/versioning_spec.rb +0 -540
  571. data/spec/rack/mongoid/middleware/identity_map_spec.rb +0 -72
@@ -28,14 +28,14 @@ describe Mongoid::Atomic::Paths do
28
28
  context "when document is an embeds_one" do
29
29
 
30
30
  it "returns $unset" do
31
- name.atomic_delete_modifier.should eq("$unset")
31
+ expect(name.atomic_delete_modifier).to eq("$unset")
32
32
  end
33
33
  end
34
34
 
35
35
  context "when document is an embeds_many" do
36
36
 
37
37
  it "returns $pull" do
38
- address.atomic_delete_modifier.should eq("$pull")
38
+ expect(address.atomic_delete_modifier).to eq("$pull")
39
39
  end
40
40
  end
41
41
  end
@@ -50,14 +50,14 @@ describe Mongoid::Atomic::Paths do
50
50
  context "when document is an embeds_one" do
51
51
 
52
52
  it "returns $set" do
53
- name.atomic_insert_modifier.should eq("$set")
53
+ expect(name.atomic_insert_modifier).to eq("$set")
54
54
  end
55
55
  end
56
56
 
57
57
  context "when document is an embeds_many" do
58
58
 
59
59
  it "returns $push" do
60
- address.atomic_insert_modifier.should eq("$push")
60
+ expect(address.atomic_insert_modifier).to eq("$push")
61
61
  end
62
62
  end
63
63
  end
@@ -67,7 +67,7 @@ describe Mongoid::Atomic::Paths do
67
67
  context "when the document is a parent" do
68
68
 
69
69
  it "returns an empty string" do
70
- person.atomic_path.should be_empty
70
+ expect(person.atomic_path).to be_empty
71
71
  end
72
72
  end
73
73
 
@@ -78,7 +78,7 @@ describe Mongoid::Atomic::Paths do
78
78
  end
79
79
 
80
80
  it "returns the inverse_of value of the association" do
81
- address.atomic_path.should eq("addresses")
81
+ expect(address.atomic_path).to eq("addresses")
82
82
  end
83
83
  end
84
84
 
@@ -90,7 +90,7 @@ describe Mongoid::Atomic::Paths do
90
90
  end
91
91
 
92
92
  it "returns the JSON notation to the document" do
93
- location.atomic_path.should eq("addresses.locations")
93
+ expect(location.atomic_path).to eq("addresses.locations")
94
94
  end
95
95
  end
96
96
  end
@@ -100,7 +100,7 @@ describe Mongoid::Atomic::Paths do
100
100
  context "when the document is a parent" do
101
101
 
102
102
  it "returns an id.atomic_selector" do
103
- person.atomic_selector.should eq({ "_id" => person.id })
103
+ expect(person.atomic_selector).to eq({ "_id" => person.id })
104
104
  end
105
105
  end
106
106
 
@@ -111,7 +111,7 @@ describe Mongoid::Atomic::Paths do
111
111
  end
112
112
 
113
113
  it "returns the association with id.atomic_selector" do
114
- address.atomic_selector.should eq(
114
+ expect(address.atomic_selector).to eq(
115
115
  { "_id" => person.id, "addresses._id" => address.id }
116
116
  )
117
117
  end
@@ -125,7 +125,7 @@ describe Mongoid::Atomic::Paths do
125
125
  end
126
126
 
127
127
  it "returns the JSON notation to the document with ids" do
128
- location.atomic_selector.should eq(
128
+ expect(location.atomic_selector).to eq(
129
129
  {
130
130
  "_id" => person.id,
131
131
  "addresses._id" => address.id,
@@ -141,7 +141,7 @@ describe Mongoid::Atomic::Paths do
141
141
  context "when the document is a parent" do
142
142
 
143
143
  it "returns an empty string" do
144
- person.atomic_position.should be_empty
144
+ expect(person.atomic_position).to be_empty
145
145
  end
146
146
  end
147
147
 
@@ -154,7 +154,7 @@ describe Mongoid::Atomic::Paths do
154
154
  context "when the document is new" do
155
155
 
156
156
  it "returns the.atomic_path without index" do
157
- address.atomic_position.should eq("addresses")
157
+ expect(address.atomic_position).to eq("addresses")
158
158
  end
159
159
  end
160
160
 
@@ -165,7 +165,7 @@ describe Mongoid::Atomic::Paths do
165
165
  end
166
166
 
167
167
  it "returns the.atomic_path plus index" do
168
- address.atomic_position.should eq("addresses.0")
168
+ expect(address.atomic_position).to eq("addresses.0")
169
169
  end
170
170
  end
171
171
  end
@@ -185,7 +185,7 @@ describe Mongoid::Atomic::Paths do
185
185
  context "when the document is new" do
186
186
 
187
187
  it "returns the.atomic_path with parent indexes" do
188
- location.atomic_position.should eq("addresses.0.locations")
188
+ expect(location.atomic_position).to eq("addresses.0.locations")
189
189
  end
190
190
  end
191
191
 
@@ -196,7 +196,7 @@ describe Mongoid::Atomic::Paths do
196
196
  end
197
197
 
198
198
  it "returns the.atomic_path plus index" do
199
- location.atomic_position.should eq("addresses.0.locations.1")
199
+ expect(location.atomic_position).to eq("addresses.0.locations.1")
200
200
  end
201
201
  end
202
202
  end
@@ -207,7 +207,7 @@ describe Mongoid::Atomic::Paths do
207
207
  context "when the document is a parent" do
208
208
 
209
209
  it "returns an empty string" do
210
- person.atomic_path.should be_empty
210
+ expect(person.atomic_path).to be_empty
211
211
  end
212
212
  end
213
213
 
@@ -224,7 +224,7 @@ describe Mongoid::Atomic::Paths do
224
224
  end
225
225
 
226
226
  it "returns the.atomic_path without the index" do
227
- address.atomic_path.should eq("addresses")
227
+ expect(address.atomic_path).to eq("addresses")
228
228
  end
229
229
 
230
230
  context "and there are 10 or more documents" do
@@ -236,7 +236,7 @@ describe Mongoid::Atomic::Paths do
236
236
  end
237
237
 
238
238
  it "returns the.atomic_path without the index" do
239
- address.atomic_path.should eq("addresses")
239
+ expect(address.atomic_path).to eq("addresses")
240
240
  end
241
241
  end
242
242
  end
@@ -261,7 +261,7 @@ describe Mongoid::Atomic::Paths do
261
261
  end
262
262
 
263
263
  it "returns the.atomic_path plus index" do
264
- location.atomic_path.should eq("addresses.0.locations")
264
+ expect(location.atomic_path).to eq("addresses.0.locations")
265
265
  end
266
266
 
267
267
  end
@@ -21,11 +21,11 @@ describe Mongoid::Atomic do
21
21
  end
22
22
 
23
23
  it "adds the document to the delayed atomic pulls" do
24
- person.delayed_atomic_pulls["addresses"].should eq([ address ])
24
+ expect(person.delayed_atomic_pulls["addresses"]).to eq([ address ])
25
25
  end
26
26
 
27
27
  it "flags the document for destruction" do
28
- address.should be_flagged_for_destroy
28
+ expect(address).to be_flagged_for_destroy
29
29
  end
30
30
  end
31
31
 
@@ -44,11 +44,11 @@ describe Mongoid::Atomic do
44
44
  end
45
45
 
46
46
  it "adds the document to the delayed atomic unsets" do
47
- person.delayed_atomic_unsets["name"].should eq([ name ])
47
+ expect(person.delayed_atomic_unsets["name"]).to eq([ name ])
48
48
  end
49
49
 
50
50
  it "flags the document for destruction" do
51
- name.should be_flagged_for_destroy
51
+ expect(name).to be_flagged_for_destroy
52
52
  end
53
53
  end
54
54
 
@@ -67,7 +67,7 @@ describe Mongoid::Atomic do
67
67
  end
68
68
 
69
69
  it "returns the atomic updates" do
70
- person.atomic_updates.should eq({ "$set" => { "title" => "Sir" }})
70
+ expect(person.atomic_updates).to eq({ "$set" => { "title" => "Sir" }})
71
71
  end
72
72
 
73
73
  context "when an embeds many child is added" do
@@ -77,7 +77,7 @@ describe Mongoid::Atomic do
77
77
  end
78
78
 
79
79
  it "returns a $set and $pushAll for modifications" do
80
- person.atomic_updates.should eq(
80
+ expect(person.atomic_updates).to eq(
81
81
  {
82
82
  "$set" => { "title" => "Sir" },
83
83
  "$pushAll" => { "addresses" => [
@@ -95,7 +95,7 @@ describe Mongoid::Atomic do
95
95
  end
96
96
 
97
97
  it "returns a $set for modifications" do
98
- person.atomic_updates.should eq(
98
+ expect(person.atomic_updates).to eq(
99
99
  {
100
100
  "$set" => {
101
101
  "title" => "Sir",
@@ -119,7 +119,7 @@ describe Mongoid::Atomic do
119
119
  context "when asking for the updates from the root" do
120
120
 
121
121
  it "returns the $set with correct position and modifications" do
122
- person.atomic_updates.should eq(
122
+ expect(person.atomic_updates).to eq(
123
123
  { "$set" => { "title" => "Sir", "addresses.0.street" => "Bond St" }}
124
124
  )
125
125
  end
@@ -128,7 +128,7 @@ describe Mongoid::Atomic do
128
128
  context "when asking for the updates from the child" do
129
129
 
130
130
  it "returns the $set with correct position and modifications" do
131
- address.atomic_updates.should eq(
131
+ expect(address.atomic_updates).to eq(
132
132
  { "$set" => { "addresses.0.street" => "Bond St" }}
133
133
  )
134
134
  end
@@ -147,7 +147,7 @@ describe Mongoid::Atomic do
147
147
  context "when asking for the updates from the root" do
148
148
 
149
149
  it "returns the $set with correct positions and modifications" do
150
- person.atomic_updates.should eq(
150
+ expect(person.atomic_updates).to eq(
151
151
  { "$set" => {
152
152
  "title" => "Sir",
153
153
  "addresses.0.street" => "Bond St",
@@ -160,7 +160,7 @@ describe Mongoid::Atomic do
160
160
  context "when asking for the updates from the 1st level child" do
161
161
 
162
162
  it "returns the $set with correct positions and modifications" do
163
- address.atomic_updates.should eq(
163
+ expect(address.atomic_updates).to eq(
164
164
  { "$set" => {
165
165
  "addresses.0.street" => "Bond St",
166
166
  "addresses.0.locations.0.name" => "Work" }
@@ -172,7 +172,7 @@ describe Mongoid::Atomic do
172
172
  context "when asking for the updates from the 2nd level child" do
173
173
 
174
174
  it "returns the $set with correct positions and modifications" do
175
- location.atomic_updates.should eq(
175
+ expect(location.atomic_updates).to eq(
176
176
  { "$set" => {
177
177
  "addresses.0.locations.0.name" => "Work" }
178
178
  }
@@ -190,7 +190,7 @@ describe Mongoid::Atomic do
190
190
  context "when asking for the updates from the root" do
191
191
 
192
192
  it "returns the $set with correct positions and modifications" do
193
- person.atomic_updates.should eq(
193
+ expect(person.atomic_updates).to eq(
194
194
  {
195
195
  "$set" => {
196
196
  "title" => "Sir",
@@ -209,7 +209,7 @@ describe Mongoid::Atomic do
209
209
  context "when asking for the updates from the 1st level child" do
210
210
 
211
211
  it "returns the $set with correct positions and modifications" do
212
- address.atomic_updates.should eq(
212
+ expect(address.atomic_updates).to eq(
213
213
  {
214
214
  "$set" => {
215
215
  "addresses.0.street" => "Bond St"
@@ -236,7 +236,7 @@ describe Mongoid::Atomic do
236
236
  end
237
237
 
238
238
  it "returns the $set for the first level and $unset for other." do
239
- updates.should eq({
239
+ expect(updates).to eq({
240
240
  "$unset" => { "addresses" => true },
241
241
  "$set" => { "title" => "Sir" }
242
242
  })
@@ -256,7 +256,7 @@ describe Mongoid::Atomic do
256
256
  context "when asking for the updates from the root document" do
257
257
 
258
258
  it "returns the $set for 1st level and other for the 2nd level" do
259
- person.atomic_updates.should eq(
259
+ expect(person.atomic_updates).to eq(
260
260
  {
261
261
  "$set" => {
262
262
  "title" => "Sir",
@@ -282,7 +282,7 @@ describe Mongoid::Atomic do
282
282
  context "when asking for the updates from the 1st level document" do
283
283
 
284
284
  it "returns the $set for 1st level and other for the 2nd level" do
285
- address.atomic_updates.should eq(
285
+ expect(address.atomic_updates).to eq(
286
286
  { "$set" => { "addresses.0.street" => "Bond St" }}
287
287
  )
288
288
  end
@@ -305,7 +305,7 @@ describe Mongoid::Atomic do
305
305
  end
306
306
 
307
307
  it "returns the $set for 1st and 2nd level and other for the 3nd level" do
308
- person.atomic_updates.should eq(
308
+ expect(person.atomic_updates).to eq(
309
309
  {
310
310
  "$set" => {
311
311
  "title" => "Sir"
@@ -340,7 +340,7 @@ describe Mongoid::Atomic do
340
340
  end
341
341
 
342
342
  it "returns the proper $sets and $pushAlls for all levels" do
343
- person.atomic_updates.should eq(
343
+ expect(person.atomic_updates).to eq(
344
344
  {
345
345
  "$set" => {
346
346
  "title" => "Sir",
@@ -1,6 +1,6 @@
1
1
  require "spec_helper"
2
2
 
3
- describe Mongoid::NestedAttributes do
3
+ describe Mongoid::Attributes::Nested do
4
4
 
5
5
  describe ".accepts_nested_attributes_for" do
6
6
 
@@ -55,7 +55,7 @@ describe Mongoid::NestedAttributes do
55
55
 
56
56
  context "when the relation is an embeds one" do
57
57
 
58
- before(:all) do
58
+ before do
59
59
  Person.send(:undef_method, :name_attributes=)
60
60
  Person.accepts_nested_attributes_for :name
61
61
  end
@@ -65,13 +65,13 @@ describe Mongoid::NestedAttributes do
65
65
  end
66
66
 
67
67
  it "sets the nested attributes" do
68
- person.name.first_name.should eq("Johnny")
68
+ expect(person.name.first_name).to eq("Johnny")
69
69
  end
70
70
  end
71
71
 
72
72
  context "when the relation is an embeds many" do
73
73
 
74
- before(:all) do
74
+ before do
75
75
  Person.send(:undef_method, :addresses_attributes=)
76
76
  Person.accepts_nested_attributes_for :addresses
77
77
  end
@@ -81,7 +81,7 @@ describe Mongoid::NestedAttributes do
81
81
  end
82
82
 
83
83
  it "sets the nested attributes" do
84
- person.addresses.first.street.should eq("Alexanderstr")
84
+ expect(person.addresses.first.street).to eq("Alexanderstr")
85
85
  end
86
86
 
87
87
  context "when there are 10 or more child records" do
@@ -97,14 +97,14 @@ describe Mongoid::NestedAttributes do
97
97
  end
98
98
 
99
99
  it "preserves the order of the children" do
100
- person.addresses.map(&:number).should eq((0..10).to_a)
100
+ expect(person.addresses.map(&:number)).to eq((0..10).to_a)
101
101
  end
102
102
  end
103
103
  end
104
104
 
105
105
  context "when the relation is an embedded in" do
106
106
 
107
- before(:all) do
107
+ before do
108
108
  Video.accepts_nested_attributes_for :person
109
109
  end
110
110
 
@@ -113,13 +113,13 @@ describe Mongoid::NestedAttributes do
113
113
  end
114
114
 
115
115
  it "sets the nested attributes" do
116
- video.person.title.should eq("Sir")
116
+ expect(video.person.title).to eq("Sir")
117
117
  end
118
118
  end
119
119
 
120
120
  context "when the relation is a references one" do
121
121
 
122
- before(:all) do
122
+ before do
123
123
  Person.send(:undef_method, :game_attributes=)
124
124
  Person.accepts_nested_attributes_for :game
125
125
  end
@@ -129,13 +129,13 @@ describe Mongoid::NestedAttributes do
129
129
  end
130
130
 
131
131
  it "sets the nested attributes" do
132
- person.game.name.should eq("Tron")
132
+ expect(person.game.name).to eq("Tron")
133
133
  end
134
134
  end
135
135
 
136
136
  context "when the relation is a references many" do
137
137
 
138
- before(:all) do
138
+ before do
139
139
  Person.send(:undef_method, :posts_attributes=)
140
140
  Person.accepts_nested_attributes_for :posts
141
141
  end
@@ -145,13 +145,13 @@ describe Mongoid::NestedAttributes do
145
145
  end
146
146
 
147
147
  it "sets the nested attributes" do
148
- person.posts.first.title.should eq("First")
148
+ expect(person.posts.first.title).to eq("First")
149
149
  end
150
150
  end
151
151
 
152
152
  context "when the relation is a references and referenced in many" do
153
153
 
154
- before(:all) do
154
+ before do
155
155
  Person.send(:undef_method, :preferences_attributes=)
156
156
  Person.accepts_nested_attributes_for :preferences
157
157
  end
@@ -161,13 +161,13 @@ describe Mongoid::NestedAttributes do
161
161
  end
162
162
 
163
163
  it "sets the nested attributes" do
164
- person.preferences.first.name.should eq("First")
164
+ expect(person.preferences.first.name).to eq("First")
165
165
  end
166
166
  end
167
167
 
168
168
  context "when the relation is a referenced in" do
169
169
 
170
- before(:all) do
170
+ before do
171
171
  Post.accepts_nested_attributes_for :person
172
172
  end
173
173
 
@@ -176,7 +176,7 @@ describe Mongoid::NestedAttributes do
176
176
  end
177
177
 
178
178
  it "sets the nested attributes" do
179
- post.person.title.should eq("Sir")
179
+ expect(post.person.title).to eq("Sir")
180
180
  end
181
181
  end
182
182
  end
@@ -210,11 +210,11 @@ describe Mongoid::NestedAttributes do
210
210
  end
211
211
 
212
212
  it "sets the child document" do
213
- person.name.last_name.should eq("Fischer")
213
+ expect(person.name.last_name).to eq("Fischer")
214
214
  end
215
215
 
216
216
  it "does not persist the child document" do
217
- person.name.should_not be_persisted
217
+ expect(person.name).to_not be_persisted
218
218
  end
219
219
 
220
220
  context "when saving the parent" do
@@ -225,7 +225,7 @@ describe Mongoid::NestedAttributes do
225
225
  end
226
226
 
227
227
  it "persists the child document" do
228
- person.name.should be_persisted
228
+ expect(person.name).to be_persisted
229
229
  end
230
230
  end
231
231
  end
@@ -237,13 +237,13 @@ describe Mongoid::NestedAttributes do
237
237
 
238
238
  context "when a reject proc is specified" do
239
239
 
240
- before(:all) do
240
+ before do
241
241
  Person.send(:undef_method, :name_attributes=)
242
242
  Person.accepts_nested_attributes_for \
243
243
  :name, reject_if: ->(attrs){ attrs[:first_name].blank? }
244
244
  end
245
245
 
246
- after(:all) do
246
+ after do
247
247
  Person.send(:undef_method, :name_attributes=)
248
248
  Person.accepts_nested_attributes_for :name
249
249
  end
@@ -255,7 +255,7 @@ describe Mongoid::NestedAttributes do
255
255
  end
256
256
 
257
257
  it "does not add the document" do
258
- person.name.should be_nil
258
+ expect(person.name).to be_nil
259
259
  end
260
260
  end
261
261
 
@@ -266,7 +266,7 @@ describe Mongoid::NestedAttributes do
266
266
  end
267
267
 
268
268
  it "adds the document" do
269
- person.name.first_name.should eq("Lang")
269
+ expect(person.name.first_name).to eq("Lang")
270
270
  end
271
271
  end
272
272
  end
@@ -275,13 +275,13 @@ describe Mongoid::NestedAttributes do
275
275
 
276
276
  context "when the relation is not autobuilding" do
277
277
 
278
- before(:all) do
278
+ before do
279
279
  Person.send(:undef_method, :name_attributes=)
280
280
  Person.accepts_nested_attributes_for \
281
281
  :name, reject_if: :all_blank
282
282
  end
283
283
 
284
- after(:all) do
284
+ after do
285
285
  Person.send(:undef_method, :name_attributes=)
286
286
  Person.accepts_nested_attributes_for :name
287
287
  end
@@ -293,7 +293,7 @@ describe Mongoid::NestedAttributes do
293
293
  end
294
294
 
295
295
  it "does not add the document" do
296
- person.name.should be_nil
296
+ expect(person.name).to be_nil
297
297
  end
298
298
  end
299
299
 
@@ -304,18 +304,18 @@ describe Mongoid::NestedAttributes do
304
304
  end
305
305
 
306
306
  it "adds the document" do
307
- person.name.first_name.should eq("Lang")
307
+ expect(person.name.first_name).to eq("Lang")
308
308
  end
309
309
  end
310
310
  end
311
311
 
312
312
  context "when the relation is autobuilding" do
313
313
 
314
- before(:all) do
314
+ before do
315
315
  Product.accepts_nested_attributes_for :seo, reject_if: :all_blank
316
316
  end
317
317
 
318
- after(:all) do
318
+ after do
319
319
  Product.send(:undef_method, :seo_attributes=)
320
320
  end
321
321
 
@@ -326,7 +326,7 @@ describe Mongoid::NestedAttributes do
326
326
  end
327
327
 
328
328
  it "does not add the document" do
329
- product.seo.should_not be_persisted
329
+ expect(product.seo).to_not be_persisted
330
330
  end
331
331
  end
332
332
  end
@@ -341,7 +341,7 @@ describe Mongoid::NestedAttributes do
341
341
  end
342
342
 
343
343
  it "builds a new document" do
344
- person.name.first_name.should eq("Leo")
344
+ expect(person.name.first_name).to eq("Leo")
345
345
  end
346
346
  end
347
347
 
@@ -349,12 +349,12 @@ describe Mongoid::NestedAttributes do
349
349
 
350
350
  context "when allow_destroy is true" do
351
351
 
352
- before(:all) do
352
+ before do
353
353
  Person.send(:undef_method, :name_attributes=)
354
354
  Person.accepts_nested_attributes_for :name, allow_destroy: true
355
355
  end
356
356
 
357
- after(:all) do
357
+ after do
358
358
  Person.send(:undef_method, :name_attributes=)
359
359
  Person.accepts_nested_attributes_for :name
360
360
  end
@@ -366,7 +366,7 @@ describe Mongoid::NestedAttributes do
366
366
  end
367
367
 
368
368
  it "does not build the document" do
369
- person.name.should be_nil
369
+ expect(person.name).to be_nil
370
370
  end
371
371
  end
372
372
 
@@ -377,19 +377,19 @@ describe Mongoid::NestedAttributes do
377
377
  end
378
378
 
379
379
  it "does not build the document" do
380
- person.name.should be_nil
380
+ expect(person.name).to be_nil
381
381
  end
382
382
  end
383
383
  end
384
384
 
385
385
  context "when allow_destroy is false" do
386
386
 
387
- before(:all) do
387
+ before do
388
388
  Person.send(:undef_method, :name_attributes=)
389
389
  Person.accepts_nested_attributes_for :name, allow_destroy: false
390
390
  end
391
391
 
392
- after(:all) do
392
+ after do
393
393
  Person.send(:undef_method, :name_attributes=)
394
394
  Person.accepts_nested_attributes_for :name
395
395
  end
@@ -399,7 +399,7 @@ describe Mongoid::NestedAttributes do
399
399
  end
400
400
 
401
401
  it "builds the document" do
402
- person.name.first_name.should eq("Leo")
402
+ expect(person.name.first_name).to eq("Leo")
403
403
  end
404
404
  end
405
405
  end
@@ -411,7 +411,7 @@ describe Mongoid::NestedAttributes do
411
411
  end
412
412
 
413
413
  it "does not build the document" do
414
- person.name.should be_nil
414
+ expect(person.name).to be_nil
415
415
  end
416
416
  end
417
417
 
@@ -425,7 +425,7 @@ describe Mongoid::NestedAttributes do
425
425
  end
426
426
 
427
427
  it "replaces the document" do
428
- person.name.first_name.should eq("Jack")
428
+ expect(person.name.first_name).to eq("Jack")
429
429
  end
430
430
  end
431
431
 
@@ -433,12 +433,12 @@ describe Mongoid::NestedAttributes do
433
433
 
434
434
  context "when allow_destroy is true" do
435
435
 
436
- before(:all) do
436
+ before do
437
437
  Person.send(:undef_method, :name_attributes=)
438
438
  Person.accepts_nested_attributes_for :name, allow_destroy: true
439
439
  end
440
440
 
441
- after(:all) do
441
+ after do
442
442
  Person.send(:undef_method, :name_attributes=)
443
443
  Person.accepts_nested_attributes_for :name
444
444
  end
@@ -449,18 +449,18 @@ describe Mongoid::NestedAttributes do
449
449
  end
450
450
 
451
451
  it "does not replace the document" do
452
- person.name.first_name.should eq("Michael")
452
+ expect(person.name.first_name).to eq("Michael")
453
453
  end
454
454
  end
455
455
 
456
456
  context "when allow_destroy is false" do
457
457
 
458
- before(:all) do
458
+ before do
459
459
  Person.send(:undef_method, :name_attributes=)
460
460
  Person.accepts_nested_attributes_for :name, allow_destroy: false
461
461
  end
462
462
 
463
- after(:all) do
463
+ after do
464
464
  Person.send(:undef_method, :name_attributes=)
465
465
  Person.accepts_nested_attributes_for :name
466
466
  end
@@ -471,7 +471,7 @@ describe Mongoid::NestedAttributes do
471
471
  end
472
472
 
473
473
  it "replaces the document" do
474
- person.name.first_name.should eq("Jack")
474
+ expect(person.name.first_name).to eq("Jack")
475
475
  end
476
476
  end
477
477
  end
@@ -500,7 +500,7 @@ describe Mongoid::NestedAttributes do
500
500
  end
501
501
 
502
502
  it "updates the existing document" do
503
- person.name.first_name.should eq("Bob")
503
+ expect(person.name.first_name).to eq("Bob")
504
504
  end
505
505
  end
506
506
 
@@ -512,18 +512,18 @@ describe Mongoid::NestedAttributes do
512
512
  end
513
513
 
514
514
  it "updates the existing document" do
515
- person.name.first_name.should eq("Bob")
515
+ expect(person.name.first_name).to eq("Bob")
516
516
  end
517
517
  end
518
518
 
519
519
  context "when allow_destroy is true" do
520
520
 
521
- before(:all) do
521
+ before do
522
522
  Person.send(:undef_method, :name_attributes=)
523
523
  Person.accepts_nested_attributes_for :name, allow_destroy: true
524
524
  end
525
525
 
526
- after(:all) do
526
+ after do
527
527
  Person.send(:undef_method, :name_attributes=)
528
528
  Person.accepts_nested_attributes_for :name
529
529
  end
@@ -540,17 +540,17 @@ describe Mongoid::NestedAttributes do
540
540
  end
541
541
 
542
542
  it "destroys the existing document" do
543
- person.name.should be_nil
543
+ expect(person.name).to be_nil
544
544
  end
545
545
  end
546
546
 
547
547
  context "when the document has destroy callbacks" do
548
548
 
549
- before(:all) do
549
+ before do
550
550
  PetOwner.accepts_nested_attributes_for :pet, allow_destroy: true
551
551
  end
552
552
 
553
- after(:all) do
553
+ after do
554
554
  PetOwner.send(:undef_method, :pet_attributes=)
555
555
  end
556
556
 
@@ -568,11 +568,11 @@ describe Mongoid::NestedAttributes do
568
568
  end
569
569
 
570
570
  it "destroys the existing document" do
571
- owner.pet.should be_nil
571
+ expect(owner.pet).to be_nil
572
572
  end
573
573
 
574
574
  it "runs the destroy callbacks" do
575
- pet.destroy_flag.should be_true
575
+ expect(pet.destroy_flag).to be true
576
576
  end
577
577
  end
578
578
  end
@@ -588,7 +588,7 @@ describe Mongoid::NestedAttributes do
588
588
  end
589
589
 
590
590
  it "does not destroy the existing document" do
591
- person.name.should eq(name)
591
+ expect(person.name).to eq(name)
592
592
  end
593
593
  end
594
594
  end
@@ -596,12 +596,12 @@ describe Mongoid::NestedAttributes do
596
596
 
597
597
  context "when allow destroy is false" do
598
598
 
599
- before(:all) do
599
+ before do
600
600
  Person.send(:undef_method, :name_attributes=)
601
601
  Person.accepts_nested_attributes_for :name, allow_destroy: false
602
602
  end
603
603
 
604
- after(:all) do
604
+ after do
605
605
  Person.send(:undef_method, :name_attributes=)
606
606
  Person.accepts_nested_attributes_for :name
607
607
  end
@@ -614,14 +614,14 @@ describe Mongoid::NestedAttributes do
614
614
  end
615
615
 
616
616
  it "does not destroy the document" do
617
- person.name.should eq(name)
617
+ expect(person.name).to eq(name)
618
618
  end
619
619
  end
620
620
  end
621
621
 
622
622
  context "when update only is true" do
623
623
 
624
- before(:all) do
624
+ before do
625
625
  Person.send(:undef_method, :name_attributes=)
626
626
  Person.accepts_nested_attributes_for \
627
627
  :name,
@@ -629,7 +629,7 @@ describe Mongoid::NestedAttributes do
629
629
  allow_destroy: true
630
630
  end
631
631
 
632
- after(:all) do
632
+ after do
633
633
  Person.send(:undef_method, :name_attributes=)
634
634
  Person.accepts_nested_attributes_for :name
635
635
  end
@@ -642,7 +642,7 @@ describe Mongoid::NestedAttributes do
642
642
  end
643
643
 
644
644
  it "updates the existing document" do
645
- person.name.first_name.should eq("Ro")
645
+ expect(person.name.first_name).to eq("Ro")
646
646
  end
647
647
  end
648
648
 
@@ -650,11 +650,11 @@ describe Mongoid::NestedAttributes do
650
650
 
651
651
  before do
652
652
  person.name_attributes =
653
- { id: Moped::BSON::ObjectId.new.to_s, first_name: "Durran" }
653
+ { id: BSON::ObjectId.new.to_s, first_name: "Durran" }
654
654
  end
655
655
 
656
656
  it "updates the existing document" do
657
- person.name.first_name.should eq("Durran")
657
+ expect(person.name.first_name).to eq("Durran")
658
658
  end
659
659
  end
660
660
 
@@ -666,7 +666,7 @@ describe Mongoid::NestedAttributes do
666
666
  end
667
667
 
668
668
  it "destroys the existing document" do
669
- person.name.should be_nil
669
+ expect(person.name).to be_nil
670
670
  end
671
671
  end
672
672
  end
@@ -684,7 +684,7 @@ describe Mongoid::NestedAttributes do
684
684
  end
685
685
 
686
686
  it "updates the existing document" do
687
- person.quiz.topic.should eq("English")
687
+ expect(person.quiz.topic).to eq("English")
688
688
  end
689
689
  end
690
690
  end
@@ -693,11 +693,11 @@ describe Mongoid::NestedAttributes do
693
693
 
694
694
  context "when the nested document is invalid" do
695
695
 
696
- before(:all) do
696
+ before do
697
697
  Person.validates_associated(:pet)
698
698
  end
699
699
 
700
- after(:all) do
700
+ after do
701
701
  Person.reset_callbacks(:validate)
702
702
  end
703
703
 
@@ -706,8 +706,8 @@ describe Mongoid::NestedAttributes do
706
706
  end
707
707
 
708
708
  it "propagates invalidity to parent" do
709
- person.pet.should_not be_valid
710
- person.should_not be_valid
709
+ expect(person.pet).to_not be_valid
710
+ expect(person).to_not be_valid
711
711
  end
712
712
  end
713
713
 
@@ -724,7 +724,7 @@ describe Mongoid::NestedAttributes do
724
724
  end
725
725
 
726
726
  it "instantiates an object of the given type" do
727
- canvas.writer.class.should eq(HtmlWriter)
727
+ expect(canvas.writer.class).to eq(HtmlWriter)
728
728
  end
729
729
  end
730
730
  end
@@ -746,7 +746,7 @@ describe Mongoid::NestedAttributes do
746
746
  end
747
747
 
748
748
  it "builds a new document" do
749
- animal.person.title.should eq("Sir")
749
+ expect(animal.person.title).to eq("Sir")
750
750
  end
751
751
 
752
752
  end
@@ -755,12 +755,12 @@ describe Mongoid::NestedAttributes do
755
755
 
756
756
  context "when allow_destroy is true" do
757
757
 
758
- before(:all) do
758
+ before do
759
759
  Animal.send(:undef_method, :person_attributes=)
760
760
  Animal.accepts_nested_attributes_for :person, allow_destroy: true
761
761
  end
762
762
 
763
- after(:all) do
763
+ after do
764
764
  Animal.send(:undef_method, :person_attributes=)
765
765
  Animal.accepts_nested_attributes_for :person
766
766
  end
@@ -770,18 +770,18 @@ describe Mongoid::NestedAttributes do
770
770
  end
771
771
 
772
772
  it "does not build a new document" do
773
- animal.person.should be_nil
773
+ expect(animal.person).to be_nil
774
774
  end
775
775
  end
776
776
 
777
777
  context "when allow_destroy is false" do
778
778
 
779
- before(:all) do
779
+ before do
780
780
  Animal.send(:undef_method, :person_attributes=)
781
781
  Animal.accepts_nested_attributes_for :person, allow_destroy: false
782
782
  end
783
783
 
784
- after(:all) do
784
+ after do
785
785
  Animal.send(:undef_method, :person_attributes=)
786
786
  Animal.accepts_nested_attributes_for :person
787
787
  end
@@ -791,7 +791,7 @@ describe Mongoid::NestedAttributes do
791
791
  end
792
792
 
793
793
  it "builds a new document" do
794
- animal.person.title.should eq("Sir")
794
+ expect(animal.person.title).to eq("Sir")
795
795
  end
796
796
  end
797
797
  end
@@ -812,7 +812,7 @@ describe Mongoid::NestedAttributes do
812
812
  end
813
813
 
814
814
  it "updates the existing document" do
815
- animal.person.title.should eq("Sir")
815
+ expect(animal.person.title).to eq("Sir")
816
816
  end
817
817
  end
818
818
  end
@@ -825,12 +825,12 @@ describe Mongoid::NestedAttributes do
825
825
 
826
826
  context "when allow destroy is true" do
827
827
 
828
- before(:all) do
828
+ before do
829
829
  Animal.send(:undef_method, :person_attributes=)
830
830
  Animal.accepts_nested_attributes_for :person, allow_destroy: true
831
831
  end
832
832
 
833
- after(:all) do
833
+ after do
834
834
  Animal.send(:undef_method, :person_attributes=)
835
835
  Animal.accepts_nested_attributes_for :person
836
836
  end
@@ -845,7 +845,7 @@ describe Mongoid::NestedAttributes do
845
845
  end
846
846
 
847
847
  it "destroys the existing document" do
848
- animal.person.should be_nil
848
+ expect(animal.person).to be_nil
849
849
  end
850
850
  end
851
851
  end
@@ -860,7 +860,7 @@ describe Mongoid::NestedAttributes do
860
860
  end
861
861
 
862
862
  it "does not destroy the existing document" do
863
- animal.person.should eq(person)
863
+ expect(animal.person).to eq(person)
864
864
  end
865
865
  end
866
866
  end
@@ -868,12 +868,12 @@ describe Mongoid::NestedAttributes do
868
868
 
869
869
  context "when allow destroy is false" do
870
870
 
871
- before(:all) do
871
+ before do
872
872
  Animal.send(:undef_method, :person_attributes=)
873
873
  Animal.accepts_nested_attributes_for :person, allow_destroy: false
874
874
  end
875
875
 
876
- after(:all) do
876
+ after do
877
877
  Animal.send(:undef_method, :person_attributes=)
878
878
  Animal.accepts_nested_attributes_for :person
879
879
  end
@@ -886,7 +886,7 @@ describe Mongoid::NestedAttributes do
886
886
  end
887
887
 
888
888
  it "does not delete the document" do
889
- animal.person.should eq(person)
889
+ expect(animal.person).to eq(person)
890
890
  end
891
891
  end
892
892
  end
@@ -909,7 +909,7 @@ describe Mongoid::NestedAttributes do
909
909
  end
910
910
 
911
911
  it "updates the existing document" do
912
- animal.person.title.should eq("Madam")
912
+ expect(animal.person.title).to eq("Madam")
913
913
  end
914
914
  end
915
915
 
@@ -917,11 +917,11 @@ describe Mongoid::NestedAttributes do
917
917
 
918
918
  before do
919
919
  animal.person_attributes =
920
- { id: Moped::BSON::ObjectId.new.to_s, title: "Madam" }
920
+ { id: BSON::ObjectId.new.to_s, title: "Madam" }
921
921
  end
922
922
 
923
923
  it "updates the existing document" do
924
- animal.person.title.should eq("Madam")
924
+ expect(animal.person.title).to eq("Madam")
925
925
  end
926
926
  end
927
927
 
@@ -933,7 +933,7 @@ describe Mongoid::NestedAttributes do
933
933
  end
934
934
 
935
935
  it "deletes the existing document" do
936
- animal.person.should be_nil
936
+ expect(animal.person).to be_nil
937
937
  end
938
938
  end
939
939
  end
@@ -942,11 +942,11 @@ describe Mongoid::NestedAttributes do
942
942
 
943
943
  context "when the nested document is invalid" do
944
944
 
945
- before(:all) do
945
+ before do
946
946
  Person.validates_format_of :ssn, without: /\$\$\$/
947
947
  end
948
948
 
949
- after(:all) do
949
+ after do
950
950
  Person.reset_callbacks(:validate)
951
951
  end
952
952
 
@@ -955,8 +955,8 @@ describe Mongoid::NestedAttributes do
955
955
  end
956
956
 
957
957
  it "does not propagate invalidity to parent" do
958
- animal.person.should_not be_valid
959
- animal.should be_valid
958
+ expect(animal.person).to_not be_valid
959
+ expect(animal).to be_valid
960
960
  end
961
961
  end
962
962
  end
@@ -972,7 +972,7 @@ describe Mongoid::NestedAttributes do
972
972
  end
973
973
 
974
974
  it "instantiates an object of the given type" do
975
- tool.palette.class.should eq(BigPalette)
975
+ expect(tool.palette.class).to eq(BigPalette)
976
976
  end
977
977
  end
978
978
  end
@@ -1006,11 +1006,11 @@ describe Mongoid::NestedAttributes do
1006
1006
  end
1007
1007
 
1008
1008
  it "sets the child documents" do
1009
- person.addresses.first.street.should eq("Maybachufer")
1009
+ expect(person.addresses.first.street).to eq("Maybachufer")
1010
1010
  end
1011
1011
 
1012
1012
  it "does not persist the child documents" do
1013
- person.addresses.first.should_not be_persisted
1013
+ expect(person.addresses.first).to_not be_persisted
1014
1014
  end
1015
1015
 
1016
1016
  context "when saving the parent" do
@@ -1021,7 +1021,7 @@ describe Mongoid::NestedAttributes do
1021
1021
  end
1022
1022
 
1023
1023
  it "saves the child documents" do
1024
- person.addresses.first.should be_persisted
1024
+ expect(person.addresses.first).to be_persisted
1025
1025
  end
1026
1026
  end
1027
1027
  end
@@ -1039,22 +1039,14 @@ describe Mongoid::NestedAttributes do
1039
1039
  Address.new(street: "Kurfeurstendamm")
1040
1040
  end
1041
1041
 
1042
- let(:phone_one) do
1043
- ParanoidPhone.new(number: "1")
1044
- end
1045
-
1046
- let(:phone_two) do
1047
- ParanoidPhone.new(number: "2")
1048
- end
1049
-
1050
1042
  context "when a limit is specified" do
1051
1043
 
1052
- before(:all) do
1044
+ before do
1053
1045
  Person.send(:undef_method, :addresses_attributes=)
1054
1046
  Person.accepts_nested_attributes_for :addresses, limit: 2
1055
1047
  end
1056
1048
 
1057
- after(:all) do
1049
+ after do
1058
1050
  Person.send(:undef_method, :addresses_attributes=)
1059
1051
  Person.accepts_nested_attributes_for :addresses
1060
1052
  end
@@ -1090,7 +1082,7 @@ describe Mongoid::NestedAttributes do
1090
1082
  end
1091
1083
 
1092
1084
  it "sets the documents on the relation" do
1093
- person.addresses.size.should eq(2)
1085
+ expect(person.addresses.size).to eq(2)
1094
1086
  end
1095
1087
  end
1096
1088
 
@@ -1108,17 +1100,17 @@ describe Mongoid::NestedAttributes do
1108
1100
  end
1109
1101
 
1110
1102
  it "sets the documents on the relation" do
1111
- person.addresses.size.should eq(2)
1103
+ expect(person.addresses.size).to eq(2)
1112
1104
  end
1113
1105
  end
1114
1106
 
1115
1107
  context "when cascading callbacks" do
1116
1108
 
1117
- before(:all) do
1109
+ before do
1118
1110
  Band.accepts_nested_attributes_for :records
1119
1111
  end
1120
1112
 
1121
- after(:all) do
1113
+ after do
1122
1114
  Band.send(:undef_method, :records_attributes=)
1123
1115
  end
1124
1116
 
@@ -1144,11 +1136,11 @@ describe Mongoid::NestedAttributes do
1144
1136
  end
1145
1137
 
1146
1138
  it "runs the first child create callbacks" do
1147
- band.records.first.before_create_called.should be_true
1139
+ expect(band.records.first.before_create_called).to be true
1148
1140
  end
1149
1141
 
1150
1142
  it "runs the last child create callbacks" do
1151
- band.records.last.before_create_called.should be_true
1143
+ expect(band.records.last.before_create_called).to be true
1152
1144
  end
1153
1145
  end
1154
1146
  end
@@ -1173,15 +1165,15 @@ describe Mongoid::NestedAttributes do
1173
1165
  end
1174
1166
 
1175
1167
  it "updates the first existing document" do
1176
- person.addresses.first.street.should eq("Maybachufer")
1168
+ expect(person.addresses.first.street).to eq("Maybachufer")
1177
1169
  end
1178
1170
 
1179
1171
  it "updates the second existing document" do
1180
- person.addresses.second.street.should eq("Alexander Platz")
1172
+ expect(person.addresses.second.street).to eq("Alexander Platz")
1181
1173
  end
1182
1174
 
1183
1175
  it "does not add new documents" do
1184
- person.addresses.size.should eq(2)
1176
+ expect(person.addresses.size).to eq(2)
1185
1177
  end
1186
1178
  end
1187
1179
 
@@ -1198,15 +1190,15 @@ describe Mongoid::NestedAttributes do
1198
1190
  end
1199
1191
 
1200
1192
  it "updates the first existing document" do
1201
- person.addresses.collect { |a| a['street'] }.should include('Maybachufer')
1193
+ expect(person.addresses.collect { |a| a['street'] }).to include('Maybachufer')
1202
1194
  end
1203
1195
 
1204
1196
  it "updates the second existing document" do
1205
- person.addresses.collect { |a| a['street'] }.should include('Alexander Platz')
1197
+ expect(person.addresses.collect { |a| a['street'] }).to include('Alexander Platz')
1206
1198
  end
1207
1199
 
1208
1200
  it "does not add new documents" do
1209
- person.addresses.size.should eq(2)
1201
+ expect(person.addresses.size).to eq(2)
1210
1202
  end
1211
1203
  end
1212
1204
 
@@ -1221,15 +1213,15 @@ describe Mongoid::NestedAttributes do
1221
1213
  end
1222
1214
 
1223
1215
  it "updates the first existing document" do
1224
- person.addresses.collect { |a| a['street'] }.should include('Maybachufer')
1216
+ expect(person.addresses.collect { |a| a['street'] }).to include('Maybachufer')
1225
1217
  end
1226
1218
 
1227
1219
  it "updates the second existing document" do
1228
- person.addresses.collect { |a| a['street'] }.should include('Alexander Platz')
1220
+ expect(person.addresses.collect { |a| a['street'] }).to include('Alexander Platz')
1229
1221
  end
1230
1222
 
1231
1223
  it "does not add new documents" do
1232
- person.addresses.size.should eq(2)
1224
+ expect(person.addresses.size).to eq(2)
1233
1225
  end
1234
1226
  end
1235
1227
  end
@@ -1245,15 +1237,15 @@ describe Mongoid::NestedAttributes do
1245
1237
  end
1246
1238
 
1247
1239
  it "updates the first existing document" do
1248
- person.addresses.collect { |a| a['street'] }.should include('Maybachufer')
1240
+ expect(person.addresses.collect { |a| a['street'] }).to include('Maybachufer')
1249
1241
  end
1250
1242
 
1251
1243
  it "updates the second existing document" do
1252
- person.addresses.collect { |a| a['street'] }.should include('Alexander Platz')
1244
+ expect(person.addresses.collect { |a| a['street'] }).to include('Alexander Platz')
1253
1245
  end
1254
1246
 
1255
1247
  it "does not add new documents" do
1256
- person.addresses.size.should eq(2)
1248
+ expect(person.addresses.size).to eq(2)
1257
1249
  end
1258
1250
  end
1259
1251
 
@@ -1268,15 +1260,15 @@ describe Mongoid::NestedAttributes do
1268
1260
  end
1269
1261
 
1270
1262
  it "updates the first existing document" do
1271
- person.addresses.collect { |a| a['street'] }.should include('Maybachufer')
1263
+ expect(person.addresses.collect { |a| a['street'] }).to include('Maybachufer')
1272
1264
  end
1273
1265
 
1274
1266
  it "updates the second existing document" do
1275
- person.addresses.collect { |a| a['street'] }.should include('Alexander Platz')
1267
+ expect(person.addresses.collect { |a| a['street'] }).to include('Alexander Platz')
1276
1268
  end
1277
1269
 
1278
1270
  it "does not add new documents" do
1279
- person.addresses.size.should eq(2)
1271
+ expect(person.addresses.size).to eq(2)
1280
1272
  end
1281
1273
  end
1282
1274
 
@@ -1291,15 +1283,15 @@ describe Mongoid::NestedAttributes do
1291
1283
  end
1292
1284
 
1293
1285
  it "updates the first existing document" do
1294
- person.addresses.collect { |a| a['street'] }.should include('Maybachufer')
1286
+ expect(person.addresses.collect { |a| a['street'] }).to include('Maybachufer')
1295
1287
  end
1296
1288
 
1297
1289
  it "updates the second existing document" do
1298
- person.addresses.collect { |a| a['street'] }.should include('Alexander Platz')
1290
+ expect(person.addresses.collect { |a| a['street'] }).to include('Alexander Platz')
1299
1291
  end
1300
1292
 
1301
1293
  it "does not add new documents" do
1302
- person.addresses.size.should eq(2)
1294
+ expect(person.addresses.size).to eq(2)
1303
1295
  end
1304
1296
  end
1305
1297
 
@@ -1322,18 +1314,13 @@ describe Mongoid::NestedAttributes do
1322
1314
 
1323
1315
  context "when the parent validation failed" do
1324
1316
 
1325
- before(:all) do
1326
- Band.validates_presence_of :name
1327
- Band.accepts_nested_attributes_for :records, :allow_destroy => true
1328
- end
1329
-
1330
- after(:all) do
1331
- Band.send(:undef_method, :records_attributes=)
1332
- Band.reset_callbacks(:validate)
1317
+ class BandWithAllowDestroyedRecords < Band
1318
+ validates_presence_of :name
1319
+ accepts_nested_attributes_for :records, :allow_destroy => true
1333
1320
  end
1334
1321
 
1335
1322
  let!(:band) do
1336
- Band.create(name: "Depeche Mode")
1323
+ BandWithAllowDestroyedRecords.create(name: "Depeche Mode")
1337
1324
  end
1338
1325
 
1339
1326
  let!(:record) do
@@ -1352,25 +1339,25 @@ describe Mongoid::NestedAttributes do
1352
1339
  end
1353
1340
 
1354
1341
  it "does not remove the child document" do
1355
- band.records.should_not be_empty
1342
+ expect(band.records).to_not be_empty
1356
1343
  end
1357
1344
 
1358
1345
  it "keeps the child flagged for destruction" do
1359
- record.should be_flagged_for_destroy
1346
+ expect(record).to be_flagged_for_destroy
1360
1347
  end
1361
1348
 
1362
1349
  it "does not persist any change" do
1363
- band.reload.records.should eq([ record ])
1350
+ expect(band.reload.records).to eq([ record ])
1364
1351
  end
1365
1352
  end
1366
1353
 
1367
1354
  context "when the child accesses the parent after destroy" do
1368
1355
 
1369
- before(:all) do
1356
+ before do
1370
1357
  Band.accepts_nested_attributes_for :records, :allow_destroy => true
1371
1358
  end
1372
1359
 
1373
- after(:all) do
1360
+ after do
1374
1361
  Band.send(:undef_method, :records_attributes=)
1375
1362
  end
1376
1363
 
@@ -1389,21 +1376,21 @@ describe Mongoid::NestedAttributes do
1389
1376
  end
1390
1377
 
1391
1378
  it "deletes the child document" do
1392
- band.records.should be_empty
1379
+ expect(band.records).to be_empty
1393
1380
  end
1394
1381
 
1395
1382
  it "persists the changes" do
1396
- band.reload.records.should be_empty
1383
+ expect(band.reload.records).to be_empty
1397
1384
  end
1398
1385
  end
1399
1386
 
1400
1387
  context "when the child has defaults" do
1401
1388
 
1402
- before(:all) do
1389
+ before do
1403
1390
  Person.accepts_nested_attributes_for :appointments, allow_destroy: true
1404
1391
  end
1405
1392
 
1406
- after(:all) do
1393
+ after do
1407
1394
  Person.send(:undef_method, :appointments_attributes=)
1408
1395
  end
1409
1396
 
@@ -1415,31 +1402,6 @@ describe Mongoid::NestedAttributes do
1415
1402
 
1416
1403
  context "when the child returns false in a before callback" do
1417
1404
 
1418
- context "when the child is paranoid" do
1419
-
1420
- before(:all) do
1421
- Person.accepts_nested_attributes_for :paranoid_phones, allow_destroy: true
1422
- end
1423
-
1424
- after(:all) do
1425
- Person.send(:undef_method, :paranoid_phones=)
1426
- Person.accepts_nested_attributes_for :paranoid_phones
1427
- end
1428
-
1429
- let!(:phone) do
1430
- persisted.paranoid_phones.create
1431
- end
1432
-
1433
- before do
1434
- persisted.paranoid_phones_attributes =
1435
- { "foo" => { "id" => phone.id, "number" => 42, "_destroy" => true }}
1436
- end
1437
-
1438
- it "does not destroy the child" do
1439
- persisted.reload.paranoid_phones.should_not be_empty
1440
- end
1441
- end
1442
-
1443
1405
  context "when the child is not paranoid" do
1444
1406
 
1445
1407
  let(:actor) do
@@ -1457,7 +1419,7 @@ describe Mongoid::NestedAttributes do
1457
1419
  end
1458
1420
 
1459
1421
  it "does not destroy the child" do
1460
- actor.reload.things.should_not be_empty
1422
+ expect(actor.reload.things).to_not be_empty
1461
1423
  end
1462
1424
  end
1463
1425
  end
@@ -1490,11 +1452,11 @@ describe Mongoid::NestedAttributes do
1490
1452
  end
1491
1453
 
1492
1454
  it "destroys both children" do
1493
- from_db.appointments.should be_empty
1455
+ expect(from_db.appointments).to be_empty
1494
1456
  end
1495
1457
 
1496
1458
  it "persists the deletes" do
1497
- from_db.reload.appointments.should be_empty
1459
+ expect(from_db.reload.appointments).to be_empty
1498
1460
  end
1499
1461
  end
1500
1462
  end
@@ -1503,12 +1465,12 @@ describe Mongoid::NestedAttributes do
1503
1465
 
1504
1466
  context "when the child is not paranoid" do
1505
1467
 
1506
- before(:all) do
1468
+ before do
1507
1469
  Person.send(:undef_method, :addresses_attributes=)
1508
1470
  Person.accepts_nested_attributes_for :addresses, allow_destroy: true
1509
1471
  end
1510
1472
 
1511
- after(:all) do
1473
+ after do
1512
1474
  Person.send(:undef_method, :addresses_attributes=)
1513
1475
  Person.accepts_nested_attributes_for :addresses
1514
1476
  end
@@ -1530,11 +1492,11 @@ describe Mongoid::NestedAttributes do
1530
1492
  end
1531
1493
 
1532
1494
  it "deletes the marked document" do
1533
- person.addresses.size.should eq(1)
1495
+ expect(person.addresses.size).to eq(1)
1534
1496
  end
1535
1497
 
1536
1498
  it "does not delete the unmarked document" do
1537
- person.addresses.first.street.should eq("Alexander Platz")
1499
+ expect(person.addresses.first.street).to eq("Alexander Platz")
1538
1500
  end
1539
1501
  end
1540
1502
 
@@ -1549,11 +1511,11 @@ describe Mongoid::NestedAttributes do
1549
1511
  end
1550
1512
 
1551
1513
  it "deletes the marked document" do
1552
- person.addresses.size.should eq(1)
1514
+ expect(person.addresses.size).to eq(1)
1553
1515
  end
1554
1516
 
1555
1517
  it "does not delete the unmarked document" do
1556
- person.addresses.first.street.should eq("Alexander Platz")
1518
+ expect(person.addresses.first.street).to eq("Alexander Platz")
1557
1519
  end
1558
1520
  end
1559
1521
  end
@@ -1578,51 +1540,51 @@ describe Mongoid::NestedAttributes do
1578
1540
  end
1579
1541
 
1580
1542
  it "does not remove the first document from the relation" do
1581
- persisted.addresses.size.should eq(3)
1543
+ expect(persisted.addresses.size).to eq(3)
1582
1544
  end
1583
1545
 
1584
1546
  it "flags the destroyed document for removal" do
1585
- address_one.should be_marked_for_destruction
1547
+ expect(address_one).to be_marked_for_destruction
1586
1548
  end
1587
1549
 
1588
1550
  it "does not delete the unmarked document" do
1589
- persisted.addresses.second.street.should eq(
1551
+ expect(persisted.addresses.second.street).to eq(
1590
1552
  "Alexander Platz"
1591
1553
  )
1592
1554
  end
1593
1555
 
1594
1556
  it "adds the new document to the relation" do
1595
- persisted.addresses.last.street.should eq(
1557
+ expect(persisted.addresses.last.street).to eq(
1596
1558
  "Potsdammer Platz"
1597
1559
  )
1598
1560
  end
1599
1561
 
1600
1562
  it "has the proper persisted count" do
1601
- persisted.addresses.count.should eq(2)
1563
+ expect(persisted.addresses.count).to eq(2)
1602
1564
  end
1603
1565
 
1604
1566
  it "does not delete the removed document" do
1605
- address_one.should_not be_destroyed
1567
+ expect(address_one).to_not be_destroyed
1606
1568
  end
1607
1569
 
1608
1570
  context "when saving the parent" do
1609
1571
 
1610
1572
  before do
1611
- persisted.with(safe: true).save
1573
+ persisted.save
1612
1574
  end
1613
1575
 
1614
1576
  it "deletes the marked document from the relation" do
1615
- persisted.reload.addresses.count.should eq(2)
1577
+ expect(persisted.reload.addresses.count).to eq(2)
1616
1578
  end
1617
1579
 
1618
1580
  it "does not delete the unmarked document" do
1619
- persisted.reload.addresses.first.street.should eq(
1581
+ expect(persisted.reload.addresses.first.street).to eq(
1620
1582
  "Alexander Platz"
1621
1583
  )
1622
1584
  end
1623
1585
 
1624
1586
  it "persists the new document to the relation" do
1625
- persisted.reload.addresses.last.street.should eq(
1587
+ expect(persisted.reload.addresses.last.street).to eq(
1626
1588
  "Potsdammer Platz"
1627
1589
  )
1628
1590
  end
@@ -1640,39 +1602,39 @@ describe Mongoid::NestedAttributes do
1640
1602
  end
1641
1603
 
1642
1604
  it "does not remove the first document from the relation" do
1643
- persisted.addresses.size.should eq(3)
1605
+ expect(persisted.addresses.size).to eq(3)
1644
1606
  end
1645
1607
 
1646
1608
  it "marks the first document for destruction" do
1647
- address_one.should be_marked_for_destruction
1609
+ expect(address_one).to be_marked_for_destruction
1648
1610
  end
1649
1611
 
1650
1612
  it "adds the new document to the relation" do
1651
- persisted.addresses.last.street.should eq(
1613
+ expect(persisted.addresses.last.street).to eq(
1652
1614
  "Potsdammer Platz"
1653
1615
  )
1654
1616
  end
1655
1617
 
1656
1618
  it "has the proper persisted count" do
1657
- persisted.addresses.count.should eq(2)
1619
+ expect(persisted.addresses.count).to eq(2)
1658
1620
  end
1659
1621
 
1660
1622
  it "does not delete the removed document" do
1661
- address_one.should_not be_destroyed
1623
+ expect(address_one).to_not be_destroyed
1662
1624
  end
1663
1625
 
1664
1626
  context "when saving the parent" do
1665
1627
 
1666
1628
  before do
1667
- persisted.with(safe: true).save
1629
+ persisted.save
1668
1630
  end
1669
1631
 
1670
1632
  it "deletes the marked document from the relation" do
1671
- persisted.reload.addresses.count.should eq(2)
1633
+ expect(persisted.reload.addresses.count).to eq(2)
1672
1634
  end
1673
1635
 
1674
1636
  it "persists the new document to the relation" do
1675
- persisted.reload.addresses.last.street.should eq(
1637
+ expect(persisted.reload.addresses.last.street).to eq(
1676
1638
  "Potsdammer Platz"
1677
1639
  )
1678
1640
  end
@@ -1695,91 +1657,11 @@ describe Mongoid::NestedAttributes do
1695
1657
  end
1696
1658
 
1697
1659
  it "does not delete the marked document" do
1698
- person.addresses.size.should eq(2)
1660
+ expect(person.addresses.size).to eq(2)
1699
1661
  end
1700
1662
 
1701
1663
  it "does not delete the unmarked document" do
1702
- person.addresses.last.street.should eq("Alexander Platz")
1703
- end
1704
- end
1705
- end
1706
- end
1707
-
1708
- context "when the child is paranoid" do
1709
-
1710
- before(:all) do
1711
- Person.send(:undef_method, :paranoid_phones_attributes=)
1712
- Person.accepts_nested_attributes_for :paranoid_phones,
1713
- allow_destroy: true
1714
- end
1715
-
1716
- after(:all) do
1717
- Person.send(:undef_method, :paranoid_phones_attributes=)
1718
- Person.accepts_nested_attributes_for :paranoid_phones
1719
- end
1720
-
1721
- [ 1, "1", true, "true" ].each do |truth|
1722
-
1723
- context "when passed a #{truth} with destroy" do
1724
-
1725
- context "when the parent is persisted" do
1726
-
1727
- let!(:persisted) do
1728
- Person.create do |p|
1729
- p.paranoid_phones << [ phone_one, phone_two ]
1730
- end
1731
- end
1732
-
1733
- context "when setting, pulling, and pushing in one op" do
1734
-
1735
- before do
1736
- persisted.paranoid_phones_attributes =
1737
- {
1738
- "bar" => { "id" => phone_one.id, "_destroy" => truth },
1739
- "foo" => { "id" => phone_two.id, "number" => "3" },
1740
- "baz" => { "number" => "4" }
1741
- }
1742
- end
1743
-
1744
- it "removes the first document from the relation" do
1745
- persisted.paranoid_phones.size.should eq(2)
1746
- end
1747
-
1748
- it "does not delete the unmarked document" do
1749
- persisted.paranoid_phones.first.number.should eq("3")
1750
- end
1751
-
1752
- it "adds the new document to the relation" do
1753
- persisted.paranoid_phones.last.number.should eq("4")
1754
- end
1755
-
1756
- it "has the proper persisted count" do
1757
- persisted.paranoid_phones.count.should eq(1)
1758
- end
1759
-
1760
- it "soft deletes the removed document" do
1761
- phone_one.should be_destroyed
1762
- end
1763
-
1764
- context "when saving the parent" do
1765
-
1766
- before do
1767
- persisted.with(safe: true).save
1768
- end
1769
-
1770
- it "deletes the marked document from the relation" do
1771
- persisted.reload.paranoid_phones.count.should eq(2)
1772
- end
1773
-
1774
- it "does not delete the unmarked document" do
1775
- persisted.reload.paranoid_phones.first.number.should eq("3")
1776
- end
1777
-
1778
- it "persists the new document to the relation" do
1779
- persisted.reload.paranoid_phones.last.number.should eq("4")
1780
- end
1781
- end
1782
- end
1664
+ expect(person.addresses.last.street).to eq("Alexander Platz")
1783
1665
  end
1784
1666
  end
1785
1667
  end
@@ -1788,12 +1670,12 @@ describe Mongoid::NestedAttributes do
1788
1670
 
1789
1671
  context "when allow_destroy is false" do
1790
1672
 
1791
- before(:all) do
1673
+ before do
1792
1674
  Person.send(:undef_method, :addresses_attributes=)
1793
1675
  Person.accepts_nested_attributes_for :addresses, allow_destroy: false
1794
1676
  end
1795
1677
 
1796
- after(:all) do
1678
+ after do
1797
1679
  Person.send(:undef_method, :addresses_attributes=)
1798
1680
  Person.accepts_nested_attributes_for :addresses
1799
1681
  end
@@ -1812,15 +1694,15 @@ describe Mongoid::NestedAttributes do
1812
1694
  end
1813
1695
 
1814
1696
  it "does not ignore the marked document" do
1815
- person.addresses.first.street.should eq("Maybachufer")
1697
+ expect(person.addresses.first.street).to eq("Maybachufer")
1816
1698
  end
1817
1699
 
1818
1700
  it "does not delete the unmarked document" do
1819
- person.addresses.last.street.should eq("Alexander Platz")
1701
+ expect(person.addresses.last.street).to eq("Alexander Platz")
1820
1702
  end
1821
1703
 
1822
1704
  it "does not add additional documents" do
1823
- person.addresses.size.should eq(2)
1705
+ expect(person.addresses.size).to eq(2)
1824
1706
  end
1825
1707
  end
1826
1708
  end
@@ -1838,11 +1720,11 @@ describe Mongoid::NestedAttributes do
1838
1720
  end
1839
1721
 
1840
1722
  it "does not delete the marked document" do
1841
- person.addresses.size.should eq(2)
1723
+ expect(person.addresses.size).to eq(2)
1842
1724
  end
1843
1725
 
1844
1726
  it "does not delete the unmarked document" do
1845
- person.addresses.last.street.should eq("Alexander Platz")
1727
+ expect(person.addresses.last.street).to eq("Alexander Platz")
1846
1728
  end
1847
1729
  end
1848
1730
  end
@@ -1850,7 +1732,7 @@ describe Mongoid::NestedAttributes do
1850
1732
 
1851
1733
  context "when allow_destroy is undefined" do
1852
1734
 
1853
- before(:all) do
1735
+ before do
1854
1736
  Person.send(:undef_method, :addresses_attributes=)
1855
1737
  Person.accepts_nested_attributes_for :addresses
1856
1738
  end
@@ -1869,15 +1751,15 @@ describe Mongoid::NestedAttributes do
1869
1751
  end
1870
1752
 
1871
1753
  it "does not ignore the marked document" do
1872
- person.addresses.first.street.should eq("Maybachufer")
1754
+ expect(person.addresses.first.street).to eq("Maybachufer")
1873
1755
  end
1874
1756
 
1875
1757
  it "does not delete the unmarked document" do
1876
- person.addresses.last.street.should eq("Alexander Platz")
1758
+ expect(person.addresses.last.street).to eq("Alexander Platz")
1877
1759
  end
1878
1760
 
1879
1761
  it "does not add additional documents" do
1880
- person.addresses.size.should eq(2)
1762
+ expect(person.addresses.size).to eq(2)
1881
1763
  end
1882
1764
  end
1883
1765
  end
@@ -1895,11 +1777,11 @@ describe Mongoid::NestedAttributes do
1895
1777
  end
1896
1778
 
1897
1779
  it "does not delete the marked document" do
1898
- person.addresses.size.should eq(2)
1780
+ expect(person.addresses.size).to eq(2)
1899
1781
  end
1900
1782
 
1901
1783
  it "does not delete the unmarked document" do
1902
- person.addresses.last.street.should eq("Alexander Platz")
1784
+ expect(person.addresses.last.street).to eq("Alexander Platz")
1903
1785
  end
1904
1786
  end
1905
1787
  end
@@ -1922,23 +1804,23 @@ describe Mongoid::NestedAttributes do
1922
1804
  end
1923
1805
 
1924
1806
  it "builds a new first document" do
1925
- person.addresses.first.street.should eq("Frederichstrasse")
1807
+ expect(person.addresses.first.street).to eq("Frederichstrasse")
1926
1808
  end
1927
1809
 
1928
1810
  it "builds a new second document" do
1929
- person.addresses.second.street.should eq("Alexander Platz")
1811
+ expect(person.addresses.second.street).to eq("Alexander Platz")
1930
1812
  end
1931
1813
 
1932
1814
  it "builds a new third document" do
1933
- person.addresses.third.street.should eq("Maybachufer")
1815
+ expect(person.addresses.third.street).to eq("Maybachufer")
1934
1816
  end
1935
1817
 
1936
1818
  it "does not add extra documents" do
1937
- person.addresses.size.should eq(3)
1819
+ expect(person.addresses.size).to eq(3)
1938
1820
  end
1939
1821
 
1940
1822
  it "adds the documents in the sorted hash key order" do
1941
- person.addresses.map(&:street).should eq(
1823
+ expect(person.addresses.map(&:street)).to eq(
1942
1824
  [ "Frederichstrasse", "Alexander Platz", "Maybachufer" ]
1943
1825
  )
1944
1826
  end
@@ -1946,13 +1828,13 @@ describe Mongoid::NestedAttributes do
1946
1828
 
1947
1829
  context "when a reject block is supplied" do
1948
1830
 
1949
- before(:all) do
1831
+ before do
1950
1832
  Person.send(:undef_method, :addresses_attributes=)
1951
1833
  Person.accepts_nested_attributes_for \
1952
1834
  :addresses, reject_if: ->(attrs){ attrs["street"].blank? }
1953
1835
  end
1954
1836
 
1955
- after(:all) do
1837
+ after do
1956
1838
  Person.send(:undef_method, :addresses_attributes=)
1957
1839
  Person.accepts_nested_attributes_for :addresses
1958
1840
  end
@@ -1965,7 +1847,7 @@ describe Mongoid::NestedAttributes do
1965
1847
  end
1966
1848
 
1967
1849
  it "does not add the new document" do
1968
- person.addresses.should be_empty
1850
+ expect(person.addresses).to be_empty
1969
1851
  end
1970
1852
  end
1971
1853
 
@@ -1977,24 +1859,24 @@ describe Mongoid::NestedAttributes do
1977
1859
  end
1978
1860
 
1979
1861
  it "adds the new document" do
1980
- person.addresses.size.should eq(1)
1862
+ expect(person.addresses.size).to eq(1)
1981
1863
  end
1982
1864
 
1983
1865
  it "sets the correct attributes" do
1984
- person.addresses.first.street.should eq("Maybachufer")
1866
+ expect(person.addresses.first.street).to eq("Maybachufer")
1985
1867
  end
1986
1868
  end
1987
1869
  end
1988
1870
 
1989
1871
  context "when :reject_if => :all_blank is supplied" do
1990
1872
 
1991
- before(:all) do
1873
+ before do
1992
1874
  Person.send(:undef_method, :addresses_attributes=)
1993
1875
  Person.accepts_nested_attributes_for \
1994
1876
  :addresses, reject_if: :all_blank
1995
1877
  end
1996
1878
 
1997
- after(:all) do
1879
+ after do
1998
1880
  Person.send(:undef_method, :addresses_attributes=)
1999
1881
  Person.accepts_nested_attributes_for :addresses
2000
1882
  end
@@ -2007,7 +1889,7 @@ describe Mongoid::NestedAttributes do
2007
1889
  end
2008
1890
 
2009
1891
  it "does not add the new document" do
2010
- person.addresses.should be_empty
1892
+ expect(person.addresses).to be_empty
2011
1893
  end
2012
1894
  end
2013
1895
 
@@ -2019,11 +1901,11 @@ describe Mongoid::NestedAttributes do
2019
1901
  end
2020
1902
 
2021
1903
  it "adds the new document" do
2022
- person.addresses.size.should eq(1)
1904
+ expect(person.addresses.size).to eq(1)
2023
1905
  end
2024
1906
 
2025
1907
  it "sets the correct attributes" do
2026
- person.addresses.first.street.should eq("Maybachufer")
1908
+ expect(person.addresses.first.street).to eq("Maybachufer")
2027
1909
  end
2028
1910
  end
2029
1911
  end
@@ -2032,12 +1914,12 @@ describe Mongoid::NestedAttributes do
2032
1914
 
2033
1915
  context "when allow_destroy is true" do
2034
1916
 
2035
- before(:all) do
1917
+ before do
2036
1918
  Person.send(:undef_method, :addresses_attributes=)
2037
1919
  Person.accepts_nested_attributes_for :addresses, allow_destroy: true
2038
1920
  end
2039
1921
 
2040
- after(:all) do
1922
+ after do
2041
1923
  Person.send(:undef_method, :addresses_attributes=)
2042
1924
  Person.accepts_nested_attributes_for :addresses
2043
1925
  end
@@ -2055,11 +1937,11 @@ describe Mongoid::NestedAttributes do
2055
1937
  end
2056
1938
 
2057
1939
  it "ignores the the marked document" do
2058
- person.addresses.size.should eq(1)
1940
+ expect(person.addresses.size).to eq(1)
2059
1941
  end
2060
1942
 
2061
1943
  it "adds the new unmarked document" do
2062
- person.addresses.first.street.should eq("Alexander Platz")
1944
+ expect(person.addresses.first.street).to eq("Alexander Platz")
2063
1945
  end
2064
1946
  end
2065
1947
  end
@@ -2077,15 +1959,15 @@ describe Mongoid::NestedAttributes do
2077
1959
  end
2078
1960
 
2079
1961
  it "adds the new marked document" do
2080
- person.addresses.first.street.should eq("Maybachufer")
1962
+ expect(person.addresses.first.street).to eq("Maybachufer")
2081
1963
  end
2082
1964
 
2083
1965
  it "adds the new unmarked document" do
2084
- person.addresses.last.street.should eq("Alexander Platz")
1966
+ expect(person.addresses.last.street).to eq("Alexander Platz")
2085
1967
  end
2086
1968
 
2087
1969
  it "does not add extra documents" do
2088
- person.addresses.size.should eq(2)
1970
+ expect(person.addresses.size).to eq(2)
2089
1971
  end
2090
1972
  end
2091
1973
  end
@@ -2093,12 +1975,12 @@ describe Mongoid::NestedAttributes do
2093
1975
 
2094
1976
  context "when allow destroy is false" do
2095
1977
 
2096
- before(:all) do
1978
+ before do
2097
1979
  Person.send(:undef_method, :addresses_attributes=)
2098
1980
  Person.accepts_nested_attributes_for :addresses, allow_destroy: false
2099
1981
  end
2100
1982
 
2101
- after(:all) do
1983
+ after do
2102
1984
  Person.send(:undef_method, :addresses_attributes=)
2103
1985
  Person.accepts_nested_attributes_for :addresses
2104
1986
  end
@@ -2116,15 +1998,15 @@ describe Mongoid::NestedAttributes do
2116
1998
  end
2117
1999
 
2118
2000
  it "adds the the marked document" do
2119
- person.addresses.first.street.should eq("Maybachufer")
2001
+ expect(person.addresses.first.street).to eq("Maybachufer")
2120
2002
  end
2121
2003
 
2122
2004
  it "adds the new unmarked document" do
2123
- person.addresses.last.street.should eq("Alexander Platz")
2005
+ expect(person.addresses.last.street).to eq("Alexander Platz")
2124
2006
  end
2125
2007
 
2126
2008
  it "adds the correct number of documents" do
2127
- person.addresses.size.should eq(2)
2009
+ expect(person.addresses.size).to eq(2)
2128
2010
  end
2129
2011
  end
2130
2012
  end
@@ -2142,15 +2024,15 @@ describe Mongoid::NestedAttributes do
2142
2024
  end
2143
2025
 
2144
2026
  it "adds the new marked document" do
2145
- person.addresses.first.street.should eq("Maybachufer")
2027
+ expect(person.addresses.first.street).to eq("Maybachufer")
2146
2028
  end
2147
2029
 
2148
2030
  it "adds the new unmarked document" do
2149
- person.addresses.last.street.should eq("Alexander Platz")
2031
+ expect(person.addresses.last.street).to eq("Alexander Platz")
2150
2032
  end
2151
2033
 
2152
2034
  it "does not add extra documents" do
2153
- person.addresses.size.should eq(2)
2035
+ expect(person.addresses.size).to eq(2)
2154
2036
  end
2155
2037
  end
2156
2038
  end
@@ -2158,7 +2040,7 @@ describe Mongoid::NestedAttributes do
2158
2040
 
2159
2041
  context "when allow destroy is not defined" do
2160
2042
 
2161
- before(:all) do
2043
+ before do
2162
2044
  Person.send(:undef_method, :addresses_attributes=)
2163
2045
  Person.accepts_nested_attributes_for :addresses
2164
2046
  end
@@ -2176,15 +2058,15 @@ describe Mongoid::NestedAttributes do
2176
2058
  end
2177
2059
 
2178
2060
  it "adds the the marked document" do
2179
- person.addresses.first.street.should eq("Maybachufer")
2061
+ expect(person.addresses.first.street).to eq("Maybachufer")
2180
2062
  end
2181
2063
 
2182
2064
  it "adds the new unmarked document" do
2183
- person.addresses.last.street.should eq("Alexander Platz")
2065
+ expect(person.addresses.last.street).to eq("Alexander Platz")
2184
2066
  end
2185
2067
 
2186
2068
  it "adds the correct number of documents" do
2187
- person.addresses.size.should eq(2)
2069
+ expect(person.addresses.size).to eq(2)
2188
2070
  end
2189
2071
  end
2190
2072
  end
@@ -2202,15 +2084,15 @@ describe Mongoid::NestedAttributes do
2202
2084
  end
2203
2085
 
2204
2086
  it "adds the new marked document" do
2205
- person.addresses.first.street.should eq("Maybachufer")
2087
+ expect(person.addresses.first.street).to eq("Maybachufer")
2206
2088
  end
2207
2089
 
2208
2090
  it "adds the new unmarked document" do
2209
- person.addresses.last.street.should eq("Alexander Platz")
2091
+ expect(person.addresses.last.street).to eq("Alexander Platz")
2210
2092
  end
2211
2093
 
2212
2094
  it "does not add extra documents" do
2213
- person.addresses.size.should eq(2)
2095
+ expect(person.addresses.size).to eq(2)
2214
2096
  end
2215
2097
  end
2216
2098
  end
@@ -2219,13 +2101,13 @@ describe Mongoid::NestedAttributes do
2219
2101
 
2220
2102
  context "when 'reject_if: :all_blank' and 'allow_destroy: true' are specified" do
2221
2103
 
2222
- before(:all) do
2104
+ before do
2223
2105
  Person.send(:undef_method, :addresses_attributes=)
2224
2106
  Person.accepts_nested_attributes_for \
2225
2107
  :addresses, reject_if: :all_blank, allow_destroy: true
2226
2108
  end
2227
2109
 
2228
- after(:all) do
2110
+ after do
2229
2111
  Person.send(:undef_method, :addresses_attributes=)
2230
2112
  Person.accepts_nested_attributes_for :addresses
2231
2113
  end
@@ -2238,7 +2120,7 @@ describe Mongoid::NestedAttributes do
2238
2120
  end
2239
2121
 
2240
2122
  it "does not add the document" do
2241
- person.addresses.should be_empty
2123
+ expect(person.addresses).to be_empty
2242
2124
  end
2243
2125
  end
2244
2126
  end
@@ -2246,11 +2128,11 @@ describe Mongoid::NestedAttributes do
2246
2128
 
2247
2129
  context "when the nested document is invalid" do
2248
2130
 
2249
- before(:all) do
2131
+ before do
2250
2132
  Person.validates_associated(:addresses)
2251
2133
  end
2252
2134
 
2253
- after(:all) do
2135
+ after do
2254
2136
  Person.reset_callbacks(:validate)
2255
2137
  end
2256
2138
 
@@ -2261,8 +2143,8 @@ describe Mongoid::NestedAttributes do
2261
2143
  end
2262
2144
 
2263
2145
  it "propagates invalidity to parent" do
2264
- person.addresses.first.should_not be_valid
2265
- person.should_not be_valid
2146
+ expect(person.addresses.first).to_not be_valid
2147
+ expect(person).to_not be_valid
2266
2148
  end
2267
2149
  end
2268
2150
 
@@ -2283,7 +2165,7 @@ describe Mongoid::NestedAttributes do
2283
2165
  end
2284
2166
 
2285
2167
  it "instantiates an object of the given type" do
2286
- canvas.shapes.map(&:class).should eq([Square, Circle])
2168
+ expect(canvas.shapes.map(&:class)).to eq([Square, Circle])
2287
2169
  end
2288
2170
  end
2289
2171
  end
@@ -2296,13 +2178,13 @@ describe Mongoid::NestedAttributes do
2296
2178
 
2297
2179
  context "when a reject proc is specified" do
2298
2180
 
2299
- before(:all) do
2181
+ before do
2300
2182
  Person.send(:undef_method, :game_attributes=)
2301
2183
  Person.accepts_nested_attributes_for \
2302
2184
  :game, reject_if: ->(attrs){ attrs[:name].blank? }
2303
2185
  end
2304
2186
 
2305
- after(:all) do
2187
+ after do
2306
2188
  Person.send(:undef_method, :game_attributes=)
2307
2189
  Person.accepts_nested_attributes_for :game
2308
2190
  end
@@ -2314,7 +2196,7 @@ describe Mongoid::NestedAttributes do
2314
2196
  end
2315
2197
 
2316
2198
  it "does not add the document" do
2317
- person.game.should be_nil
2199
+ expect(person.game).to be_nil
2318
2200
  end
2319
2201
  end
2320
2202
 
@@ -2325,20 +2207,20 @@ describe Mongoid::NestedAttributes do
2325
2207
  end
2326
2208
 
2327
2209
  it "adds the document" do
2328
- person.game.name.should eq("Tron")
2210
+ expect(person.game.name).to eq("Tron")
2329
2211
  end
2330
2212
  end
2331
2213
  end
2332
2214
 
2333
2215
  context "when reject_if => :all_blank is specified" do
2334
2216
 
2335
- before(:all) do
2217
+ before do
2336
2218
  Person.send(:undef_method, :game_attributes=)
2337
2219
  Person.accepts_nested_attributes_for \
2338
2220
  :game, reject_if: :all_blank
2339
2221
  end
2340
2222
 
2341
- after(:all) do
2223
+ after do
2342
2224
  Person.send(:undef_method, :game_attributes=)
2343
2225
  Person.accepts_nested_attributes_for :game
2344
2226
  end
@@ -2350,7 +2232,7 @@ describe Mongoid::NestedAttributes do
2350
2232
  end
2351
2233
 
2352
2234
  it "does not add the document" do
2353
- person.game.should be_nil
2235
+ expect(person.game).to be_nil
2354
2236
  end
2355
2237
  end
2356
2238
 
@@ -2361,7 +2243,7 @@ describe Mongoid::NestedAttributes do
2361
2243
  end
2362
2244
 
2363
2245
  it "adds the document" do
2364
- person.game.name.should eq("Tron")
2246
+ expect(person.game.name).to eq("Tron")
2365
2247
  end
2366
2248
  end
2367
2249
  end
@@ -2375,7 +2257,7 @@ describe Mongoid::NestedAttributes do
2375
2257
  end
2376
2258
 
2377
2259
  it "builds a new document" do
2378
- person.game.name.should eq("Tron")
2260
+ expect(person.game.name).to eq("Tron")
2379
2261
  end
2380
2262
  end
2381
2263
 
@@ -2383,12 +2265,12 @@ describe Mongoid::NestedAttributes do
2383
2265
 
2384
2266
  context "when allow_destroy is true" do
2385
2267
 
2386
- before(:all) do
2268
+ before do
2387
2269
  Person.send(:undef_method, :game_attributes=)
2388
2270
  Person.accepts_nested_attributes_for :game, allow_destroy: true
2389
2271
  end
2390
2272
 
2391
- after(:all) do
2273
+ after do
2392
2274
  Person.send(:undef_method, :game_attributes=)
2393
2275
  Person.accepts_nested_attributes_for :game
2394
2276
  end
@@ -2398,18 +2280,18 @@ describe Mongoid::NestedAttributes do
2398
2280
  end
2399
2281
 
2400
2282
  it "does not build the document" do
2401
- person.game.should be_nil
2283
+ expect(person.game).to be_nil
2402
2284
  end
2403
2285
  end
2404
2286
 
2405
2287
  context "when allow_destroy is false" do
2406
2288
 
2407
- before(:all) do
2289
+ before do
2408
2290
  Person.send(:undef_method, :game_attributes=)
2409
2291
  Person.accepts_nested_attributes_for :game, allow_destroy: false
2410
2292
  end
2411
2293
 
2412
- after(:all) do
2294
+ after do
2413
2295
  Person.send(:undef_method, :game_attributes=)
2414
2296
  Person.accepts_nested_attributes_for :game
2415
2297
  end
@@ -2419,7 +2301,7 @@ describe Mongoid::NestedAttributes do
2419
2301
  end
2420
2302
 
2421
2303
  it "builds the document" do
2422
- person.game.name.should eq("Tron")
2304
+ expect(person.game.name).to eq("Tron")
2423
2305
  end
2424
2306
  end
2425
2307
  end
@@ -2431,7 +2313,7 @@ describe Mongoid::NestedAttributes do
2431
2313
  end
2432
2314
 
2433
2315
  it "does not build the document" do
2434
- person.game.should be_nil
2316
+ expect(person.game).to be_nil
2435
2317
  end
2436
2318
  end
2437
2319
 
@@ -2445,7 +2327,7 @@ describe Mongoid::NestedAttributes do
2445
2327
  end
2446
2328
 
2447
2329
  it "replaces the document" do
2448
- person.game.name.should eq("Pong")
2330
+ expect(person.game.name).to eq("Pong")
2449
2331
  end
2450
2332
  end
2451
2333
 
@@ -2461,7 +2343,7 @@ describe Mongoid::NestedAttributes do
2461
2343
  end
2462
2344
 
2463
2345
  it "persists the attribute changes" do
2464
- pizza.reload.topping.name.should eq("onions")
2346
+ expect(pizza.reload.topping.name).to eq("onions")
2465
2347
  end
2466
2348
  end
2467
2349
 
@@ -2469,12 +2351,12 @@ describe Mongoid::NestedAttributes do
2469
2351
 
2470
2352
  context "when allow_destroy is true" do
2471
2353
 
2472
- before(:all) do
2354
+ before do
2473
2355
  Person.send(:undef_method, :game_attributes=)
2474
2356
  Person.accepts_nested_attributes_for :game, allow_destroy: true
2475
2357
  end
2476
2358
 
2477
- after(:all) do
2359
+ after do
2478
2360
  Person.send(:undef_method, :game_attributes=)
2479
2361
  Person.accepts_nested_attributes_for :game
2480
2362
  end
@@ -2485,18 +2367,18 @@ describe Mongoid::NestedAttributes do
2485
2367
  end
2486
2368
 
2487
2369
  it "does not replace the document" do
2488
- person.game.name.should eq("Tron")
2370
+ expect(person.game.name).to eq("Tron")
2489
2371
  end
2490
2372
  end
2491
2373
 
2492
2374
  context "when allow_destroy is false" do
2493
2375
 
2494
- before(:all) do
2376
+ before do
2495
2377
  Person.send(:undef_method, :game_attributes=)
2496
2378
  Person.accepts_nested_attributes_for :game, allow_destroy: false
2497
2379
  end
2498
2380
 
2499
- after(:all) do
2381
+ after do
2500
2382
  Person.send(:undef_method, :game_attributes=)
2501
2383
  Person.accepts_nested_attributes_for :game
2502
2384
  end
@@ -2507,7 +2389,7 @@ describe Mongoid::NestedAttributes do
2507
2389
  end
2508
2390
 
2509
2391
  it "replaces the document" do
2510
- person.game.name.should eq("Pong")
2392
+ expect(person.game.name).to eq("Pong")
2511
2393
  end
2512
2394
  end
2513
2395
  end
@@ -2536,7 +2418,7 @@ describe Mongoid::NestedAttributes do
2536
2418
  end
2537
2419
 
2538
2420
  it "updates the existing document" do
2539
- person.game.name.should eq("Pong")
2421
+ expect(person.game.name).to eq("Pong")
2540
2422
  end
2541
2423
  end
2542
2424
 
@@ -2548,18 +2430,18 @@ describe Mongoid::NestedAttributes do
2548
2430
  end
2549
2431
 
2550
2432
  it "updates the existing document" do
2551
- person.game.name.should eq("Pong")
2433
+ expect(person.game.name).to eq("Pong")
2552
2434
  end
2553
2435
  end
2554
2436
 
2555
2437
  context "when allow_destroy is true" do
2556
2438
 
2557
- before(:all) do
2439
+ before do
2558
2440
  Person.send(:undef_method, :game_attributes=)
2559
2441
  Person.accepts_nested_attributes_for :game, allow_destroy: true
2560
2442
  end
2561
2443
 
2562
- after(:all) do
2444
+ after do
2563
2445
  Person.send(:undef_method, :game_attributes=)
2564
2446
  Person.accepts_nested_attributes_for :game
2565
2447
  end
@@ -2574,7 +2456,7 @@ describe Mongoid::NestedAttributes do
2574
2456
  end
2575
2457
 
2576
2458
  it "destroys the existing document" do
2577
- person.game.should be_nil
2459
+ expect(person.game).to be_nil
2578
2460
  end
2579
2461
  end
2580
2462
  end
@@ -2589,7 +2471,7 @@ describe Mongoid::NestedAttributes do
2589
2471
  end
2590
2472
 
2591
2473
  it "does not destroy the existing document" do
2592
- person.game.should eq(game)
2474
+ expect(person.game).to eq(game)
2593
2475
  end
2594
2476
  end
2595
2477
  end
@@ -2597,12 +2479,12 @@ describe Mongoid::NestedAttributes do
2597
2479
 
2598
2480
  context "when allow destroy is false" do
2599
2481
 
2600
- before(:all) do
2482
+ before do
2601
2483
  Person.send(:undef_method, :game_attributes=)
2602
2484
  Person.accepts_nested_attributes_for :game, allow_destroy: false
2603
2485
  end
2604
2486
 
2605
- after(:all) do
2487
+ after do
2606
2488
  Person.send(:undef_method, :game_attributes=)
2607
2489
  Person.accepts_nested_attributes_for :game
2608
2490
  end
@@ -2615,14 +2497,14 @@ describe Mongoid::NestedAttributes do
2615
2497
  end
2616
2498
 
2617
2499
  it "does not destroy the document" do
2618
- person.game.should eq(game)
2500
+ expect(person.game).to eq(game)
2619
2501
  end
2620
2502
  end
2621
2503
  end
2622
2504
 
2623
2505
  context "when update only is true" do
2624
2506
 
2625
- before(:all) do
2507
+ before do
2626
2508
  Person.send(:undef_method, :game_attributes=)
2627
2509
  Person.accepts_nested_attributes_for \
2628
2510
  :game,
@@ -2630,7 +2512,7 @@ describe Mongoid::NestedAttributes do
2630
2512
  allow_destroy: true
2631
2513
  end
2632
2514
 
2633
- after(:all) do
2515
+ after do
2634
2516
  Person.send(:undef_method, :game_attributes=)
2635
2517
  Person.accepts_nested_attributes_for :game
2636
2518
  end
@@ -2643,7 +2525,7 @@ describe Mongoid::NestedAttributes do
2643
2525
  end
2644
2526
 
2645
2527
  it "updates the existing document" do
2646
- person.game.name.should eq("Donkey Kong")
2528
+ expect(person.game.name).to eq("Donkey Kong")
2647
2529
  end
2648
2530
  end
2649
2531
 
@@ -2651,11 +2533,11 @@ describe Mongoid::NestedAttributes do
2651
2533
 
2652
2534
  before do
2653
2535
  person.game_attributes =
2654
- { id: Moped::BSON::ObjectId.new.to_s, name: "Pong" }
2536
+ { id: BSON::ObjectId.new.to_s, name: "Pong" }
2655
2537
  end
2656
2538
 
2657
2539
  it "updates the existing document" do
2658
- person.game.name.should eq("Pong")
2540
+ expect(person.game.name).to eq("Pong")
2659
2541
  end
2660
2542
  end
2661
2543
 
@@ -2667,7 +2549,7 @@ describe Mongoid::NestedAttributes do
2667
2549
  end
2668
2550
 
2669
2551
  it "destroys the existing document" do
2670
- person.game.should be_nil
2552
+ expect(person.game).to be_nil
2671
2553
  end
2672
2554
  end
2673
2555
  end
@@ -2677,11 +2559,11 @@ describe Mongoid::NestedAttributes do
2677
2559
 
2678
2560
  context "when the nested document is invalid" do
2679
2561
 
2680
- before(:all) do
2562
+ before do
2681
2563
  Person.validates_associated(:game)
2682
2564
  end
2683
2565
 
2684
- after(:all) do
2566
+ after do
2685
2567
  Person.reset_callbacks(:validate)
2686
2568
  end
2687
2569
 
@@ -2690,8 +2572,8 @@ describe Mongoid::NestedAttributes do
2690
2572
  end
2691
2573
 
2692
2574
  it "propagates invalidity to parent" do
2693
- person.game.should_not be_valid
2694
- person.should_not be_valid
2575
+ expect(person.game).to_not be_valid
2576
+ expect(person).to_not be_valid
2695
2577
  end
2696
2578
  end
2697
2579
 
@@ -2708,7 +2590,7 @@ describe Mongoid::NestedAttributes do
2708
2590
  end
2709
2591
 
2710
2592
  it "instantiates an object of the given type" do
2711
- driver.vehicle.class.should eq(Truck)
2593
+ expect(driver.vehicle.class).to eq(Truck)
2712
2594
  end
2713
2595
  end
2714
2596
  end
@@ -2730,7 +2612,7 @@ describe Mongoid::NestedAttributes do
2730
2612
  end
2731
2613
 
2732
2614
  it "builds a new document" do
2733
- game.person.title.should eq("Sir")
2615
+ expect(game.person.title).to eq("Sir")
2734
2616
  end
2735
2617
 
2736
2618
  end
@@ -2739,12 +2621,12 @@ describe Mongoid::NestedAttributes do
2739
2621
 
2740
2622
  context "when allow_destroy is true" do
2741
2623
 
2742
- before(:all) do
2624
+ before do
2743
2625
  Game.send(:undef_method, :person_attributes=)
2744
2626
  Game.accepts_nested_attributes_for :person, allow_destroy: true
2745
2627
  end
2746
2628
 
2747
- after(:all) do
2629
+ after do
2748
2630
  Game.send(:undef_method, :person_attributes=)
2749
2631
  Game.accepts_nested_attributes_for :person
2750
2632
  end
@@ -2754,18 +2636,18 @@ describe Mongoid::NestedAttributes do
2754
2636
  end
2755
2637
 
2756
2638
  it "does not build a new document" do
2757
- game.person.should be_nil
2639
+ expect(game.person).to be_nil
2758
2640
  end
2759
2641
  end
2760
2642
 
2761
2643
  context "when allow_destroy is false" do
2762
2644
 
2763
- before(:all) do
2645
+ before do
2764
2646
  Game.send(:undef_method, :person_attributes=)
2765
2647
  Game.accepts_nested_attributes_for :person, allow_destroy: false
2766
2648
  end
2767
2649
 
2768
- after(:all) do
2650
+ after do
2769
2651
  Game.send(:undef_method, :person_attributes=)
2770
2652
  Game.accepts_nested_attributes_for :person
2771
2653
  end
@@ -2775,7 +2657,7 @@ describe Mongoid::NestedAttributes do
2775
2657
  end
2776
2658
 
2777
2659
  it "builds a new document" do
2778
- game.person.title.should eq("Sir")
2660
+ expect(game.person.title).to eq("Sir")
2779
2661
  end
2780
2662
  end
2781
2663
  end
@@ -2796,7 +2678,7 @@ describe Mongoid::NestedAttributes do
2796
2678
  end
2797
2679
 
2798
2680
  it "updates the existing document" do
2799
- game.person.title.should eq("Sir")
2681
+ expect(game.person.title).to eq("Sir")
2800
2682
  end
2801
2683
  end
2802
2684
  end
@@ -2809,12 +2691,12 @@ describe Mongoid::NestedAttributes do
2809
2691
 
2810
2692
  context "when allow destroy is true" do
2811
2693
 
2812
- before(:all) do
2694
+ before do
2813
2695
  Game.send(:undef_method, :person_attributes=)
2814
2696
  Game.accepts_nested_attributes_for :person, allow_destroy: true
2815
2697
  end
2816
2698
 
2817
- after(:all) do
2699
+ after do
2818
2700
  Game.send(:undef_method, :person_attributes=)
2819
2701
  Game.accepts_nested_attributes_for :person
2820
2702
  end
@@ -2829,7 +2711,7 @@ describe Mongoid::NestedAttributes do
2829
2711
  end
2830
2712
 
2831
2713
  it "destroys the existing document" do
2832
- game.person.should be_nil
2714
+ expect(game.person).to be_nil
2833
2715
  end
2834
2716
  end
2835
2717
  end
@@ -2844,7 +2726,7 @@ describe Mongoid::NestedAttributes do
2844
2726
  end
2845
2727
 
2846
2728
  it "does not destroy the existing document" do
2847
- game.person.should eq(person)
2729
+ expect(game.person).to eq(person)
2848
2730
  end
2849
2731
  end
2850
2732
  end
@@ -2852,12 +2734,12 @@ describe Mongoid::NestedAttributes do
2852
2734
 
2853
2735
  context "when allow destroy is false" do
2854
2736
 
2855
- before(:all) do
2737
+ before do
2856
2738
  Game.send(:undef_method, :person_attributes=)
2857
2739
  Game.accepts_nested_attributes_for :person, allow_destroy: false
2858
2740
  end
2859
2741
 
2860
- after(:all) do
2742
+ after do
2861
2743
  Game.send(:undef_method, :person_attributes=)
2862
2744
  Game.accepts_nested_attributes_for :person
2863
2745
  end
@@ -2870,7 +2752,7 @@ describe Mongoid::NestedAttributes do
2870
2752
  end
2871
2753
 
2872
2754
  it "does not delete the document" do
2873
- game.person.should eq(person)
2755
+ expect(game.person).to eq(person)
2874
2756
  end
2875
2757
  end
2876
2758
  end
@@ -2893,7 +2775,7 @@ describe Mongoid::NestedAttributes do
2893
2775
  end
2894
2776
 
2895
2777
  it "updates the existing document" do
2896
- game.person.title.should eq("Madam")
2778
+ expect(game.person.title).to eq("Madam")
2897
2779
  end
2898
2780
  end
2899
2781
 
@@ -2901,11 +2783,11 @@ describe Mongoid::NestedAttributes do
2901
2783
 
2902
2784
  before do
2903
2785
  game.person_attributes =
2904
- { id: Moped::BSON::ObjectId.new.to_s, title: "Madam" }
2786
+ { id: BSON::ObjectId.new.to_s, title: "Madam" }
2905
2787
  end
2906
2788
 
2907
2789
  it "updates the existing document" do
2908
- game.person.title.should eq("Madam")
2790
+ expect(game.person.title).to eq("Madam")
2909
2791
  end
2910
2792
  end
2911
2793
 
@@ -2917,7 +2799,7 @@ describe Mongoid::NestedAttributes do
2917
2799
  end
2918
2800
 
2919
2801
  it "deletes the existing document" do
2920
- game.person.should be_nil
2802
+ expect(game.person).to be_nil
2921
2803
  end
2922
2804
  end
2923
2805
  end
@@ -2926,11 +2808,11 @@ describe Mongoid::NestedAttributes do
2926
2808
 
2927
2809
  context "when the nested document is invalid" do
2928
2810
 
2929
- before(:all) do
2811
+ before do
2930
2812
  Person.validates_format_of :ssn, without: /\$\$\$/
2931
2813
  end
2932
2814
 
2933
- after(:all) do
2815
+ after do
2934
2816
  Person.reset_callbacks(:validate)
2935
2817
  end
2936
2818
 
@@ -2939,8 +2821,8 @@ describe Mongoid::NestedAttributes do
2939
2821
  end
2940
2822
 
2941
2823
  it "propagates invalidity to parent" do
2942
- game.person.should_not be_valid
2943
- game.should_not be_valid
2824
+ expect(game.person).to_not be_valid
2825
+ expect(game).to_not be_valid
2944
2826
  end
2945
2827
  end
2946
2828
  end
@@ -2958,7 +2840,7 @@ describe Mongoid::NestedAttributes do
2958
2840
  end
2959
2841
 
2960
2842
  it "instantiates an object of the given type" do
2961
- vehicle.driver.class.should eq(Learner)
2843
+ expect(vehicle.driver.class).to eq(Learner)
2962
2844
  end
2963
2845
  end
2964
2846
  end
@@ -2979,12 +2861,12 @@ describe Mongoid::NestedAttributes do
2979
2861
 
2980
2862
  context "when a limit is specified" do
2981
2863
 
2982
- before(:all) do
2864
+ before do
2983
2865
  Person.send(:undef_method, :posts_attributes=)
2984
2866
  Person.accepts_nested_attributes_for :posts, limit: 2
2985
2867
  end
2986
2868
 
2987
- after(:all) do
2869
+ after do
2988
2870
  Person.send(:undef_method, :posts_attributes=)
2989
2871
  Person.accepts_nested_attributes_for :posts
2990
2872
  end
@@ -3020,11 +2902,11 @@ describe Mongoid::NestedAttributes do
3020
2902
  end
3021
2903
 
3022
2904
  it "sets the documents on the relation" do
3023
- person.posts.size.should eq(2)
2905
+ expect(person.posts.size).to eq(2)
3024
2906
  end
3025
2907
 
3026
2908
  it "does not persist the new documents" do
3027
- person.posts.count.should eq(0)
2909
+ expect(person.posts.count).to eq(0)
3028
2910
  end
3029
2911
  end
3030
2912
  end
@@ -3054,15 +2936,15 @@ describe Mongoid::NestedAttributes do
3054
2936
  context "when reloading the document" do
3055
2937
 
3056
2938
  it "updates the first existing document" do
3057
- person.posts(true).first.title.should eq("First")
2939
+ expect(person.posts(true).first.title).to eq("First")
3058
2940
  end
3059
2941
 
3060
2942
  it "updates the second existing document" do
3061
- person.posts(true).last.title.should eq("Second")
2943
+ expect(person.posts(true).last.title).to eq("Second")
3062
2944
  end
3063
2945
 
3064
2946
  it "does not add new documents" do
3065
- person.posts(true).size.should eq(2)
2947
+ expect(person.posts(true).size).to eq(2)
3066
2948
  end
3067
2949
  end
3068
2950
 
@@ -3076,7 +2958,7 @@ describe Mongoid::NestedAttributes do
3076
2958
  expect {
3077
2959
  person.posts_attributes =
3078
2960
  { "0" =>
3079
- { "id" => Moped::BSON::ObjectId.new.to_s, "title" => "Rogue" }
2961
+ { "id" => BSON::ObjectId.new.to_s, "title" => "Rogue" }
3080
2962
  }
3081
2963
  }.to raise_error(Mongoid::Errors::DocumentNotFound)
3082
2964
  end
@@ -3101,7 +2983,7 @@ describe Mongoid::NestedAttributes do
3101
2983
  end
3102
2984
 
3103
2985
  it "does not perist the invalid value" do
3104
- post_two.reload.title.should eq("First response")
2986
+ expect(post_two.reload.title).to eq("First response")
3105
2987
  end
3106
2988
  end
3107
2989
  end
@@ -3148,11 +3030,11 @@ describe Mongoid::NestedAttributes do
3148
3030
  context "when reloading the documents" do
3149
3031
 
3150
3032
  it "deletes the marked document" do
3151
- person.posts(true).size.should eq(1)
3033
+ expect(person.posts(true).size).to eq(1)
3152
3034
  end
3153
3035
 
3154
3036
  it "does not delete the unmarked document" do
3155
- person.posts(true).first.title.should eq("My Blog")
3037
+ expect(person.posts(true).first.title).to eq("My Blog")
3156
3038
  end
3157
3039
  end
3158
3040
  end
@@ -3173,11 +3055,11 @@ describe Mongoid::NestedAttributes do
3173
3055
  context "when reloading the document" do
3174
3056
 
3175
3057
  it "does not delete the marked document" do
3176
- person.posts(true).size.should eq(2)
3058
+ expect(person.posts(true).size).to eq(2)
3177
3059
  end
3178
3060
 
3179
3061
  it "does not delete the unmarked document" do
3180
- person.posts(true).map(&:title).should include("My Blog")
3062
+ expect(person.posts(true).map(&:title)).to include("My Blog")
3181
3063
  end
3182
3064
  end
3183
3065
  end
@@ -3212,15 +3094,15 @@ describe Mongoid::NestedAttributes do
3212
3094
  context "when reloading the document" do
3213
3095
 
3214
3096
  it "does not ignore the marked document" do
3215
- person.posts(true).first.title.should eq("Another Title")
3097
+ expect(person.posts(true).first.title).to eq("Another Title")
3216
3098
  end
3217
3099
 
3218
3100
  it "does not delete the unmarked document" do
3219
- person.posts(true).last.title.should eq("New Title")
3101
+ expect(person.posts(true).last.title).to eq("New Title")
3220
3102
  end
3221
3103
 
3222
3104
  it "does not add additional documents" do
3223
- person.posts(true).size.should eq(2)
3105
+ expect(person.posts(true).size).to eq(2)
3224
3106
  end
3225
3107
  end
3226
3108
  end
@@ -3241,11 +3123,11 @@ describe Mongoid::NestedAttributes do
3241
3123
  context "when reloading the documents" do
3242
3124
 
3243
3125
  it "does not delete the marked document" do
3244
- person.posts(true).size.should eq(2)
3126
+ expect(person.posts(true).size).to eq(2)
3245
3127
  end
3246
3128
 
3247
3129
  it "does not delete the unmarked document" do
3248
- person.posts(true).last.title.should eq("New Title")
3130
+ expect(person.posts(true).last.title).to eq("New Title")
3249
3131
  end
3250
3132
  end
3251
3133
  end
@@ -3254,12 +3136,12 @@ describe Mongoid::NestedAttributes do
3254
3136
 
3255
3137
  context "when allow_destroy is undefined" do
3256
3138
 
3257
- before(:all) do
3139
+ before do
3258
3140
  Person.send(:undef_method, :posts_attributes=)
3259
3141
  Person.accepts_nested_attributes_for :posts
3260
3142
  end
3261
3143
 
3262
- after(:all) do
3144
+ after do
3263
3145
  Person.send(:undef_method, :posts_attributes=)
3264
3146
  Person.accepts_nested_attributes_for :posts
3265
3147
  end
@@ -3283,15 +3165,15 @@ describe Mongoid::NestedAttributes do
3283
3165
  context "when reloading" do
3284
3166
 
3285
3167
  it "does not ignore the marked document" do
3286
- person.posts(true).find(post_one.id).title.should eq("Another Title")
3168
+ expect(person.posts(true).find(post_one.id).title).to eq("Another Title")
3287
3169
  end
3288
3170
 
3289
3171
  it "does not delete the unmarked document" do
3290
- person.posts(true).find(post_two.id).title.should eq("New Title")
3172
+ expect(person.posts(true).find(post_two.id).title).to eq("New Title")
3291
3173
  end
3292
3174
 
3293
3175
  it "does not add additional documents" do
3294
- person.posts(true).size.should eq(2)
3176
+ expect(person.posts(true).size).to eq(2)
3295
3177
  end
3296
3178
  end
3297
3179
  end
@@ -3312,11 +3194,11 @@ describe Mongoid::NestedAttributes do
3312
3194
  context "when reloading" do
3313
3195
 
3314
3196
  it "does not delete the marked document" do
3315
- person.posts(true).size.should eq(2)
3197
+ expect(person.posts(true).size).to eq(2)
3316
3198
  end
3317
3199
 
3318
3200
  it "does not delete the unmarked document" do
3319
- person.posts(true).last.title.should eq("New Title")
3201
+ expect(person.posts(true).last.title).to eq("New Title")
3320
3202
  end
3321
3203
  end
3322
3204
  end
@@ -3342,27 +3224,27 @@ describe Mongoid::NestedAttributes do
3342
3224
  end
3343
3225
 
3344
3226
  it "builds a new first document" do
3345
- person.posts.first.title.should eq("First")
3227
+ expect(person.posts.first.title).to eq("First")
3346
3228
  end
3347
3229
 
3348
3230
  it "builds a new second document" do
3349
- person.posts.second.title.should eq("Second")
3231
+ expect(person.posts.second.title).to eq("Second")
3350
3232
  end
3351
3233
 
3352
3234
  it "builds a new third document" do
3353
- person.posts.third.title.should eq("Third")
3235
+ expect(person.posts.third.title).to eq("Third")
3354
3236
  end
3355
3237
 
3356
3238
  it "does not add extra documents" do
3357
- person.posts.size.should eq(3)
3239
+ expect(person.posts.size).to eq(3)
3358
3240
  end
3359
3241
 
3360
3242
  it "does not persist the documents" do
3361
- person.posts.count.should eq(0)
3243
+ expect(person.posts.count).to eq(0)
3362
3244
  end
3363
3245
 
3364
3246
  it "adds the documents in the sorted hash key order" do
3365
- person.posts.map(&:title).should eq(
3247
+ expect(person.posts.map(&:title)).to eq(
3366
3248
  [ "First", "Second", "Third" ]
3367
3249
  )
3368
3250
  end
@@ -3383,23 +3265,23 @@ describe Mongoid::NestedAttributes do
3383
3265
  end
3384
3266
 
3385
3267
  it "builds a new first document" do
3386
- person.posts.first.title.should eq("Third")
3268
+ expect(person.posts.first.title).to eq("Third")
3387
3269
  end
3388
3270
 
3389
3271
  it "builds a new second document" do
3390
- person.posts.second.title.should eq("First")
3272
+ expect(person.posts.second.title).to eq("First")
3391
3273
  end
3392
3274
 
3393
3275
  it "builds a new third document" do
3394
- person.posts.third.title.should eq("Second")
3276
+ expect(person.posts.third.title).to eq("Second")
3395
3277
  end
3396
3278
 
3397
3279
  it "does not add extra documents" do
3398
- person.posts.size.should eq(3)
3280
+ expect(person.posts.size).to eq(3)
3399
3281
  end
3400
3282
 
3401
3283
  it "does not persist the documents" do
3402
- person.posts.count.should eq(0)
3284
+ expect(person.posts.count).to eq(0)
3403
3285
  end
3404
3286
  end
3405
3287
  end
@@ -3407,13 +3289,13 @@ describe Mongoid::NestedAttributes do
3407
3289
 
3408
3290
  context "when a reject block is supplied" do
3409
3291
 
3410
- before(:all) do
3292
+ before do
3411
3293
  Person.send(:undef_method, :posts_attributes=)
3412
3294
  Person.accepts_nested_attributes_for \
3413
3295
  :posts, reject_if: ->(attrs){ attrs["title"].blank? }
3414
3296
  end
3415
3297
 
3416
- after(:all) do
3298
+ after do
3417
3299
  Person.send(:undef_method, :posts_attributes=)
3418
3300
  Person.accepts_nested_attributes_for :posts
3419
3301
  end
@@ -3426,7 +3308,7 @@ describe Mongoid::NestedAttributes do
3426
3308
  end
3427
3309
 
3428
3310
  it "does not add the new document" do
3429
- person.posts.should be_empty
3311
+ expect(person.posts).to be_empty
3430
3312
  end
3431
3313
  end
3432
3314
 
@@ -3438,24 +3320,24 @@ describe Mongoid::NestedAttributes do
3438
3320
  end
3439
3321
 
3440
3322
  it "adds the new document" do
3441
- person.posts.size.should eq(1)
3323
+ expect(person.posts.size).to eq(1)
3442
3324
  end
3443
3325
 
3444
3326
  it "sets the correct attributes" do
3445
- person.posts.first.title.should eq("Blogging")
3327
+ expect(person.posts.first.title).to eq("Blogging")
3446
3328
  end
3447
3329
  end
3448
3330
  end
3449
3331
 
3450
3332
  context "when :reject_if => :all_blank is supplied" do
3451
3333
 
3452
- before(:all) do
3334
+ before do
3453
3335
  Person.send(:undef_method, :posts_attributes=)
3454
3336
  Person.accepts_nested_attributes_for \
3455
3337
  :posts, reject_if: :all_blank
3456
3338
  end
3457
3339
 
3458
- after(:all) do
3340
+ after do
3459
3341
  Person.send(:undef_method, :posts_attributes=)
3460
3342
  Person.accepts_nested_attributes_for :posts
3461
3343
  end
@@ -3468,7 +3350,7 @@ describe Mongoid::NestedAttributes do
3468
3350
  end
3469
3351
 
3470
3352
  it "does not add the new document" do
3471
- person.posts.should be_empty
3353
+ expect(person.posts).to be_empty
3472
3354
  end
3473
3355
  end
3474
3356
 
@@ -3480,11 +3362,11 @@ describe Mongoid::NestedAttributes do
3480
3362
  end
3481
3363
 
3482
3364
  it "adds the new document" do
3483
- person.posts.size.should eq(1)
3365
+ expect(person.posts.size).to eq(1)
3484
3366
  end
3485
3367
 
3486
3368
  it "sets the correct attributes" do
3487
- person.posts.first.title.should eq("Blogging")
3369
+ expect(person.posts.first.title).to eq("Blogging")
3488
3370
  end
3489
3371
  end
3490
3372
  end
@@ -3493,12 +3375,12 @@ describe Mongoid::NestedAttributes do
3493
3375
 
3494
3376
  context "when allow_destroy is true" do
3495
3377
 
3496
- before(:all) do
3378
+ before do
3497
3379
  Person.send(:undef_method, :posts_attributes=)
3498
3380
  Person.accepts_nested_attributes_for :posts, allow_destroy: true
3499
3381
  end
3500
3382
 
3501
- after(:all) do
3383
+ after do
3502
3384
  Person.send(:undef_method, :posts_attributes=)
3503
3385
  Person.accepts_nested_attributes_for :posts
3504
3386
  end
@@ -3516,11 +3398,11 @@ describe Mongoid::NestedAttributes do
3516
3398
  end
3517
3399
 
3518
3400
  it "ignores the the marked document" do
3519
- person.posts.size.should eq(1)
3401
+ expect(person.posts.size).to eq(1)
3520
3402
  end
3521
3403
 
3522
3404
  it "adds the new unmarked document" do
3523
- person.posts.first.title.should eq("Blog Two")
3405
+ expect(person.posts.first.title).to eq("Blog Two")
3524
3406
  end
3525
3407
  end
3526
3408
  end
@@ -3538,15 +3420,15 @@ describe Mongoid::NestedAttributes do
3538
3420
  end
3539
3421
 
3540
3422
  it "adds the new marked document" do
3541
- person.posts.first.title.should eq("New Blog")
3423
+ expect(person.posts.first.title).to eq("New Blog")
3542
3424
  end
3543
3425
 
3544
3426
  it "adds the new unmarked document" do
3545
- person.posts.last.title.should eq("Blog Two")
3427
+ expect(person.posts.last.title).to eq("Blog Two")
3546
3428
  end
3547
3429
 
3548
3430
  it "does not add extra documents" do
3549
- person.posts.size.should eq(2)
3431
+ expect(person.posts.size).to eq(2)
3550
3432
  end
3551
3433
  end
3552
3434
  end
@@ -3554,12 +3436,12 @@ describe Mongoid::NestedAttributes do
3554
3436
 
3555
3437
  context "when allow destroy is false" do
3556
3438
 
3557
- before(:all) do
3439
+ before do
3558
3440
  Person.send(:undef_method, :posts_attributes=)
3559
3441
  Person.accepts_nested_attributes_for :posts, allow_destroy: false
3560
3442
  end
3561
3443
 
3562
- after(:all) do
3444
+ after do
3563
3445
  Person.send(:undef_method, :posts_attributes=)
3564
3446
  Person.accepts_nested_attributes_for :posts
3565
3447
  end
@@ -3577,15 +3459,15 @@ describe Mongoid::NestedAttributes do
3577
3459
  end
3578
3460
 
3579
3461
  it "adds the the marked document" do
3580
- person.posts.first.title.should eq("New Blog")
3462
+ expect(person.posts.first.title).to eq("New Blog")
3581
3463
  end
3582
3464
 
3583
3465
  it "adds the new unmarked document" do
3584
- person.posts.last.title.should eq("Blog Two")
3466
+ expect(person.posts.last.title).to eq("Blog Two")
3585
3467
  end
3586
3468
 
3587
3469
  it "adds the correct number of documents" do
3588
- person.posts.size.should eq(2)
3470
+ expect(person.posts.size).to eq(2)
3589
3471
  end
3590
3472
  end
3591
3473
  end
@@ -3603,15 +3485,15 @@ describe Mongoid::NestedAttributes do
3603
3485
  end
3604
3486
 
3605
3487
  it "adds the new marked document" do
3606
- person.posts.first.title.should eq("New Blog")
3488
+ expect(person.posts.first.title).to eq("New Blog")
3607
3489
  end
3608
3490
 
3609
3491
  it "adds the new unmarked document" do
3610
- person.posts.last.title.should eq("Blog Two")
3492
+ expect(person.posts.last.title).to eq("Blog Two")
3611
3493
  end
3612
3494
 
3613
3495
  it "does not add extra documents" do
3614
- person.posts.size.should eq(2)
3496
+ expect(person.posts.size).to eq(2)
3615
3497
  end
3616
3498
  end
3617
3499
  end
@@ -3619,7 +3501,7 @@ describe Mongoid::NestedAttributes do
3619
3501
 
3620
3502
  context "when allow destroy is not defined" do
3621
3503
 
3622
- before(:all) do
3504
+ before do
3623
3505
  Person.send(:undef_method, :posts_attributes=)
3624
3506
  Person.accepts_nested_attributes_for :posts
3625
3507
  end
@@ -3637,15 +3519,15 @@ describe Mongoid::NestedAttributes do
3637
3519
  end
3638
3520
 
3639
3521
  it "adds the the marked document" do
3640
- person.posts.first.title.should eq("New Blog")
3522
+ expect(person.posts.first.title).to eq("New Blog")
3641
3523
  end
3642
3524
 
3643
3525
  it "adds the new unmarked document" do
3644
- person.posts.last.title.should eq("Blog Two")
3526
+ expect(person.posts.last.title).to eq("Blog Two")
3645
3527
  end
3646
3528
 
3647
3529
  it "adds the correct number of documents" do
3648
- person.posts.size.should eq(2)
3530
+ expect(person.posts.size).to eq(2)
3649
3531
  end
3650
3532
  end
3651
3533
  end
@@ -3663,15 +3545,15 @@ describe Mongoid::NestedAttributes do
3663
3545
  end
3664
3546
 
3665
3547
  it "adds the new marked document" do
3666
- person.posts.first.title.should eq("New Blog")
3548
+ expect(person.posts.first.title).to eq("New Blog")
3667
3549
  end
3668
3550
 
3669
3551
  it "adds the new unmarked document" do
3670
- person.posts.last.title.should eq("Blog Two")
3552
+ expect(person.posts.last.title).to eq("Blog Two")
3671
3553
  end
3672
3554
 
3673
3555
  it "does not add extra documents" do
3674
- person.posts.size.should eq(2)
3556
+ expect(person.posts.size).to eq(2)
3675
3557
  end
3676
3558
  end
3677
3559
  end
@@ -3681,11 +3563,11 @@ describe Mongoid::NestedAttributes do
3681
3563
 
3682
3564
  context "when the nested document is invalid" do
3683
3565
 
3684
- before(:all) do
3566
+ before do
3685
3567
  Person.validates_associated(:posts)
3686
3568
  end
3687
3569
 
3688
- after(:all) do
3570
+ after do
3689
3571
  Person.reset_callbacks(:validate)
3690
3572
  end
3691
3573
 
@@ -3696,8 +3578,8 @@ describe Mongoid::NestedAttributes do
3696
3578
  end
3697
3579
 
3698
3580
  it "propagates invalidity to parent" do
3699
- person.should_not be_valid
3700
- person.posts.first.should_not be_valid
3581
+ expect(person).to_not be_valid
3582
+ expect(person.posts.first).to_not be_valid
3701
3583
  end
3702
3584
  end
3703
3585
 
@@ -3718,7 +3600,7 @@ describe Mongoid::NestedAttributes do
3718
3600
  end
3719
3601
 
3720
3602
  it "instantiates an object of the given type" do
3721
- shipping_container.vehicles.map(&:class).should eq([Car, Truck])
3603
+ expect(shipping_container.vehicles.map(&:class)).to eq([Car, Truck])
3722
3604
  end
3723
3605
  end
3724
3606
  end
@@ -3739,12 +3621,12 @@ describe Mongoid::NestedAttributes do
3739
3621
 
3740
3622
  context "when a limit is specified" do
3741
3623
 
3742
- before(:all) do
3624
+ before do
3743
3625
  Person.send(:undef_method, :preferences_attributes=)
3744
3626
  Person.accepts_nested_attributes_for :preferences, limit: 2
3745
3627
  end
3746
3628
 
3747
- after(:all) do
3629
+ after do
3748
3630
  Person.send(:undef_method, :preferences_attributes=)
3749
3631
  Person.accepts_nested_attributes_for :preferences
3750
3632
  end
@@ -3780,7 +3662,7 @@ describe Mongoid::NestedAttributes do
3780
3662
  end
3781
3663
 
3782
3664
  it "sets the documents on the relation" do
3783
- person.preferences.size.should eq(2)
3665
+ expect(person.preferences.size).to eq(2)
3784
3666
  end
3785
3667
  end
3786
3668
  end
@@ -3810,15 +3692,15 @@ describe Mongoid::NestedAttributes do
3810
3692
  context "when reloading the document" do
3811
3693
 
3812
3694
  it "updates the first existing document" do
3813
- person.preferences(true).first.name.should eq("First")
3695
+ expect(person.preferences(true).first.name).to eq("First")
3814
3696
  end
3815
3697
 
3816
3698
  it "updates the second existing document" do
3817
- person.preferences(true).second.name.should eq("Second")
3699
+ expect(person.preferences(true).second.name).to eq("Second")
3818
3700
  end
3819
3701
 
3820
3702
  it "does not add new documents" do
3821
- person.preferences(true).size.should eq(2)
3703
+ expect(person.preferences(true).size).to eq(2)
3822
3704
  end
3823
3705
  end
3824
3706
  end
@@ -3840,12 +3722,12 @@ describe Mongoid::NestedAttributes do
3840
3722
 
3841
3723
  context "when allow_destroy is true" do
3842
3724
 
3843
- before(:all) do
3725
+ before do
3844
3726
  Person.send(:undef_method, :preferences_attributes=)
3845
3727
  Person.accepts_nested_attributes_for :preferences, allow_destroy: true
3846
3728
  end
3847
3729
 
3848
- after(:all) do
3730
+ after do
3849
3731
  Person.send(:undef_method, :preferences_attributes=)
3850
3732
  Person.accepts_nested_attributes_for :preferences
3851
3733
  end
@@ -3865,11 +3747,11 @@ describe Mongoid::NestedAttributes do
3865
3747
  context "when reloading the documents" do
3866
3748
 
3867
3749
  it "deletes the marked document" do
3868
- person.preferences(true).size.should eq(1)
3750
+ expect(person.preferences(true).size).to eq(1)
3869
3751
  end
3870
3752
 
3871
3753
  it "does not delete the unmarked document" do
3872
- person.preferences(true).first.name.should eq("My Blog")
3754
+ expect(person.preferences(true).first.name).to eq("My Blog")
3873
3755
  end
3874
3756
  end
3875
3757
  end
@@ -3890,11 +3772,11 @@ describe Mongoid::NestedAttributes do
3890
3772
  context "when reloading the document" do
3891
3773
 
3892
3774
  it "does not delete the marked document" do
3893
- person.preferences(true).size.should eq(2)
3775
+ expect(person.preferences(true).size).to eq(2)
3894
3776
  end
3895
3777
 
3896
3778
  it "does not delete the unmarked document" do
3897
- person.preferences(true).last.name.should eq("My Blog")
3779
+ expect(person.preferences(true).last.name).to eq("My Blog")
3898
3780
  end
3899
3781
  end
3900
3782
  end
@@ -3903,12 +3785,12 @@ describe Mongoid::NestedAttributes do
3903
3785
 
3904
3786
  context "when allow_destroy is false" do
3905
3787
 
3906
- before(:all) do
3788
+ before do
3907
3789
  Person.send(:undef_method, :preferences_attributes=)
3908
3790
  Person.accepts_nested_attributes_for :preferences, allow_destroy: false
3909
3791
  end
3910
3792
 
3911
- after(:all) do
3793
+ after do
3912
3794
  Person.send(:undef_method, :preferences_attributes=)
3913
3795
  Person.accepts_nested_attributes_for :preferences
3914
3796
  end
@@ -3929,15 +3811,15 @@ describe Mongoid::NestedAttributes do
3929
3811
  context "when reloading the document" do
3930
3812
 
3931
3813
  it "does not ignore the marked document" do
3932
- person.preferences(true).first.name.should eq("Another Title")
3814
+ expect(person.preferences(true).first.name).to eq("Another Title")
3933
3815
  end
3934
3816
 
3935
3817
  it "does not delete the unmarked document" do
3936
- person.preferences(true).last.name.should eq("New Title")
3818
+ expect(person.preferences(true).last.name).to eq("New Title")
3937
3819
  end
3938
3820
 
3939
3821
  it "does not add additional documents" do
3940
- person.preferences(true).size.should eq(2)
3822
+ expect(person.preferences(true).size).to eq(2)
3941
3823
  end
3942
3824
  end
3943
3825
  end
@@ -3958,11 +3840,11 @@ describe Mongoid::NestedAttributes do
3958
3840
  context "when reloading the documents" do
3959
3841
 
3960
3842
  it "does not delete the marked document" do
3961
- person.preferences(true).size.should eq(2)
3843
+ expect(person.preferences(true).size).to eq(2)
3962
3844
  end
3963
3845
 
3964
3846
  it "does not delete the unmarked document" do
3965
- person.preferences(true).last.name.should eq("New Title")
3847
+ expect(person.preferences(true).last.name).to eq("New Title")
3966
3848
  end
3967
3849
  end
3968
3850
  end
@@ -3971,7 +3853,7 @@ describe Mongoid::NestedAttributes do
3971
3853
 
3972
3854
  context "when allow_destroy is undefined" do
3973
3855
 
3974
- before(:all) do
3856
+ before do
3975
3857
  Person.send(:undef_method, :preferences_attributes=)
3976
3858
  Person.accepts_nested_attributes_for :preferences
3977
3859
  end
@@ -3992,15 +3874,15 @@ describe Mongoid::NestedAttributes do
3992
3874
  context "when reloading" do
3993
3875
 
3994
3876
  it "does not ignore the marked document" do
3995
- person.preferences(true).first.name.should eq("Another Title")
3877
+ expect(person.preferences(true).first.name).to eq("Another Title")
3996
3878
  end
3997
3879
 
3998
3880
  it "does not delete the unmarked document" do
3999
- person.preferences(true).last.name.should eq("New Title")
3881
+ expect(person.preferences(true).last.name).to eq("New Title")
4000
3882
  end
4001
3883
 
4002
3884
  it "does not add additional documents" do
4003
- person.preferences(true).size.should eq(2)
3885
+ expect(person.preferences(true).size).to eq(2)
4004
3886
  end
4005
3887
  end
4006
3888
  end
@@ -4021,11 +3903,11 @@ describe Mongoid::NestedAttributes do
4021
3903
  context "when reloading" do
4022
3904
 
4023
3905
  it "does not delete the marked document" do
4024
- person.preferences(true).size.should eq(2)
3906
+ expect(person.preferences(true).size).to eq(2)
4025
3907
  end
4026
3908
 
4027
3909
  it "does not delete the unmarked document" do
4028
- person.preferences(true).last.name.should eq("New Title")
3910
+ expect(person.preferences(true).last.name).to eq("New Title")
4029
3911
  end
4030
3912
  end
4031
3913
  end
@@ -4049,23 +3931,23 @@ describe Mongoid::NestedAttributes do
4049
3931
  end
4050
3932
 
4051
3933
  it "builds a new first document" do
4052
- person.preferences.first.name.should eq("First")
3934
+ expect(person.preferences.first.name).to eq("First")
4053
3935
  end
4054
3936
 
4055
3937
  it "builds a new second document" do
4056
- person.preferences.second.name.should eq("Second")
3938
+ expect(person.preferences.second.name).to eq("Second")
4057
3939
  end
4058
3940
 
4059
3941
  it "builds a new third document" do
4060
- person.preferences.third.name.should eq("Third")
3942
+ expect(person.preferences.third.name).to eq("Third")
4061
3943
  end
4062
3944
 
4063
3945
  it "does not add extra documents" do
4064
- person.preferences.size.should eq(3)
3946
+ expect(person.preferences.size).to eq(3)
4065
3947
  end
4066
3948
 
4067
3949
  it "adds the documents in the sorted hash key order" do
4068
- person.preferences.map(&:name).should eq(
3950
+ expect(person.preferences.map(&:name)).to eq(
4069
3951
  [ "First", "Second", "Third" ]
4070
3952
  )
4071
3953
  end
@@ -4073,13 +3955,13 @@ describe Mongoid::NestedAttributes do
4073
3955
 
4074
3956
  context "when a reject block is supplied" do
4075
3957
 
4076
- before(:all) do
3958
+ before do
4077
3959
  Person.send(:undef_method, :preferences_attributes=)
4078
3960
  Person.accepts_nested_attributes_for \
4079
3961
  :preferences, reject_if: ->(attrs){ attrs["name"].blank? }
4080
3962
  end
4081
3963
 
4082
- after(:all) do
3964
+ after do
4083
3965
  Person.send(:undef_method, :preferences_attributes=)
4084
3966
  Person.accepts_nested_attributes_for :preferences
4085
3967
  end
@@ -4092,7 +3974,7 @@ describe Mongoid::NestedAttributes do
4092
3974
  end
4093
3975
 
4094
3976
  it "does not add the new document" do
4095
- person.preferences.should be_empty
3977
+ expect(person.preferences).to be_empty
4096
3978
  end
4097
3979
  end
4098
3980
 
@@ -4104,24 +3986,24 @@ describe Mongoid::NestedAttributes do
4104
3986
  end
4105
3987
 
4106
3988
  it "adds the new document" do
4107
- person.preferences.size.should eq(1)
3989
+ expect(person.preferences.size).to eq(1)
4108
3990
  end
4109
3991
 
4110
3992
  it "sets the correct attributes" do
4111
- person.preferences.first.name.should eq("Blogging")
3993
+ expect(person.preferences.first.name).to eq("Blogging")
4112
3994
  end
4113
3995
  end
4114
3996
  end
4115
3997
 
4116
3998
  context "when :reject_if => :all_blank is supplied" do
4117
3999
 
4118
- before(:all) do
4000
+ before do
4119
4001
  Person.send(:undef_method, :preferences_attributes=)
4120
4002
  Person.accepts_nested_attributes_for \
4121
4003
  :preferences, reject_if: :all_blank
4122
4004
  end
4123
4005
 
4124
- after(:all) do
4006
+ after do
4125
4007
  Person.send(:undef_method, :preferences_attributes=)
4126
4008
  Person.accepts_nested_attributes_for :preferences
4127
4009
  end
@@ -4134,7 +4016,7 @@ describe Mongoid::NestedAttributes do
4134
4016
  end
4135
4017
 
4136
4018
  it "does not add the new document" do
4137
- person.preferences.should be_empty
4019
+ expect(person.preferences).to be_empty
4138
4020
  end
4139
4021
  end
4140
4022
 
@@ -4146,11 +4028,11 @@ describe Mongoid::NestedAttributes do
4146
4028
  end
4147
4029
 
4148
4030
  it "adds the new document" do
4149
- person.preferences.size.should eq(1)
4031
+ expect(person.preferences.size).to eq(1)
4150
4032
  end
4151
4033
 
4152
4034
  it "sets the correct attributes" do
4153
- person.preferences.first.name.should eq("Blogging")
4035
+ expect(person.preferences.first.name).to eq("Blogging")
4154
4036
  end
4155
4037
  end
4156
4038
  end
@@ -4159,12 +4041,12 @@ describe Mongoid::NestedAttributes do
4159
4041
 
4160
4042
  context "when allow_destroy is true" do
4161
4043
 
4162
- before(:all) do
4044
+ before do
4163
4045
  Person.send(:undef_method, :preferences_attributes=)
4164
4046
  Person.accepts_nested_attributes_for :preferences, allow_destroy: true
4165
4047
  end
4166
4048
 
4167
- after(:all) do
4049
+ after do
4168
4050
  Person.send(:undef_method, :preferences_attributes=)
4169
4051
  Person.accepts_nested_attributes_for :preferences
4170
4052
  end
@@ -4182,11 +4064,11 @@ describe Mongoid::NestedAttributes do
4182
4064
  end
4183
4065
 
4184
4066
  it "ignores the the marked document" do
4185
- person.preferences.size.should eq(1)
4067
+ expect(person.preferences.size).to eq(1)
4186
4068
  end
4187
4069
 
4188
4070
  it "adds the new unmarked document" do
4189
- person.preferences.first.name.should eq("Blog Two")
4071
+ expect(person.preferences.first.name).to eq("Blog Two")
4190
4072
  end
4191
4073
  end
4192
4074
  end
@@ -4204,15 +4086,15 @@ describe Mongoid::NestedAttributes do
4204
4086
  end
4205
4087
 
4206
4088
  it "adds the new marked document" do
4207
- person.preferences.first.name.should eq("New Blog")
4089
+ expect(person.preferences.first.name).to eq("New Blog")
4208
4090
  end
4209
4091
 
4210
4092
  it "adds the new unmarked document" do
4211
- person.preferences.last.name.should eq("Blog Two")
4093
+ expect(person.preferences.last.name).to eq("Blog Two")
4212
4094
  end
4213
4095
 
4214
4096
  it "does not add extra documents" do
4215
- person.preferences.size.should eq(2)
4097
+ expect(person.preferences.size).to eq(2)
4216
4098
  end
4217
4099
  end
4218
4100
  end
@@ -4220,12 +4102,12 @@ describe Mongoid::NestedAttributes do
4220
4102
 
4221
4103
  context "when allow destroy is false" do
4222
4104
 
4223
- before(:all) do
4105
+ before do
4224
4106
  Person.send(:undef_method, :preferences_attributes=)
4225
4107
  Person.accepts_nested_attributes_for :preferences, allow_destroy: false
4226
4108
  end
4227
4109
 
4228
- after(:all) do
4110
+ after do
4229
4111
  Person.send(:undef_method, :preferences_attributes=)
4230
4112
  Person.accepts_nested_attributes_for :preferences
4231
4113
  end
@@ -4243,15 +4125,15 @@ describe Mongoid::NestedAttributes do
4243
4125
  end
4244
4126
 
4245
4127
  it "adds the the marked document" do
4246
- person.preferences.first.name.should eq("New Blog")
4128
+ expect(person.preferences.first.name).to eq("New Blog")
4247
4129
  end
4248
4130
 
4249
4131
  it "adds the new unmarked document" do
4250
- person.preferences.last.name.should eq("Blog Two")
4132
+ expect(person.preferences.last.name).to eq("Blog Two")
4251
4133
  end
4252
4134
 
4253
4135
  it "adds the correct number of documents" do
4254
- person.preferences.size.should eq(2)
4136
+ expect(person.preferences.size).to eq(2)
4255
4137
  end
4256
4138
  end
4257
4139
  end
@@ -4269,15 +4151,15 @@ describe Mongoid::NestedAttributes do
4269
4151
  end
4270
4152
 
4271
4153
  it "adds the new marked document" do
4272
- person.preferences.first.name.should eq("New Blog")
4154
+ expect(person.preferences.first.name).to eq("New Blog")
4273
4155
  end
4274
4156
 
4275
4157
  it "adds the new unmarked document" do
4276
- person.preferences.last.name.should eq("Blog Two")
4158
+ expect(person.preferences.last.name).to eq("Blog Two")
4277
4159
  end
4278
4160
 
4279
4161
  it "does not add extra documents" do
4280
- person.preferences.size.should eq(2)
4162
+ expect(person.preferences.size).to eq(2)
4281
4163
  end
4282
4164
  end
4283
4165
  end
@@ -4285,7 +4167,7 @@ describe Mongoid::NestedAttributes do
4285
4167
 
4286
4168
  context "when allow destroy is not defined" do
4287
4169
 
4288
- before(:all) do
4170
+ before do
4289
4171
  Person.send(:undef_method, :preferences_attributes=)
4290
4172
  Person.accepts_nested_attributes_for :preferences
4291
4173
  end
@@ -4303,15 +4185,15 @@ describe Mongoid::NestedAttributes do
4303
4185
  end
4304
4186
 
4305
4187
  it "adds the the marked document" do
4306
- person.preferences.first.name.should eq("New Blog")
4188
+ expect(person.preferences.first.name).to eq("New Blog")
4307
4189
  end
4308
4190
 
4309
4191
  it "adds the new unmarked document" do
4310
- person.preferences.last.name.should eq("Blog Two")
4192
+ expect(person.preferences.last.name).to eq("Blog Two")
4311
4193
  end
4312
4194
 
4313
4195
  it "adds the correct number of documents" do
4314
- person.preferences.size.should eq(2)
4196
+ expect(person.preferences.size).to eq(2)
4315
4197
  end
4316
4198
  end
4317
4199
  end
@@ -4329,15 +4211,15 @@ describe Mongoid::NestedAttributes do
4329
4211
  end
4330
4212
 
4331
4213
  it "adds the new marked document" do
4332
- person.preferences.first.name.should eq("New Blog")
4214
+ expect(person.preferences.first.name).to eq("New Blog")
4333
4215
  end
4334
4216
 
4335
4217
  it "adds the new unmarked document" do
4336
- person.preferences.last.name.should eq("Blog Two")
4218
+ expect(person.preferences.last.name).to eq("Blog Two")
4337
4219
  end
4338
4220
 
4339
4221
  it "does not add extra documents" do
4340
- person.preferences.size.should eq(2)
4222
+ expect(person.preferences.size).to eq(2)
4341
4223
  end
4342
4224
  end
4343
4225
  end
@@ -4347,11 +4229,11 @@ describe Mongoid::NestedAttributes do
4347
4229
 
4348
4230
  context "when the nested document is invalid" do
4349
4231
 
4350
- before(:all) do
4232
+ before do
4351
4233
  Person.validates_associated(:preferences)
4352
4234
  end
4353
4235
 
4354
- after(:all) do
4236
+ after do
4355
4237
  Person.reset_callbacks(:validate)
4356
4238
  end
4357
4239
 
@@ -4362,8 +4244,8 @@ describe Mongoid::NestedAttributes do
4362
4244
  end
4363
4245
 
4364
4246
  it "propagates invalidity to parent" do
4365
- person.preferences.first.should_not be_valid
4366
- person.should_not be_valid
4247
+ expect(person.preferences.first).to_not be_valid
4248
+ expect(person).to_not be_valid
4367
4249
  end
4368
4250
  end
4369
4251
  end
@@ -4372,7 +4254,7 @@ describe Mongoid::NestedAttributes do
4372
4254
 
4373
4255
  describe "#update_attributes" do
4374
4256
 
4375
- before(:all) do
4257
+ before do
4376
4258
  Person.send(:undef_method, :addresses_attributes=)
4377
4259
  Person.accepts_nested_attributes_for :addresses
4378
4260
  end
@@ -4407,11 +4289,11 @@ describe Mongoid::NestedAttributes do
4407
4289
  end
4408
4290
 
4409
4291
  it "adds the new embedded document" do
4410
- server.reload.filesystems.first.name.should eq("NFS")
4292
+ expect(server.reload.filesystems.first.name).to eq("NFS")
4411
4293
  end
4412
4294
 
4413
4295
  it "does not add more than one document" do
4414
- server.reload.filesystems.count.should eq(1)
4296
+ expect(server.reload.filesystems.count).to eq(1)
4415
4297
  end
4416
4298
  end
4417
4299
  end
@@ -4439,29 +4321,29 @@ describe Mongoid::NestedAttributes do
4439
4321
  end
4440
4322
 
4441
4323
  it "removes the document from the parent" do
4442
- person.services.should be_empty
4324
+ expect(person.services).to be_empty
4443
4325
  end
4444
4326
 
4445
4327
  it "deletes the document" do
4446
- service.should be_destroyed
4328
+ expect(service).to be_destroyed
4447
4329
  end
4448
4330
 
4449
4331
  it "runs the before destroy callbacks" do
4450
- service.before_destroy_called.should be_true
4332
+ expect(service.before_destroy_called).to be true
4451
4333
  end
4452
4334
 
4453
4335
  it "runs the after destroy callbacks" do
4454
- service.after_destroy_called.should be_true
4336
+ expect(service.after_destroy_called).to be true
4455
4337
  end
4456
4338
 
4457
4339
  it "clears the delayed atomic pulls from the parent" do
4458
- person.delayed_atomic_pulls.should be_empty
4340
+ expect(person.delayed_atomic_pulls).to be_empty
4459
4341
  end
4460
4342
  end
4461
4343
 
4462
4344
  context "when nesting multiple levels and parent is timestamped" do
4463
4345
 
4464
- before(:all) do
4346
+ before do
4465
4347
  class Address
4466
4348
  after_save do
4467
4349
  addressable.touch
@@ -4469,7 +4351,7 @@ describe Mongoid::NestedAttributes do
4469
4351
  end
4470
4352
  end
4471
4353
 
4472
- after(:all) do
4354
+ after do
4473
4355
  Address.reset_callbacks(:save)
4474
4356
  end
4475
4357
 
@@ -4494,12 +4376,12 @@ describe Mongoid::NestedAttributes do
4494
4376
  end
4495
4377
 
4496
4378
  before do
4497
- address.with(safe: true).update_attributes(attributes)
4379
+ address.update_attributes(attributes)
4498
4380
  address.reload
4499
4381
  end
4500
4382
 
4501
4383
  it "does not add any extra locations" do
4502
- address.locations.size.should eq(2)
4384
+ expect(address.locations.size).to eq(2)
4503
4385
  end
4504
4386
  end
4505
4387
 
@@ -4541,11 +4423,11 @@ describe Mongoid::NestedAttributes do
4541
4423
  end
4542
4424
 
4543
4425
  it "deletes the document from the relation" do
4544
- address_one.locations.should be_empty
4426
+ expect(address_one.locations).to be_empty
4545
4427
  end
4546
4428
 
4547
4429
  it "persists the change" do
4548
- address_one.reload.locations.should be_empty
4430
+ expect(address_one.reload.locations).to be_empty
4549
4431
  end
4550
4432
  end
4551
4433
 
@@ -4565,12 +4447,12 @@ describe Mongoid::NestedAttributes do
4565
4447
 
4566
4448
  context "when cascading callbacks" do
4567
4449
 
4568
- before(:all) do
4450
+ before do
4569
4451
  Band.accepts_nested_attributes_for :records
4570
4452
  Record.accepts_nested_attributes_for :tracks, allow_destroy: true
4571
4453
  end
4572
4454
 
4573
- after(:all) do
4455
+ after do
4574
4456
  Band.send(:undef_method, :records_attributes=)
4575
4457
  Record.send(:undef_method, :tracks_attributes=)
4576
4458
  end
@@ -4591,15 +4473,15 @@ describe Mongoid::NestedAttributes do
4591
4473
  end
4592
4474
 
4593
4475
  it "removes the child from the relation" do
4594
- record.tracks.should be_empty
4476
+ expect(record.tracks).to be_empty
4595
4477
  end
4596
4478
 
4597
4479
  it "deletes the child document" do
4598
- track.should be_destroyed
4480
+ expect(track).to be_destroyed
4599
4481
  end
4600
4482
 
4601
4483
  it "runs the child's callbacks" do
4602
- track.before_destroy_called.should be_true
4484
+ expect(track.before_destroy_called).to be true
4603
4485
  end
4604
4486
  end
4605
4487
  end
@@ -4620,7 +4502,7 @@ describe Mongoid::NestedAttributes do
4620
4502
  end
4621
4503
 
4622
4504
  before do
4623
- person.with(safe: true).update_attributes(attributes)
4505
+ person.update_attributes(attributes)
4624
4506
  end
4625
4507
 
4626
4508
  let(:address) do
@@ -4632,11 +4514,11 @@ describe Mongoid::NestedAttributes do
4632
4514
  end
4633
4515
 
4634
4516
  it "adds the new first level embedded document" do
4635
- address.street.should eq("Alexanderstr")
4517
+ expect(address.street).to eq("Alexanderstr")
4636
4518
  end
4637
4519
 
4638
4520
  it "adds the nested embedded document" do
4639
- location.name.should eq("Home")
4521
+ expect(location.name).to eq("Home")
4640
4522
  end
4641
4523
  end
4642
4524
 
@@ -4660,16 +4542,16 @@ describe Mongoid::NestedAttributes do
4660
4542
  end
4661
4543
 
4662
4544
  before do
4663
- person.with(safe: true).update_attributes(attributes)
4545
+ person.update_attributes(attributes)
4664
4546
  person.reload
4665
4547
  end
4666
4548
 
4667
4549
  it "adds the new location to the existing address" do
4668
- person.addresses.first.locations.count.should eq(2)
4550
+ expect(person.addresses.first.locations.count).to eq(2)
4669
4551
  end
4670
4552
 
4671
4553
  it "adds the new address" do
4672
- person.addresses.count.should eq(2)
4554
+ expect(person.addresses.count).to eq(2)
4673
4555
  end
4674
4556
  end
4675
4557
  end
@@ -4691,7 +4573,7 @@ describe Mongoid::NestedAttributes do
4691
4573
  end
4692
4574
 
4693
4575
  before do
4694
- person.with(safe: true).update_attributes(attributes)
4576
+ person.update_attributes(attributes)
4695
4577
  end
4696
4578
 
4697
4579
  let(:address) do
@@ -4703,11 +4585,11 @@ describe Mongoid::NestedAttributes do
4703
4585
  end
4704
4586
 
4705
4587
  it "adds the new first level embedded document" do
4706
- address.street.should eq("Alexanderstr")
4588
+ expect(address.street).to eq("Alexanderstr")
4707
4589
  end
4708
4590
 
4709
4591
  it "adds the nested embedded document" do
4710
- code.name.should eq("Home")
4592
+ expect(code.name).to eq("Home")
4711
4593
  end
4712
4594
  end
4713
4595
  end
@@ -4740,15 +4622,15 @@ describe Mongoid::NestedAttributes do
4740
4622
  end
4741
4623
 
4742
4624
  before do
4743
- person.with(safe: true).update_attributes(attributes)
4625
+ person.update_attributes(attributes)
4744
4626
  end
4745
4627
 
4746
4628
  it "updates the first level embedded document" do
4747
- address.number.should eq(45)
4629
+ expect(address.number).to eq(45)
4748
4630
  end
4749
4631
 
4750
4632
  it "updates the nested embedded document" do
4751
- code.name.should eq("Work")
4633
+ expect(code.name).to eq("Work")
4752
4634
  end
4753
4635
  end
4754
4636
 
@@ -4780,15 +4662,15 @@ describe Mongoid::NestedAttributes do
4780
4662
  end
4781
4663
 
4782
4664
  before do
4783
- person.with(safe: true).update_attributes(attributes)
4665
+ person.update_attributes(attributes)
4784
4666
  end
4785
4667
 
4786
4668
  it "updates the first level embedded document" do
4787
- address.number.should eq(45)
4669
+ expect(address.number).to eq(45)
4788
4670
  end
4789
4671
 
4790
4672
  it "updates the nested embedded document" do
4791
- target.name.should eq("updated")
4673
+ expect(target.name).to eq("updated")
4792
4674
  end
4793
4675
  end
4794
4676
 
@@ -4816,11 +4698,11 @@ describe Mongoid::NestedAttributes do
4816
4698
  end
4817
4699
 
4818
4700
  before do
4819
- person.with(safe: true).update_attributes(attributes)
4701
+ person.update_attributes(attributes)
4820
4702
  end
4821
4703
 
4822
4704
  it "updates the nested embedded document" do
4823
- language.name.should eq("deutsch")
4705
+ expect(language.name).to eq("deutsch")
4824
4706
  end
4825
4707
  end
4826
4708
  end
@@ -4851,11 +4733,11 @@ describe Mongoid::NestedAttributes do
4851
4733
  end
4852
4734
 
4853
4735
  it "adds the new document to the relation" do
4854
- post.title.should eq("Testing")
4736
+ expect(post.title).to eq("Testing")
4855
4737
  end
4856
4738
 
4857
4739
  it "autosaves the relation" do
4858
- user.posts(true).first.title.should eq("Testing")
4740
+ expect(user.posts(true).first.title).to eq("Testing")
4859
4741
  end
4860
4742
  end
4861
4743
 
@@ -4882,15 +4764,15 @@ describe Mongoid::NestedAttributes do
4882
4764
  end
4883
4765
 
4884
4766
  it "returns false" do
4885
- update.should be_false
4767
+ expect(update).to be false
4886
4768
  end
4887
4769
 
4888
4770
  it "does not update the child document" do
4889
- server.reload.name.should eq("test")
4771
+ expect(server.reload.name).to eq("test")
4890
4772
  end
4891
4773
 
4892
4774
  it "adds the errors to the document" do
4893
- node.errors[:servers].should_not be_nil
4775
+ expect(node.errors[:servers]).to_not be_nil
4894
4776
  end
4895
4777
  end
4896
4778
  end
@@ -4917,7 +4799,7 @@ describe Mongoid::NestedAttributes do
4917
4799
  end
4918
4800
 
4919
4801
  it "sets the nested attributes" do
4920
- league.reload.divisions.first.name.should eq("New Name")
4802
+ expect(league.reload.divisions.first.name).to eq("New Name")
4921
4803
  end
4922
4804
 
4923
4805
  context "with corrupted data" do
@@ -4937,7 +4819,7 @@ describe Mongoid::NestedAttributes do
4937
4819
  end
4938
4820
 
4939
4821
  it "sets the nested attributes" do
4940
- league.reload.divisions.first.name.should eq("Name")
4822
+ expect(league.reload.divisions.first.name).to eq("Name")
4941
4823
  end
4942
4824
  end
4943
4825
  end