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
@@ -21,21 +21,21 @@ describe Mongoid::Atomic::Paths::Embedded::One do
21
21
  describe "#delete_modifier" do
22
22
 
23
23
  it "returns $unset" do
24
- one.delete_modifier.should eq("$unset")
24
+ expect(one.delete_modifier).to eq("$unset")
25
25
  end
26
26
  end
27
27
 
28
28
  describe "#document" do
29
29
 
30
30
  it "returns the document" do
31
- one.document.should eq(name)
31
+ expect(one.document).to eq(name)
32
32
  end
33
33
  end
34
34
 
35
35
  describe "#insert_modifier" do
36
36
 
37
37
  it "returns $set" do
38
- one.insert_modifier.should eq("$set")
38
+ expect(one.insert_modifier).to eq("$set")
39
39
  end
40
40
  end
41
41
 
@@ -44,7 +44,7 @@ describe Mongoid::Atomic::Paths::Embedded::One do
44
44
  context "when the document is embedded one level" do
45
45
 
46
46
  it "returns the name of the relation" do
47
- one.path.should eq("name")
47
+ expect(one.path).to eq("name")
48
48
  end
49
49
  end
50
50
 
@@ -68,7 +68,7 @@ describe Mongoid::Atomic::Paths::Embedded::One do
68
68
  end
69
69
 
70
70
  it "returns the nested path to the relation" do
71
- one.path.should eq("phone_numbers.country_code")
71
+ expect(one.path).to eq("phone_numbers.country_code")
72
72
  end
73
73
  end
74
74
  end
@@ -78,7 +78,7 @@ describe Mongoid::Atomic::Paths::Embedded::One do
78
78
  context "when the document is embedded one level" do
79
79
 
80
80
  it "returns the name of the relation" do
81
- one.position.should eq("name")
81
+ expect(one.position).to eq("name")
82
82
  end
83
83
  end
84
84
 
@@ -103,49 +103,7 @@ describe Mongoid::Atomic::Paths::Embedded::One do
103
103
  end
104
104
 
105
105
  it "returns the nested position to the relation" do
106
- one.position.should eq("phone_numbers.0.country_code")
107
- end
108
- end
109
- end
110
-
111
- describe "#selector" do
112
-
113
- context "when the document is embedded one level" do
114
-
115
- it "returns the the hash with parent selector" do
116
- one.selector.should eq({ "_id" => person._id, "name._id" => name._id })
117
- end
118
- end
119
-
120
- context "when the document is embedded multiple levels" do
121
-
122
- let(:phone) do
123
- Phone.new(number: "404-555-1212")
124
- end
125
-
126
- let(:country_code) do
127
- CountryCode.new(code: 1)
128
- end
129
-
130
- before do
131
- phone.country_code = country_code
132
- person.phone_numbers << phone
133
- phone.new_record = false
134
- phone.post_persist
135
- end
136
-
137
- let(:one) do
138
- described_class.new(country_code)
139
- end
140
-
141
- it "returns the hash with all parent selectors" do
142
- one.selector.should eq(
143
- {
144
- "_id" => person._id,
145
- "phone_numbers._id" => phone._id,
146
- "phone_numbers.0.country_code._id" => country_code._id
147
- }
148
- )
106
+ expect(one.position).to eq("phone_numbers.0.country_code")
149
107
  end
150
108
  end
151
109
  end
@@ -13,21 +13,21 @@ describe Mongoid::Atomic::Paths::Root do
13
13
  describe "#document" do
14
14
 
15
15
  it "returns the document" do
16
- root.document.should eq(person)
16
+ expect(root.document).to eq(person)
17
17
  end
18
18
  end
19
19
 
20
20
  describe "#path" do
21
21
 
22
22
  it "returns an empty string" do
23
- root.path.should be_empty
23
+ expect(root.path).to be_empty
24
24
  end
25
25
  end
26
26
 
27
27
  describe "#position" do
