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
@@ -1,15 +1,11 @@
1
1
  require "spec_helper"
2
2
 
3
- describe Mongoid::Inspection do
3
+ describe Mongoid::Inspectable do
4
4
 
5
5
  describe "#inspect" do
6
6
 
7
7
  context "when not allowing dynamic fields" do
8
8
 
9
- before do
10
- Mongoid.configure.allow_dynamic_fields = false
11
- end
12
-
13
9
  let(:person) do
14
10
  Person.new(title: "CEO")
15
11
  end
@@ -19,19 +15,19 @@ describe Mongoid::Inspection do
19
15
  end
20
16
 
21
17
  it "includes the model type" do
22
- inspected.should include("#<Person")
18
+ expect(inspected).to include("#<Person")
23
19
  end
24
20
 
25
21
  it "displays the id" do
26
- inspected.should include("_id: #{person.id}")
22
+ expect(inspected).to include("_id: #{person.id}")
27
23
  end
28
24
 
29
25
  it "displays defined fields" do
30
- inspected.should include("title: \"CEO\"")
26
+ expect(inspected).to include("title: \"CEO\"")
31
27
  end
32
28
 
33
29
  it "displays field aliases" do
34
- inspected.should include("t(test):")
30
+ expect(inspected).to include("t(test):")
35
31
  end
36
32
  end
37
33
 
@@ -45,12 +41,8 @@ describe Mongoid::Inspection do
45
41
  person.inspect
46
42
  end
47
43
 
48
- before do
49
- Mongoid.configure.allow_dynamic_fields = true
50
- end
51
-
52
44
  it "includes dynamic attributes" do
53
- inspected.should include("some_attribute: \"foo\"")
45
+ expect(inspected).to include("some_attribute: \"foo\"")
54
46
  end
55
47
  end
56
48
  end
@@ -1,9 +1,9 @@
1
1
  require "spec_helper"
2
2
 
3
- describe Mongoid::Callbacks do
3
+ describe Mongoid::Interceptable do
4
4
 
5
5
  class TestClass
6
- include Mongoid::Callbacks
6
+ include Mongoid::Interceptable
7
7
 
8
8
  attr_reader :before_save_called, :after_save_called
9
9
 
@@ -23,51 +23,51 @@ describe Mongoid::Callbacks do
23
23
  end
24
24
 
25
25
  it "includes the before_create callback" do
26
- klass.should respond_to(:before_create)
26
+ expect(klass).to respond_to(:before_create)
27
27
  end
28
28
 
29
29
  it "includes the after_create callback" do
30
- klass.should respond_to(:after_create)
30
+ expect(klass).to respond_to(:after_create)
31
31
  end
32
32
 
33
33
  it "includes the before_destroy callback" do
34
- klass.should respond_to(:before_destroy)
34
+ expect(klass).to respond_to(:before_destroy)
35
35
  end
36
36
 
37
37
  it "includes the after_destroy callback" do
38
- klass.should respond_to(:after_destroy)
38
+ expect(klass).to respond_to(:after_destroy)
39
39
  end
40
40
 
41
41
  it "includes the before_save callback" do
42
- klass.should respond_to(:before_save)
42
+ expect(klass).to respond_to(:before_save)
43
43
  end
44
44
 
45
45
  it "includes the after_save callback" do
46
- klass.should respond_to(:after_save)
46
+ expect(klass).to respond_to(:after_save)
47
47
  end
48
48
 
49
49
  it "includes the before_update callback" do
50
- klass.should respond_to(:before_update)
50
+ expect(klass).to respond_to(:before_update)
51
51
  end
52
52
 
53
53
  it "includes the after_update callback" do
54
- klass.should respond_to(:after_update)
54
+ expect(klass).to respond_to(:after_update)
55
55
  end
56
56
 
57
57
  it "includes the before_validation callback" do
58
- klass.should respond_to(:before_validation)
58
+ expect(klass).to respond_to(:before_validation)
59
59
  end
60
60
 
61
61
  it "includes the after_validation callback" do
62
- klass.should respond_to(:after_validation)
62
+ expect(klass).to respond_to(:after_validation)
63
63
  end
