mongoid 3.1.7 → 4.0.0.alpha1

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -5,7 +5,7 @@ describe Mongoid::Extensions::FalseClass do
5
5
  describe "#__sortable__" do
6
6
 
7
7
  it "returns 0" do
8
- false.__sortable__.should eq(0)
8
+ expect(false.__sortable__).to eq(0)
9
9
  end
10
10
  end
11
11
 
@@ -14,28 +14,28 @@ describe Mongoid::Extensions::FalseClass do
14
14
  context "when provided a Boolean" do
15
15
 
16
16
  it "returns true" do
17
- false.is_a?(Boolean).should be_true
17
+ expect(false.is_a?(Boolean)).to be true
18
18
  end
19
19
  end
20
20
 
21
21
  context "when provided a FalseClass" do
22
22
 
23
23
  it "returns true" do
24
- false.is_a?(FalseClass).should be_true
24
+ expect(false.is_a?(FalseClass)).to be true
25
25
  end
26
26
  end
27
27
 
28
28
  context "when provided a TrueClass" do
29
29
 
30
30
  it "returns false" do
31
- false.is_a?(TrueClass).should be_false
31
+ expect(false.is_a?(TrueClass)).to be false
32
32
  end
33
33
  end
34
34
 
35
35
  context "when provided an invalid class" do
36
36
 
37
37
  it "returns false" do
38
- false.is_a?(String).should be_false
38
+ expect(false.is_a?(String)).to be false
39
39
  end
40
40
  end
41
41
  end
@@ -17,7 +17,7 @@ describe Mongoid::Extensions::Float do
17
17
  end
18
18
 
19
19
  it "returns the float as a time" do
20
- mongoized.should eq(Time.at(float))
20
+ expect(mongoized).to eq(Time.at(float))
21
21
  end
22
22
  end
23
23
 
@@ -26,14 +26,28 @@ describe Mongoid::Extensions::Float do
26
26
  context "when the the value is a float" do
27
27
 
28
28
  it "returns a float" do
29
- Float.demongoize(number).should eq(number)
29
+ expect(Float.demongoize(number)).to eq(number)
30
30
  end
31
31
  end
32
32
 
33
33
  context "when the value is nil" do
34
34
 
35
35
  it "returns nil" do
36
- Float.demongoize(nil).should be_nil
36
+ expect(Float.demongoize(nil)).to be_nil
37
+ end
38
+ end
39
+
40
+ context "when the value is a float string" do
41
+
42
+ it "returns a float" do
43
+ expect(Float.demongoize(number.to_s)).to eq(number)
44
+ end
45
+ end
46
+
47
+ context "when the value is not a float string" do
48
+
49
+ it "returns a float" do
50
+ expect(Float.demongoize('asdf')).to eq(0)
37
51
  end
38
52
  end
39
53
  end
@@ -47,18 +61,18 @@ describe Mongoid::Extensions::Float do
47
61
  context "when the value is small" do
48
62
 
49
63
  it "it returns the float" do
50
- Float.mongoize(3).should eq(3)
64
+ expect(Float.mongoize(3)).to eq(3)
51
65
  end
52
66
 
53
67
  it "returns the number as type float" do
54
- Float.mongoize(3).should be_a(Float)
68
+ expect(Float.mongoize(3)).to be_a(Float)
55
69
  end
56
70
  end
57
71
 
58
72
  context "when the value is large" do
59
73
 
60
74
  it "returns the float" do
61
- Float.mongoize(1024**2).to_s.should eq("1048576.0")
75
+ expect(Float.mongoize(1024**2).to_s).to eq("1048576.0")
62
76
  end
63
77
  end
64
78
  end
@@ -66,28 +80,28 @@ describe Mongoid::Extensions::Float do
66
80
  context "when the value is a decimal" do
67
81
 
68
82
  it "casts to float" do
