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
@@ -1,6 +1,6 @@
1
1
  require "spec_helper"
2
2
 
3
- describe Mongoid::Components do
3
+ describe Mongoid::Composable do
4
4
 
5
5
  describe ".prohibited_methods" do
6
6
 
@@ -8,14 +8,14 @@ describe Mongoid::Components do
8
8
  described_class.prohibited_methods
9
9
  end
10
10
 
11
- Mongoid::Components::MODULES.each do |mod|
11
+ Mongoid::Composable::MODULES.each do |mod|
12
12
 
13
13
  context "when checking in #{mod}" do
14
14
 
15
15
  mod.instance_methods.each do |method|
16
16
 
17
17
  it "includes #{method}" do
18
- methods.should include(method.to_sym)
18
+ expect(methods).to include(method.to_sym)
19
19
  end
20
20
  end
21
21
  end
@@ -25,7 +25,7 @@ describe Mongoid::Config::Environment do
25
25
  end
26
26
 
27
27
  it "returns the rails environment" do
28
- described_class.env_name.should eq("production")
28
+ expect(described_class.env_name).to eq("production")
29
29
  end
30
30
  end
31
31
 
@@ -47,7 +47,7 @@ describe Mongoid::Config::Environment do
47
47
  end
48
48
 
49
49
  it "returns the sinatra environment" do
50
- described_class.env_name.should eq("staging")
50
+ expect(described_class.env_name).to eq("staging")
51
51
  end
52
52
  end
53
53
 
@@ -63,7 +63,7 @@ describe Mongoid::Config::Environment do
63
63
  end
64
64
 
65
65
  it "returns the rack environment" do
66
- described_class.env_name.should eq("acceptance")
66
+ expect(described_class.env_name).to eq("acceptance")
67
67
  end
68
68
  end
69
69
 
@@ -9,7 +9,7 @@ describe Mongoid::Config::Options do
9
9
  describe "#defaults" do
10
10
 
11
11
  it "returns the default options" do
12
- config.defaults.should_not be_empty
12
+ expect(config.defaults).to_not be_empty
13
13
  end
14
14
  end
15
15
 
@@ -22,15 +22,15 @@ describe Mongoid::Config::Options do
22
22
  end
23
23
 
24
24
  it "defines a getter" do
25
- config.preload_models.should be_false
25
+ expect(config.preload_models).to be false
26
26
  end
27
27
 
28
28
  it "defines a setter" do
29
- (config.preload_models = true).should be_true
29
+ (config.preload_models = expect(true)).to be true
30
30
  end
31
31
 
32
32
  it "defines a presence check" do
33
- config.should_not be_preload_models
33
+ expect(config).to_not be_preload_models
34
34
  end
35
35
  end
36
36
  end
@@ -43,14 +43,14 @@ describe Mongoid::Config::Options do
43
43
  end
44
44
 
45
45
  it "resets the settings to the defaults" do
46
- config.preload_models.should be_false
46
+ expect(config.preload_models).to be false
47
47
  end
48
48
  end
49
49
 
50
50
  describe "#settings" do
51
51
 
52
52
  it "returns the settings" do
53
- config.settings.should_not be_empty
53
+ expect(config.settings).to_not be_empty
54
54
  end
55
55
  end
56
56
  end
@@ -12,7 +12,7 @@ describe Mongoid::Config do
12
12
  describe "#configured?" do
13
13
 
14
14
  after do
15
- described_class.connect_to(database_id, consistency: :strong)
15
+ described_class.connect_to(database_id, read: :primary)
16
16
  end
17
17
 
18
18
  context "when a default session config exists" do
@@ -33,7 +33,7 @@ describe Mongoid::Config do
33
33
  end
34
34
 
35
35
  it "returns true" do
36
- described_class.should be_configured
36
+ expect(described_class).to be_configured
37
37
  end
38
38
  end
39
39
  end
@@ -45,17 +45,17 @@ describe Mongoid::Config do
45
45
  end
46
46
 
47
47
  it "returns false" do
48
- described_class.should_not be_configured
48
+ expect(described_class).to_not be_configured
49
49
  end
50
50
  end
51
51
  end
52
52
 
53
53
  describe "#destructive_fields" do
54
54
 
55
- Mongoid::Components.prohibited_methods.each do |method|
55
+ Mongoid::Composable.prohibited_methods.each do |method|
56
56
 
57
57
  it "contains #{method}" do
58
- described_class.destructive_fields.should include(method)
58
+ expect(described_class.destructive_fields).to include(method)
59
59
  end
