mongoid 3.1.6 → 4.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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
@@ -27,7 +27,7 @@ describe Mongoid::Relations::Reflections do
27
27
  end
28
28
 
29
29
  it "returns the association metadata" do
30
- relation.macro.should eq(:embeds_many)
30
+ expect(relation.macro).to eq(:embeds_many)
31
31
  end
32
32
  end
33
33
 
@@ -38,7 +38,7 @@ describe Mongoid::Relations::Reflections do
38
38
  end
39
39
 
40
40
  it "returns nil" do
41
- relation.should be_nil
41
+ expect(relation).to be_nil
42
42
  end
43
43
  end
44
44
  end
@@ -60,7 +60,7 @@ describe Mongoid::Relations::Reflections do
60
60
  end
61
61
 
62
62
  it "returns an array of the relations" do
63
- relations.size.should eq(2)
63
+ expect(relations.size).to eq(2)
64
64
  end
65
65
  end
66
66
 
@@ -71,7 +71,7 @@ describe Mongoid::Relations::Reflections do
71
71
  end
72
72
 
73
73
  it "returns an array of the relations" do
74
- relations.size.should eq(1)
74
+ expect(relations.size).to eq(1)
75
75
  end
76
76
  end
77
77
  end
@@ -83,7 +83,7 @@ describe Mongoid::Relations::Reflections do
83
83
  end
84
84
 
85
85
  it "returns an empty array" do
86
- relations.should be_empty
86
+ expect(relations).to be_empty
87
87
  end
88
88
  end
89
89
 
@@ -94,7 +94,7 @@ describe Mongoid::Relations::Reflections do
94
94
  end
95
95
 
96
96
  it "returns an empty array" do
97
- relations.should be_empty
97
+ expect(relations).to be_empty
98
98
  end
99
99
  end
100
100
  end
@@ -37,30 +37,30 @@ describe Mongoid::Relations::Synchronization do
37
37
  end
38
38
 
39
39
  it "has persisted :agent" do
40
- agent.persisted?.should be_true
40
+ expect(agent.persisted?).to be true
41
41
  end
42
42
 
43
43
  it "has persisted :user" do
44
- user.persisted?.should be_true
44
+ expect(user.persisted?).to be true
45
45
  end
46
46
 
47
47
  it "has persisted :person" do
48
- person.persisted?.should be_true
48
+ expect(person.persisted?).to be true
49
49
  end
50
50
 
51
51
  it "does not have persisted :account" do
52
- account.persisted?.should be_false
52
+ expect(account.persisted?).to be false
53
53
  end
54
54
 
55
55
  it "has instantiated a .valid? :account" do
56
56
  account.valid?
57
- account.valid?.should be_true
57
+ expect(account.valid?).to be true
58
58
  end
59
59
 
60
60
  context "and is Persisted" do
61
61
 
62
62
  it "is able to :save" do
63
- account.save.should be_true
63
+ expect(account.save).to be true
64
64
  end
65
65
  end
66
66
 
@@ -71,7 +71,7 @@ describe Mongoid::Relations::Synchronization do
71
71
  end
72
72
 
73
73
  it "is able to :save" do
74
- account.save.should be_true
74
+ expect(account.save).to be true
75
75
  end
76
76
  end
77
77
  end
@@ -92,11 +92,11 @@ describe Mongoid::Relations::Synchronization do
92
92
  end
93
93
 
94
94
  it "does not attempt synchronization" do
95
- expect { article.save }.to_not raise_error(TypeError)
95
+ expect { article.save }.to_not raise_error
96
96
  end
97
97
 
98
98
  it "sets the one side of the relation" do
99
- article.preferences.should eq([ preference ])
99
+ expect(article.preferences).to eq([ preference ])
100
100
  end
101
101
  end
102
102
 
@@ -115,11 +115,11 @@ describe Mongoid::Relations::Synchronization do
115
115
  end
116
116
 
117
117
  it "sets the inverse foreign key" do
118
- one.person_ids.should eq([ person.id ])
118
+ expect(one.person_ids).to eq([ person.id ])
119
119
  end
120
120
 
121
121
  it "resets the synced flag" do
122
- person.synced["preference_ids"].should be_false
122
+ expect(person.synced["preference_ids"]).to be false
123
123
  end
124
124
 
125
125
  context "when subsequently setting with keys" do
@@ -134,7 +134,7 @@ describe Mongoid::Relations::Synchronization do
134
134
  end
135
135
 
136
136
  it "sets the inverse foreign key" do
137
- two.reload.person_ids.should eq([ person.id ])
137
+ expect(two.reload.person_ids).to eq([ person.id ])
138
138
  end
139
139
  end
140
140
  end
@@ -158,15 +158,15 @@ describe Mongoid::Relations::Synchronization do
158
158
  end
159
159
 
160
160
  it "sets the foreign_key" do
161
- person.preference_ids.should eq([ one.id, two.id ])
161
+ expect(person.preference_ids).to eq([ one.id, two.id ])
162
162
  end
163
163
 
164
164
  it "does not set the first inverse key" do
165
- one.reload.person_ids.should be_empty
165
+ expect(one.reload.person_ids).to be_empty
166
166
  end
167
167
 
168
168
  it "does not set the second inverse key" do
169
- two.reload.person_ids.should be_empty
169
+ expect(two.reload.person_ids).to be_empty
170
170
  end
171
171
 
172
172
  context "when saving the base" do
@@ -178,15 +178,15 @@ describe Mongoid::Relations::Synchronization do
178
178
  end
179
179
 
180
180
  it "persists the foreign_key" do