69
- Float.mongoize(2.5).should eq(2.5)
83
+ expect(Float.mongoize(2.5)).to eq(2.5)
70
84
  end
71
85
  end
72
86
 
73
87
  context "when the value is floating point zero" do
74
88
 
75
89
  it "returns the float zero" do
76
- Float.mongoize(0.00000).should eq(0)
90
+ expect(Float.mongoize(0.00000)).to eq(0)
77
91
  end
78
92
  end
79
93
 
80
94
  context "when the value is a floating point float" do
81
95
 
82
96
  it "returns the float number" do
83
- Float.mongoize(4.00000).should eq(4)
97
+ expect(Float.mongoize(4.00000)).to eq(4)
84
98
  end
85
99
  end
86
100
 
87
101
  context "when the value has leading zeros" do
88
102
 
89
103
  it "returns the stripped float" do
90
- Float.mongoize("000011").should eq(11)
104
+ expect(Float.mongoize("000011")).to eq(11)
91
105
  end
92
106
  end
93
107
  end
@@ -97,28 +111,28 @@ describe Mongoid::Extensions::Float do
97
111
  context "when the string is non numerical" do
98
112
 
99
113
  it "returns 0" do
100
- Float.mongoize("foo").should eq(0.0)
114
+ expect(Float.mongoize("foo")).to eq(0.0)
101
115
  end
102
116
  end
103
117
 
104
118
  context "when the string is numerical" do
105
119
 
106
120
  it "returns the float value for the string" do
107
- Float.mongoize("3").should eq(3)
121
+ expect(Float.mongoize("3")).to eq(3)
108
122
  end
109
123
  end
110
124
 
111
125
  context "when the string is empty" do
112
126
 
113
127
  it "returns nil" do
114
- Float.mongoize("").should be_nil
128
+ expect(Float.mongoize("")).to be_nil
115
129
  end
116
130
  end
117
131
 
118
132
  context "when the string is nil" do
119
133
 
120
134
  it "returns nil" do
121
- Float.mongoize(nil).should be_nil
135
+ expect(Float.mongoize(nil)).to be_nil
122
136
  end
123
137
  end
124
138
  end
@@ -127,7 +141,7 @@ describe Mongoid::Extensions::Float do
127
141
  describe "#mongoize" do
128
142
 
129
143
  it "returns self" do
130
- number.mongoize.should eq(number)
144
+ expect(number.mongoize).to eq(number)
131
145
  end
132
146
  end
133
147
  end
@@ -7,7 +7,7 @@ describe Mongoid::Extensions::Hash do
7
7
  context "when values have object id strings" do
8
8
 
9
9
  let(:object_id) do
10
- Moped::BSON::ObjectId.new
10
+ BSON::ObjectId.new
11
11
  end
12
12
 
13
13
  let(:hash) do
@@ -19,14 +19,14 @@ describe Mongoid::Extensions::Hash do
19
19
  end
20
20
 
21
21
  it "converts each value in the hash" do
22
- evolved[:field].should eq(object_id)
22
+ expect(evolved[:field]).to eq(object_id)
23
23
  end
24
24
  end
25
25
 
26
26
  context "when values have object ids" do
27
27
 
28
28
  let(:object_id) do
29
- Moped::BSON::ObjectId.new
29
+ BSON::ObjectId.new
30
30
  end
31
31
 
32
32
  let(:hash) do
@@ -38,14 +38,14 @@ describe Mongoid::Extensions::Hash do
38
38
  end
39
39
 
40
40
  it "converts each value in the hash" do
41
- evolved[:field].should eq(object_id)
41
+ expect(evolved[:field]).to eq(object_id)
42
42
  end
43
43
  end
44
44
 
45
45
  context "when values have empty strings" do
46
46
 
47
47
  let(:object_id) do
48
- Moped::BSON::ObjectId.new
48
+ BSON::ObjectId.new
49
49
  end
50
50
 
51
51
  let(:hash) do