60
60
  end
61
61
  end
@@ -99,44 +99,32 @@ describe Mongoid::Config do
99
99
  described_class.reset
100
100
  end
101
101
 
102
- it "sets the allow dynamic fields option" do
103
- described_class.allow_dynamic_fields.should be_true
104
- end
105
-
106
- it "sets the identity map option" do
107
- described_class.identity_map_enabled.should be_false
108
- end
109
-
110
102
  it "sets the include root in json option" do
111
- described_class.include_root_in_json.should be_false
103
+ expect(described_class.include_root_in_json).to be false
112
104
  end
113
105
 
114
106
  it "sets the include type with serialization option" do
115
- described_class.include_type_for_serialization.should be_false
107
+ expect(described_class.include_type_for_serialization).to be false
116
108
  end
117
109
 
118
110
  it "sets the scope overwrite option" do
119
- described_class.scope_overwrite_exception.should be_false
111
+ expect(described_class.scope_overwrite_exception).to be false
120
112
  end
121
113
 
122
114
  it "sets the preload models option" do
123
- described_class.preload_models.should be_false
115
+ expect(described_class.preload_models).to be false
124
116
  end
125
117
 
126
118
  it "sets the raise not found error option" do
127
- described_class.raise_not_found_error.should be_true
128
- end
129
-
130
- it "sets the skip version check option" do
131
- described_class.skip_version_check.should be_true
119
+ expect(described_class.raise_not_found_error).to be true
132
120
  end
133
121
 
134
122
  it "sets the use activesupport time zone option" do
135
- described_class.use_activesupport_time_zone.should be_true
123
+ expect(described_class.use_activesupport_time_zone).to be true
136
124
  end
137
125
 
138
126
  it "sets the use utc option" do
139
- described_class.use_utc.should be_false
127
+ expect(described_class.use_utc).to be false
140
128
  end
141
129
  end
142
130
 
@@ -157,44 +145,32 @@ describe Mongoid::Config do
157
145
  described_class.load!(file)
158
146
  end
159
147
 
160
- it "sets the allow dynamic fields option" do
161
- described_class.allow_dynamic_fields.should be_true
162
- end
163
-
164
- it "sets the identity map option" do
165
- described_class.identity_map_enabled.should be_false
166
- end
167
-
168
148
  it "sets the include root in json option" do
169
- described_class.include_root_in_json.should be_false
149
+ expect(described_class.include_root_in_json).to be false
170
150
  end
171
151
 
172
152
  it "sets the include type with serialization option" do
173
- described_class.include_type_for_serialization.should be_false
153
+ expect(described_class.include_type_for_serialization).to be false
174
154
  end
175
155
 
176
156
  it "sets the scope overwrite option" do
177
- described_class.scope_overwrite_exception.should be_false
157
+ expect(described_class.scope_overwrite_exception).to be false
178
158
  end
179
159
 
180
160
  it "sets the preload models option" do
181
- described_class.preload_models.should be_false
161
+ expect(described_class.preload_models).to be false
182
162
  end
183
163
 
184
164
  it "sets the raise not found error option" do
185
- described_class.raise_not_found_error.should be_true
186
- end
187
-
188
- it "sets the skip version check option" do
189
- described_class.skip_version_check.should be_true
165
+ expect(described_class.raise_not_found_error).to be true
190
166
  end
191
167
 
192
168
  it "sets the use activesupport time zone option" do
193
- described_class.use_activesupport_time_zone.should be_true
169
+ expect(described_class.use_activesupport_time_zone).to be true
194
170
  end
195
171
 
196
172
  it "sets the use utc option" do
197
- described_class.use_utc.should be_false
173
+ expect(described_class.use_utc).to be false
198
174
  end
199
175
  end
200
176
 
@@ -211,7 +187,7 @@ describe Mongoid::Config do
211
187
  end
212
188
 
213
189
  it "sets the default hosts" do
214
- default[:hosts].should eq(["#{HOST}:#{PORT}"])
190
+ expect(default[:hosts]).to eq(["#{HOST}:#{PORT}"])
215
191
  end
216
192
 
217
193
  context "when the default has options" do
@@ -220,8 +196,8 @@ describe Mongoid::Config do
220
196
  default["options"]
221
197
  end
222
198
 
223
- it "sets the consistency option" do
224
- options["consistency"].should eq(:strong)
199
+ it "sets the read option" do
200
+ expect(options["read"]).to eq("primary")
225
201
  end
226
202
  end
227
203
  end