181
- person.reload.preference_ids.should eq([ one.id, two.id ])
181
+ expect(person.reload.preference_ids).to eq([ one.id, two.id ])
182
182
  end
183
183
 
184
184
  it "sets the first inverse key" do
185
- one.reload.person_ids.should eq([ person.id ])
185
+ expect(one.reload.person_ids).to eq([ person.id ])
186
186
  end
187
187
 
188
188
  it "sets the second inverse key" do
189
- two.reload.person_ids.should eq([ person.id ])
189
+ expect(two.reload.person_ids).to eq([ person.id ])
190
190
  end
191
191
  end
192
192
  end
@@ -215,19 +215,19 @@ describe Mongoid::Relations::Synchronization do
215
215
  end
216
216
 
217
217
  it "sets the foreign_key" do
218
- person.preference_ids.should eq([ three.id ])
218
+ expect(person.preference_ids).to eq([ three.id ])
219
219
  end
220
220
 
221
221
  it "does not remove the first inverse key" do
222
- one.reload.person_ids.should eq([ person.id ])
222
+ expect(one.reload.person_ids).to eq([ person.id ])
223
223
  end
224
224
 
225
225
  it "does not remove the second inverse key" do
226
- two.reload.person_ids.should eq([ person.id ])
226
+ expect(two.reload.person_ids).to eq([ person.id ])
227
227
  end
228
228
 
229
229
  it "does not set the third inverse key" do
230
- three.reload.person_ids.should be_empty
230
+ expect(three.reload.person_ids).to be_empty
231
231
  end
232
232
 
233
233
  context "when saving the base" do
@@ -239,19 +239,19 @@ describe Mongoid::Relations::Synchronization do
239
239
  end
240
240
 
241
241
  it "persists the foreign_key" do
242
- person.reload.preference_ids.should eq([ three.id ])
242
+ expect(person.reload.preference_ids).to eq([ three.id ])
243
243
  end
244
244
 
245
245
  it "removes the first inverse key" do
246
- one.reload.person_ids.should be_empty
246
+ expect(one.reload.person_ids).to be_empty
247
247
  end
248
248
 
249
249
  it "removes the second inverse key" do
250
- two.reload.person_ids.should be_empty
250
+ expect(two.reload.person_ids).to be_empty
251
251
  end
252
252
 
253
253
  it "sets the third inverse key" do
254
- three.reload.person_ids.should eq([ person.id ])
254
+ expect(three.reload.person_ids).to eq([ person.id ])
255
255
  end
256
256
  end
257
257
  end
@@ -276,15 +276,15 @@ describe Mongoid::Relations::Synchronization do
276
276
  end
277
277
 
278
278
  it "sets the foreign_key" do
279
- person.preference_ids.should be_empty
279
+ expect(person.preference_ids).to be_empty
280
280
  end
281
281
 
282
282
  it "does not remove the first inverse key" do
283
- one.reload.person_ids.should eq([ person.id ])
283
+ expect(one.reload.person_ids).to eq([ person.id ])
284
284
  end
285
285
 
286
286
  it "does not remove the second inverse key" do
287
- two.reload.person_ids.should eq([ person.id ])
287
+ expect(two.reload.person_ids).to eq([ person.id ])
288
288
  end
289
289
 
290
290
  context "when saving the base" do
@@ -296,15 +296,15 @@ describe Mongoid::Relations::Synchronization do
296
296
  end
297
297
 
298
298
  it "persists the foreign_key" do
299
- person.reload.preference_ids.should be_empty
299
+ expect(person.reload.preference_ids).to be_empty
300
300
  end
301
301
 
302
302
  it "removes the first inverse key" do
303
- one.reload.person_ids.should be_empty
303
+ expect(one.reload.person_ids).to be_empty
304
304
  end
305
305
 
306
306
  it "removes the second inverse key" do
307
- two.reload.person_ids.should be_empty
307
+ expect(two.reload.person_ids).to be_empty
308
308
  end
309
309
  end
310
310
  end
@@ -329,15 +329,15 @@ describe Mongoid::Relations::Synchronization do
329
329
  end
330
330
 
331
331
  it "sets the foreign_key" do
332
- person.preference_ids.should be_empty
332
+ expect(person.preference_ids).to be_empty
333
333
  end
334
334
 
335
335
  it "does not remove the first inverse key" do
336
- one.reload.person_ids.should eq([ person.id ])
336
+ expect(one.reload.person_ids).to eq([ person.id ])
337
337
  end
338
338
 
339
339
  it "does not remove the second inverse key" do
340
- two.reload.person_ids.should eq([ person.id ])
340
+ expect(two.reload.person_ids).to eq([ person.id ])
341
341
  end
342
342
 
343
343
  context "when saving the base" do
@@ -349,15 +349,15 @@ describe Mongoid::Relations::Synchronization do
349
349
  end
350
350
 
351
351
  it "persists the foreign_key" do
352
- person.reload.preference_ids.should be_empty
352
+ expect(person.reload.preference_ids).to be_empty
353
353
  end
354
354
 
355
355
  it "removes the first inverse key" do
356
- one.reload.person_ids.should be_empty
356
+ expect(one.reload.person_ids).to be_empty
357
357
  end
358
358
 
359
359
  it "removes the second inverse key" do
360
- two.reload.person_ids.should be_empty
360
+ expect(two.reload.person_ids).to be_empty
361
361
  end
362
362
  end
363
363
  end
@@ -384,11 +384,11 @@ describe Mongoid::Relations::Synchronization do
384
384
  end
385
385
 
386
386
  it "removes the first inverse key" do
387
- one.reload.person_ids.should be_empty
387
+ expect(one.reload.person_ids).to be_empty
388
388
  end