28
28
 
29
29
  it "returns an empty string" do
30
- root.position.should be_empty
30
+ expect(root.position).to be_empty
31
31
  end
32
32
  end
33
33
 
@@ -45,62 +45,4 @@ describe Mongoid::Atomic::Paths::Root do
45
45
  expect { root.insert_modifier }.to raise_error(Mongoid::Errors::InvalidPath)
46
46
  end
47
47
  end
48
-
49
- describe "#selector" do
50
-
51
- context "when using a shard key" do
52
-
53
- let(:profile) do
54
- Profile.new(name: "google")
55
- end
56
-
57
- let(:root) do
58
- described_class.new(profile)
59
- end
60
-
61
- it "returns the id and shard key in the hash" do
62
- root.selector.should eq({ "_id" => profile.id, "name" => profile.name })
63
- end
64
- end
65
-
66
- context "when not using a shard key" do
67
-
68
- context "when using object ids" do
69
-
70
- it "returns the hash with the id" do
71
- root.selector.should eq({ "_id" => person.id })
72
- end
73
- end
74
-
75
- context "when using a composite key" do
76
-
77
- let(:account) do
78
- Account.new(name: "savings")
79
- end
80
-
81
- let(:root) do
82
- described_class.new(account)
83
- end
84
-
85
- context "when the composite key has changed" do
86
-
87
- before do
88
- account.new_record = false
89
- account.name = "current"
90
- end
91
-
92
- it "returns the hash with the old key" do
93
- root.selector.should eq({ "_id" => "savings" })
94
- end
95
- end
96
-
97
- context "when the composite key has not changed" do
98
-
99
- it "returns the hash with the key" do
100
- root.selector.should eq({ "_id" => "savings" })
101
- end
102
- end
103
- end
104
- end
105
- end
106
48
  end
@@ -28,14 +28,14 @@ describe Mongoid::Atomic::Paths do
28
28
  context "when document is an embeds_one" do
29
29
 
30
30
  it "returns $unset" do
31
- name.atomic_delete_modifier.should eq("$unset")
31
+ expect(name.atomic_delete_modifier).to eq("$unset")
32
32
  end
33
33
  end
34
34
 
35
35
  context "when document is an embeds_many" do
36
36
 
37
37
  it "returns $pull" do
38
- address.atomic_delete_modifier.should eq("$pull")
38
+ expect(address.atomic_delete_modifier).to eq("$pull")
39
39
  end
40
40
  end
41
41
  end
@@ -50,14 +50,14 @@ describe Mongoid::Atomic::Paths do
50
50
  context "when document is an embeds_one" do
51
51
 
52
52
  it "returns $set" do
53
- name.atomic_insert_modifier.should eq("$set")
53
+ expect(name.atomic_insert_modifier).to eq("$set")
54
54
  end
55
55
  end
56
56
 
57
57
  context "when document is an embeds_many" do
58
58
 
59
59
  it "returns $push" do
60
- address.atomic_insert_modifier.should eq("$push")
60
+ expect(address.atomic_insert_modifier).to eq("$push")
61
61
  end
62
62
  end
63
63
  end
@@ -67,7 +67,7 @@ describe Mongoid::Atomic::Paths do
67
67
  context "when the document is a parent" do
68
68
 
69
69
  it "returns an empty string" do
70
- person.atomic_path.should be_empty
70
+ expect(person.atomic_path).to be_empty
71
71
  end
72
72
  end
73
73
 
@@ -78,7 +78,7 @@ describe Mongoid::Atomic::Paths do
78
78
  end
79
79
 
80
80
  it "returns the inverse_of value of the association" do
81
- address.atomic_path.should eq("addresses")
81
+ expect(address.atomic_path).to eq("addresses")
82
82
  end
83
83
  end
84
84
 
@@ -90,7 +90,7 @@ describe Mongoid::Atomic::Paths do
90
90
  end
91
91
 