@@ -237,7 +213,7 @@ describe Mongoid::Config do
237
213
  end
238
214
 
239
215
  it "sets the secondary host" do
240
- secondary["hosts"].should eq([ ENV["MONGOHQ_SINGLE_URL"] ])
216
+ expect(secondary["hosts"]).to eq([ ENV["MONGOHQ_SINGLE_URL"] ])
241
217
  end
242
218
  end
243
219
  end
@@ -253,7 +229,7 @@ describe Mongoid::Config do
253
229
  end
254
230
 
255
231
  it "does not try to assign options" do
256
- described_class.allow_dynamic_fields.should be_true
232
+ expect(described_class.preload_models).to be false
257
233
  end
258
234
  end
259
235
 
@@ -33,7 +33,7 @@ describe Mongoid::Contextual::Aggregable::Memory do
33
33
  end
34
34
 
35
35
  it "returns the avg of the provided field" do
36
- avg.should eq(750)
36
+ expect(avg).to eq(750)
37
37
  end
38
38
  end
39
39
 
@@ -62,7 +62,7 @@ describe Mongoid::Contextual::Aggregable::Memory do
62
62
  end
63
63
 
64
64
  it "returns the avg of the provided field" do
65
- avg.should eq(7.5)
65
+ expect(avg).to eq(7.5)
66
66
  end
67
67
  end
68
68
  end
@@ -86,7 +86,7 @@ describe Mongoid::Contextual::Aggregable::Memory do
86
86
  end
87
87
 
88
88
  it "returns nil" do
89
- avg.should be_nil
89
+ expect(avg).to be_nil
90
90
  end
91
91
  end
92
92
  end
@@ -121,7 +121,7 @@ describe Mongoid::Contextual::Aggregable::Memory do
121
121
  end
122
122
 
123
123
  it "returns the max of the provided field" do
124
- max.should eq(1000)
124
+ expect(max).to eq(1000)
125
125
  end
126
126
 
127
127
  context "when no documents match" do
@@ -139,7 +139,7 @@ describe Mongoid::Contextual::Aggregable::Memory do
139
139
  end
140
140
 
141
141
  it "returns nil" do
142
- max.should be_nil
142
+ expect(max).to be_nil
143
143
  end
144
144
  end
145
145
  end
@@ -153,7 +153,7 @@ describe Mongoid::Contextual::Aggregable::Memory do
153
153
  end
154
154
 
155
155
  it "returns the document with the max value for the field" do
156
- max.should eq(depeche)
156
+ expect(max).to eq(depeche)
157
157
  end
158
158
  end
159
159
  end
@@ -188,7 +188,7 @@ describe Mongoid::Contextual::Aggregable::Memory do
188
188
  end
189
189
 
190
190
  it "returns the min of the provided field" do
191
- min.should eq(500)
191
+ expect(min).to eq(500)
192
192
  end
193
193
 
194
194
  context "when no documents match" do
@@ -206,7 +206,7 @@ describe Mongoid::Contextual::Aggregable::Memory do
206
206
  end
207
207
 
208
208
  it "returns nil" do
209
- min.should be_nil
209
+ expect(min).to be_nil
210
210
  end
211
211
  end
212
212
  end
@@ -220,7 +220,7 @@ describe Mongoid::Contextual::Aggregable::Memory do
220
220
  end
221
221
 
222
222
  it "returns the document with the min value for the field" do
223
- min.should eq(tool)
223
+ expect(min).to eq(tool)
224
224
  end
225
225
  end
226
226
  end
@@ -255,7 +255,7 @@ describe Mongoid::Contextual::Aggregable::Memory do
255
255
  end
256
256
 
257
257
  it "returns the sum of the provided field" do
258
- sum.should eq(1500)
258
+ expect(sum).to eq(1500)
259
259
  end
260
260
 
261
261
  context "when no documents match" do
@@ -273,7 +273,7 @@ describe Mongoid::Contextual::Aggregable::Memory do
273
273
  end
274
274
 
275
275
  it "returns zero" do
276
- sum.should eq(0)
276
+ expect(sum).to eq(0)
277
277
  end
278
278
  end
279
279
  end
@@ -285,7 +285,7 @@ describe Mongoid::Contextual::Aggregable::Memory do
285
285
  end
286
286
 
287
287
  it "returns the sum for the provided block" do
288
- sum.should eq(1500)
288
+ expect(sum).to eq(1500)
289
289
  end
290
290
  end
291
291
  end