64
64
 
65
65
  it "includes the after_initialize callback" do
66
- klass.should respond_to(:after_initialize)
66
+ expect(klass).to respond_to(:after_initialize)
67
67
  end
68
68
 
69
69
  it "includes the after_build callback" do
70
- klass.should respond_to(:after_build)
70
+ expect(klass).to respond_to(:after_build)
71
71
  end
72
72
  end
73
73
 
@@ -82,7 +82,7 @@ describe Mongoid::Callbacks do
82
82
  context "when when the document is instantiated" do
83
83
 
84
84
  it "does not execute the callback" do
85
- player.impressions.should eq(0)
85
+ expect(player.impressions).to eq(0)
86
86
  end
87
87
  end
88
88
 
@@ -93,7 +93,7 @@ describe Mongoid::Callbacks do
93
93
  end
94
94
 
95
95
  it "executes the callback" do
96
- from_db.impressions.should eq(1)
96
+ expect(from_db.impressions).to eq(1)
97
97
  end
98
98
  end
99
99
 
@@ -104,7 +104,7 @@ describe Mongoid::Callbacks do
104
104
  end
105
105
 
106
106
  it "executes the callback" do
107
- from_db.impressions.should eq(1)
107
+ expect(from_db.impressions).to eq(1)
108
108
  end
109
109
  end
110
110
 
@@ -119,7 +119,7 @@ describe Mongoid::Callbacks do
119
119
  end
120
120
 
121
121
  it "executes the callback" do
122
- from_db.impressions.should eq(1)
122
+ expect(from_db.impressions).to eq(1)
123
123
  end
124
124
  end
125
125
  end
@@ -133,7 +133,7 @@ describe Mongoid::Callbacks do
133
133
  context "when when the document is instantiated" do
134
134
 
135
135
  it "does not execute the callback" do
136
- implant.impressions.should eq(0)
136
+ expect(implant.impressions).to eq(0)
137
137
  end
138
138
  end
139
139
 
@@ -144,7 +144,7 @@ describe Mongoid::Callbacks do
144
144
  end
145
145
 
146
146
  it "executes the callback" do
147
- from_db.impressions.should eq(1)
147
+ expect(from_db.impressions).to eq(1)
148
148
  end
149
149
  end
150
150
 
@@ -155,7 +155,7 @@ describe Mongoid::Callbacks do
155
155
  end
156
156
 
157
157
  it "executes the callback" do
158
- from_db.impressions.should eq(1)
158
+ expect(from_db.impressions).to eq(1)
159
159
  end
160
160
  end
161
161
  end
@@ -168,7 +168,7 @@ describe Mongoid::Callbacks do
168
168
  end
169
169
 
170
170
  it "runs after document instantiation" do
171
- game.name.should eq("Testing")
171
+ expect(game.name).to eq("Testing")
172
172
  end
173
173
  end
174
174
 
@@ -179,7 +179,7 @@ describe Mongoid::Callbacks do
179
179
  end
180
180
 
181
181
  it "runs after document build (references_many)" do
182
- weapon.name.should eq("Holy Hand Grenade (5)")
182
+ expect(weapon.name).to eq("Holy Hand Grenade (5)")
183
183
  end
184
184
 
185
185
  let(:implant) do
@@ -187,7 +187,7 @@ describe Mongoid::Callbacks do
187
187
  end
188
188
 
189
189
  it "runs after document build (embeds_many)" do
190
- implant.name.should eq('Cochlear Implant (5)')
190
+ expect(implant.name).to eq('Cochlear Implant (5)')
191
191
  end
192
192
 
193
193
  let(:powerup) do
@@ -195,7 +195,7 @@ describe Mongoid::Callbacks do
195
195
  end
196
196
 
197
197
  it "runs after document build (references_one)" do
198
- powerup.name.should eq("Quad Damage (5)")
198
+ expect(powerup.name).to eq("Quad Damage (5)")
199
199
  end
200
200
 
201
201
  let(:augmentation) do
@@ -203,7 +203,7 @@ describe Mongoid::Callbacks do
203
203
  end
204
204
 
205
205
  it "runs after document build (embeds_one)" do