389
389
 
390
390
  it "removes the second inverse key" do
391
- two.reload.person_ids.should be_empty
391
+ expect(two.reload.person_ids).to be_empty
392
392
  end
393
393
  end
394
394
 
@@ -399,14 +399,14 @@ describe Mongoid::Relations::Synchronization do
399
399
  end
400
400
 
401
401
  it "removes the inverse key" do
402
- person.reload.preference_ids.should eq([ two.id ])
402
+ expect(person.reload.preference_ids).to eq([ two.id ])
403
403
  end
404
404
  end
405
405
  end
406
406
 
407
407
  context "when appending an existing document to a new one" do
408
408
 
409
- let!(:peristed) do
409
+ let!(:persisted) do
410
410
  Tag.create
411
411
  end
412
412
 
@@ -415,20 +415,16 @@ describe Mongoid::Relations::Synchronization do
415
415
  end
416
416
 
417
417
  before do
418
- article.tags << Tag.first
418
+ article.tags << persisted
419
419
  article.save
420
420
  end
421
421
 
422
- let(:tag) do
423
- Tag.first
424
- end
425
-
426
422
  it "persists the foreign key on the inverse" do
427
- tag.article_ids.should eq([ article.id ])
423
+ expect(persisted.article_ids).to eq([ article.id ])
428
424
  end
429
425
 
430
426
  it "persists the inverse relation" do
431
- tag.articles.should eq([ article ])
427
+ expect(persisted.articles).to eq([ article ])
432
428
  end
433
429
  end
434
430
 
@@ -447,7 +443,7 @@ describe Mongoid::Relations::Synchronization do
447
443
  end
448
444
 
449
445
  it "adds the id to the inverse relation" do
450
- dog.reload.breed_ids.should eq([ breed.id ])
446
+ expect(dog.reload.breed_ids).to eq([ breed.id ])
451
447
  end
452
448
  end
453
449
  end
@@ -25,7 +25,7 @@ describe Mongoid::Relations::Targets::Enumerable do
25
25
  end
26
26
 
27
27
  it "returns the equality check" do
28
- enumerable.should eq([ post ])
28
+ expect(enumerable).to eq([ post ])
29
29
  end
30
30
  end
31
31
 
@@ -36,7 +36,7 @@ describe Mongoid::Relations::Targets::Enumerable do
36
36
  end
37
37
 
38
38
  it "returns the equality check" do
39
- enumerable._loaded.values.should eq([ post ])
39
+ expect(enumerable._loaded.values).to eq([ post ])
40
40
  end
41
41
  end
42
42
 
@@ -61,7 +61,7 @@ describe Mongoid::Relations::Targets::Enumerable do
61
61
  end
62
62
 
63
63
  it "returns the equality check" do
64
- enumerable.should eq([ post, post_two ])
64
+ expect(enumerable).to eq([ post, post_two ])
65
65
  end
66
66
  end
67
67
 
@@ -72,7 +72,7 @@ describe Mongoid::Relations::Targets::Enumerable do
72
72
  end
73
73
 
74
74
  it "returns the equality check" do
75
- enumerable.should eq([ post ])
75
+ expect(enumerable).to eq([ post ])
76
76
  end
77
77
  end
78
78
 
@@ -90,7 +90,7 @@ describe Mongoid::Relations::Targets::Enumerable do
90
90
  end
91
91
 
92
92
  it "returns the equality check" do
93
- enumerable.should eq([ post ])
93
+ expect(enumerable).to eq([ post ])
94
94
  end
95
95
  end
96
96
  end
@@ -104,7 +104,7 @@ describe Mongoid::Relations::Targets::Enumerable do
104
104
  end
105
105
 
106
106
  it "returns false" do
107
- enumerable.should_not eq("person")
107
+ expect(enumerable).to_not eq("person")
108
108
  end
109
109
  end
110
110
  end
@@ -118,14 +118,14 @@ describe Mongoid::Relations::Targets::Enumerable do
118
118
  context "when compared to an array class" do
119
119
 
120
120
  it "returns true" do
121
- expect(enumerable === Array).to be_true
121
+ expect(enumerable === Array).to be true
122
122
  end
123
123
  end
124
124
 
125
125
  context "when compared to a different class" do
126
126
 
127
127
  it "returns false" do
128
- expect(enumerable === Mongoid::Document).to be_false
128
+ expect(enumerable === Mongoid::Document).to be false
129
129
  end
130
130
  end
131
131
 
@@ -138,7 +138,7 @@ describe Mongoid::Relations::Targets::Enumerable do
138
138
  end
139
139
 
140
140
  it "returns true" do
141
- expect(enumerable === other).to be_true
141
+ expect(enumerable === other).to be true
142
142
  end
143
143
  end
144
144
 
@@ -149,7 +149,7 @@ describe Mongoid::Relations::Targets::Enumerable do
149
149
  end
150
150
 
151
151
  it "returns false" do
152
- expect(enumerable === other).to be_false
152
+ expect(enumerable === other).to be false
153
153
  end
154
154
  end
155
155
  end
@@ -176,11 +176,11 @@ describe Mongoid::Relations::Targets::Enumerable do
176
176
  end
177
177
 
178
178
  it "adds the document to the added target" do
179
- enumerable._added.should eq({ post.id => post })
179
+ expect(enumerable._added).to eq({ post.id => post })
180
180
  end
181
181
 
182
182
  it "returns the added documents" do
183
- added.should eq([ post ])
183
+ expect(added).to eq([ post ])
184
184
  end
185
185
  end
186
186
  end
@@ -214,15 +214,15 @@ describe Mongoid::Relations::Targets::Enumerable do
214
214
  end