@@ -31,23 +31,23 @@ describe Mongoid::Contextual::Aggregable::Mongo do
31
31
  end
32
32
 
33
33
  it "returns an avg" do
34
- aggregates["avg"].should eq(900)
34
+ expect(aggregates["avg"]).to eq(900)
35
35
  end
36
36
 
37
- it "returns a count" do
38
- aggregates["count"].should eq(2)
37
+ it "returns a count of documents with that field" do
38
+ expect(aggregates["count"]).to eq(2)
39
39
  end
40
40
 
41
41
  it "returns a max" do
42
- aggregates["max"].should eq(1000)
42
+ expect(aggregates["max"]).to eq(1000)
43
43
  end
44
44
 
45
45
  it "returns a min" do
46
- aggregates["min"].should eq(800)
46
+ expect(aggregates["min"]).to eq(800)
47
47
  end
48
48
 
49
49
  it "returns a sum" do
50
- aggregates["sum"].should eq(1800)
50
+ expect(aggregates["sum"]).to eq(1800)
51
51
  end
52
52
  end
53
53
 
@@ -58,23 +58,23 @@ describe Mongoid::Contextual::Aggregable::Mongo do
58
58
  end
59
59
 
60
60
  it "returns an avg" do
61
- aggregates["avg"].should eq(750)
61
+ expect(aggregates["avg"]).to eq(750)
62
62
  end
63
63
 
64
- it "returns a count" do
65
- aggregates["count"].should eq(2)
64
+ it "returns a count of documents with that field" do
65
+ expect(aggregates["count"]).to eq(2)
66
66
  end
67
67
 
68
68
  it "returns a max" do
69
- aggregates["max"].should eq(1000)
69
+ expect(aggregates["max"]).to eq(1000)
70
70
  end
71
71
 
72
72
  it "returns a min" do
73
- aggregates["min"].should eq(500)
73
+ expect(aggregates["min"]).to eq(500)
74
74
  end
75
75
 
76
76
  it "returns a sum" do
77
- aggregates["sum"].should eq(1500)
77
+ expect(aggregates["sum"]).to eq(1500)
78
78
  end
79
79
  end
80
80
 
@@ -89,23 +89,23 @@ describe Mongoid::Contextual::Aggregable::Mongo do
89
89
  end
90
90
 
91
91
  it "returns an avg" do
92
- aggregates["avg"].should eq(1000)
92
+ expect(aggregates["avg"]).to eq(1000)
93
93
  end
94
94
 
95
- it "returns a count" do
96
- aggregates["count"].should eq(1)
95
+ it "returns a count of documents with that field" do
96
+ expect(aggregates["count"]).to eq(1)
97
97
  end
98
98
 
99
99
  it "returns a max" do
100
- aggregates["max"].should eq(1000)
100
+ expect(aggregates["max"]).to eq(1000)
101
101
  end
102
102
 
103
103
  it "returns a min" do
104
- aggregates["min"].should eq(1000)
104
+ expect(aggregates["min"]).to eq(1000)
105
105
  end
106
106
 
107
107
  it "returns a sum" do
108
- aggregates["sum"].should eq(1000)
108
+ expect(aggregates["sum"]).to eq(1000)
109
109
  end
110
110
  end
111
111
 
@@ -149,23 +149,23 @@ describe Mongoid::Contextual::Aggregable::Mongo do
149
149
  end
150
150
 
151
151
  it "returns an avg" do
152
- aggregates["avg"].should eq(0)
152
+ expect(aggregates["avg"]).to be_nil
153
153
  end
154
154
 
155
- it "returns a count" do
156
- aggregates["count"].should eq(2)
155
+ it "returns a count of documents with that field" do
156
+ expect(aggregates["count"]).to eq(0)
157
157
  end
158
158
 
159
159
  it "returns a max" do
160
- aggregates["max"].should be_nil
160
+ expect(aggregates["max"]).to be_nil
161
161
  end
162
162
 
163
163
  it "returns a min" do
164
- aggregates["min"].should be_nil
164
+ expect(aggregates["min"]).to be_nil
165
165
  end
166
166
 
167
167
  it "returns a sum" do
168
- aggregates["sum"].should eq(0)
168
+ expect(aggregates["sum"]).to be_nil
169
169
  end
170
170
  end
171
171
 
@@ -192,7 +192,11 @@ describe Mongoid::Contextual::Aggregable::Mongo do
192
192
  end
193
193
 
194
194
  it "returns a min" do