206
- augmentation.name.should eq("Infolink (5)")
206
+ expect(augmentation.name).to eq("Infolink (5)")
207
207
  end
208
208
  end
209
209
 
@@ -216,24 +216,24 @@ describe Mongoid::Callbacks do
216
216
  context "callback returns true" do
217
217
 
218
218
  before do
219
- artist.should_receive(:before_create_stub).once.and_return(true)
219
+ expect(artist).to receive(:before_create_stub).once.and_return(true)
220
220
  artist.save
221
221
  end
222
222
 
223
223
  it "gets saved" do
224
- artist.persisted?.should be_true
224
+ expect(artist.persisted?).to be true
225
225
  end
226
226
  end
227
227
 
228
228
  context "callback returns false" do
229
229
 
230
230
  before do
231
- artist.should_receive(:before_create_stub).once.and_return(false)
231
+ expect(artist).to receive(:before_create_stub).once.and_return(false)
232
232
  artist.save
233
233
  end
234
234
 
235
235
  it "does not get saved" do
236
- artist.persisted?.should be_false
236
+ expect(artist.persisted?).to be false
237
237
  end
238
238
  end
239
239
  end
@@ -253,22 +253,22 @@ describe Mongoid::Callbacks do
253
253
  context "when the callback returns true" do
254
254
 
255
255
  before do
256
- artist.should_receive(:before_save_stub).once.and_return(true)
256
+ expect(artist).to receive(:before_save_stub).once.and_return(true)
257
257
  end
258
258
 
259
259
  it "the save returns true" do
260
- artist.save.should be_true
260
+ expect(artist.save).to be true
261
261
  end
262
262
  end
263
263
 
264
264
  context "when callback returns false" do
265
265
 
266
266
  before do
267
- artist.should_receive(:before_save_stub).once.and_return(false)
267
+ expect(artist).to receive(:before_save_stub).once.and_return(false)
268
268
  end
269
269
 
270
270
  it "the save returns false" do
271
- artist.save.should be_false
271
+ expect(artist.save).to be false
272
272
  end
273
273
  end
274
274
  end
@@ -288,22 +288,22 @@ describe Mongoid::Callbacks do
288
288
  context "when the callback returns true" do
289
289
 
290
290
  before do
291
- artist.should_receive(:before_save_stub).once.and_return(true)
291
+ expect(artist).to receive(:before_save_stub).once.and_return(true)
292
292
  end
293
293
 
294
294
  it "the save returns true" do
295
- artist.save.should be_true
295
+ expect(artist.save).to be true
296
296
  end
297
297
  end
298
298
 
299
299
  context "when the callback returns false" do
300
300
 
301
301
  before do
302
- artist.should_receive(:before_save_stub).once.and_return(false)
302
+ expect(artist).to receive(:before_save_stub).once.and_return(false)
303
303
  end
304
304
 
305
305
  it "the save returns false" do
306
- artist.save.should be_false
306
+ expect(artist.save).to be false
307
307
  end
308
308
  end
309
309
  end
@@ -326,22 +326,22 @@ describe Mongoid::Callbacks do
326
326
  context "when the callback returns true" do
327
327
 
328
328
  before do
329
- artist.should_receive(:before_destroy_stub).once.and_return(true)
329
+ expect(artist).to receive(:before_destroy_stub).once.and_return(true)
330
330
  end
331
331
 
332
332
  it "the destroy returns true" do
333
- artist.destroy.should be_true
333
+ expect(artist.destroy).to be true
334
334
  end
335
335
  end
336
336
 
337
337
  context "when the callback returns false" do
338
338
 
339
339
  before do
340
- artist.should_receive(:before_destroy_stub).once.and_return(false)
340
+ expect(artist).to receive(:before_destroy_stub).once.and_return(false)
341
341
  end
342
342
 
343
343
  it "the destroy returns false" do
344
- artist.destroy.should be_false
344
+ expect(artist.destroy).to be false
345
345
  end
346
346
  end
347
347
 
@@ -360,7 +360,7 @@ describe Mongoid::Callbacks do
360
360
  end
361
361
 
362
362
  it "executes the child destroy callbacks" do