215
215
 
216
216
  it "returns true" do
217
- any.should be_true
217
+ expect(any).to be true
218
218
  end
219
219
 
220
220
  it "retains the correct length" do
221
- enumerable.length.should eq(2)
221
+ expect(enumerable.length).to eq(2)
222
222
  end
223
223
 
224
224
  it "retains the correct length when calling to_a" do
225
- enumerable.to_a.length.should eq(2)
225
+ expect(enumerable.to_a.length).to eq(2)
226
226
  end
227
227
 
228
228
  context "when iterating over the relation a second time" do
@@ -232,11 +232,11 @@ describe Mongoid::Relations::Targets::Enumerable do
232
232
  end
233
233
 
234
234
  it "retains the correct length" do
235
- enumerable.length.should eq(2)
235
+ expect(enumerable.length).to eq(2)
236
236
  end
237
237
 
238
238
  it "retains the correct length when calling to_a" do
239
- enumerable.to_a.length.should eq(2)
239
+ expect(enumerable.to_a.length).to eq(2)
240
240
  end
241
241
  end
242
242
  end
@@ -271,20 +271,20 @@ describe Mongoid::Relations::Targets::Enumerable do
271
271
 
272
272
  let!(:clear) do
273
273
  enumerable.clear do |doc|
274
- doc.should be_a(Post)
274
+ expect(doc).to be_a(Post)
275
275
  end
276
276
  end
277
277
 
278
278
  it "clears out the loaded docs" do
279
- enumerable._loaded.should be_empty
279
+ expect(enumerable._loaded).to be_empty
280
280
  end
281
281
 
282
282
  it "clears out the added docs" do
283
- enumerable._added.should be_empty
283
+ expect(enumerable._added).to be_empty
284
284
  end
285
285
 
286
286
  it "retains its loaded state" do
287
- enumerable.should_not be__loaded
287
+ expect(enumerable).to_not be__loaded
288
288
  end
289
289
  end
290
290
 
@@ -320,11 +320,11 @@ describe Mongoid::Relations::Targets::Enumerable do
320
320
  end
321
321
 
322
322
  it "does not retain the first id" do
323
- cloned.first.should_not eq(post)
323
+ expect(cloned.first).to_not eq(post)
324
324
  end
325
325
 
326
326
  it "does not retain the last id" do
327
- cloned.last.should_not eq(post_two)
327
+ expect(cloned.last).to_not eq(post_two)
328
328
  end
329
329
  end
330
330
 
@@ -349,11 +349,11 @@ describe Mongoid::Relations::Targets::Enumerable do
349
349
  end
350
350
 
351
351
  it "deletes the document from the enumerable" do
352
- enumerable._loaded.should be_empty
352
+ expect(enumerable._loaded).to be_empty
353
353
  end
354
354
 
355
355
  it "returns the document" do
356
- deleted.should eq(post)
356
+ expect(deleted).to eq(post)
357
357
  end
358
358
  end
359
359
 
@@ -380,11 +380,11 @@ describe Mongoid::Relations::Targets::Enumerable do
380
380
  end
381
381
 
382
382
  it "removes the document from the added docs" do
383
- enumerable._added.should be_empty
383
+ expect(enumerable._added).to be_empty
384
384
  end
385
385
 
386
386
  it "returns the document" do
387
- deleted.should eq(post)
387
+ expect(deleted).to eq(post)
388
388
  end
389
389
  end
390
390
 
@@ -407,11 +407,11 @@ describe Mongoid::Relations::Targets::Enumerable do
407
407
  end
408
408
 
409
409
  it "does not load the document" do
410
- enumerable._loaded.should be_empty
410
+ expect(enumerable._loaded).to be_empty
411
411
  end
412
412
 
413
413
  it "returns the document" do
414
- deleted.should eq(post)
414
+ expect(deleted).to eq(post)
415
415
  end
416
416
  end
417
417
 
@@ -431,12 +431,12 @@ describe Mongoid::Relations::Targets::Enumerable do
431
431
 
432
432
  let!(:deleted) do
433
433
  enumerable.delete(Post.new) do |doc|
434
- doc.should be_nil
434
+ expect(doc).to be_nil
435
435
  end
436
436
  end
437
437
 
438
438
  it "returns nil" do
439
- deleted.should be_nil
439
+ expect(deleted).to be_nil
440
440
  end
441
441
  end
442
442
  end
@@ -462,11 +462,11 @@ describe Mongoid::Relations::Targets::Enumerable do
462
462
  end
463
463
 
464
464
  it "deletes the document from the enumerable" do
465
- enumerable._loaded.should be_empty
465
+ expect(enumerable._loaded).to be_empty
466
466
  end
467
467
 
468
468
  it "returns the remaining docs" do
469
- deleted.should be_empty
469
+ expect(deleted).to be_empty
470
470
  end
471
471
  end
472
472
 
@@ -493,11 +493,11 @@ describe Mongoid::Relations::Targets::Enumerable do
493
493
  end
494
494
 
495
495
  it "removes the document from the added docs" do
496
- enumerable._added.should be_empty
496
+ expect(enumerable._added).to be_empty
497
497
  end
498
498
 
499
499
  it "returns the remaining docs" do
500
- deleted.should be_empty
500
+ expect(deleted).to be_empty
501
501
  end
502
502
  end
503
503
 
@@ -520,11 +520,11 @@ describe Mongoid::Relations::Targets::Enumerable do
520
520
  end
521
521
 
522
522
  it "does not load the document" do
523
- enumerable._loaded.should be_empty
523
+ expect(enumerable._loaded).to be_empty
524
524
  end
