mongoid 3.1.7 → 4.0.0.alpha1

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 (521) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +317 -11
  3. data/README.md +4 -5
  4. data/lib/config/locales/en.yml +9 -12
  5. data/lib/mongoid.rb +6 -75
  6. data/lib/mongoid/atomic.rb +0 -11
  7. data/lib/mongoid/atomic/paths/embedded.rb +0 -30
  8. data/lib/mongoid/atomic/paths/root.rb +0 -13
  9. data/lib/mongoid/attributes.rb +30 -108
  10. data/lib/mongoid/attributes/dynamic.rb +154 -0
  11. data/lib/mongoid/attributes/nested.rb +82 -0
  12. data/lib/mongoid/attributes/processing.rb +13 -66
  13. data/lib/mongoid/{dirty.rb → changeable.rb} +5 -2
  14. data/lib/mongoid/composable.rb +104 -0
  15. data/lib/mongoid/config.rb +3 -9
  16. data/lib/mongoid/config/options.rb +1 -1
  17. data/lib/mongoid/contextual/aggregable/mongo.rb +5 -9
  18. data/lib/mongoid/contextual/atomic.rb +53 -53
  19. data/lib/mongoid/contextual/command.rb +26 -0
  20. data/lib/mongoid/contextual/map_reduce.rb +1 -1
  21. data/lib/mongoid/contextual/memory.rb +6 -5
  22. data/lib/mongoid/contextual/mongo.rb +59 -28
  23. data/lib/mongoid/contextual/text_search.rb +180 -0
  24. data/lib/mongoid/copyable.rb +2 -3
  25. data/lib/mongoid/criteria.rb +13 -33
  26. data/lib/mongoid/criteria/{#findable.rb# → findable.rb} +0 -2
  27. data/lib/mongoid/{criterion/inspection.rb → criteria/inspectable.rb} +2 -2
  28. data/lib/mongoid/{criterion → criteria}/marshalable.rb +3 -1
  29. data/lib/mongoid/{criterion → criteria}/modifiable.rb +1 -1
  30. data/lib/mongoid/{criterion/scoping.rb → criteria/scopable.rb} +2 -2
  31. data/lib/mongoid/document.rb +28 -12
  32. data/lib/mongoid/errors.rb +1 -1
  33. data/lib/mongoid/errors/document_not_found.rb +2 -1
  34. data/lib/mongoid/errors/invalid_value.rb +16 -0
  35. data/lib/mongoid/errors/mongoid_error.rb +1 -1
  36. data/lib/mongoid/extensions.rb +2 -7
  37. data/lib/mongoid/extensions/array.rb +2 -2
  38. data/lib/mongoid/extensions/boolean.rb +14 -17
  39. data/lib/mongoid/extensions/float.rb +1 -0
  40. data/lib/mongoid/extensions/hash.rb +1 -1
  41. data/lib/mongoid/extensions/object.rb +4 -4
  42. data/lib/mongoid/extensions/object_id.rb +5 -5
  43. data/lib/mongoid/extensions/range.rb +8 -2
  44. data/lib/mongoid/extensions/string.rb +5 -17
  45. data/lib/mongoid/extensions/time.rb +2 -2
  46. data/lib/mongoid/factory.rb +3 -3
  47. data/lib/mongoid/fields.rb +9 -8
  48. data/lib/mongoid/fields/foreign_key.rb +3 -3
  49. data/lib/mongoid/fields/standard.rb +4 -16
  50. data/lib/mongoid/fields/validators/macro.rb +11 -3
  51. data/lib/mongoid/{finders.rb → findable.rb} +6 -2
  52. data/lib/mongoid/{indexes.rb → indexable.rb} +50 -55
  53. data/lib/mongoid/indexable/specification.rb +104 -0
  54. data/lib/mongoid/{indexes → indexable}/validators/options.rb +2 -1
  55. data/lib/mongoid/{inspection.rb → inspectable.rb} +15 -11
  56. data/lib/mongoid/{callbacks.rb → interceptable.rb} +3 -52
  57. data/lib/mongoid/log_subscriber.rb +22 -0
  58. data/lib/mongoid/matchable.rb +152 -0
  59. data/lib/mongoid/{matchers → matchable}/all.rb +1 -1
  60. data/lib/mongoid/{matchers → matchable}/and.rb +2 -2
  61. data/lib/mongoid/{matchers → matchable}/default.rb +1 -1
  62. data/lib/mongoid/{matchers → matchable}/exists.rb +1 -1
  63. data/lib/mongoid/{matchers → matchable}/gt.rb +1 -1
  64. data/lib/mongoid/{matchers → matchable}/gte.rb +1 -1
  65. data/lib/mongoid/{matchers → matchable}/in.rb +2 -2
  66. data/lib/mongoid/{matchers → matchable}/lt.rb +1 -1
  67. data/lib/mongoid/{matchers → matchable}/lte.rb +1 -1
  68. data/lib/mongoid/{matchers → matchable}/ne.rb +1 -1
  69. data/lib/mongoid/{matchers → matchable}/nin.rb +3 -2
  70. data/lib/mongoid/{matchers → matchable}/or.rb +2 -2
  71. data/lib/mongoid/{matchers → matchable}/size.rb +1 -1
  72. data/lib/mongoid/persistable.rb +212 -0
  73. data/lib/mongoid/persistable/creatable.rb +188 -0
  74. data/lib/mongoid/persistable/deletable.rb +148 -0
  75. data/lib/mongoid/persistable/destroyable.rb +55 -0
  76. data/lib/mongoid/persistable/incrementable.rb +36 -0
  77. data/lib/mongoid/persistable/logical.rb +38 -0
  78. data/lib/mongoid/persistable/poppable.rb +39 -0
  79. data/lib/mongoid/persistable/pullable.rb +55 -0
  80. data/lib/mongoid/persistable/pushable.rb +62 -0
  81. data/lib/mongoid/persistable/renamable.rb +35 -0
  82. data/lib/mongoid/persistable/savable.rb +52 -0
  83. data/lib/mongoid/persistable/settable.rb +33 -0
  84. data/lib/mongoid/persistable/unsettable.rb +36 -0
  85. data/lib/mongoid/persistable/updatable.rb +151 -0
  86. data/lib/mongoid/persistable/upsertable.rb +55 -0
  87. data/lib/mongoid/positional.rb +71 -0
  88. data/lib/mongoid/railtie.rb +32 -45
  89. data/lib/mongoid/railties/database.rake +12 -6
  90. data/lib/mongoid/relations.rb +3 -3
  91. data/lib/mongoid/relations/accessors.rb +13 -46
  92. data/lib/mongoid/relations/auto_save.rb +15 -36
  93. data/lib/mongoid/relations/binding.rb +0 -23
  94. data/lib/mongoid/relations/bindings/embedded/many.rb +1 -3
  95. data/lib/mongoid/relations/bindings/referenced/in.rb +3 -8
  96. data/lib/mongoid/relations/bindings/referenced/many_to_many.rb +3 -1
  97. data/lib/mongoid/relations/builder.rb +1 -1
  98. data/lib/mongoid/relations/builders.rb +2 -2
  99. data/lib/mongoid/relations/builders/nested_attributes/many.rb +10 -13
  100. data/lib/mongoid/relations/builders/nested_attributes/one.rb +4 -5
  101. data/lib/mongoid/relations/builders/referenced/in.rb +1 -1
  102. data/lib/mongoid/relations/builders/referenced/many.rb +1 -2
  103. data/lib/mongoid/relations/builders/referenced/many_to_many.rb +1 -2
  104. data/lib/mongoid/relations/builders/referenced/one.rb +1 -1
  105. data/lib/mongoid/relations/cascading.rb +3 -5
  106. data/lib/mongoid/relations/constraint.rb +1 -1
  107. data/lib/mongoid/relations/conversions.rb +1 -1
  108. data/lib/mongoid/relations/counter_cache.rb +39 -15
  109. data/lib/mongoid/relations/eager.rb +47 -0
  110. data/lib/mongoid/relations/eager/base.rb +57 -0
  111. data/lib/mongoid/relations/eager/belongs_to.rb +30 -0
  112. data/lib/mongoid/relations/eager/has_and_belongs_to_many.rb +40 -0
  113. data/lib/mongoid/relations/eager/has_many.rb +37 -0
  114. data/lib/mongoid/relations/eager/has_one.rb +29 -0
  115. data/lib/mongoid/relations/embedded/batchable.rb +3 -4
  116. data/lib/mongoid/relations/embedded/many.rb +7 -27
  117. data/lib/mongoid/relations/macros.rb +2 -4
  118. data/lib/mongoid/relations/many.rb +30 -31
  119. data/lib/mongoid/relations/metadata.rb +6 -75
  120. data/lib/mongoid/relations/nested_builder.rb +2 -2
  121. data/lib/mongoid/relations/options.rb +1 -0
  122. data/lib/mongoid/relations/polymorphic.rb +0 -1
  123. data/lib/mongoid/relations/proxy.rb +10 -32
  124. data/lib/mongoid/relations/referenced/in.rb +2 -18
  125. data/lib/mongoid/relations/referenced/many.rb +9 -22
  126. data/lib/mongoid/relations/referenced/many_to_many.rb +10 -33
  127. data/lib/mongoid/relations/referenced/one.rb +2 -21
  128. data/lib/mongoid/relations/synchronization.rb +3 -3
  129. data/lib/mongoid/relations/touchable.rb +33 -0
  130. data/lib/mongoid/{reloading.rb → reloadable.rb} +6 -4
  131. data/lib/mongoid/{scoping.rb → scopable.rb} +26 -3
  132. data/lib/mongoid/selectable.rb +59 -0
  133. data/lib/mongoid/{serialization.rb → serializable.rb} +10 -1
  134. data/lib/mongoid/sessions.rb +37 -345
  135. data/lib/mongoid/sessions/factory.rb +2 -0
  136. data/lib/mongoid/sessions/options.rb +176 -0
  137. data/lib/mongoid/sessions/storage_options.rb +140 -0
  138. data/lib/mongoid/sessions/thread_options.rb +19 -0
  139. data/lib/mongoid/sessions/validators/storage.rb +15 -1
  140. data/lib/mongoid/{sharding.rb → shardable.rb} +5 -1
  141. data/lib/mongoid/support/query_counter.rb +23 -0
  142. data/lib/mongoid/threaded.rb +0 -110
  143. data/lib/mongoid/threaded/lifecycle.rb +0 -28
  144. data/lib/mongoid/timestamps/updated/short.rb +2 -2
  145. data/lib/mongoid/{hierarchy.rb → traversable.rb} +9 -5
  146. data/lib/mongoid/{validations.rb → validatable.rb} +23 -9
  147. data/lib/mongoid/{validations → validatable}/associated.rb +3 -1
  148. data/lib/mongoid/{validations → validatable}/format.rb +1 -1
  149. data/lib/mongoid/{validations → validatable}/length.rb +1 -1
  150. data/lib/mongoid/{validations → validatable}/localizable.rb +1 -1
  151. data/lib/mongoid/{validations → validatable}/macros.rb +4 -3
  152. data/lib/mongoid/{validations → validatable}/presence.rb +1 -1
  153. data/lib/mongoid/{validations → validatable}/queryable.rb +1 -2
  154. data/lib/mongoid/{validations → validatable}/uniqueness.rb +3 -3
  155. data/lib/mongoid/version.rb +1 -1
  156. data/lib/rails/generators/mongoid/config/templates/mongoid.yml +9 -13
  157. data/lib/rails/generators/mongoid/model/model_generator.rb +0 -1
  158. data/lib/rails/generators/mongoid/model/templates/model.rb.tt +0 -3
  159. data/lib/rails/generators/mongoid_generator.rb +3 -40
  160. data/lib/rails/mongoid.rb +59 -57
  161. data/lib/support/ruby_version.rb +1 -1
  162. data/spec/app/models/account.rb +2 -6
  163. data/spec/app/models/acolyte.rb +1 -0
  164. data/spec/app/models/actor.rb +0 -1
  165. data/spec/app/models/address.rb +6 -1
  166. data/spec/app/models/animal.rb +1 -1
  167. data/spec/app/models/appointment.rb +2 -2
  168. data/spec/app/models/article.rb +1 -4
  169. data/spec/app/models/audio.rb +5 -0
  170. data/spec/app/models/author.rb +0 -2
  171. data/spec/app/models/band.rb +3 -2
  172. data/spec/app/models/bar.rb +1 -0
  173. data/spec/app/models/book.rb +1 -0
  174. data/spec/app/models/building.rb +0 -2
  175. data/spec/app/models/building_address.rb +0 -2
  176. data/spec/app/models/bus.rb +1 -1
  177. data/spec/app/models/canvas.rb +1 -1
  178. data/spec/app/models/contractor.rb +0 -2
  179. data/spec/app/models/country_code.rb +1 -1
  180. data/spec/app/models/definition.rb +2 -2
  181. data/spec/app/models/dragon.rb +4 -0
  182. data/spec/app/models/drug.rb +1 -3
  183. data/spec/app/models/dungeon.rb +4 -0
  184. data/spec/app/models/filesystem.rb +1 -0
  185. data/spec/app/models/fish.rb +0 -1
  186. data/spec/app/models/fruits.rb +6 -0
  187. data/spec/app/models/game.rb +0 -2
  188. data/spec/app/models/house.rb +0 -2
  189. data/spec/app/models/item.rb +1 -5
  190. data/spec/app/models/jar.rb +1 -1
  191. data/spec/app/models/label.rb +4 -4
  192. data/spec/app/models/login.rb +1 -1
  193. data/spec/app/models/movie.rb +1 -0
  194. data/spec/app/models/name.rb +3 -3
  195. data/spec/app/models/note.rb +1 -1
  196. data/spec/app/models/oscar.rb +1 -1
  197. data/spec/app/models/parent_doc.rb +1 -1
  198. data/spec/app/models/person.rb +13 -8
  199. data/spec/app/models/phone.rb +1 -3
  200. data/spec/app/models/player.rb +1 -1
  201. data/spec/app/models/post.rb +2 -1
  202. data/spec/app/models/quiz.rb +0 -3
  203. data/spec/app/models/record.rb +5 -5
  204. data/spec/app/models/registry.rb +1 -1
  205. data/spec/app/models/server.rb +1 -1
  206. data/spec/app/models/service.rb +3 -3
  207. data/spec/app/models/sound.rb +5 -0
  208. data/spec/app/models/template.rb +1 -1
  209. data/spec/app/models/title.rb +0 -1
  210. data/spec/app/models/track.rb +5 -5
  211. data/spec/app/models/tree.rb +1 -1
  212. data/spec/app/models/video.rb +0 -4
  213. data/spec/app/models/wiki_page.rb +1 -4
  214. data/spec/app/models/word.rb +3 -0
  215. data/spec/app/models/word_origin.rb +1 -1
  216. data/spec/config/mongoid.yml +7 -8
  217. data/spec/helpers.rb +18 -0
  218. data/spec/mongoid/atomic/modifiers_spec.rb +22 -22
  219. data/spec/mongoid/atomic/paths/embedded/many_spec.rb +8 -49
  220. data/spec/mongoid/atomic/paths/embedded/one_spec.rb +7 -49
  221. data/spec/mongoid/atomic/paths/root_spec.rb +3 -61
  222. data/spec/mongoid/atomic/paths_spec.rb +19 -19
  223. data/spec/mongoid/atomic_spec.rb +19 -19
  224. data/spec/mongoid/{nested_attributes_spec.rb → attributes/nested_spec.rb} +335 -448
  225. data/spec/mongoid/attributes/readonly_spec.rb +16 -16
  226. data/spec/mongoid/attributes_spec.rb +188 -434
  227. data/spec/mongoid/{dirty_spec.rb → changeable_spec.rb} +117 -148
  228. data/spec/mongoid/{components_spec.rb → composable_spec.rb} +3 -3
  229. data/spec/mongoid/config/environment_spec.rb +3 -3
  230. data/spec/mongoid/config/options_spec.rb +6 -6
  231. data/spec/mongoid/config_spec.rb +24 -48
  232. data/spec/mongoid/contextual/aggregable/memory_spec.rb +12 -12
  233. data/spec/mongoid/contextual/aggregable/mongo_spec.rb +46 -38
  234. data/spec/mongoid/contextual/atomic_spec.rb +60 -56
  235. data/spec/mongoid/contextual/find_and_modify_spec.rb +14 -14
  236. data/spec/mongoid/contextual/geo_near_spec.rb +22 -22
  237. data/spec/mongoid/contextual/map_reduce_spec.rb +27 -27
  238. data/spec/mongoid/contextual/memory_spec.rb +94 -94
  239. data/spec/mongoid/contextual/mongo_spec.rb +225 -139
  240. data/spec/mongoid/contextual/text_search_spec.rb +207 -0
  241. data/spec/mongoid/copyable_spec.rb +56 -68
  242. data/spec/mongoid/criteria/findable_spec.rb +991 -0
  243. data/spec/mongoid/{criterion/inspection_spec.rb → criteria/inspectable_spec.rb} +5 -5
  244. data/spec/mongoid/{criterion → criteria}/marshalable_spec.rb +2 -2
  245. data/spec/mongoid/criteria/modifiable_spec.rb +1063 -0
  246. data/spec/mongoid/{criterion/scoping_spec.rb → criteria/scopable_spec.rb} +31 -31
  247. data/spec/mongoid/criteria_spec.rb +530 -2207
  248. data/spec/mongoid/document_spec.rb +166 -120
  249. data/spec/mongoid/equality_spec.rb +22 -22
  250. data/spec/mongoid/errors/ambiguous_relationship_spec.rb +3 -3
  251. data/spec/mongoid/errors/callback_spec.rb +3 -3
  252. data/spec/mongoid/errors/delete_restriction_spec.rb +3 -3
  253. data/spec/mongoid/errors/document_not_found_spec.rb +11 -11
  254. data/spec/mongoid/errors/eager_load_spec.rb +3 -3
  255. data/spec/mongoid/errors/invalid_collection_spec.rb +3 -3
  256. data/spec/mongoid/errors/invalid_config_option_spec.rb +3 -3
  257. data/spec/mongoid/errors/invalid_field_option_spec.rb +3 -3
  258. data/spec/mongoid/errors/invalid_field_spec.rb +3 -3
  259. data/spec/mongoid/errors/invalid_find_spec.rb +3 -3
  260. data/spec/mongoid/errors/invalid_includes_spec.rb +3 -3
  261. data/spec/mongoid/errors/invalid_index_spec.rb +3 -3
  262. data/spec/mongoid/errors/invalid_options_spec.rb +3 -3
  263. data/spec/mongoid/errors/invalid_path_spec.rb +3 -3
  264. data/spec/mongoid/errors/invalid_scope_spec.rb +3 -3
  265. data/spec/mongoid/errors/invalid_set_polymorphic_relation_spec.rb +3 -3
  266. data/spec/mongoid/errors/invalid_storage_options_spec.rb +3 -3
  267. data/spec/mongoid/errors/invalid_time_spec.rb +3 -3
  268. data/spec/mongoid/errors/inverse_not_found_spec.rb +3 -3
  269. data/spec/mongoid/errors/mixed_relations_spec.rb +3 -3
  270. data/spec/mongoid/errors/mixed_session_configuration_spec.rb +3 -3
  271. data/spec/mongoid/errors/mongoid_error_spec.rb +7 -7
  272. data/spec/mongoid/errors/nested_attributes_metadata_not_found_spec.rb +3 -3
  273. data/spec/mongoid/errors/no_environment_spec.rb +3 -3
  274. data/spec/mongoid/errors/no_map_reduce_output_spec.rb +3 -3
  275. data/spec/mongoid/errors/no_metadata_spec.rb +3 -3
  276. data/spec/mongoid/errors/no_parent_spec.rb +3 -3
  277. data/spec/mongoid/errors/no_session_config_spec.rb +3 -3
  278. data/spec/mongoid/errors/no_session_database_spec.rb +3 -3
  279. data/spec/mongoid/errors/no_session_hosts_spec.rb +3 -3
  280. data/spec/mongoid/errors/no_sessions_config_spec.rb +3 -3
  281. data/spec/mongoid/errors/readonly_attribute_spec.rb +3 -3
  282. data/spec/mongoid/errors/scope_overwrite_spec.rb +3 -3
  283. data/spec/mongoid/errors/too_many_nested_attribute_records_spec.rb +3 -3
  284. data/spec/mongoid/errors/unknown_attribute_spec.rb +5 -5
  285. data/spec/mongoid/errors/unsaved_document_spec.rb +3 -3
  286. data/spec/mongoid/errors/unsupported_javascript_spec.rb +3 -3
  287. data/spec/mongoid/errors/validations_spec.rb +7 -7
  288. data/spec/mongoid/extensions/array_spec.rb +61 -61
  289. data/spec/mongoid/extensions/big_decimal_spec.rb +11 -11
  290. data/spec/mongoid/extensions/binary_spec.rb +12 -12
  291. data/spec/mongoid/extensions/boolean_spec.rb +18 -18
  292. data/spec/mongoid/extensions/date_spec.rb +13 -13
  293. data/spec/mongoid/extensions/date_time_spec.rb +9 -9
  294. data/spec/mongoid/extensions/false_class_spec.rb +5 -5
  295. data/spec/mongoid/extensions/float_spec.rb +29 -15
  296. data/spec/mongoid/extensions/hash_spec.rb +29 -29
  297. data/spec/mongoid/extensions/integer_spec.rb +15 -15
  298. data/spec/mongoid/extensions/module_spec.rb +2 -2
  299. data/spec/mongoid/extensions/nil_class_spec.rb +1 -1
  300. data/spec/mongoid/extensions/object_id_spec.rb +134 -134
  301. data/spec/mongoid/extensions/object_spec.rb +26 -26
  302. data/spec/mongoid/extensions/range_spec.rb +61 -12
  303. data/spec/mongoid/extensions/regexp_spec.rb +4 -4
  304. data/spec/mongoid/extensions/set_spec.rb +4 -4
  305. data/spec/mongoid/extensions/string_spec.rb +35 -46
  306. data/spec/mongoid/extensions/symbol_spec.rb +9 -9
  307. data/spec/mongoid/extensions/time_spec.rb +49 -49
  308. data/spec/mongoid/extensions/time_with_zone_spec.rb +34 -34
  309. data/spec/mongoid/extensions/true_class_spec.rb +5 -5
  310. data/spec/mongoid/extensions_spec.rb +15 -0
  311. data/spec/mongoid/factory_spec.rb +15 -15
  312. data/spec/mongoid/fields/foreign_key_spec.rb +73 -66
  313. data/spec/mongoid/fields/internal/foreign_keys/array_spec.rb +15 -15
  314. data/spec/mongoid/fields/internal/foreign_keys/object_spec.rb +22 -22
  315. data/spec/mongoid/fields/localized_spec.rb +23 -23
  316. data/spec/mongoid/fields/standard_spec.rb +12 -12
  317. data/spec/mongoid/fields_spec.rb +168 -209
  318. data/spec/mongoid/{finders_spec.rb → findable_spec.rb} +62 -27
  319. data/spec/mongoid/indexable/specification_spec.rb +102 -0
  320. data/spec/mongoid/{indexes_spec.rb → indexable_spec.rb} +171 -51
  321. data/spec/mongoid/{inspection_spec.rb → inspectable_spec.rb} +6 -14
  322. data/spec/mongoid/{callbacks_spec.rb → interceptable_spec.rb} +105 -105
  323. data/spec/mongoid/log_subscriber_spec.rb +74 -0
  324. data/spec/mongoid/loggable_spec.rb +1 -1
  325. data/spec/mongoid/{matchers → matchable}/all_spec.rb +4 -4
  326. data/spec/mongoid/{matchers → matchable}/and_spec.rb +11 -11
  327. data/spec/mongoid/{matchers → matchable}/default_spec.rb +15 -15
  328. data/spec/mongoid/{matchers → matchable}/exists_spec.rb +5 -5
  329. data/spec/mongoid/{matchers → matchable}/gt_spec.rb +9 -8
  330. data/spec/mongoid/{matchers → matchable}/gte_spec.rb +7 -7
  331. data/spec/mongoid/matchable/in_spec.rb +49 -0
  332. data/spec/mongoid/{matchers → matchable}/lt_spec.rb +7 -7
  333. data/spec/mongoid/{matchers → matchable}/lte_spec.rb +7 -7
  334. data/spec/mongoid/{matchers → matchable}/ne_spec.rb +3 -3
  335. data/spec/mongoid/matchable/nin_spec.rb +48 -0
  336. data/spec/mongoid/{matchers → matchable}/or_spec.rb +6 -6
  337. data/spec/mongoid/{matchers → matchable}/size_spec.rb +3 -3
  338. data/spec/mongoid/{matchers_spec.rb → matchable_spec.rb} +41 -41
  339. data/spec/mongoid/persistable/creatable_spec.rb +512 -0
  340. data/spec/mongoid/persistable/deletable_spec.rb +205 -0
  341. data/spec/mongoid/persistable/destroyable_spec.rb +148 -0
  342. data/spec/mongoid/persistable/incrementable_spec.rb +173 -0
  343. data/spec/mongoid/persistable/logical_spec.rb +143 -0
  344. data/spec/mongoid/persistable/poppable_spec.rb +115 -0
  345. data/spec/mongoid/persistable/pullable_spec.rb +228 -0
  346. data/spec/mongoid/persistable/pushable_spec.rb +258 -0
  347. data/spec/mongoid/persistable/renamable_spec.rb +135 -0
  348. data/spec/mongoid/persistable/savable_spec.rb +432 -0
  349. data/spec/mongoid/persistable/settable_spec.rb +139 -0
  350. data/spec/mongoid/persistable/unsettable_spec.rb +155 -0
  351. data/spec/mongoid/persistable/updatable_spec.rb +558 -0
  352. data/spec/mongoid/persistable/upsertable_spec.rb +106 -0
  353. data/spec/mongoid/persistable_spec.rb +206 -0
  354. data/spec/mongoid/{atomic/positionable_spec.rb → positional_spec.rb} +19 -14
  355. data/spec/mongoid/railties/document_spec.rb +2 -2
  356. data/spec/mongoid/relations/accessors_spec.rb +53 -145
  357. data/spec/mongoid/relations/auto_save_spec.rb +36 -16
  358. data/spec/mongoid/relations/bindings/embedded/in_spec.rb +6 -6
  359. data/spec/mongoid/relations/bindings/embedded/many_spec.rb +2 -2
  360. data/spec/mongoid/relations/bindings/embedded/one_spec.rb +3 -3
  361. data/spec/mongoid/relations/bindings/referenced/in_spec.rb +12 -12
  362. data/spec/mongoid/relations/bindings/referenced/many_spec.rb +6 -6
  363. data/spec/mongoid/relations/bindings/referenced/many_to_many_spec.rb +9 -9
  364. data/spec/mongoid/relations/bindings/referenced/one_spec.rb +6 -6
  365. data/spec/mongoid/relations/builders/embedded/in_spec.rb +4 -4
  366. data/spec/mongoid/relations/builders/embedded/many_spec.rb +18 -18
  367. data/spec/mongoid/relations/builders/embedded/one_spec.rb +11 -11
  368. data/spec/mongoid/relations/builders/nested_attributes/many_spec.rb +12 -13
  369. data/spec/mongoid/relations/builders/nested_attributes/one_spec.rb +14 -14
  370. data/spec/mongoid/relations/builders/referenced/in_spec.rb +22 -33
  371. data/spec/mongoid/relations/builders/referenced/many_spec.rb +15 -15
  372. data/spec/mongoid/relations/builders/referenced/many_to_many_spec.rb +18 -18
  373. data/spec/mongoid/relations/builders/referenced/one_spec.rb +11 -24
  374. data/spec/mongoid/relations/builders_spec.rb +21 -21
  375. data/spec/mongoid/relations/cascading/delete_spec.rb +7 -7
  376. data/spec/mongoid/relations/cascading/destroy_spec.rb +2 -2
  377. data/spec/mongoid/relations/cascading/nullify_spec.rb +2 -2
  378. data/spec/mongoid/relations/cascading/restrict_spec.rb +3 -3
  379. data/spec/mongoid/relations/cascading_spec.rb +16 -16
  380. data/spec/mongoid/relations/constraint_spec.rb +8 -7
  381. data/spec/mongoid/relations/conversions_spec.rb +16 -14
  382. data/spec/mongoid/relations/counter_cache_spec.rb +85 -0
  383. data/spec/mongoid/relations/cyclic_spec.rb +18 -18
  384. data/spec/mongoid/relations/eager/belongs_to_spec.rb +154 -0
  385. data/spec/mongoid/relations/eager/has_and_belongs_to_many_spec.rb +143 -0
  386. data/spec/mongoid/relations/eager/has_many_spec.rb +207 -0
  387. data/spec/mongoid/relations/eager/has_one_spec.rb +163 -0
  388. data/spec/mongoid/relations/eager_spec.rb +228 -0
  389. data/spec/mongoid/relations/embedded/dirty_spec.rb +8 -8
  390. data/spec/mongoid/relations/embedded/in_spec.rb +55 -56
  391. data/spec/mongoid/relations/embedded/many_spec.rb +357 -367
  392. data/spec/mongoid/relations/embedded/one_spec.rb +98 -139
  393. data/spec/mongoid/relations/macros_spec.rb +108 -102
  394. data/spec/mongoid/relations/metadata_spec.rb +147 -241
  395. data/spec/mongoid/relations/options_spec.rb +1 -1
  396. data/spec/mongoid/relations/polymorphic_spec.rb +13 -17
  397. data/spec/mongoid/relations/proxy_spec.rb +2 -2
  398. data/spec/mongoid/relations/referenced/in_spec.rb +128 -303
  399. data/spec/mongoid/relations/referenced/many_spec.rb +379 -522
  400. data/spec/mongoid/relations/referenced/many_to_many_spec.rb +345 -417
  401. data/spec/mongoid/relations/referenced/one_spec.rb +148 -263
  402. data/spec/mongoid/relations/reflections_spec.rb +6 -6
  403. data/spec/mongoid/relations/synchronization_spec.rb +46 -50
  404. data/spec/mongoid/relations/targets/enumerable_spec.rb +116 -116
  405. data/spec/mongoid/relations/touchable_spec.rb +296 -0
  406. data/spec/mongoid/relations_spec.rb +16 -15
  407. data/spec/mongoid/{reloading_spec.rb → reloadable_spec.rb} +20 -60
  408. data/spec/mongoid/{scoping_spec.rb → scopable_spec.rb} +74 -126
  409. data/spec/mongoid/selectable_spec.rb +134 -0
  410. data/spec/mongoid/{serialization_spec.rb → serializable_spec.rb} +111 -82
  411. data/spec/mongoid/sessions/factory_spec.rb +49 -28
  412. data/spec/mongoid/sessions/mongo_uri_spec.rb +7 -7
  413. data/spec/mongoid/sessions/options_spec.rb +92 -0
  414. data/spec/mongoid/sessions_spec.rb +288 -177
  415. data/spec/mongoid/{sharding_spec.rb → shardable_spec.rb} +8 -8
  416. data/spec/mongoid/state_spec.rb +10 -10
  417. data/spec/mongoid/threaded_spec.rb +17 -70
  418. data/spec/mongoid/timestamps/created/short_spec.rb +6 -6
  419. data/spec/mongoid/timestamps/created_spec.rb +5 -5
  420. data/spec/mongoid/timestamps/updated/short_spec.rb +10 -10
  421. data/spec/mongoid/timestamps/updated_spec.rb +8 -12
  422. data/spec/mongoid/timestamps_spec.rb +7 -11
  423. data/spec/mongoid/{hierarchy_spec.rb → traversable_spec.rb} +19 -19
  424. data/spec/mongoid/{validations → validatable}/associated_spec.rb +18 -18
  425. data/spec/mongoid/{validations → validatable}/format_spec.rb +6 -6
  426. data/spec/mongoid/{validations → validatable}/length_spec.rb +7 -7
  427. data/spec/mongoid/{validations → validatable}/numericality_spec.rb +1 -1
  428. data/spec/mongoid/{validations → validatable}/presence_spec.rb +31 -38
  429. data/spec/mongoid/{validations → validatable}/uniqueness_spec.rb +126 -183
  430. data/spec/mongoid/{validations_spec.rb → validatable_spec.rb} +28 -28
  431. data/spec/mongoid_spec.rb +8 -8
  432. data/spec/rails/mongoid_spec.rb +72 -87
  433. data/spec/spec_helper.rb +19 -17
  434. metadata +261 -283
  435. data/lib/mongoid/atomic/positionable.rb +0 -73
  436. data/lib/mongoid/components.rb +0 -92
  437. data/lib/mongoid/config/inflections.rb +0 -6
  438. data/lib/mongoid/contextual/eager.rb +0 -158
  439. data/lib/mongoid/criterion/findable.rb +0 -179
  440. data/lib/mongoid/errors/versioning_not_on_root.rb +0 -23
  441. data/lib/mongoid/identity_map.rb +0 -163
  442. data/lib/mongoid/json.rb +0 -16
  443. data/lib/mongoid/matchers.rb +0 -32
  444. data/lib/mongoid/matchers/strategies.rb +0 -97
  445. data/lib/mongoid/multi_parameter_attributes.rb +0 -105
  446. data/lib/mongoid/nested_attributes.rb +0 -78
  447. data/lib/mongoid/observer.rb +0 -192
  448. data/lib/mongoid/paranoia.rb +0 -136
  449. data/lib/mongoid/persistence.rb +0 -357
  450. data/lib/mongoid/persistence/atomic.rb +0 -231
  451. data/lib/mongoid/persistence/atomic/add_to_set.rb +0 -47
  452. data/lib/mongoid/persistence/atomic/bit.rb +0 -35
  453. data/lib/mongoid/persistence/atomic/inc.rb +0 -45
  454. data/lib/mongoid/persistence/atomic/operation.rb +0 -154
  455. data/lib/mongoid/persistence/atomic/pop.rb +0 -32
  456. data/lib/mongoid/persistence/atomic/pull.rb +0 -32
  457. data/lib/mongoid/persistence/atomic/pull_all.rb +0 -32
  458. data/lib/mongoid/persistence/atomic/push.rb +0 -25
  459. data/lib/mongoid/persistence/atomic/push_all.rb +0 -25
  460. data/lib/mongoid/persistence/atomic/rename.rb +0 -30
  461. data/lib/mongoid/persistence/atomic/sets.rb +0 -28
  462. data/lib/mongoid/persistence/atomic/unset.rb +0 -27
  463. data/lib/mongoid/persistence/deletion.rb +0 -31
  464. data/lib/mongoid/persistence/insertion.rb +0 -38
  465. data/lib/mongoid/persistence/modification.rb +0 -35
  466. data/lib/mongoid/persistence/operations.rb +0 -214
  467. data/lib/mongoid/persistence/operations/embedded/insert.rb +0 -46
  468. data/lib/mongoid/persistence/operations/embedded/remove.rb +0 -43
  469. data/lib/mongoid/persistence/operations/insert.rb +0 -34
  470. data/lib/mongoid/persistence/operations/remove.rb +0 -33
  471. data/lib/mongoid/persistence/operations/update.rb +0 -59
  472. data/lib/mongoid/persistence/operations/upsert.rb +0 -28
  473. data/lib/mongoid/persistence/upsertion.rb +0 -31
  474. data/lib/mongoid/unit_of_work.rb +0 -61
  475. data/lib/mongoid/versioning.rb +0 -217
  476. data/lib/rack/mongoid.rb +0 -2
  477. data/lib/rack/mongoid/middleware/identity_map.rb +0 -39
  478. data/lib/rails/generators/mongoid/observer/observer_generator.rb +0 -17
  479. data/lib/rails/generators/mongoid/observer/templates/observer.rb.tt +0 -4
  480. data/spec/app/models/actor_observer.rb +0 -15
  481. data/spec/app/models/callback_recorder.rb +0 -25
  482. data/spec/app/models/draft.rb +0 -9
  483. data/spec/app/models/paranoid_phone.rb +0 -25
  484. data/spec/app/models/paranoid_post.rb +0 -36
  485. data/spec/app/models/phone_observer.rb +0 -6
  486. data/spec/mongoid/#atomic_spec.rb# +0 -365
  487. data/spec/mongoid/attributes/processing_spec.rb +0 -149
  488. data/spec/mongoid/criterion/destructive_spec.rb +0 -101
  489. data/spec/mongoid/criterion/modifiable_spec.rb +0 -409
  490. data/spec/mongoid/criterion/modification_spec.rb +0 -402
  491. data/spec/mongoid/errors/versioning_not_on_root_spec.rb +0 -29
  492. data/spec/mongoid/identity_map_spec.rb +0 -564
  493. data/spec/mongoid/json_spec.rb +0 -33
  494. data/spec/mongoid/matchers/in_spec.rb +0 -25
  495. data/spec/mongoid/matchers/nin_spec.rb +0 -25
  496. data/spec/mongoid/multi_parameter_attributes_spec.rb +0 -128
  497. data/spec/mongoid/observer_spec.rb +0 -290
  498. data/spec/mongoid/paranoia_spec.rb +0 -759
  499. data/spec/mongoid/persistence/atomic/add_to_set_spec.rb +0 -262
  500. data/spec/mongoid/persistence/atomic/bit_spec.rb +0 -88
  501. data/spec/mongoid/persistence/atomic/inc_spec.rb +0 -133
  502. data/spec/mongoid/persistence/atomic/pop_spec.rb +0 -111
  503. data/spec/mongoid/persistence/atomic/pull_all_spec.rb +0 -77
  504. data/spec/mongoid/persistence/atomic/pull_spec.rb +0 -80
  505. data/spec/mongoid/persistence/atomic/push_all_spec.rb +0 -77
  506. data/spec/mongoid/persistence/atomic/push_spec.rb +0 -77
  507. data/spec/mongoid/persistence/atomic/rename_spec.rb +0 -42
  508. data/spec/mongoid/persistence/atomic/sets_spec.rb +0 -154
  509. data/spec/mongoid/persistence/atomic/unset_spec.rb +0 -65
  510. data/spec/mongoid/persistence/atomic_spec.rb +0 -216
  511. data/spec/mongoid/persistence/operations/embedded/insert_spec.rb +0 -191
  512. data/spec/mongoid/persistence/operations/embedded/remove_spec.rb +0 -8
  513. data/spec/mongoid/persistence/operations/insert_spec.rb +0 -149
  514. data/spec/mongoid/persistence/operations/remove_spec.rb +0 -113
  515. data/spec/mongoid/persistence/operations/update_spec.rb +0 -141
  516. data/spec/mongoid/persistence/operations/upsert_spec.rb +0 -59
  517. data/spec/mongoid/persistence/operations_spec.rb +0 -313
  518. data/spec/mongoid/persistence_spec.rb +0 -2279
  519. data/spec/mongoid/unit_of_work_spec.rb +0 -196
  520. data/spec/mongoid/versioning_spec.rb +0 -540
  521. data/spec/rack/mongoid/middleware/identity_map_spec.rb +0 -72
@@ -18,19 +18,15 @@ describe Mongoid::Timestamps::Updated do
18
18
  end
19
19
 
20
20
  it "does not add created_at to the document" do
21
- fields["created_at"].should be_nil
21
+ expect(fields["created_at"]).to be_nil
22
22
  end
23
23
 
24
24
  it "adds updated_at to the document" do
25
- fields["updated_at"].should_not be_nil
25
+ expect(fields["updated_at"]).to_not be_nil
26
26
  end
27
27
 
28
28
  it "forces the updated_at timestamps to UTC" do
29
- agent.updated_at.should be_within(10).of(Time.now.utc)
30
- end
31
-
32
- it "includes a record_timestamps class_accessor to ease AR compatibility" do
33
- Agent.should.respond_to? :record_timestamps
29
+ expect(agent.updated_at).to be_within(10).of(Time.now.utc)
34
30
  end
35
31
  end
36
32
 
@@ -47,11 +43,11 @@ describe Mongoid::Timestamps::Updated do
47
43
  end
48
44
 
49
45
  it "does not override it with the default" do
50
- doc.updated_at.should eq(time)
46
+ expect(doc.updated_at).to eq(time)
51
47
  end
52
48
 
53
49
  it "does not persist an auto value" do
54
- doc.reload.updated_at.should eq(time)
50
+ expect(doc.reload.updated_at).to eq(time)
55
51
  end
56
52
  end
57
53
  end
@@ -59,7 +55,7 @@ describe Mongoid::Timestamps::Updated do
59
55
  context "when the document has not changed" do
60
56
 
61
57
  let(:agent) do
62
- Agent.instantiate("_id" => Moped::BSON::ObjectId.new, "account_ids" => [])
58
+ Agent.instantiate("_id" => BSON::ObjectId.new, "account_ids" => [])
63
59
  end
64
60
 
65
61
  before do
@@ -79,8 +75,8 @@ describe Mongoid::Timestamps::Updated do
79
75
  end
80
76
 
81
77
  it "runs the update callbacks" do
82
- agent.updated_at.should_not be_nil
83
- agent.updated_at.should be_within(10).of(Time.now.utc)
78
+ expect(agent.updated_at).to_not be_nil
79
+ expect(agent.updated_at).to be_within(10).of(Time.now.utc)
84
80
  end
85
81
  end
86
82
  end
@@ -18,27 +18,23 @@ describe Mongoid::Timestamps do
18
18
  end
19
19
 
20
20
  it "adds created_at to the document" do
21
- fields["created_at"].should_not be_nil
21
+ expect(fields["created_at"]).to_not be_nil
22
22
  end
23
23
 
24
24
  it "adds updated_at to the document" do
25
- fields["updated_at"].should_not be_nil
25
+ expect(fields["updated_at"]).to_not be_nil
26
26
  end
27
27
 
28
28
  it "forces the created_at timestamps to UTC" do
29
- document.created_at.should be_within(10).of(Time.now.utc)
29
+ expect(document.created_at).to be_within(10).of(Time.now.utc)
30
30
  end
31
31
 
32
32
  it "forces the updated_at timestamps to UTC" do
33
- document.updated_at.should be_within(10).of(Time.now.utc)
33
+ expect(document.updated_at).to be_within(10).of(Time.now.utc)
34
34
  end
35
35
 
36
36
  it "ensures created_at equals updated_at on new records" do
37
- document.updated_at.should eq(document.created_at)
38
- end
39
-
40
- it "includes a record_timestamps class_accessor to ease AR compatibility" do
41
- Dokument.should.respond_to? :record_timestamps
37
+ expect(document.updated_at).to eq(document.created_at)
42
38
  end
43
39
  end
44
40
 
@@ -82,7 +78,7 @@ describe Mongoid::Timestamps do
82
78
  end
83
79
 
84
80
  it "runs the update callbacks" do
85
- document.updated_at.should eq(document.created_at)
81
+ expect(document.updated_at).to eq(document.created_at)
86
82
  end
87
83
  end
88
84
 
@@ -106,7 +102,7 @@ describe Mongoid::Timestamps do
106
102
  end
107
103
 
108
104
  it "updates the root document updated at" do
109
- document.updated_at.should be_within(1).of(Time.now)
105
+ expect(document.updated_at).to be_within(1).of(Time.now)
110
106
  end
111
107
  end
112
108
  end
@@ -1,6 +1,6 @@
1
1
  require "spec_helper"
2
2
 
3
- describe Mongoid::Hierarchy do
3
+ describe Mongoid::Traversable do
4
4
 
5
5
  describe "#_children" do
6
6
 
@@ -24,11 +24,11 @@ describe Mongoid::Hierarchy do
24
24
  end
25
25
 
26
26
  it "includes embeds_one documents" do
27
- person._children.should include(name)
27
+ expect(person._children).to include(name)
28
28
  end
29
29
 
30
30
  it "includes embeds_many documents" do
31
- person._children.should include(address)
31
+ expect(person._children).to include(address)
32
32
  end
33
33
  end
34
34
 
@@ -53,15 +53,15 @@ describe Mongoid::Hierarchy do
53
53
  end
54
54
 
55
55
  it "includes embeds_one documents" do
56
- person._children.should include(name)
56
+ expect(person._children).to include(name)
57
57
  end
58
58
 
59
59
  it "includes embeds_many documents" do
60
- person._children.should include(address)
60
+ expect(person._children).to include(address)
61
61
  end
62
62
 
63
63
  it "includes embedded documents multiple levels deep" do
64
- person._children.should include(location)
64
+ expect(person._children).to include(location)
65
65
  end
66
66
  end
67
67
  end
@@ -71,14 +71,14 @@ describe Mongoid::Hierarchy do
71
71
  context "when the document is a subclass" do
72
72
 
73
73
  it "returns true" do
74
- Circle.should be_hereditary
74
+ expect(Circle).to be_hereditary
75
75
  end
76
76
  end
77
77
 
78
78
  context "when the document is not a subclass" do
79
79
 
80
80
  it "returns false" do
81
- Shape.should_not be_hereditary
81
+ expect(Shape).to_not be_hereditary
82
82
  end
83
83
  end
84
84
  end
@@ -88,14 +88,14 @@ describe Mongoid::Hierarchy do
88
88
  context "when the document is a subclass" do
89
89
 
90
90
  it "returns true" do
91
- Circle.new.should be_hereditary
91
+ expect(Circle.new).to be_hereditary
92
92
  end
93
93
  end
94
94
 
95
95
  context "when the document is not a subclass" do
96
96
 
97
97
  it "returns false" do
98
- Shape.new.should_not be_hereditary
98
+ expect(Shape.new).to_not be_hereditary
99
99
  end
100
100
  end
101
101
  end
@@ -122,7 +122,7 @@ describe Mongoid::Hierarchy do
122
122
  end
123
123
 
124
124
  it "sets the parent document" do
125
- address._parent.should eq(person)
125
+ expect(address._parent).to eq(person)
126
126
  end
127
127
  end
128
128
 
@@ -143,7 +143,7 @@ describe Mongoid::Hierarchy do
143
143
  end
144
144
 
145
145
  it "removes the relation instance" do
146
- person.name.should be_nil
146
+ expect(person.name).to be_nil
147
147
  end
148
148
  end
149
149
 
@@ -158,7 +158,7 @@ describe Mongoid::Hierarchy do
158
158
  end
159
159
 
160
160
  it "removes the document from the relation target" do
161
- person.addresses.should be_empty
161
+ expect(person.addresses).to be_empty
162
162
  end
163
163
  end
164
164
  end
@@ -180,14 +180,14 @@ describe Mongoid::Hierarchy do
180
180
  context "when the document is not the root" do
181
181
 
182
182
  it "returns the root" do
183
- address._root.should eq(person)
183
+ expect(address._root).to eq(person)
184
184
  end
185
185
  end
186
186
 
187
187
  context "when the document is the root" do
188
188
 
189
189
  it "returns self" do
190
- person._root.should eq(person)
190
+ expect(person._root).to eq(person)
191
191
  end
192
192
  end
193
193
  end
@@ -203,7 +203,7 @@ describe Mongoid::Hierarchy do
203
203
  end
204
204
 
205
205
  it "returns true" do
206
- band.should be__root
206
+ expect(band).to be__root
207
207
  end
208
208
  end
209
209
 
@@ -216,7 +216,7 @@ describe Mongoid::Hierarchy do
216
216
  context "when the document is root in a cyclic relation" do
217
217
 
218
218
  it "returns true" do
219
- root_role.should be__root
219
+ expect(root_role).to be__root
220
220
  end
221
221
  end
222
222
 
@@ -227,7 +227,7 @@ describe Mongoid::Hierarchy do
227
227
  end
228
228
 
229
229
  it "returns false" do
230
- child_role.should_not be__root
230
+ expect(child_role).to_not be__root
231
231
  end
232
232
  end
233
233
  end
@@ -244,7 +244,7 @@ describe Mongoid::Hierarchy do
244
244
  end
245
245
 
246
246
  it "returns false" do
247
- address.should_not be__root
247
+ expect(address).to_not be__root
248
248
  end
249
249
  end
250
250
  end
@@ -1,6 +1,6 @@
1
1
  require "spec_helper"
2
2
 
3
- describe Mongoid::Validations::AssociatedValidator do
3
+ describe Mongoid::Validatable::AssociatedValidator do
4
4
 
5
5
  describe "#valid?" do
6
6
 
@@ -21,11 +21,11 @@ describe Mongoid::Validations::AssociatedValidator do
21
21
  end
22
22
 
23
23
  it "only validates the parent once" do
24
- user.should be_valid
24
+ expect(user).to be_valid
25
25
  end
26
26
 
27
27
  it "only validates the child once" do
28
- description.should be_valid
28
+ expect(description).to be_valid
29
29
  end
30
30
  end
31
31
 
@@ -44,16 +44,16 @@ describe Mongoid::Validations::AssociatedValidator do
44
44
  end
45
45
 
46
46
  it "only validates the parent once" do
47
- user.should_not be_valid
47
+ expect(user).to_not be_valid
48
48
  end
49
49
 
50
50
  it "adds the errors from the relation" do
51
51
  user.valid?
52
- user.errors[:descriptions].should_not be_nil
52
+ expect(user.errors[:descriptions]).to_not be_nil
53
53
  end
54
54
 
55
55
  it "only validates the child once" do
56
- description.should_not be_valid
56
+ expect(description).to_not be_valid
57
57
  end
58
58
  end
59
59
  end
@@ -78,14 +78,14 @@ describe Mongoid::Validations::AssociatedValidator do
78
78
  end
79
79
 
80
80
  it "adds no errors" do
81
- person.errors[:name].should be_empty
81
+ expect(person.errors[:name]).to be_empty
82
82
  end
83
83
  end
84
84
 
85
85
  context "when the association is valid" do
86
86
 
87
87
  let(:associated) do
88
- stub(valid?: true)
88
+ double(valid?: true)
89
89
  end
90
90
 
91
91
  before do
@@ -94,14 +94,14 @@ describe Mongoid::Validations::AssociatedValidator do
94
94
  end
95
95
 
96
96
  it "adds no errors" do
97
- person.errors[:name].should be_empty
97
+ expect(person.errors[:name]).to be_empty
98
98
  end
99
99
  end
100
100
 
101
101
  context "when the association is invalid" do
102
102
 
103
103
  let(:associated) do
104
- stub(valid?: false)
104
+ double(valid?: false)
105
105
  end
106
106
 
107
107
  before do
@@ -110,11 +110,11 @@ describe Mongoid::Validations::AssociatedValidator do
110
110
  end
111
111
 
112
112
  it "adds errors to the parent document" do
113
- person.errors[:name].should_not be_empty
113
+ expect(person.errors[:name]).to_not be_empty
114
114
  end
115
115
 
116
116
  it "translates the error in english" do
117
- person.errors[:name][0].should eq("is invalid")
117
+ expect(person.errors[:name][0]).to eq("is invalid")
118
118
  end
119
119
  end
120
120
  end
@@ -128,14 +128,14 @@ describe Mongoid::Validations::AssociatedValidator do
128
128
  end
129
129
 
130
130
  it "adds no errors" do
131
- person.errors[:addresses].should be_empty
131
+ expect(person.errors[:addresses]).to be_empty
132
132
  end
133
133
  end
134
134
 
135
135
  context "when the association has invalid documents" do
136
136
 
137
137
  let(:associated) do
138
- stub(valid?: false)
138
+ double(valid?: false)
139
139
  end
140
140
 
141
141
  before do
@@ -144,14 +144,14 @@ describe Mongoid::Validations::AssociatedValidator do
144
144
  end
145
145
 
146
146
  it "adds errors to the parent document" do
147
- person.errors[:addresses].should_not be_empty
147
+ expect(person.errors[:addresses]).to_not be_empty
148
148
  end
149
149
  end
150
150
 
151
151
  context "when the assocation has all valid documents" do
152
152
 
153
153
  let(:associated) do
154
- stub(valid?: true)
154
+ double(valid?: true)
155
155
  end
156
156
 
157
157
  before do
@@ -160,7 +160,7 @@ describe Mongoid::Validations::AssociatedValidator do
160
160
  end
161
161
 
162
162
  it "adds no errors" do
163
- person.errors[:addresses].should be_empty
163
+ expect(person.errors[:addresses]).to be_empty
164
164
  end
165
165
  end
166
166
  end
@@ -177,7 +177,7 @@ describe Mongoid::Validations::AssociatedValidator do
177
177
  end
178
178
 
179
179
  it "adds the validation only to the instance" do
180
- validators.should eq([ described_class ])
180
+ expect(validators).to eq([ described_class ])
181
181
  end
182
182
  end
183
183
  end
@@ -1,6 +1,6 @@
1
1
  require "spec_helper"
2
2
 
3
- describe Mongoid::Validations::FormatValidator do
3
+ describe Mongoid::Validatable::FormatValidator do
4
4
 
5
5
  describe "#validate_each" do
6
6
 
@@ -21,7 +21,7 @@ describe Mongoid::Validations::FormatValidator do
21
21
  end
22
22
 
23
23
  it "adds no errors" do
24
- product.errors[:brand_name].should be_empty
24
+ expect(product.errors[:brand_name]).to be_empty
25
25
  end
26
26
  end
27
27
 
@@ -32,7 +32,7 @@ describe Mongoid::Validations::FormatValidator do
32
32
  end
33
33
 
34
34
  it "adds errors" do
35
- product.errors[:brand_name].should eq(["is invalid"])
35
+ expect(product.errors[:brand_name]).to eq(["is invalid"])
36
36
  end
37
37
  end
38
38
  end
@@ -50,7 +50,7 @@ describe Mongoid::Validations::FormatValidator do
50
50
  end
51
51
 
52
52
  it "adds no errors" do
53
- product.errors[:website].should be_empty
53
+ expect(product.errors[:website]).to be_empty
54
54
  end
55
55
  end
56
56
 
@@ -64,7 +64,7 @@ describe Mongoid::Validations::FormatValidator do
64
64
  end
65
65
 
66
66
  it "adds errors" do
67
- product.errors[:website].should eq(["is invalid"])
67
+ expect(product.errors[:website]).to eq(["is invalid"])
68
68
  end
69
69
  end
70
70
 
@@ -75,7 +75,7 @@ describe Mongoid::Validations::FormatValidator do
75
75
  end
76
76
 
77
77
  it "adds errors" do
78
- product.errors[:website].should eq(["is invalid"])
78
+ expect(product.errors[:website]).to eq(["is invalid"])
79
79
  end
80
80
  end
81
81
  end
@@ -1,6 +1,6 @@
1
1
  require "spec_helper"
2
2
 
3
- describe Mongoid::Validations::LengthValidator do
3
+ describe Mongoid::Validatable::LengthValidator do
4
4
 
5
5
  describe "#validate_each" do
6
6
 
@@ -21,7 +21,7 @@ describe Mongoid::Validations::LengthValidator do
21
21
  end
22
22
 
23
23
  it "adds no errors" do
24
- product.errors[:brand_name].should be_empty
24
+ expect(product.errors[:brand_name]).to be_empty
25
25
  end
26
26
  end
27
27
 
@@ -32,7 +32,7 @@ describe Mongoid::Validations::LengthValidator do
32
32
  end
33
33
 
34
34
  it "adds errors" do
35
- product.errors[:brand_name].should eq(
35
+ expect(product.errors[:brand_name]).to eq(
36
36
  ["is too long (maximum is 5 characters)"]
37
37
  )
38
38
  end
@@ -52,7 +52,7 @@ describe Mongoid::Validations::LengthValidator do
52
52
  end
53
53
 
54
54
  it "adds no errors" do
55
- product.errors[:website].should be_empty
55
+ expect(product.errors[:website]).to be_empty
56
56
  end
57
57
  end
58
58
 
@@ -66,7 +66,7 @@ describe Mongoid::Validations::LengthValidator do
66
66
  end
67
67
 
68
68
  it "adds errors" do
69
- product.errors[:website].should eq(
69
+ expect(product.errors[:website]).to eq(
70
70
  ["is too long (maximum is 5 characters)"]
71
71
  )
72
72
  end
@@ -79,7 +79,7 @@ describe Mongoid::Validations::LengthValidator do
79
79
  end
80
80
 
81
81
  it "adds errors" do
82
- product.errors[:website].should eq(
82
+ expect(product.errors[:website]).to eq(
83
83
  ["is too long (maximum is 5 characters)"]
84
84
  )
85
85
  end
@@ -215,7 +215,7 @@ describe Mongoid::Validations::LengthValidator do
215
215
  end
216
216
 
217
217
  it "adds the errors to the document" do
218
- person.errors[:aliases].should_not be_empty
218
+ expect(person.errors[:aliases]).to_not be_empty
219
219
  end
220
220
  end
221
221
  end