363
- record.before_destroy_called.should be_true
363
+ expect(record.before_destroy_called).to be true
364
364
  end
365
365
  end
366
366
  end
@@ -376,11 +376,11 @@ describe Mongoid::Callbacks do
376
376
  end
377
377
 
378
378
  it "runs the after callbacks" do
379
- object.after_save_called.should be_true
379
+ expect(object.after_save_called).to be true
380
380
  end
381
381
 
382
382
  it "does not run the before callbacks" do
383
- object.before_save_called.should be_false
383
+ expect(object.before_save_called).to be nil
384
384
  end
385
385
  end
386
386
 
@@ -395,11 +395,11 @@ describe Mongoid::Callbacks do
395
395
  end
396
396
 
397
397
  it "runs the before callbacks" do
398
- object.before_save_called.should be_true
398
+ expect(object.before_save_called).to be true
399
399
  end
400
400
 
401
401
  it "does not run the after callbacks" do
402
- object.after_save_called.should be_false
402
+ expect(object.after_save_called).to be nil
403
403
  end
404
404
  end
405
405
 
@@ -421,6 +421,7 @@ describe Mongoid::Callbacks do
421
421
 
422
422
  before(:all) do
423
423
  Band.define_model_callbacks(:rearrange)
424
+ Band.after_rearrange { }
424
425
  end
425
426
 
426
427
  after(:all) do
@@ -428,7 +429,7 @@ describe Mongoid::Callbacks do
428
429
  end
429
430
 
430
431
  it "does not cascade to the child" do
431
- band.run_callbacks(:rearrange).should be_true
432
+ expect(band.run_callbacks(:rearrange)).to be true
432
433
  end
433
434
  end
434
435
 
@@ -455,7 +456,7 @@ describe Mongoid::Callbacks do
455
456
 
456
457
  it "does not cascade to the child" do
457
458
  Band.accepts_nested_attributes_for :records, allow_destroy: true
458
- band.update_attributes(attributes).should be_true
459
+ expect(band.update_attributes(attributes)).to be true
459
460
  end
460
461
  end
461
462
  end
@@ -485,7 +486,7 @@ describe Mongoid::Callbacks do
485
486
  context "when saving the root" do
486
487
 
487
488
  it "only executes the callbacks once for each embed" do
488
- note.should_receive(:update_saved).twice
489
+ expect(note).to receive(:update_saved).twice
489
490
  band.save
490
491
  end
491
492
  end
@@ -503,8 +504,8 @@ describe Mongoid::Callbacks do
503
504
  end
504
505
 
505
506
  it "doesn't cascade the initialize" do
506
- Service.any_instance.should_receive(:after_initialize_called=).never
507
- Person.find(person.id).should eq(person)
507
+ expect_any_instance_of(Service).to receive(:after_initialize_called=).never
508
+ expect(Person.find(person.id)).to eq(person)
508
509
  end
509
510
  end
510
511
 
@@ -538,7 +539,7 @@ describe Mongoid::Callbacks do
538
539
  end
539
540
 
540
541
  it "executes the callback" do
541
- label.after_create_called.should be_true
542
+ expect(label.after_create_called).to be true
542
543
  end
543
544
  end
544
545
 
@@ -557,7 +558,7 @@ describe Mongoid::Callbacks do
557
558
  end
558
559
 
559
560
  it "executes the callback" do
560
- label.after_create_called.should be_true
561
+ expect(label.after_create_called).to be true
561
562
  end
562
563
  end
563
564
  end
@@ -578,7 +579,7 @@ describe Mongoid::Callbacks do
578
579
  end
579
580
 
580
581
  it "does not execute the callback" do
581
- label.after_create_called.should be_false
582
+ expect(label.after_create_called).to be false
582
583
  end
583
584
  end
584
585
  end
@@ -602,7 +603,7 @@ describe Mongoid::Callbacks do
602
603
  end
603
604
 
604
605
  it "executes the callback" do
605
- label.after_save_called.should be_true
606
+ expect(label.after_save_called).to be true
606
607
  end
607
608
  end
608
609
 
@@ -621,7 +622,7 @@ describe Mongoid::Callbacks do
621
622
  end