525
525
 
526
526
  it "returns the remaining docs" do
527
- deleted.should be_empty
527
+ expect(deleted).to be_empty
528
528
  end
529
529
  end
530
530
 
@@ -547,7 +547,7 @@ describe Mongoid::Relations::Targets::Enumerable do
547
547
  end
548
548
 
549
549
  it "returns the remaining docs" do
550
- deleted.should eq([ post ])
550
+ expect(deleted).to eq([ post ])
551
551
  end
552
552
  end
553
553
  end
@@ -577,7 +577,7 @@ describe Mongoid::Relations::Targets::Enumerable do
577
577
  end
578
578
 
579
579
  it "sets the value on the instance" do
580
- enumerable.detect{ |post| post.title = "test" }.rating.should eq(10)
580
+ expect(enumerable.detect{ |post| post.title = "test" }.rating).to eq(10)
581
581
  end
582
582
  end
583
583
  end
@@ -604,16 +604,16 @@ describe Mongoid::Relations::Targets::Enumerable do
604
604
 
605
605
  let!(:iterated) do
606
606
  enumerable.each do |doc|
607
- doc.should be_a(Post)
607
+ expect(doc).to be_a(Post)
608
608
  end
609
609
  end
610
610
 
611
611
  it "loads each document" do
612
- enumerable._loaded.should eq({ post.id => post })
612
+ expect(enumerable._loaded).to eq({ post.id => post })
613
613
  end
614
614
 
615
615
  it "becomes loaded" do
616
- enumerable.should be__loaded
616
+ expect(enumerable).to be__loaded
617
617
  end
618
618
  end
619
619
 
@@ -625,16 +625,16 @@ describe Mongoid::Relations::Targets::Enumerable do
625
625
 
626
626
  let!(:iterated) do
627
627
  enumerable.each do |doc|
628
- doc.should be_a(Post)
628
+ expect(doc).to be_a(Post)
629
629
  end
630
630
  end
631
631
 
632
632
  it "does not alter the loaded docs" do
633
- enumerable._loaded.should eq({ post.id => post })
633
+ expect(enumerable._loaded).to eq({ post.id => post })
634
634
  end
635
635
 
636
636
  it "stays loaded" do
637
- enumerable.should be__loaded
637
+ expect(enumerable).to be__loaded
638
638
  end
639
639
  end
640
640
 
@@ -660,20 +660,20 @@ describe Mongoid::Relations::Targets::Enumerable do
660
660
 
661
661
  let!(:iterated) do
662
662
  enumerable.each do |doc|
663
- doc.should be_a(Post)
663
+ expect(doc).to be_a(Post)
664
664
  end
665
665
  end
666
666
 
667
667
  it "adds the unloaded to the loaded docs" do
668
- enumerable._loaded.should eq({ post.id => post })
668
+ expect(enumerable._loaded).to eq({ post.id => post })
669
669
  end
670
670
 
671
671
  it "keeps the appended in the added docs" do
672
- enumerable._added.should eq({ post_two.id => post_two })
672
+ expect(enumerable._added).to eq({ post_two.id => post_two })
673
673
  end
674
674
 
675
675
  it "stays loaded" do
676
- enumerable.should be__loaded
676
+ expect(enumerable).to be__loaded
677
677
  end
678
678
  end
679
679
 
@@ -685,16 +685,16 @@ describe Mongoid::Relations::Targets::Enumerable do
685
685
 
686
686
  let!(:iterated) do
687
687
  enumerable.each do |doc|
688
- doc.should be_a(Post)
688
+ expect(doc).to be_a(Post)
689
689
  end
690
690
  end
691
691
 
692
692
  it "adds the persisted added doc to the loaded" do
693
- enumerable._loaded.should eq({ post.id => post })
693
+ expect(enumerable._loaded).to eq({ post.id => post })
694
694
  end
695
695
 
696
696
  it "stays loaded" do
697
- enumerable.should be__loaded
697
+ expect(enumerable).to be__loaded
698
698
  end
699
699
  end
700
700
  end
@@ -710,7 +710,7 @@ describe Mongoid::Relations::Targets::Enumerable do
710
710
  end
711
711
 
712
712
  it "returns an enumerator" do
713
- enumerable.each.class.include?(Enumerable).should be_true
713
+ expect(enumerable.each.class.include?(Enumerable)).to be true
714
714
  end
715
715
 
716
716
  end
@@ -745,7 +745,7 @@ describe Mongoid::Relations::Targets::Enumerable do
745
745
  end
746
746
 
747
747
  it "yields to the in memory documents first" do
748
- entries.first.should equal(post)
748
+ expect(entries.first).to equal(post)
749
749
  end
750
750
  end
751
751
  end
@@ -779,15 +779,15 @@ describe Mongoid::Relations::Targets::Enumerable do
779
779
  end
780
780
 
781
781
  it "returns the first unloaded doc" do
782
- first.should eq(post)
782
+ expect(first).to eq(post)
783
783
  end
784
784
 
785
785
  it "does not load the enumerable" do
786
- enumerable.should_not be__loaded
786
+ expect(enumerable).to_not be__loaded
787
787
  end
788
788
 
789
789
  it "receives query only once" do
790
- criteria.should_receive(:first).once
790
+ expect(criteria).to receive(:first).once
791
791
  first
792
792
  end
793
793
  end
@@ -813,11 +813,11 @@ describe Mongoid::Relations::Targets::Enumerable do
813
813
  context "when a perviously persisted unloaded doc exists" do
814
814
 
815
815
  it "returns the first added doc" do
816
- first.should eq(post)
816
+ expect(first).to eq(post)
817
817
  end