92
92
  it "returns the JSON notation to the document" do
93
- location.atomic_path.should eq("addresses.locations")
93
+ expect(location.atomic_path).to eq("addresses.locations")
94
94
  end
95
95
  end
96
96
  end
@@ -100,7 +100,7 @@ describe Mongoid::Atomic::Paths do
100
100
  context "when the document is a parent" do
101
101
 
102
102
  it "returns an id.atomic_selector" do
103
- person.atomic_selector.should eq({ "_id" => person.id })
103
+ expect(person.atomic_selector).to eq({ "_id" => person.id })
104
104
  end
105
105
  end
106
106
 
@@ -111,7 +111,7 @@ describe Mongoid::Atomic::Paths do
111
111
  end
112
112
 
113
113
  it "returns the association with id.atomic_selector" do
114
- address.atomic_selector.should eq(
114
+ expect(address.atomic_selector).to eq(
115
115
  { "_id" => person.id, "addresses._id" => address.id }
116
116
  )
117
117
  end
@@ -125,7 +125,7 @@ describe Mongoid::Atomic::Paths do
125
125
  end
126
126
 
127
127
  it "returns the JSON notation to the document with ids" do
128
- location.atomic_selector.should eq(
128
+ expect(location.atomic_selector).to eq(
129
129
  {
130
130
  "_id" => person.id,
131
131
  "addresses._id" => address.id,
@@ -141,7 +141,7 @@ describe Mongoid::Atomic::Paths do
141
141
  context "when the document is a parent" do
142
142
 
143
143
  it "returns an empty string" do
144
- person.atomic_position.should be_empty
144
+ expect(person.atomic_position).to be_empty
145
145
  end
146
146
  end
147
147
 
@@ -154,7 +154,7 @@ describe Mongoid::Atomic::Paths do
154
154
  context "when the document is new" do
155
155
 
156
156
  it "returns the.atomic_path without index" do
157
- address.atomic_position.should eq("addresses")
157
+ expect(address.atomic_position).to eq("addresses")
158
158
  end
159
159
  end
160
160
 
@@ -165,7 +165,7 @@ describe Mongoid::Atomic::Paths do
165
165
  end
166
166
 
167
167
  it "returns the.atomic_path plus index" do
168
- address.atomic_position.should eq("addresses.0")
168
+ expect(address.atomic_position).to eq("addresses.0")
169
169
  end
170
170
  end
171
171
  end
@@ -185,7 +185,7 @@ describe Mongoid::Atomic::Paths do
185
185
  context "when the document is new" do
186
186
 
187
187
  it "returns the.atomic_path with parent indexes" do
188
- location.atomic_position.should eq("addresses.0.locations")
188
+ expect(location.atomic_position).to eq("addresses.0.locations")
189
189
  end
190
190
  end
191
191
 
@@ -196,7 +196,7 @@ describe Mongoid::Atomic::Paths do
196
196
  end
197
197
 
198
198
  it "returns the.atomic_path plus index" do
199
- location.atomic_position.should eq("addresses.0.locations.1")
199
+ expect(location.atomic_position).to eq("addresses.0.locations.1")
200
200
  end
201
201
  end
202
202
  end
@@ -207,7 +207,7 @@ describe Mongoid::Atomic::Paths do
207
207
  context "when the document is a parent" do
208
208
 
209
209
  it "returns an empty string" do
210
- person.atomic_path.should be_empty
210
+ expect(person.atomic_path).to be_empty
211
211
  end
212
212
  end
213
213
 
@@ -224,7 +224,7 @@ describe Mongoid::Atomic::Paths do
224
224
  end
225
225
 
226
226
  it "returns the.atomic_path without the index" do
227
- address.atomic_path.should eq("addresses")
227
+ expect(address.atomic_path).to eq("addresses")
228
228
  end
229
229
 
230
230
  context "and there are 10 or more documents" do
@@ -236,7 +236,7 @@ describe Mongoid::Atomic::Paths do
236
236
  end
237
237
 
238
238
  it "returns the.atomic_path without the index" do
239
- address.atomic_path.should eq("addresses")
239
+ expect(address.atomic_path).to eq("addresses")
240
240
  end
241
241
  end
242
242
  end
@@ -261,7 +261,7 @@ describe Mongoid::Atomic::Paths do
261
261
  end
262
262
 
263
263
  it "returns the.atomic_path plus index" do
264
- location.atomic_path.should eq("addresses.0.locations")
264
+ expect(location.atomic_path).to eq("addresses.0.locations")
265
265
  end
266
266
 
267
267
  end
@@ -21,11 +21,11 @@ describe Mongoid::Atomic do
21
21
  end
22
22
 
23
23
  it "adds the document to the delayed atomic pulls" do
24
- person.delayed_atomic_pulls["addresses"].should eq([ address ])
24
+ expect(person.delayed_atomic_pulls["addresses"]).to eq([ address ])
25
25
  end
26
26
 
27
27
  it "flags the document for destruction" do
28
- address.should be_flagged_for_destroy
28
+ expect(address).to be_flagged_for_destroy
29
29
  end
30
30
  end
31
31
 
@@ -44,11 +44,11 @@ describe Mongoid::Atomic do
44
44
  end
45
45
 
46
46
  it "adds the document to the delayed atomic unsets" do
47
- person.delayed_atomic_unsets["name"].should eq([ name ])
47
+ expect(person.delayed_atomic_unsets["name"]).to eq([ name ])
48
48
  end
49
49
 
50
50
  it "flags the document for destruction" do
51
- name.should be_flagged_for_destroy
51
+ expect(name).to be_flagged_for_destroy
52
52
  end
53
53
  end
54
54
 
@@ -67,7 +67,7 @@ describe Mongoid::Atomic do
67
67
  end
68
68
 
69
69
  it "returns the atomic updates" do
70
- person.atomic_updates.should eq({ "$set" => { "title" => "Sir" }})
70
+ expect(person.atomic_updates).to eq({ "$set" => { "title" => "Sir" }})
71
71
  end
72
72
 
73
73
  context "when an embeds many child is added" do
@@ -77,7 +77,7 @@ describe Mongoid::Atomic do
77
77
  end
78
78
 
79
79
  it "returns a $set and $pushAll for modifications" do
80
- person.atomic_updates.should eq(
80
+ expect(person.atomic_updates).to eq(
81
81
  {
82
82
  "$set" => { "title" => "Sir" },
83
83
  "$pushAll" => { "addresses" => [
@@ -95,7 +95,7 @@ describe Mongoid::Atomic do
95
95
  end
96
96
 
97
97
  it "returns a $set for modifications" do
98
- person.atomic_updates.should eq(
98
+ expect(person.atomic_updates).to eq(
99
99
  {
100
100
  "$set" => {
101
101
  "title" => "Sir",
@@ -119,7 +119,7 @@ describe Mongoid::Atomic do
119
119
  context "when asking for the updates from the root" do
120
120
 
121
121
  it "returns the $set with correct position and modifications" do
122
- person.atomic_updates.should eq(
122
+ expect(person.atomic_updates).to eq(
123
123
  { "$set" => { "title" => "Sir", "addresses.0.street" => "Bond St" }}
124
124
  )
125
125
  end
@@ -128,7 +128,7 @@ describe Mongoid::Atomic do
128
128
  context "when asking for the updates from the child" do
129
129
 
130
130
  it "returns the $set with correct position and modifications" do
131
- address.atomic_updates.should eq(
131
+ expect(address.atomic_updates).to eq(
132
132
  { "$set" => { "addresses.0.street" => "Bond St" }}
133
133
  )
134
134
  end
@@ -147,7 +147,7 @@ describe Mongoid::Atomic do
147
147
  context "when asking for the updates from the root" do
148
148
 
149
149
  it "returns the $set with correct positions and modifications" do
150
- person.atomic_updates.should eq(
150
+ expect(person.atomic_updates).to eq(
151
151
  { "$set" => {
152
152
  "title" => "Sir",
153
153
  "addresses.0.street" => "Bond St",
@@ -160,7 +160,7 @@ describe Mongoid::Atomic do
160
160
  context "when asking for the updates from the 1st level child" do
161
161
 
162
162
  it "returns the $set with correct positions and modifications" do
163
- address.atomic_updates.should eq(
163
+ expect(address.atomic_updates).to eq(
164
164
  { "$set" => {
165
165
  "addresses.0.street" => "Bond St",
166
166
  "addresses.0.locations.0.name" => "Work" }
@@ -172,7 +172,7 @@ describe Mongoid::Atomic do
172
172
  context "when asking for the updates from the 2nd level child" do
173
173
 
174
174
  it "returns the $set with correct positions and modifications" do
175
- location.atomic_updates.should eq(
175
+ expect(location.atomic_updates).to eq(
176
176
  { "$set" => {
177
177
  "addresses.0.locations.0.name" => "Work" }
178
178
  }
@@ -190,7 +190,7 @@ describe Mongoid::Atomic do
190
190
  context "when asking for the updates from the root" do
191
191
 
192
192
  it "returns the $set with correct positions and modifications" do
193
- person.atomic_updates.should eq(
193
+ expect(person.atomic_updates).to eq(
194
194
  {
195
195
  "$set" => {
196
196
  "title" => "Sir",
@@ -209,7 +209,7 @@ describe Mongoid::Atomic do
209
209
  context "when asking for the updates from the 1st level child" do
210
210
 
211
211
  it "returns the $set with correct positions and modifications" do
212
- address.atomic_updates.should eq(
212
+ expect(address.atomic_updates).to eq(
213
213
  {
214
214
  "$set" => {
215
215
  "addresses.0.street" => "Bond St"
@@ -236,7 +236,7 @@ describe Mongoid::Atomic do
236
236
  end
237
237
 
238
238
  it "returns the $set for the first level and $unset for other." do
239
- updates.should eq({
239
+ expect(updates).to eq({
240
240
  "$unset" => { "addresses" => true },
241
241
  "$set" => { "title" => "Sir" }
242
242
  })
@@ -256,7 +256,7 @@ describe Mongoid::Atomic do
256
256
  context "when asking for the updates from the root document" do
257
257
 
258
258
  it "returns the $set for 1st level and other for the 2nd level" do
259
- person.atomic_updates.should eq(
259
+ expect(person.atomic_updates).to eq(
260
260
  {
261
261
  "$set" => {
262
262
  "title" => "Sir",
@@ -282,7 +282,7 @@ describe Mongoid::Atomic do
282
282
  context "when asking for the updates from the 1st level document" do
283
283
 
284
284
  it "returns the $set for 1st level and other for the 2nd level" do
285
- address.atomic_updates.should eq(
285
+ expect(address.atomic_updates).to eq(
286
286
  { "$set" => { "addresses.0.street" => "Bond St" }}
287
287
  )
288
288
  end
@@ -305,7 +305,7 @@ describe Mongoid::Atomic do
305
305
  end
306
306
 
307
307
  it "returns the $set for 1st and 2nd level and other for the 3nd level" do
308
- person.atomic_updates.should eq(
308
+ expect(person.atomic_updates).to eq(
309
309
  {
310
310
  "$set" => {
311
311
  "title" => "Sir"
@@ -340,7 +340,7 @@ describe Mongoid::Atomic do
340
340
  end
341
341
 
342
342
  it "returns the proper $sets and $pushAlls for all levels" do
343
- person.atomic_updates.should eq(
343
+ expect(person.atomic_updates).to eq(
344
344
  {
345
345
  "$set" => {
346
346
  "title" => "Sir",