622
623
 
623
624
  it "executes the callback" do
624
- label.after_save_called.should be_true
625
+ expect(label.after_save_called).to be true
625
626
  end
626
627
  end
627
628
  end
@@ -641,7 +642,7 @@ describe Mongoid::Callbacks do
641
642
  end
642
643
 
643
644
  it "executes the callback" do
644
- label.after_save_called.should be_true
645
+ expect(label.after_save_called).to be true
645
646
  end
646
647
  end
647
648
  end
@@ -665,7 +666,7 @@ describe Mongoid::Callbacks do
665
666
  end
666
667
 
667
668
  it "does not execute the callback" do
668
- label.after_update_called.should be_false
669
+ expect(label.after_update_called).to be false
669
670
  end
670
671
  end
671
672
 
@@ -684,7 +685,7 @@ describe Mongoid::Callbacks do
684
685
  end
685
686
 
686
687
  it "does not execute the callback" do
687
- label.after_update_called.should be_false
688
+ expect(label.after_update_called).to be false
688
689
  end
689
690
  end
690
691
  end
@@ -707,7 +708,7 @@ describe Mongoid::Callbacks do
707
708
  end
708
709
 
709
710
  it "executes the callback" do
710
- label.after_update_called.should be_true
711
+ expect(label.after_update_called).to be true
711
712
  end
712
713
  end
713
714
 
@@ -722,7 +723,7 @@ describe Mongoid::Callbacks do
722
723
  end
723
724
 
724
725
  it "does not execute the callback" do
725
- label.after_update_called.should be_false
726
+ expect(label.after_update_called).to be false
726
727
  end
727
728
  end
728
729
  end
@@ -747,7 +748,7 @@ describe Mongoid::Callbacks do
747
748
  end
748
749
 
749
750
  it "executes the callback" do
750
- label.after_validation_called.should be_true
751
+ expect(label.after_validation_called).to be true
751
752
  end
752
753
  end
753
754
 
@@ -766,7 +767,7 @@ describe Mongoid::Callbacks do
766
767
  end
767
768
 
768
769
  it "executes the callback" do
769
- label.after_validation_called.should be_true
770
+ expect(label.after_validation_called).to be true
770
771
  end
771
772
  end
772
773
  end
@@ -786,7 +787,7 @@ describe Mongoid::Callbacks do
786
787
  end
787
788
 
788
789
  it "executes the callback" do
789
- label.after_validation_called.should be_true
790
+ expect(label.after_validation_called).to be true
790
791
  end
791
792
  end
792
793
  end
@@ -810,7 +811,7 @@ describe Mongoid::Callbacks do
810
811
  end
811
812
 
812
813
  it "executes the callback" do
813
- record.before_create_called.should be_true
814
+ expect(record.before_create_called).to be true
814
815
  end
815
816
  end
816
817
 
@@ -829,7 +830,7 @@ describe Mongoid::Callbacks do
829
830
  end
830
831
 
831
832
  it "executes the callback" do
832
- record.before_create_called.should be_true
833
+ expect(record.before_create_called).to be true
833
834
  end
834
835
  end
835
836
  end
@@ -850,7 +851,7 @@ describe Mongoid::Callbacks do
850
851
  end
851
852
 
852
853
  it "does not execute the callback" do
853
- record.before_create_called.should be_false
854
+ expect(record.before_create_called).to be false
854
855
  end
855
856
  end
856
857
  end
@@ -874,11 +875,11 @@ describe Mongoid::Callbacks do
874
875
  end
875
876
 
876
877
  it "executes the callback" do
877
- record.before_save_called.should be_true
878
+ expect(record.before_save_called).to be true
878
879
  end
879
880
 
880
881
  it "persists the change" do
881
- band.reload.records.first.before_save_called.should be_true
882
+ expect(band.reload.records.first.before_save_called).to be true
882
883
  end
883
884
  end
884
885
 
@@ -897,11 +898,11 @@ describe Mongoid::Callbacks do
897
898
  end
898
899
 
899
900
  it "executes the callback" do
900
- record.before_save_called.should be_true
901
+ expect(record.before_save_called).to be true
901
902
  end