818
818
 
819
819
  it "does not load the enumerable" do
820
- enumerable.should_not be__loaded
820
+ expect(enumerable).to_not be__loaded
821
821
  end
822
822
  end
823
823
  end
@@ -838,11 +838,11 @@ describe Mongoid::Relations::Targets::Enumerable do
838
838
  end
839
839
 
840
840
  it "returns the first loaded doc" do
841
- first.should eq(post)
841
+ expect(first).to eq(post)
842
842
  end
843
843
 
844
844
  it "does not load the enumerable" do
845
- enumerable.should_not be__loaded
845
+ expect(enumerable).to_not be__loaded
846
846
  end
847
847
  end
848
848
 
@@ -853,11 +853,11 @@ describe Mongoid::Relations::Targets::Enumerable do
853
853
  end
854
854
 
855
855
  it "returns nil" do
856
- first.should be_nil
856
+ expect(first).to be_nil
857
857
  end
858
858
 
859
859
  it "does not load the enumerable" do
860
- enumerable.should_not be__loaded
860
+ expect(enumerable).to_not be__loaded
861
861
  end
862
862
  end
863
863
  end
@@ -879,7 +879,7 @@ describe Mongoid::Relations::Targets::Enumerable do
879
879
  end
880
880
 
881
881
  it "returns the first loaded doc" do
882
- first.should eq(post)
882
+ expect(first).to eq(post)
883
883
  end
884
884
  end
885
885
 
@@ -902,7 +902,7 @@ describe Mongoid::Relations::Targets::Enumerable do
902
902
  end
903
903
 
904
904
  it "returns the first added doc" do
905
- first.should eq(post)
905
+ expect(first).to eq(post)
906
906
  end
907
907
  end
908
908
 
@@ -917,7 +917,7 @@ describe Mongoid::Relations::Targets::Enumerable do
917
917
  end
918
918
 
919
919
  it "returns nil" do
920
- first.should be_nil
920
+ expect(first).to be_nil
921
921
  end
922
922
  end
923
923
  end
@@ -950,15 +950,15 @@ describe Mongoid::Relations::Targets::Enumerable do
950
950
  end
951
951
 
952
952
  it "returns true" do
953
- included.should be_true
953
+ expect(included).to be true
954
954
  end
955
955
 
956
956
  it "retains the correct length" do
957
- enumerable.length.should eq(2)
957
+ expect(enumerable.length).to eq(2)
958
958
  end
959
959
 
960
960
  it "retains the correct length when calling to_a" do
961
- enumerable.to_a.length.should eq(2)
961
+ expect(enumerable.to_a.length).to eq(2)
962
962
  end
963
963
  end
964
964
 
@@ -981,7 +981,7 @@ describe Mongoid::Relations::Targets::Enumerable do
981
981
  end
982
982
 
983
983
  it "returns true" do
984
- included.should be_true
984
+ expect(included).to be true
985
985
  end
986
986
  end
987
987
  end
@@ -1001,15 +1001,15 @@ describe Mongoid::Relations::Targets::Enumerable do
1001
1001
  end
1002
1002
 
1003
1003
  it "returns true" do
1004
- included.should be_true
1004
+ expect(included).to be true
1005
1005
  end
1006
1006
 
1007
1007
  it "retains the correct length" do
1008
- enumerable.length.should eq(2)
1008
+ expect(enumerable.length).to eq(2)
1009
1009
  end
1010
1010
 
1011
1011
  it "retains the correct length when calling to_a" do
1012
- enumerable.to_a.length.should eq(2)
1012
+ expect(enumerable.to_a.length).to eq(2)
1013
1013
  end
1014
1014
 
1015
1015
  context "when iterating over the relation a second time" do
@@ -1019,11 +1019,11 @@ describe Mongoid::Relations::Targets::Enumerable do
1019
1019
  end
1020
1020
 
1021
1021
  it "retains the correct length" do
1022
- enumerable.length.should eq(2)
1022
+ expect(enumerable.length).to eq(2)
1023
1023
  end
1024
1024
 
1025
1025
  it "retains the correct length when calling to_a" do
1026
- enumerable.to_a.length.should eq(2)
1026
+ expect(enumerable.to_a.length).to eq(2)
1027
1027
  end
1028
1028
  end
1029
1029
  end
@@ -1046,11 +1046,11 @@ describe Mongoid::Relations::Targets::Enumerable do
1046
1046
  end
1047
1047
 
1048
1048
  it "sets the criteria" do
1049
- enumerable._unloaded.should eq(criteria)
1049
+ expect(enumerable._unloaded).to eq(criteria)
1050
1050
  end
1051
1051
 
1052
1052
  it "is not loaded" do
1053
- enumerable.should_not be__loaded
1053
+ expect(enumerable).to_not be__loaded
1054
1054
  end
1055
1055
  end
1056
1056
 
@@ -1065,11 +1065,11 @@ describe Mongoid::Relations::Targets::Enumerable do
1065
1065
  end
1066
1066
 
1067
1067
  it "does not set a criteria" do
1068
- enumerable._unloaded.should be_nil
1068
+ expect(enumerable._unloaded).to be_nil
1069
1069
  end
1070
1070
 
1071
1071
  it "is loaded" do
1072
- enumerable.should be__loaded
1072
+ expect(enumerable).to be__loaded
1073
1073
  end
1074
1074
  end
1075
1075
  end
@@ -1103,7 +1103,7 @@ describe Mongoid::Relations::Targets::Enumerable do
1103
1103
  end
1104
1104
 
1105
1105
  it "returns the loaded and added docs" do
