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
@@ -3,7 +3,7 @@ require "spec_helper"
3
3
  describe Mongoid::Relations::Builders::Referenced::In do
4
4
 
5
5
  let(:base) do
6
- stub
6
+ double
7
7
  end
8
8
 
9
9
  describe "#build" do
@@ -13,7 +13,7 @@ describe Mongoid::Relations::Builders::Referenced::In do
13
13
  end
14
14
 
15
15
  let(:metadata) do
16
- stub(
16
+ double(
17
17
  klass: Person,
18
18
  name: :person,
19
19
  foreign_key: "person_id",
@@ -30,7 +30,7 @@ describe Mongoid::Relations::Builders::Referenced::In do
30
30
  context "when the object is an object id" do
31
31
 
32
32
  let(:object_id) do
33
- Moped::BSON::ObjectId.new
33
+ BSON::ObjectId.new
34
34
  end
35
35
 
36
36
  let(:object) do
@@ -38,7 +38,7 @@ describe Mongoid::Relations::Builders::Referenced::In do
38
38
  end
39
39
 
40
40
  let(:person) do
41
- stub
41
+ double
42
42
  end
43
43
 
44
44
  before do
@@ -50,22 +50,23 @@ describe Mongoid::Relations::Builders::Referenced::In do
50
50
  end
51
51
 
52
52
  it "sets the document" do
53
- document.should eq(person)
53
+ expect(document).to eq(person)
54
54
  end
55
55
  end
56
56
 
57
57
  context "when the object is an integer" do
58
58
 
59
59
  before do
60
- Person.field :_id, type: Integer
60
+ Person.field :_id, overwrite: true, type: Integer
61
61
  end
62
62
 
63
63
  after do
64
64
  Person.field(
65
65
  :_id,
66
- type: Moped::BSON::ObjectId,
66
+ overwrite: true,
67
+ type: BSON::ObjectId,
67
68
  pre_processed: true,
68
- default: ->{ Moped::BSON::ObjectId.new }
69
+ default: ->{ BSON::ObjectId.new }
69
70
  )
70
71
  end
71
72
 
@@ -78,7 +79,7 @@ describe Mongoid::Relations::Builders::Referenced::In do
78
79
  end
79
80
 
80
81
  let(:person) do
81
- stub
82
+ double
82
83
  end
83
84
 
84
85
  before do
@@ -90,7 +91,7 @@ describe Mongoid::Relations::Builders::Referenced::In do
90
91
  end
91
92
 
92
93
  it "sets the document" do
93
- document.should eq(person)
94
+ expect(document).to eq(person)
94
95
  end
95
96
  end
96
97
  end
@@ -110,7 +111,7 @@ describe Mongoid::Relations::Builders::Referenced::In do
110
111
  end
111
112
 
112
113
  it "returns the object" do
113
- document.should eq(object)
114
+ expect(document).to eq(object)
114
115
  end
115
116
  end
116
117
  end
@@ -126,28 +127,24 @@ describe Mongoid::Relations::Builders::Referenced::In do
126
127
  context "when the id is nil" do
127
128
 
128
129
  it "returns nil" do
129
- game.person.should be_nil
130
+ expect(game.person).to be_nil
130
131
  end
131
132
  end
132
133
 
133
134
  context "when the id is incorrect" do
134
135
 
135
136
  before do
136
- game.person_id = Moped::BSON::ObjectId.new
137
+ game.person_id = BSON::ObjectId.new
137
138
  end
138
139
 
139
140
  it "returns nil" do
140
- game.person.should be_nil
141
+ expect(game.person).to be_nil
141
142
  end
142
143
  end
143
144
  end
144
145
 
145
146
  context "when the document is persisted" do
146
147
 
147
- before do
148
- Mongoid.identity_map_enabled = true
149
- end
150
-
151
148
  let!(:person) do
152
149
  Person.create
153
150
  end
@@ -156,16 +153,8 @@ describe Mongoid::Relations::Builders::Referenced::In do
156
153
  Game.new(person_id: person.id)
157
154
  end
158
155
 
159
- after do
160
- Mongoid.identity_map_enabled = false
161
- end
162
-
163
156
  it "returns the document" do
164
- game.person.should eq(person)
165
- end
166
-
167
- it "gets the document from the identity map" do
168
- game.person.should equal(person)
157
+ expect(game.person).to eq(person)
169
158
  end
170
159
  end
171
160
 
@@ -185,11 +174,11 @@ describe Mongoid::Relations::Builders::Referenced::In do
185
174
  end
186
175
 
187
176
  it 'sets the person_id to nil' do
188
- game.person_id.should be_nil
177
+ expect(game.person_id).to be_nil
189
178
  end
190
179
 
191
180
  it 'does not delete the person' do
192
- Person.find(person.id).should eq(person)
181
+ expect(Person.find(person.id)).to eq(person)
193
182
  end
194
183
  end
195
184
  end
@@ -211,11 +200,11 @@ describe Mongoid::Relations::Builders::Referenced::In do
211
200
  end
212
201
 
213
202
  it 'sets the person_id to nil' do
214
- game.person_id.should be_nil
203
+ expect(game.person_id).to be_nil
215
204
  end
216
205
 
217
206
  it 'does not delete the person' do
218
- Person.find(person.id).should eq(person)
207
+ expect(Person.find(person.id)).to eq(person)
219
208
  end
220
209
  end
221
210
 
@@ -230,11 +219,11 @@ describe Mongoid::Relations::Builders::Referenced::In do
230
219
  end
231
220
 
232
221
  it 'sets the person_id' do
233
- game.person_id.should eq(other_person.id)
222
+ expect(game.person_id).to eq(other_person.id)
234
223
  end
235
224
 
236
225
  it 'does not delete the person' do
237
- Person.find(person.id).should eq(person)
226
+ expect(Person.find(person.id)).to eq(person)
238
227
  end
239
228
  end
240
229
  end
@@ -3,17 +3,17 @@ require "spec_helper"
3
3
  describe Mongoid::Relations::Builders::Referenced::Many do
4
4
 
5
5
  let(:base) do
6
- stub
6
+ double
7
7
  end
8
8
 
9
9
  describe "#build" do
10
10
 
11
11
  let(:criteria) do
12
- stub(klass: Post, selector: { "person_id" => "" }, selector_with_type_selection: { "person_id" => "" })
12
+ double(klass: Post, selector: { "person_id" => "" }, selector_with_type_selection: { "person_id" => "" })
13
13
  end
14
14
 
15
15
  let(:metadata) do
16
- stub(
16
+ double(
17
17
  klass: Post,
18
18
  name: :posts,
19
19
  foreign_key: "person_id",
@@ -29,7 +29,7 @@ describe Mongoid::Relations::Builders::Referenced::Many do
29
29
  context "when provided an id" do
30
30
 
31
31
  let(:object_id) do
32
- Moped::BSON::ObjectId.new
32
+ BSON::ObjectId.new
33
33
  end
34
34
 
35
35
  let(:object) do
@@ -37,7 +37,7 @@ describe Mongoid::Relations::Builders::Referenced::Many do
37
37
  end
38
38
 
39
39
  let(:post) do
40
- stub
40
+ double
41
41
  end
42
42
 
43
43
  let(:documents) do
@@ -45,14 +45,14 @@ describe Mongoid::Relations::Builders::Referenced::Many do
45
45
  end
46
46
 
47
47
  it "sets the documents" do
48
- documents.should eq(criteria)
48
+ expect(documents).to eq(criteria)
49
49
  end
50
50
  end
51
51
 
52
52
  context "when order specified" do
53
53
 
54
54
  let(:metadata) do
55
- stub(
55
+ double(
56
56
  klass: Post,
57
57
  name: :posts,
58
58
  foreign_key: "person_id",
@@ -63,7 +63,7 @@ describe Mongoid::Relations::Builders::Referenced::Many do
63
63
  end
64
64
 
65
65
  let(:object_id) do
66
- Moped::BSON::ObjectId.new
66
+ BSON::ObjectId.new
67
67
  end
68
68
 
69
69
  let(:object) do
@@ -71,7 +71,7 @@ describe Mongoid::Relations::Builders::Referenced::Many do
71
71
  end
72
72
 
73
73
  let(:post) do
74
- stub
74
+ double
75
75
  end
76
76
 
77
77
  let(:documents) do
@@ -79,14 +79,14 @@ describe Mongoid::Relations::Builders::Referenced::Many do
79
79
  end
80
80
 
81
81
  it "ordered by specified filed" do
82
- documents.should eq(criteria)
82
+ expect(documents).to eq(criteria)
83
83
  end
84
84
  end
85
85
 
86
86
  context "when provided a object" do
87
87
 
88
88
  let(:metadata) do
89
- stub(
89
+ double(
90
90
  klass: Post,
91
91
  name: :posts,
92
92
  foreign_key: "person_id",
@@ -103,7 +103,7 @@ describe Mongoid::Relations::Builders::Referenced::Many do
103
103
  end
104
104
 
105
105
  it "returns the object" do
106
- documents.should eq(object)
106
+ expect(documents).to eq(object)
107
107
  end
108
108
  end
109
109
  end
@@ -119,15 +119,15 @@ describe Mongoid::Relations::Builders::Referenced::Many do
119
119
  context "when the ids are empty" do
120
120
 
121
121
  it "returns an empty array" do
122
- person.posts.should be_empty
122
+ expect(person.posts).to be_empty
123
123
  end
124
124
 
125
125
  context "during initialization" do
126
126
 
127
127
  it "returns an empty array" do
128
128
  Person.new do |p|
129
- p.posts.should be_empty
130
- p.posts.metadata.should_not be_nil
129
+ expect(p.posts).to be_empty
130
+ expect(p.posts.metadata).to_not be_nil
131
131
  end
132
132
  end
133
133
  end
@@ -7,17 +7,17 @@ describe Mongoid::Relations::Builders::Referenced::ManyToMany do
7
7
  end
8
8
 
9
9
  let(:base) do
10
- stub
10
+ double
11
11
  end
12
12
 
13
13
  describe "#build" do
14
14
 
15
15
  let(:criteria) do
16
- stub(klass: Preference, selector: { "_id" => { "$in" => [] }})
16
+ double(klass: Preference, selector: { "_id" => { "$in" => [] }})
17
17
  end
18
18
 
19
19
  let(:metadata) do
20
- stub(
20
+ double(
21
21
  klass: Preference,
22
22
  name: :preferences,
23
23
  foreign_key: "preference_ids",
@@ -32,7 +32,7 @@ describe Mongoid::Relations::Builders::Referenced::ManyToMany do
32
32
  context "when provided ids" do
33
33
 
34
34
  let(:object_id) do
35
- Moped::BSON::ObjectId.new
35
+ BSON::ObjectId.new
36
36
  end
37
37
 
38
38
  let(:object) do
@@ -40,7 +40,7 @@ describe Mongoid::Relations::Builders::Referenced::ManyToMany do
40
40
  end
41
41
 
42
42
  let(:preference) do
43
- stub
43
+ double
44
44
  end
45
45
 
46
46
  let(:documents) do
@@ -48,14 +48,14 @@ describe Mongoid::Relations::Builders::Referenced::ManyToMany do
48
48
  end
49
49
 
50
50
  it "sets the documents" do
51
- documents.should eq(criteria)
51
+ expect(documents).to eq(criteria)
52
52
  end
53
53
  end
54
54
 
55
55
  context "when order specified" do
56
56
 
57
57
  let(:metadata) do
58
- stub(
58
+ double(
59
59
  klass: Post,
60
60
  name: :preferences,
61
61
  foreign_key: "person_id",
@@ -66,7 +66,7 @@ describe Mongoid::Relations::Builders::Referenced::ManyToMany do
66
66
  end
67
67
 
68
68
  let(:object_id) do
69
- Moped::BSON::ObjectId.new
69
+ BSON::ObjectId.new
70
70
  end
71
71
 
72
72
  let(:object) do
@@ -74,7 +74,7 @@ describe Mongoid::Relations::Builders::Referenced::ManyToMany do
74
74
  end
75
75
 
76
76
  let(:preference) do
77
- stub
77
+ double
78
78
  end
79
79
 
80
80
  let(:documents) do
@@ -82,7 +82,7 @@ describe Mongoid::Relations::Builders::Referenced::ManyToMany do
82
82
  end
83
83
 
84
84
  it "ordered by specified filed" do
85
- documents.should eq(criteria)
85
+ expect(documents).to eq(criteria)
86
86
  end
87
87
  end
88
88
 
@@ -95,7 +95,7 @@ describe Mongoid::Relations::Builders::Referenced::ManyToMany do
95
95
  end
96
96
 
97
97
  let(:preference) do
98
- stub
98
+ double
99
99
  end
100
100
 
101
101
  let!(:documents) do
@@ -103,14 +103,14 @@ describe Mongoid::Relations::Builders::Referenced::ManyToMany do
103
103
  end
104
104
 
105
105
  it "returns the objects" do
106
- documents.should eq(object)
106
+ expect(documents).to eq(object)
107
107
  end
108
108
  end
109
109
 
110
110
  context "when the object is nil" do
111
111
 
112
112
  let(:metadata) do
113
- stub(
113
+ double(
114
114
  klass: Post,
115
115
  name: :preferences,
116
116
  foreign_key: "preference_ids",
@@ -127,7 +127,7 @@ describe Mongoid::Relations::Builders::Referenced::ManyToMany do
127
127
  end
128
128
 
129
129
  it "returns the object" do
130
- documents.should eq(criteria)
130
+ expect(documents).to eq(criteria)
131
131
  end
132
132
  end
133
133
  end
@@ -144,18 +144,18 @@ describe Mongoid::Relations::Builders::Referenced::ManyToMany do
144
144
  context "when the ids are empty" do
145
145
 
146
146
  it "returns an empty array" do
147
- person.preferences.should be_empty
147
+ expect(person.preferences).to be_empty
148
148
  end
149
149
  end
150
150
 
151
151
  context "when the ids are incorrect" do
152
152
 
153
153
  before do
154
- person.preference_ids = [ Moped::BSON::ObjectId.new ]
154
+ person.preference_ids = [ BSON::ObjectId.new ]
155
155
  end
156
156
 
157
157
  it "returns an empty array" do
158
- person.preferences.should be_empty
158
+ expect(person.preferences).to be_empty
159
159
  end
160
160
  end
161
161
  end
@@ -172,7 +172,7 @@ describe Mongoid::Relations::Builders::Referenced::ManyToMany do
172
172
  end
173
173
 
174
174
  it "returns the criteria" do
175
- criteria.should be_empty
175
+ expect(criteria).to be_empty
176
176
  end
177
177
  end
178
178
  end
@@ -3,7 +3,7 @@ require "spec_helper"
3
3
  describe Mongoid::Relations::Builders::Referenced::One do
4
4
 
5
5
  let(:base) do
6
- stub(new_record?: false)
6
+ double(new_record?: false)
7
7
  end
8
8
 
9
9
  describe "#build" do
@@ -13,7 +13,7 @@ describe Mongoid::Relations::Builders::Referenced::One do
13
13
  end
14
14
 
15
15
  let(:metadata) do
16
- stub(
16
+ double(
17
17
  klass: Post,
18
18
  name: :post,
19
19
  foreign_key: "person_id",
@@ -29,7 +29,7 @@ describe Mongoid::Relations::Builders::Referenced::One do
29
29
  context "when provided an id" do
30
30
 
31
31
  let(:object_id) do
32
- Moped::BSON::ObjectId.new
32
+ BSON::ObjectId.new
33
33
  end
34
34
 
35
35
  let(:object) do
@@ -37,7 +37,7 @@ describe Mongoid::Relations::Builders::Referenced::One do
37
37
  end
38
38
 
39
39
  let(:post) do
40
- stub
40
+ double
41
41
  end
42
42
 
43
43
  before do
@@ -49,7 +49,7 @@ describe Mongoid::Relations::Builders::Referenced::One do
49
49
  end
50
50
 
51
51
  it "sets the document" do
52
- documents.should eq(post)
52
+ expect(documents).to eq(post)
53
53
  end
54
54
  end
55
55
 
@@ -64,7 +64,7 @@ describe Mongoid::Relations::Builders::Referenced::One do
64
64
  end
65
65
 
66
66
  it "returns the object" do
67
- document.should eq(object)
67
+ expect(document).to eq(object)
68
68
  end
69
69
  end
70
70
  end
@@ -78,31 +78,18 @@ describe Mongoid::Relations::Builders::Referenced::One do
78
78
  context "when the document is not found" do
79
79
 
80
80
  it "returns nil" do
81
- person.game.should be_nil
81
+ expect(person.game).to be_nil
82
82
  end
83
83
  end
84
84
 
85
85
  context "when the document is persisted" do
86
86
 
87
- before do
88
- Mongoid.identity_map_enabled = true
89
- person.save
90
- end
91
-
92
- after do
93
- Mongoid.identity_map_enabled = false
94
- end
95
-
96
87
  let!(:game) do
97
- Game.create(person_id: person.id)
88
+ Game.create(person: person)
98
89
  end
99
90
 
100
91
  it "returns the document" do
101
- person.game.should eq(game)
102
- end
103
-
104
- it "pulls the document from the identity map" do
105
- person.game.should equal(game)
92
+ expect(person.game).to eq(game)
106
93
  end
107
94
  end
108
95
 
@@ -113,11 +100,11 @@ describe Mongoid::Relations::Builders::Referenced::One do
113
100
  end
114
101
 
115
102
  let!(:cat) do
116
- Cat.create(person_id: person.username)
103
+ Cat.create(person: person)
117
104
  end
118
105
 
119
106
  it "returns the document" do
120
- person.cat.should eq(cat)
107
+ expect(person.cat).to eq(cat)
121
108
  end
122
109
  end
123
110
  end