902
903
 
903
904
  it "persists the change" do
904
- band.reload.records.first.before_save_called.should be_true
905
+ expect(band.reload.records.first.before_save_called).to be true
905
906
  end
906
907
  end
907
908
  end
@@ -921,11 +922,11 @@ describe Mongoid::Callbacks do
921
922
  end
922
923
 
923
924
  it "executes the callback" do
924
- record.before_save_called.should be_true
925
+ expect(record.before_save_called).to be true
925
926
  end
926
927
 
927
928
  it "persists the change" do
928
- band.reload.records.first.before_save_called.should be_true
929
+ expect(band.reload.records.first.before_save_called).to be true
929
930
  end
930
931
  end
931
932
  end
@@ -949,7 +950,7 @@ describe Mongoid::Callbacks do
949
950
  end
950
951
 
951
952
  it "does not execute the callback" do
952
- record.before_update_called.should be_false
953
+ expect(record.before_update_called).to be false
953
954
  end
954
955
  end
955
956
 
@@ -968,7 +969,7 @@ describe Mongoid::Callbacks do
968
969
  end
969
970
 
970
971
  it "does not execute the callback" do
971
- record.before_update_called.should be_false
972
+ expect(record.before_update_called).to be false
972
973
  end
973
974
  end
974
975
  end
@@ -991,11 +992,11 @@ describe Mongoid::Callbacks do
991
992
  end
992
993
 
993
994
  it "executes the callback" do
994
- record.before_update_called.should be_true
995
+ expect(record.before_update_called).to be true
995
996
  end
996
997
 
997
998
  it "persists the change" do
998
- band.reload.records.first.before_update_called.should be_true
999
+ expect(band.reload.records.first.before_update_called).to be true
999
1000
  end
1000
1001
  end
1001
1002
 
@@ -1006,7 +1007,7 @@ describe Mongoid::Callbacks do
1006
1007
  end
1007
1008
 
1008
1009
  it "does not execute the callback" do
1009
- record.before_update_called.should be_false
1010
+ expect(record.before_update_called).to be false
1010
1011
  end
1011
1012
  end
1012
1013
  end
@@ -1031,11 +1032,11 @@ describe Mongoid::Callbacks do
1031
1032
  end
1032
1033
 
1033
1034
  it "executes the callback" do
1034
- record.before_validation_called.should be_true
1035
+ expect(record.before_validation_called).to be true
1035
1036
  end
1036
1037
 
1037
1038
  it "persists the change" do
1038
- band.reload.records.first.before_validation_called.should be_true
1039
+ expect(band.reload.records.first.before_validation_called).to be true
1039
1040
  end
1040
1041
  end
1041
1042
 
@@ -1054,11 +1055,11 @@ describe Mongoid::Callbacks do
1054
1055
  end
1055
1056
 
1056
1057
  it "executes the callback" do
1057
- record.before_validation_called.should be_true
1058
+ expect(record.before_validation_called).to be true
1058
1059
  end
1059
1060
 
1060
1061
  it "persists the change" do
1061
- band.reload.records.first.before_validation_called.should be_true
1062
+ expect(band.reload.records.first.before_validation_called).to be true
1062
1063
  end
1063
1064
  end
1064
1065
  end
@@ -1078,11 +1079,11 @@ describe Mongoid::Callbacks do
1078
1079
  end
1079
1080
 
1080
1081
  it "executes the callback" do
1081
- record.before_validation_called.should be_true
1082
+ expect(record.before_validation_called).to be true
1082
1083
  end
1083
1084
 
1084
1085
  it "persists the change" do
1085
- band.reload.records.first.before_validation_called.should be_true
1086
+ expect(band.reload.records.first.before_validation_called).to be true
1086
1087
  end
1087
1088
  end
1088
1089
  end
@@ -1113,7 +1114,7 @@ describe Mongoid::Callbacks do
1113
1114
  end
1114
1115
 
1115
1116
  it "executes the callback" do
1116
- track.before_create_called.should be_true
1117
+ expect(track.before_create_called).to be true
1117
1118
  end
1118
1119
  end
1119
1120
 