1106
- in_memory.should eq([ post, post_two ])
1106
+ expect(in_memory).to eq([ post, post_two ])
1107
1107
  end
1108
1108
  end
1109
1109
 
@@ -1130,7 +1130,7 @@ describe Mongoid::Relations::Targets::Enumerable do
1130
1130
  end
1131
1131
 
1132
1132
  it "returns the added docs" do
1133
- in_memory.should eq([ post_two ])
1133
+ expect(in_memory).to eq([ post_two ])
1134
1134
  end
1135
1135
  end
1136
1136
 
@@ -1150,7 +1150,7 @@ describe Mongoid::Relations::Targets::Enumerable do
1150
1150
 
1151
1151
  it "yields to each in memory document" do
1152
1152
  enumerable.in_memory do |doc|
1153
- doc.should eq(post_two)
1153
+ expect(doc).to eq(post_two)
1154
1154
  end
1155
1155
  end
1156
1156
  end
@@ -1165,14 +1165,14 @@ describe Mongoid::Relations::Targets::Enumerable do
1165
1165
  context "when checking against enumerable" do
1166
1166
 
1167
1167
  it "returns true" do
1168
- enumerable.is_a?(::Enumerable).should be_true
1168
+ expect(enumerable.is_a?(::Enumerable)).to be true
1169
1169
  end
1170
1170
  end
1171
1171
 
1172
1172
  context "when checking against array" do
1173
1173
 
1174
1174
  it "returns true" do
1175
- enumerable.is_a?(Array).should be_true
1175
+ expect(enumerable.is_a?(Array)).to be true
1176
1176
  end
1177
1177
  end
1178
1178
  end
@@ -1204,15 +1204,15 @@ describe Mongoid::Relations::Targets::Enumerable do
1204
1204
  end
1205
1205
 
1206
1206
  it "returns the last unloaded doc" do
1207
- last.should eq(post)
1207
+ expect(last).to eq(post)
1208
1208
  end
1209
1209
 
1210
1210
  it "does not load the enumerable" do
1211
- enumerable.should_not be__loaded
1211
+ expect(enumerable).to_not be__loaded
1212
1212
  end
1213
1213
 
1214
1214
  it "receives query only once" do
1215
- criteria.should_receive(:last).once
1215
+ expect(criteria).to receive(:last).once
1216
1216
  last
1217
1217
  end
1218
1218
  end
@@ -1232,11 +1232,11 @@ describe Mongoid::Relations::Targets::Enumerable do
1232
1232
  end
1233
1233
 
1234
1234
  it "returns the last unloaded doc" do
1235
- last.should eq(post)
1235
+ expect(last).to eq(post)
1236
1236
  end
1237
1237
 
1238
1238
  it "does not load the enumerable" do
1239
- enumerable.should_not be__loaded
1239
+ expect(enumerable).to_not be__loaded
1240
1240
  end
1241
1241
  end
1242
1242
 
@@ -1247,11 +1247,11 @@ describe Mongoid::Relations::Targets::Enumerable do
1247
1247
  end
1248
1248
 
1249
1249
  it "returns nil" do
1250
- last.should be_nil
1250
+ expect(last).to be_nil
1251
1251
  end
1252
1252
 
1253
1253
  it "does not load the enumerable" do
1254
- enumerable.should_not be__loaded
1254
+ expect(enumerable).to_not be__loaded
1255
1255
  end
1256
1256
  end
1257
1257
 
@@ -1272,7 +1272,7 @@ describe Mongoid::Relations::Targets::Enumerable do
1272
1272
  context "when accessing from a reloaded child" do
1273
1273
 
1274
1274
  it "returns the last document" do
1275
- post_one.reload.person.posts.last.should eq(post_two)
1275
+ expect(post_one.reload.person.posts.last).to eq(post_two)
1276
1276
  end
1277
1277
  end
1278
1278
  end
@@ -1295,7 +1295,7 @@ describe Mongoid::Relations::Targets::Enumerable do
1295
1295
  end
1296
1296
 
1297
1297
  it "returns the last loaded doc" do
1298
- last.should eq(post)
1298
+ expect(last).to eq(post)
1299
1299
  end
1300
1300
  end
1301
1301
 
@@ -1318,7 +1318,7 @@ describe Mongoid::Relations::Targets::Enumerable do
1318
1318
  end
1319
1319
 
1320
1320
  it "returns the last added doc" do
1321
- last.should eq(post)
1321
+ expect(last).to eq(post)
1322
1322
  end
1323
1323
  end
1324
1324
 
@@ -1333,7 +1333,7 @@ describe Mongoid::Relations::Targets::Enumerable do
1333
1333
  end
1334
1334
 
1335
1335
  it "returns nil" do
1336
- last.should be_nil
1336
+ expect(last).to be_nil
1337
1337
  end
1338
1338
  end
1339
1339
  end
@@ -1348,14 +1348,14 @@ describe Mongoid::Relations::Targets::Enumerable do
1348
1348
  context "when checking against enumerable" do
1349
1349
 
1350
1350
  it "returns true" do
1351
- enumerable.kind_of?(::Enumerable).should be_true
1351
+ expect(enumerable.kind_of?(::Enumerable)).to be true
1352
1352
  end
1353
1353
  end
1354
1354
 
1355
1355
  context "when checking against array" do
1356
1356
 
1357
1357
  it "returns true" do
1358
- enumerable.kind_of?(Array).should be_true
1358
+ expect(enumerable.kind_of?(Array)).to be true
1359
1359
  end
1360
1360
  end
1361
1361
  end
@@ -1383,15 +1383,15 @@ describe Mongoid::Relations::Targets::Enumerable do
1383
1383
  end