@@ -57,14 +57,14 @@ describe Mongoid::Extensions::Hash do
57
57
  end
58
58
 
59
59
  it "retains the empty string values" do
60
- evolved[:field].should be_empty
60
+ expect(evolved[:field]).to be_empty
61
61
  end
62
62
  end
63
63
 
64
64
  context "when values have nils" do
65
65
 
66
66
  let(:object_id) do
67
- Moped::BSON::ObjectId.new
67
+ BSON::ObjectId.new
68
68
  end
69
69
 
70
70
  let(:hash) do
@@ -76,7 +76,7 @@ describe Mongoid::Extensions::Hash do
76
76
  end
77
77
 
78
78
  it "retains the nil values" do
79
- evolved[:field].should be_nil
79
+ expect(evolved[:field]).to be_nil
80
80
  end
81
81
  end
82
82
  end
@@ -86,7 +86,7 @@ describe Mongoid::Extensions::Hash do
86
86
  context "when values have object id strings" do
87
87
 
88
88
  let(:object_id) do
89
- Moped::BSON::ObjectId.new
89
+ BSON::ObjectId.new
90
90
  end
91
91
 
92
92
  let(:hash) do
@@ -98,14 +98,14 @@ describe Mongoid::Extensions::Hash do
98
98
  end
99
99
 
100
100
  it "converts each value in the hash" do
101
- mongoized[:field].should eq(object_id)
101
+ expect(mongoized[:field]).to eq(object_id)
102
102
  end
103
103
  end
104
104
 
105
105
  context "when values have object ids" do
106
106
 
107
107
  let(:object_id) do
108
- Moped::BSON::ObjectId.new
108
+ BSON::ObjectId.new
109
109
  end
110
110
 
111
111
  let(:hash) do
@@ -117,14 +117,14 @@ describe Mongoid::Extensions::Hash do
117
117
  end
118
118
 
119
119
  it "converts each value in the hash" do
120
- mongoized[:field].should eq(object_id)
120
+ expect(mongoized[:field]).to eq(object_id)
121
121
  end
122
122
  end
123
123
 
124
124
  context "when values have empty strings" do
125
125
 
126
126
  let(:object_id) do
127
- Moped::BSON::ObjectId.new
127
+ BSON::ObjectId.new
128
128
  end
129
129
 
130
130
  let(:hash) do
@@ -136,14 +136,14 @@ describe Mongoid::Extensions::Hash do
136
136
  end
137
137
 
138
138
  it "converts the empty strings to nil" do
139
- mongoized[:field].should be_nil
139
+ expect(mongoized[:field]).to be_nil
140
140
  end
141
141
  end
142
142
 
143
143
  context "when values have nils" do
144
144
 
145
145
  let(:object_id) do
146
- Moped::BSON::ObjectId.new
146
+ BSON::ObjectId.new
147
147
  end
148
148
 
149
149
  let(:hash) do
@@ -155,7 +155,7 @@ describe Mongoid::Extensions::Hash do
155
155
  end
156
156
 
157
157
  it "retains the nil values" do
158
- mongoized[:field].should be_nil
158
+ expect(mongoized[:field]).to be_nil
159
159
  end
160
160
  end
161
161
  end
@@ -175,7 +175,7 @@ describe Mongoid::Extensions::Hash do
175
175
  end
176
176
 
177
177
  it "moves the non hash values under the provided key" do