@@ -1136,7 +1137,7 @@ describe Mongoid::Callbacks do
1136
1137
  end
1137
1138
 
1138
1139
  it "executes the callback" do
1139
- track.before_create_called.should be_true
1140
+ expect(track.before_create_called).to be true
1140
1141
  end
1141
1142
  end
1142
1143
  end
@@ -1161,7 +1162,7 @@ describe Mongoid::Callbacks do
1161
1162
  end
1162
1163
 
1163
1164
  it "does not execute the callback" do
1164
- track.before_create_called.should be_false
1165
+ expect(track.before_create_called).to be false
1165
1166
  end
1166
1167
  end
1167
1168
  end
@@ -1193,11 +1194,11 @@ describe Mongoid::Callbacks do
1193
1194
  end
1194
1195
 
1195
1196
  it "executes the callback" do
1196
- track.before_save_called.should be_true
1197
+ expect(track.before_save_called).to be true
1197
1198
  end
1198
1199
 
1199
1200
  it "persists the change" do
1200
- reloaded.tracks.first.before_save_called.should be_true
1201
+ expect(reloaded.tracks.first.before_save_called).to be true
1201
1202
  end
1202
1203
  end
1203
1204
 
@@ -1224,11 +1225,11 @@ describe Mongoid::Callbacks do
1224
1225
  end
1225
1226
 
1226
1227
  it "executes the callback" do
1227
- track.before_save_called.should be_true
1228
+ expect(track.before_save_called).to be true
1228
1229
  end
1229
1230
 
1230
1231
  it "persists the change" do
1231
- reloaded.tracks.first.before_save_called.should be_true
1232
+ expect(reloaded.tracks.first.before_save_called).to be true
1232
1233
  end
1233
1234
  end
1234
1235
  end
@@ -1256,11 +1257,11 @@ describe Mongoid::Callbacks do
1256
1257
  end
1257
1258
 
1258
1259
  it "executes the callback" do
1259
- track.before_save_called.should be_true
1260
+ expect(track.before_save_called).to be true
1260
1261
  end
1261
1262
 
1262
1263
  it "persists the change" do
1263
- reloaded.tracks.first.before_save_called.should be_true
1264
+ expect(reloaded.tracks.first.before_save_called).to be true
1264
1265
  end
1265
1266
  end
1266
1267
  end
@@ -1288,7 +1289,7 @@ describe Mongoid::Callbacks do
1288
1289
  end
1289
1290
 
1290
1291
  it "does not execute the callback" do
1291
- track.before_update_called.should be_false
1292
+ expect(track.before_update_called).to be false
1292
1293
  end
1293
1294
  end
1294
1295
 
@@ -1311,7 +1312,7 @@ describe Mongoid::Callbacks do
1311
1312
  end
1312
1313
 
1313
1314
  it "does not execute the callback" do
1314
- track.before_update_called.should be_false
1315
+ expect(track.before_update_called).to be false
1315
1316
  end
1316
1317
  end
1317
1318
  end
@@ -1342,11 +1343,11 @@ describe Mongoid::Callbacks do
1342
1343
  end
1343
1344
 
1344
1345
  it "executes the callback" do
1345
- track.before_update_called.should be_true
1346
+ expect(track.before_update_called).to be true
1346
1347
  end
1347
1348
 
1348
1349
  it "persists the change" do
1349
- reloaded.tracks.first.before_update_called.should be_true
1350
+ expect(reloaded.tracks.first.before_update_called).to be true
1350
1351
  end
1351
1352
  end
1352
1353
 
@@ -1357,7 +1358,7 @@ describe Mongoid::Callbacks do
1357
1358
  end
1358
1359
 
1359
1360
  it "does not execute the callback" do
1360
- track.before_update_called.should be_false
1361
+ expect(track.before_update_called).to be false
1361
1362
  end
1362
1363
  end
1363
1364
  end
@@ -1386,7 +1387,7 @@ describe Mongoid::Callbacks do
1386
1387
  end
1387
1388
 
1388
1389
  it "executes the callback" do
1389
- track.before_validation_called.should be_true
1390
+ expect(track.before_validation_called).to be true
1390
1391
  end
1391
1392
  end