1384
1384
 
1385
1385
  it "loads all the unloaded documents" do
1386
- enumerable._loaded.should eq({ post.id => post })
1386
+ expect(enumerable._loaded).to eq({ post.id => post })
1387
1387
  end
1388
1388
 
1389
- it "returns true" do
1390
- loaded.should be_true
1389
+ it "returns the object" do
1390
+ expect(loaded).to eq([post])
1391
1391
  end
1392
1392
 
1393
1393
  it "sets loaded to true" do
1394
- enumerable.should be__loaded
1394
+ expect(enumerable).to be__loaded
1395
1395
  end
1396
1396
  end
1397
1397
 
@@ -1422,15 +1422,15 @@ describe Mongoid::Relations::Targets::Enumerable do
1422
1422
  end
1423
1423
 
1424
1424
  it "is not loaded" do
1425
- enumerable.should_not be__loaded
1425
+ expect(enumerable).to_not be__loaded
1426
1426
  end
1427
1427
 
1428
1428
  it "clears out the loaded docs" do
1429
- enumerable._loaded.should be_empty
1429
+ expect(enumerable._loaded).to be_empty
1430
1430
  end
1431
1431
 
1432
1432
  it "clears out the added docs" do
1433
- enumerable._added.should be_empty
1433
+ expect(enumerable._added).to be_empty
1434
1434
  end
1435
1435
  end
1436
1436
 
@@ -1445,7 +1445,7 @@ describe Mongoid::Relations::Targets::Enumerable do
1445
1445
  [].methods.each do |method|
1446
1446
 
1447
1447
  it "returns true for #{method}" do
1448
- enumerable.should respond_to(method)
1448
+ expect(enumerable).to respond_to(method)
1449
1449
  end
1450
1450
  end
1451
1451
  end
@@ -1480,7 +1480,7 @@ describe Mongoid::Relations::Targets::Enumerable do
1480
1480
  end
1481
1481
 
1482
1482
  it "includes the number of all added documents" do
1483
- enumerable.size.should eq(1)
1483
+ expect(enumerable.size).to eq(1)
1484
1484
  end
1485
1485
  end
1486
1486
  end
@@ -1505,11 +1505,11 @@ describe Mongoid::Relations::Targets::Enumerable do
1505
1505
  end
1506
1506
 
1507
1507
  it "returns the loaded size plus added size" do
1508
- size.should eq(2)
1508
+ expect(size).to eq(2)
1509
1509
  end
1510
1510
 
1511
1511
  it "matches the size of the loaded enumerable" do
1512
- size.should eq(enumerable.to_a.size)
1512
+ expect(size).to eq(enumerable.to_a.size)
1513
1513
  end
1514
1514
  end
1515
1515
 
@@ -1534,7 +1534,7 @@ describe Mongoid::Relations::Targets::Enumerable do
1534
1534
  end
1535
1535
 
1536
1536
  it "returns the unloaded count plus added new size" do
1537
- size.should eq(2)
1537
+ expect(size).to eq(2)
1538
1538
  end
1539
1539
  end
1540
1540
 
@@ -1553,7 +1553,7 @@ describe Mongoid::Relations::Targets::Enumerable do
1553
1553
  end
1554
1554
 
1555
1555
  it "returns the unloaded count plus added new size" do
1556
- size.should eq(2)
1556
+ expect(size).to eq(2)
1557
1557
  end
1558
1558
  end
1559
1559
  end
@@ -1586,7 +1586,7 @@ describe Mongoid::Relations::Targets::Enumerable do
1586
1586
  end
1587
1587
 
1588
1588
  it "serializes the enumerable" do
1589
- json.should include(post.title)
1589
+ expect(json).to include(post.title)
1590
1590
  end
1591
1591
  end
1592
1592
 
@@ -1609,7 +1609,7 @@ describe Mongoid::Relations::Targets::Enumerable do
1609
1609
  end
1610
1610
 
1611
1611
  it "serializes the enumerable" do
1612
- json.should_not include(post.title)
1612
+ expect(json).to_not include(post.title)
1613
1613
  end
1614
1614
  end
1615
1615
 
@@ -1640,8 +1640,8 @@ describe Mongoid::Relations::Targets::Enumerable do
1640
1640
  end
1641
1641
 
1642
1642
  it "serializes the enumerable" do
1643
- json.size.should eq(1)
1644
- json[0]['title'].should eq(post.title)
1643
+ expect(json.size).to eq(1)
1644
+ expect(json[0]['title']).to eq(post.title)
1645
1645
  end
1646
1646
  end
1647
1647
 
@@ -1664,11 +1664,11 @@ describe Mongoid::Relations::Targets::Enumerable do
1664
1664
  end
1665
1665
 
1666
1666
  it "serializes the enumerable" do
1667
- json.size.should eq(1)
1667
+ expect(json.size).to eq(1)
1668
1668
  end
1669
1669
 
1670
1670
  it "includes the proper fields" do
1671
- json[0].keys.should_not include("title")
1671
+ expect(json[0].keys).to_not include("title")
1672
1672
  end
1673
1673
  end
1674
1674
 
@@ -1700,11 +1700,11 @@ describe Mongoid::Relations::Targets::Enumerable do
1700
1700
  end
1701
1701
 
1702
1702
  it "returns the unique documents" do
1703
- uniq.should eq([ post ])
1703
+ expect(uniq).to eq([ post ])
1704
1704
  end
1705
1705
 
1706
1706
  it "sets loaded to true" do
1707
- enumerable.should be__loaded
1707
+ expect(enumerable).to be__loaded
1708
1708
  end
1709
1709
  end
1710
1710
  end