178
- consolidated.should eq({
178
+ expect(consolidated).to eq({
179
179
  "$set" => { name: "Tool", likes: 10 }, "$inc" => { plays: 1 }
180
180
  })
181
181
  end
@@ -192,7 +192,7 @@ describe Mongoid::Extensions::Hash do
192
192
  end
193
193
 
194
194
  it "moves the non hash values under the provided key" do
195
- consolidated.should eq({
195
+ expect(consolidated).to eq({
196
196
  "$set" => { likes: 10, name: "Tool" }, "$inc" => { plays: 1 }
197
197
  })
198
198
  end
@@ -210,7 +210,7 @@ describe Mongoid::Extensions::Hash do
210
210
  end
211
211
 
212
212
  it "moves the non hash values under the provided key" do
213
- consolidated.should eq({
213
+ expect(consolidated).to eq({
214
214
  "$set" => { likes: 10, name: "Tool" }, "$inc" => { plays: 1 }
215
215
  })
216
216
  end
@@ -228,7 +228,7 @@ describe Mongoid::Extensions::Hash do
228
228
  end
229
229
 
230
230
  it "should retrieve a nested value under the provided key" do
231
- nested.should eq "hundred"
231
+ expect(nested).to eq "hundred"
232
232
  end
233
233
  end
234
234
 
@@ -243,7 +243,7 @@ describe Mongoid::Extensions::Hash do
243
243
  end
244
244
 
245
245
  it "should retrieve a nested value under the provided key" do
246
- nested.should eq("hundred")
246
+ expect(nested).to eq("hundred")
247
247
  end
248
248
  end
249
249
 
@@ -254,7 +254,7 @@ describe Mongoid::Extensions::Hash do
254
254
  end
255
255
 
256
256
  it "returns the hash" do
257
- Hash.demongoize(hash).should eq(hash)
257
+ expect(Hash.demongoize(hash)).to eq(hash)
258
258
  end
259
259
  end
260
260
 
@@ -275,11 +275,11 @@ describe Mongoid::Extensions::Hash do
275
275
  end
276
276
 
277
277
  it "mongoizes each element in the hash" do
278
- mongoized[:date].should be_a(Time)
278
+ expect(mongoized[:date]).to be_a(Time)
279
279
  end
280
280
 
281
281
  it "converts the elements properly" do
282
- mongoized[:date].should eq(date)
282
+ expect(mongoized[:date]).to eq(Time.utc(2012, 1, 1, 0, 0, 0))
283
283
  end
284
284
  end
285
285
 
@@ -289,7 +289,7 @@ describe Mongoid::Extensions::Hash do
289
289
  end
290
290
 
291
291
  it "returns nil" do
292
- mongoized.should be_nil
292
+ expect(mongoized).to be_nil
293
293
  end
294
294
  end
295
295
  end
@@ -309,25 +309,25 @@ describe Mongoid::Extensions::Hash do
309
309
  end
310
310
 
311
311
  it "mongoizes each element in the hash" do
312
- mongoized[:date].should be_a(Time)
312
+ expect(mongoized[:date]).to be_a(Time)
313
313
  end
314
314
 
315
315
  it "converts the elements properly" do
316
- mongoized[:date].should eq(date)
316
+ expect(mongoized[:date]).to eq(Time.utc(2012, 1, 1, 0, 0, 0))
317
317
  end
318
318
  end
319
319
 
320
320
  describe "#resizable?" do
321
321
 
322
322
  it "returns true" do
323
- {}.should be_resizable
323
+ expect({}).to be_resizable
324
324
  end
325
325
  end
326
326
 
327
327
  describe ".resizable?" do
328
328
 
329
329
  it "returns true" do
330
- Hash.should be_resizable
330
+ expect(Hash).to be_resizable
331
331
  end
332
332
  end
333
333
  end
@@ -17,7 +17,7 @@ describe Mongoid::Extensions::Integer do
17
17
  end
18
18
 
19
19
  it "returns the float as a time" do
20
- mongoized.should eq(Time.at(integer))
20
+ expect(mongoized).to eq(Time.at(integer))
21
21
  end
22
22
  end
23
23
 
@@ -26,21 +26,21 @@ describe Mongoid::Extensions::Integer do
26
26
  context "when the the value is an integer" do
27
27
 
28
28
  it "returns a integer" do
29
- Integer.demongoize(number).should eq(number)
29
+ expect(Integer.demongoize(number)).to eq(number)
30
30
  end
31
31
  end
32
32
 
33
33
  context "when the value is nil" do
34
34
 
35
35
  it "returns nil" do
36
- Integer.demongoize(nil).should be_nil
36
+ expect(Integer.demongoize(nil)).to be_nil
37
37
  end
38
38
  end
39
39
 
40
40
  context "when the value is not an integer" do
41
41
 
42
42
  it "converts the value to an integer" do
43
- Integer.demongoize("1.0").should eq(1)
43
+ expect(Integer.demongoize("1.0")).to eq(1)
44
44
  end
45
45
  end
46
46
  end
@@ -54,14 +54,14 @@ describe Mongoid::Extensions::Integer do
54
54
  context "when the value is small" do
55
55
 
56
56
  it "it returns the integer" do
57
- Integer.mongoize(3).should eq(3)
57
+ expect(Integer.mongoize(3)).to eq(3)
58
58
  end
59
59
  end
60
60
 
61
61
  context "when the value is large" do
62
62
 
63
63
  it "returns the integer" do
64
- Integer.mongoize(1024**2).to_s.should eq("1048576")
64
+ expect(Integer.mongoize(1024**2).to_s).to eq("1048576")
65
65
  end
66
66
  end
67
67
  end
@@ -69,28 +69,28 @@ describe Mongoid::Extensions::Integer do
69
69
  context "when the value is a decimal" do
70
70
 
71
71
  it "casts to integer" do
72
- Integer.mongoize(2.5).should eq(2)
72
+ expect(Integer.mongoize(2.5)).to eq(2)
73
73
  end
74
74
  end
75
75
 
76
76
  context "when the value is floating point zero" do
77
77
 
78
78
  it "returns the integer zero" do
79
- Integer.mongoize(0.00000).should eq(0)
79
+ expect(Integer.mongoize(0.00000)).to eq(0)
80
80
  end
81
81
  end
82
82
 
83
83
  context "when the value is a floating point integer" do
84
84
 
85
85
  it "returns the integer number" do
86
- Integer.mongoize(4.00000).should eq(4)
86
+ expect(Integer.mongoize(4.00000)).to eq(4)
87
87
  end
88
88
  end
89
89
 
90
90
  context "when the value has leading zeros" do
91
91
 
92
92
  it "returns the stripped integer" do
93
- Integer.mongoize("000011").should eq(11)
93
+ expect(Integer.mongoize("000011")).to eq(11)
94
94
  end
95
95
  end
96
96
  end
@@ -100,28 +100,28 @@ describe Mongoid::Extensions::Integer do
100
100
  context "when the string is non numerical" do
101
101
 
102
102
  it "returns 0" do
103
- Integer.mongoize("foo").should eq(0)
103
+ expect(Integer.mongoize("foo")).to eq(0)
104
104
  end
105
105
  end
106
106
 
107
107
  context "when the string is numerical" do
108
108
 
109
109
  it "returns the integer value for the string" do
110
- Integer.mongoize("3").should eq(3)
110
+ expect(Integer.mongoize("3")).to eq(3)
111
111
  end
112
112
  end
113
113
 
114
114
  context "when the string is empty" do
115
115
 
116
116
  it "returns nil" do
117
- Integer.mongoize("").should be_nil
117
+ expect(Integer.mongoize("")).to be_nil
118
118
  end
119
119
  end
120
120
 
121
121
  context "when the string is nil" do
122
122
 
123
123
  it "returns nil" do
124
- Integer.mongoize(nil).should be_nil
124
+ expect(Integer.mongoize(nil)).to be_nil
125
125
  end
126
126
  end
127
127
  end
@@ -130,7 +130,7 @@ describe Mongoid::Extensions::Integer do
130
130
  describe "#mongoize" do
131
131
 
132
132
  it "returns self" do
133
- number.mongoize.should eq(number)
133
+ expect(number.mongoize).to eq(number)
134
134
  end
135
135
  end
136
136
  end