195
- aggregates["min"].should eq(50)
195
+ expect(aggregates["min"]).to eq(50)
196
+ end
197
+
198
+ it "returns a count of documents with that field" do
199
+ expect(aggregates["count"]).to eq(3)
196
200
  end
197
201
  end
198
202
 
@@ -214,7 +218,11 @@ describe Mongoid::Contextual::Aggregable::Mongo do
214
218
  end
215
219
 
216
220
  it "returns a min" do
217
- aggregates["min"].should eq(50)
221
+ expect(aggregates["min"]).to eq(50)
222
+ end
223
+
224
+ it "returns a count of documents with that field" do
225
+ expect(aggregates["count"]).to eq(4)
218
226
  end
219
227
  end
220
228
  end
@@ -230,7 +238,7 @@ describe Mongoid::Contextual::Aggregable::Mongo do
230
238
  end
231
239
 
232
240
  it "returns nil" do
233
- aggregates.should eq({ "count" => 0 })
241
+ expect(aggregates).to eq({ "count" => 0, "sum" => nil, "avg" => nil, "min" => nil, "max" => nil })
234
242
  end
235
243
  end
236
244
  end
@@ -263,7 +271,7 @@ describe Mongoid::Contextual::Aggregable::Mongo do
263
271
  end
264
272
 
265
273
  it "returns the avg of the provided field" do
266
- avg.should eq(750)
274
+ expect(avg).to eq(750)
267
275
  end
268
276
  end
269
277
 
@@ -286,7 +294,7 @@ describe Mongoid::Contextual::Aggregable::Mongo do
286
294
  end
287
295
 
288
296
  it "returns nil" do
289
- avg.should be_nil
297
+ expect(avg).to be_nil
290
298
  end
291
299
  end
292
300
  end
@@ -319,7 +327,7 @@ describe Mongoid::Contextual::Aggregable::Mongo do
319
327
  end
320
328
 
321
329
  it "returns the max of the provided field" do
322
- max.should eq(1000)
330
+ expect(max).to eq(1000)
323
331
  end
324
332
 
325
333
  context "when no documents match" do
@@ -337,7 +345,7 @@ describe Mongoid::Contextual::Aggregable::Mongo do
337
345
  end
338
346
 
339
347
  it "returns nil" do
340
- max.should be_nil
348
+ expect(max).to be_nil
341
349
  end
342
350
  end
343
351
  end
@@ -351,7 +359,7 @@ describe Mongoid::Contextual::Aggregable::Mongo do
351
359
  end
352
360
 
353
361
  it "returns the document with the max value for the field" do
354
- max.should eq(depeche)
362
+ expect(max).to eq(depeche)
355
363
  end
356
364
  end
357
365
  end
@@ -384,7 +392,7 @@ describe Mongoid::Contextual::Aggregable::Mongo do
384
392
  end
385
393
 
386
394
  it "returns the min of the provided field" do
387
- min.should eq(500)
395
+ expect(min).to eq(500)
388
396
  end
389
397
 
390
398
  context "when no documents match" do
@@ -402,7 +410,7 @@ describe Mongoid::Contextual::Aggregable::Mongo do
402
410
  end
403
411
 
404
412
  it "returns nil" do
405
- min.should be_nil
413
+ expect(min).to be_nil
406
414
  end
407
415
  end
408
416
  end
@@ -416,7 +424,7 @@ describe Mongoid::Contextual::Aggregable::Mongo do
416
424
  end
417
425
 
418
426
  it "returns the document with the min value for the field" do
419
- min.should eq(tool)
427
+ expect(min).to eq(tool)
420
428
  end
421
429
  end
422
430
  end
@@ -449,7 +457,7 @@ describe Mongoid::Contextual::Aggregable::Mongo do
449
457
  end
450
458
 
451
459
  it "returns the sum of the provided field" do
452
- sum.should eq(1500)
460
+ expect(sum).to eq(1500)
453
461
  end
454
462
 
455
463
  context "when no documents match" do
@@ -467,7 +475,7 @@ describe Mongoid::Contextual::Aggregable::Mongo do
467
475
  end
468
476
 
469
477
  it "returns zero" do
470
- sum.should eq(0)
478
+ expect(sum).to eq(0)
471
479
  end
472
480
  end
473
481
  end
@@ -479,7 +487,7 @@ describe Mongoid::Contextual::Aggregable::Mongo do
479
487
  end
480
488
 
481
489
  it "returns the sum for the provided block" do
482
- sum.should eq(1500)
490
+ expect(sum).to eq(1500)
483
491
  end
484
492
  end
485
493
  end