1392
1393
 
@@ -1409,7 +1410,7 @@ describe Mongoid::Callbacks do
1409
1410
  end
1410
1411
 
1411
1412
  it "executes the callback" do
1412
- track.before_validation_called.should be_true
1413
+ expect(track.before_validation_called).to be true
1413
1414
  end
1414
1415
  end
1415
1416
  end
@@ -1433,7 +1434,7 @@ describe Mongoid::Callbacks do
1433
1434
  end
1434
1435
 
1435
1436
  it "executes the callback" do
1436
- track.before_validation_called.should be_true
1437
+ expect(track.before_validation_called).to be true
1437
1438
  end
1438
1439
  end
1439
1440
  end
@@ -1445,7 +1446,7 @@ describe Mongoid::Callbacks do
1445
1446
  it "goes in all validation callback in good order" do
1446
1447
  shin = ValidationCallback.new
1447
1448
  shin.valid?
1448
- shin.history.should eq([:before_validation, :validate, :after_validation])
1449
+ expect(shin.history).to eq([:before_validation, :validate, :after_validation])
1449
1450
  end
1450
1451
  end
1451
1452
 
@@ -1460,8 +1461,8 @@ describe Mongoid::Callbacks do
1460
1461
  end
1461
1462
 
1462
1463
  it "does not duplicate the child documents" do
1463
- parent.child_docs.create(position: 1)
1464
- ParentDoc.find(parent.id).child_docs.size.should eq(1)
1464
+ parent.children.create(position: 1)
1465
+ expect(ParentDoc.find(parent.id).children.size).to eq(1)
1465
1466
  end
1466
1467
  end
1467
1468
 
@@ -1488,22 +1489,22 @@ describe Mongoid::Callbacks do
1488
1489
  end
1489
1490
 
1490
1491
  it "fails to save" do
1491
- person.should be_valid
1492
- person.save.should be_false
1492
+ expect(person).to be_valid
1493
+ expect(person.save).to be false
1493
1494
  end
1494
1495
 
1495
1496
  it "is a new record" do
1496
- person.should be_a_new_record
1497
+ expect(person).to be_a_new_record
1497
1498
  expect { person.save }.not_to change { person.new_record? }
1498
1499
  end
1499
1500
 
1500
1501
  it "is left dirty" do
1501
- person.should be_changed
1502
+ expect(person).to be_changed
1502
1503
  expect { person.save }.not_to change { person.changed? }
1503
1504
  end
1504
1505
 
1505
1506
  it "child documents are left dirty" do
1506
- address.should be_changed
1507
+ expect(address).to be_changed
1507
1508
  expect { person.save }.not_to change { address.changed? }
1508
1509
  end
1509
1510
  end
@@ -1521,22 +1522,22 @@ describe Mongoid::Callbacks do
1521
1522
  end
1522
1523
 
1523
1524
  it "#save returns false" do
1524
- person.should be_valid
1525
- person.save.should be_false
1525
+ expect(person).to be_valid
1526
+ expect(person.save).to be false
1526
1527
  end
1527
1528
 
1528
1529
  it "is a not a new record" do
1529
- person.should_not be_a_new_record
1530
+ expect(person).to_not be_a_new_record
1530
1531
  expect { person.save }.not_to change { person.new_record? }
1531
1532
  end
1532
1533
 
1533
1534
  it "is left dirty" do
1534
- person.should be_changed
1535
+ expect(person).to be_changed
1535
1536
  expect { person.save }.not_to change { person.changed? }
1536
1537
  end
1537
1538
 
1538
1539
  it "child documents are left dirty" do
1539
- address.should be_changed
1540
+ expect(address).to be_changed
1540
1541
  expect { person.save }.not_to change { address.changed? }
1541
1542
  end
1542
1543
  end
@@ -1556,7 +1557,7 @@ describe Mongoid::Callbacks do
1556
1557
  context "when saving the document" do
1557
1558
 
1558
1559
  it "only executes the callbacks once" do
1559
- callback.should_receive(:execute).once
1560
+ expect(callback).to receive(:execute).once
1560
1561
  callback.save
1561
1562
  end
1562
1563
  end