mongoid 3.1.6 → 4.0.2

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 (571) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +479 -8
  3. data/README.md +10 -7
  4. data/lib/config/locales/en.yml +34 -20
  5. data/lib/mongoid.rb +10 -76
  6. data/lib/mongoid/atomic.rb +3 -14
  7. data/lib/mongoid/atomic/paths/embedded.rb +0 -30
  8. data/lib/mongoid/atomic/paths/embedded/many.rb +1 -1
  9. data/lib/mongoid/atomic/paths/embedded/one.rb +1 -1
  10. data/lib/mongoid/atomic/paths/root.rb +0 -13
  11. data/lib/mongoid/attributes.rb +65 -101
  12. data/lib/mongoid/attributes/dynamic.rb +154 -0
  13. data/lib/mongoid/attributes/nested.rb +82 -0
  14. data/lib/mongoid/attributes/processing.rb +13 -66
  15. data/lib/mongoid/{dirty.rb → changeable.rb} +32 -2
  16. data/lib/mongoid/composable.rb +105 -0
  17. data/lib/mongoid/config.rb +3 -9
  18. data/lib/mongoid/config/options.rb +1 -1
  19. data/lib/mongoid/contextual.rb +2 -0
  20. data/lib/mongoid/contextual/aggregable/memory.rb +2 -2
  21. data/lib/mongoid/contextual/aggregable/mongo.rb +7 -9
  22. data/lib/mongoid/contextual/atomic.rb +53 -53
  23. data/lib/mongoid/contextual/geo_near.rb +1 -1
  24. data/lib/mongoid/contextual/map_reduce.rb +4 -2
  25. data/lib/mongoid/contextual/memory.rb +23 -11
  26. data/lib/mongoid/contextual/mongo.rb +75 -57
  27. data/lib/mongoid/contextual/none.rb +90 -0
  28. data/lib/mongoid/contextual/text_search.rb +178 -0
  29. data/lib/mongoid/copyable.rb +2 -3
  30. data/lib/mongoid/criteria.rb +39 -34
  31. data/lib/mongoid/criteria/#findable.rb# +141 -0
  32. data/lib/mongoid/{criterion → criteria}/findable.rb +7 -47
  33. data/lib/mongoid/{criterion/inspection.rb → criteria/inspectable.rb} +2 -2
  34. data/lib/mongoid/{criterion → criteria}/marshalable.rb +3 -1
  35. data/lib/mongoid/{criterion → criteria}/modifiable.rb +28 -8
  36. data/lib/mongoid/criteria/permission.rb +70 -0
  37. data/lib/mongoid/{criterion/scoping.rb → criteria/scopable.rb} +2 -2
  38. data/lib/mongoid/document.rb +39 -24
  39. data/lib/mongoid/errors.rb +4 -1
  40. data/lib/mongoid/errors/document_not_destroyed.rb +25 -0
  41. data/lib/mongoid/errors/document_not_found.rb +2 -1
  42. data/lib/mongoid/errors/invalid_storage_options.rb +1 -1
  43. data/lib/mongoid/errors/invalid_storage_parent.rb +26 -0
  44. data/lib/mongoid/errors/invalid_value.rb +16 -0
  45. data/lib/mongoid/errors/mongoid_error.rb +1 -1
  46. data/lib/mongoid/errors/readonly_document.rb +24 -0
  47. data/lib/mongoid/extensions.rb +15 -7
  48. data/lib/mongoid/extensions/array.rb +3 -3
  49. data/lib/mongoid/extensions/big_decimal.rb +1 -1
  50. data/lib/mongoid/extensions/boolean.rb +15 -17
  51. data/lib/mongoid/extensions/date.rb +1 -1
  52. data/lib/mongoid/extensions/date_time.rb +3 -3
  53. data/lib/mongoid/extensions/float.rb +2 -1
  54. data/lib/mongoid/extensions/hash.rb +3 -3
  55. data/lib/mongoid/extensions/integer.rb +1 -1
  56. data/lib/mongoid/extensions/object.rb +7 -7
  57. data/lib/mongoid/extensions/object_id.rb +5 -5
  58. data/lib/mongoid/extensions/range.rb +9 -3
  59. data/lib/mongoid/extensions/regexp.rb +1 -1
  60. data/lib/mongoid/extensions/set.rb +1 -1
  61. data/lib/mongoid/extensions/string.rb +6 -18
  62. data/lib/mongoid/extensions/symbol.rb +1 -1
  63. data/lib/mongoid/extensions/time.rb +3 -3
  64. data/lib/mongoid/extensions/time_with_zone.rb +1 -1
  65. data/lib/mongoid/factory.rb +8 -6
  66. data/lib/mongoid/fields.rb +41 -8
  67. data/lib/mongoid/fields/foreign_key.rb +3 -3
  68. data/lib/mongoid/fields/localized.rb +1 -1
  69. data/lib/mongoid/fields/standard.rb +5 -17
  70. data/lib/mongoid/fields/validators/macro.rb +15 -5
  71. data/lib/mongoid/{finders.rb → findable.rb} +35 -7
  72. data/lib/mongoid/{indexes.rb → indexable.rb} +50 -55
  73. data/lib/mongoid/indexable/specification.rb +104 -0
  74. data/lib/mongoid/{indexes → indexable}/validators/options.rb +2 -1
  75. data/lib/mongoid/{inspection.rb → inspectable.rb} +15 -11
  76. data/lib/mongoid/{callbacks.rb → interceptable.rb} +30 -62
  77. data/lib/mongoid/log_subscriber.rb +55 -0
  78. data/lib/mongoid/matchable.rb +152 -0
  79. data/lib/mongoid/{matchers → matchable}/all.rb +1 -1
  80. data/lib/mongoid/{matchers → matchable}/and.rb +2 -2
  81. data/lib/mongoid/{matchers → matchable}/default.rb +1 -1
  82. data/lib/mongoid/{matchers → matchable}/exists.rb +1 -1
  83. data/lib/mongoid/{matchers → matchable}/gt.rb +1 -1
  84. data/lib/mongoid/{matchers → matchable}/gte.rb +1 -1
  85. data/lib/mongoid/{matchers → matchable}/in.rb +2 -2
  86. data/lib/mongoid/{matchers → matchable}/lt.rb +1 -1
  87. data/lib/mongoid/{matchers → matchable}/lte.rb +1 -1
  88. data/lib/mongoid/{matchers → matchable}/ne.rb +2 -2
  89. data/lib/mongoid/{matchers → matchable}/nin.rb +3 -2
  90. data/lib/mongoid/{matchers → matchable}/or.rb +2 -2
  91. data/lib/mongoid/{matchers → matchable}/size.rb +1 -1
  92. data/lib/mongoid/persistable.rb +216 -0
  93. data/lib/mongoid/persistable/creatable.rb +189 -0
  94. data/lib/mongoid/persistable/deletable.rb +149 -0
  95. data/lib/mongoid/persistable/destroyable.rb +60 -0
  96. data/lib/mongoid/persistable/incrementable.rb +36 -0
  97. data/lib/mongoid/persistable/logical.rb +38 -0
  98. data/lib/mongoid/persistable/poppable.rb +39 -0
  99. data/lib/mongoid/persistable/pullable.rb +55 -0
  100. data/lib/mongoid/persistable/pushable.rb +62 -0
  101. data/lib/mongoid/persistable/renamable.rb +35 -0
  102. data/lib/mongoid/persistable/savable.rb +52 -0
  103. data/lib/mongoid/persistable/settable.rb +33 -0
  104. data/lib/mongoid/persistable/unsettable.rb +36 -0
  105. data/lib/mongoid/persistable/updatable.rb +153 -0
  106. data/lib/mongoid/persistable/upsertable.rb +55 -0
  107. data/lib/mongoid/positional.rb +71 -0
  108. data/lib/mongoid/query_cache.rb +255 -0
  109. data/lib/mongoid/railtie.rb +34 -60
  110. data/lib/mongoid/railties/database.rake +9 -25
  111. data/lib/mongoid/relations.rb +11 -25
  112. data/lib/mongoid/relations/accessors.rb +15 -51
  113. data/lib/mongoid/relations/auto_save.rb +15 -36
  114. data/lib/mongoid/relations/binding.rb +2 -25
  115. data/lib/mongoid/relations/bindings/embedded/in.rb +1 -1
  116. data/lib/mongoid/relations/bindings/embedded/many.rb +1 -3
  117. data/lib/mongoid/relations/bindings/referenced/in.rb +3 -8
  118. data/lib/mongoid/relations/bindings/referenced/many_to_many.rb +4 -2
  119. data/lib/mongoid/relations/builder.rb +1 -1
  120. data/lib/mongoid/relations/builders.rb +2 -2
  121. data/lib/mongoid/relations/builders/embedded/one.rb +1 -1
  122. data/lib/mongoid/relations/builders/nested_attributes/many.rb +10 -13
  123. data/lib/mongoid/relations/builders/nested_attributes/one.rb +5 -6
  124. data/lib/mongoid/relations/builders/referenced/in.rb +1 -1
  125. data/lib/mongoid/relations/builders/referenced/many.rb +1 -2
  126. data/lib/mongoid/relations/builders/referenced/many_to_many.rb +1 -2
  127. data/lib/mongoid/relations/builders/referenced/one.rb +1 -1
  128. data/lib/mongoid/relations/cascading.rb +3 -5
  129. data/lib/mongoid/relations/constraint.rb +1 -1
  130. data/lib/mongoid/relations/conversions.rb +1 -1
  131. data/lib/mongoid/relations/counter_cache.rb +39 -15
  132. data/lib/mongoid/relations/eager.rb +46 -0
  133. data/lib/mongoid/relations/eager/base.rb +149 -0
  134. data/lib/mongoid/relations/eager/belongs_to.rb +31 -0
  135. data/lib/mongoid/relations/eager/has_and_belongs_to_many.rb +47 -0
  136. data/lib/mongoid/relations/eager/has_many.rb +38 -0
  137. data/lib/mongoid/relations/eager/has_one.rb +30 -0
  138. data/lib/mongoid/relations/embedded/batchable.rb +4 -5
  139. data/lib/mongoid/relations/embedded/in.rb +4 -4
  140. data/lib/mongoid/relations/embedded/many.rb +14 -32
  141. data/lib/mongoid/relations/embedded/one.rb +1 -1
  142. data/lib/mongoid/relations/macros.rb +3 -4
  143. data/lib/mongoid/relations/many.rb +51 -31
  144. data/lib/mongoid/relations/marshalable.rb +3 -3
  145. data/lib/mongoid/relations/metadata.rb +14 -79
  146. data/lib/mongoid/relations/nested_builder.rb +2 -2
  147. data/lib/mongoid/relations/one.rb +1 -1
  148. data/lib/mongoid/relations/options.rb +1 -0
  149. data/lib/mongoid/relations/polymorphic.rb +0 -1
  150. data/lib/mongoid/relations/proxy.rb +21 -41
  151. data/lib/mongoid/relations/referenced/in.rb +4 -20
  152. data/lib/mongoid/relations/referenced/many.rb +22 -35
  153. data/lib/mongoid/relations/referenced/many_to_many.rb +19 -42
  154. data/lib/mongoid/relations/referenced/one.rb +6 -25
  155. data/lib/mongoid/relations/synchronization.rb +4 -4
  156. data/lib/mongoid/relations/targets/enumerable.rb +10 -10
  157. data/lib/mongoid/relations/touchable.rb +34 -1
  158. data/lib/mongoid/{reloading.rb → reloadable.rb} +7 -5
  159. data/lib/mongoid/{scoping.rb → scopable.rb} +36 -36
  160. data/lib/mongoid/selectable.rb +59 -0
  161. data/lib/mongoid/{serialization.rb → serializable.rb} +11 -2
  162. data/lib/mongoid/sessions.rb +37 -345
  163. data/lib/mongoid/sessions/factory.rb +2 -0
  164. data/lib/mongoid/sessions/options.rb +185 -0
  165. data/lib/mongoid/sessions/storage_options.rb +140 -0
  166. data/lib/mongoid/sessions/thread_options.rb +19 -0
  167. data/lib/mongoid/sessions/validators/storage.rb +16 -3
  168. data/lib/mongoid/{sharding.rb → shardable.rb} +5 -1
  169. data/lib/mongoid/{state.rb → stateful.rb} +13 -1
  170. data/lib/mongoid/support/query_counter.rb +23 -0
  171. data/lib/mongoid/tasks/database.rake +31 -0
  172. data/lib/mongoid/tasks/database.rb +107 -0
  173. data/lib/mongoid/threaded.rb +26 -172
  174. data/lib/mongoid/threaded/lifecycle.rb +0 -28
  175. data/lib/mongoid/timestamps/updated/short.rb +2 -2
  176. data/lib/mongoid/{hierarchy.rb → traversable.rb} +15 -7
  177. data/lib/mongoid/{validations.rb → validatable.rb} +23 -10
  178. data/lib/mongoid/{validations → validatable}/associated.rb +4 -2
  179. data/lib/mongoid/{validations → validatable}/format.rb +1 -1
  180. data/lib/mongoid/{validations → validatable}/length.rb +1 -1
  181. data/lib/mongoid/{validations → validatable}/localizable.rb +1 -1
  182. data/lib/mongoid/{validations → validatable}/macros.rb +4 -3
  183. data/lib/mongoid/{validations → validatable}/presence.rb +1 -1
  184. data/lib/mongoid/{validations → validatable}/queryable.rb +1 -2
  185. data/lib/mongoid/{validations → validatable}/uniqueness.rb +25 -21
  186. data/lib/mongoid/version.rb +1 -1
  187. data/lib/rails/generators/mongoid/config/templates/mongoid.yml +46 -25
  188. data/lib/rails/generators/mongoid/model/model_generator.rb +0 -1
  189. data/lib/rails/generators/mongoid/model/templates/model.rb.tt +0 -3
  190. data/lib/rails/generators/mongoid_generator.rb +3 -40
  191. data/lib/rails/mongoid.rb +0 -122
  192. data/lib/support/ruby_version.rb +1 -1
  193. data/spec/app/models/account.rb +2 -6
  194. data/spec/app/models/acolyte.rb +2 -1
  195. data/spec/app/models/actor.rb +0 -1
  196. data/spec/app/models/address.rb +8 -3
  197. data/spec/app/models/animal.rb +1 -1
  198. data/spec/app/models/appointment.rb +3 -3
  199. data/spec/app/models/article.rb +1 -4
  200. data/spec/app/models/audio.rb +5 -0
  201. data/spec/app/models/author.rb +0 -2
  202. data/spec/app/models/band.rb +3 -2
  203. data/spec/app/models/bar.rb +1 -0
  204. data/spec/app/models/book.rb +1 -0
  205. data/spec/app/models/building.rb +0 -2
  206. data/spec/app/models/building_address.rb +0 -2
  207. data/spec/app/models/bus.rb +1 -1
  208. data/spec/app/models/canvas.rb +1 -1
  209. data/spec/app/models/contextable_item.rb +5 -0
  210. data/spec/app/models/contractor.rb +0 -2
  211. data/spec/app/models/country_code.rb +1 -1
  212. data/spec/app/models/definition.rb +2 -2
  213. data/spec/app/models/dog.rb +1 -1
  214. data/spec/app/models/draft.rb +9 -0
  215. data/spec/app/models/dragon.rb +4 -0
  216. data/spec/app/models/drug.rb +1 -3
  217. data/spec/app/models/dungeon.rb +4 -0
  218. data/spec/app/models/edit.rb +5 -0
  219. data/spec/app/models/even.rb +7 -0
  220. data/spec/app/models/event.rb +1 -1
  221. data/spec/app/models/filesystem.rb +1 -0
  222. data/spec/app/models/fish.rb +0 -1
  223. data/spec/app/models/fruits.rb +6 -0
  224. data/spec/app/models/game.rb +0 -2
  225. data/spec/app/models/house.rb +1 -3
  226. data/spec/app/models/id_key.rb +6 -0
  227. data/spec/app/models/item.rb +1 -5
  228. data/spec/app/models/jar.rb +1 -1
  229. data/spec/app/models/label.rb +4 -4
  230. data/spec/app/models/line_item.rb +1 -1
  231. data/spec/app/models/login.rb +1 -1
  232. data/spec/app/models/message.rb +8 -0
  233. data/spec/app/models/movie.rb +1 -0
  234. data/spec/app/models/name.rb +3 -3
  235. data/spec/app/models/note.rb +3 -1
  236. data/spec/app/models/odd.rb +7 -0
  237. data/spec/app/models/oscar.rb +1 -1
  238. data/spec/app/models/parent_doc.rb +1 -1
  239. data/spec/app/models/person.rb +16 -10
  240. data/spec/app/models/phone.rb +1 -3
  241. data/spec/app/models/player.rb +3 -3
  242. data/spec/app/models/post.rb +5 -3
  243. data/spec/app/models/preference.rb +1 -1
  244. data/spec/app/models/quiz.rb +0 -3
  245. data/spec/app/models/record.rb +10 -5
  246. data/spec/app/models/registry.rb +1 -1
  247. data/spec/app/models/server.rb +1 -1
  248. data/spec/app/models/service.rb +3 -3
  249. data/spec/app/models/sound.rb +5 -0
  250. data/spec/app/models/symptom.rb +1 -1
  251. data/spec/app/models/template.rb +1 -1
  252. data/spec/app/models/title.rb +0 -1
  253. data/spec/app/models/track.rb +5 -5
  254. data/spec/app/models/tree.rb +3 -3
  255. data/spec/app/models/video.rb +1 -5
  256. data/spec/app/models/wiki_page.rb +2 -5
  257. data/spec/app/models/word.rb +3 -0
  258. data/spec/app/models/word_origin.rb +1 -1
  259. data/spec/config/mongoid.yml +7 -8
  260. data/spec/helpers.rb +18 -0
  261. data/spec/mongoid/#atomic_spec.rb# +365 -0
  262. data/spec/mongoid/atomic/modifiers_spec.rb +22 -22
  263. data/spec/mongoid/atomic/paths/embedded/many_spec.rb +8 -49
  264. data/spec/mongoid/atomic/paths/embedded/one_spec.rb +7 -49
  265. data/spec/mongoid/atomic/paths/root_spec.rb +3 -61
  266. data/spec/mongoid/atomic/paths_spec.rb +19 -19
  267. data/spec/mongoid/atomic_spec.rb +19 -19
  268. data/spec/mongoid/{nested_attributes_spec.rb → attributes/nested_spec.rb} +474 -592
  269. data/spec/mongoid/attributes/readonly_spec.rb +58 -18
  270. data/spec/mongoid/attributes_spec.rb +349 -434
  271. data/spec/mongoid/{dirty_spec.rb → changeable_spec.rb} +203 -153
  272. data/spec/mongoid/{components_spec.rb → composable_spec.rb} +3 -3
  273. data/spec/mongoid/config/environment_spec.rb +3 -3
  274. data/spec/mongoid/config/options_spec.rb +6 -6
  275. data/spec/mongoid/config_spec.rb +24 -48
  276. data/spec/mongoid/contextual/aggregable/memory_spec.rb +12 -12
  277. data/spec/mongoid/contextual/aggregable/mongo_spec.rb +78 -38
  278. data/spec/mongoid/contextual/atomic_spec.rb +60 -56
  279. data/spec/mongoid/contextual/find_and_modify_spec.rb +14 -14
  280. data/spec/mongoid/contextual/geo_near_spec.rb +22 -22
  281. data/spec/mongoid/contextual/map_reduce_spec.rb +27 -27
  282. data/spec/mongoid/contextual/memory_spec.rb +156 -94
  283. data/spec/mongoid/contextual/mongo_spec.rb +238 -150
  284. data/spec/mongoid/contextual/none_spec.rb +127 -0
  285. data/spec/mongoid/contextual/text_search_spec.rb +209 -0
  286. data/spec/mongoid/copyable_spec.rb +56 -68
  287. data/spec/mongoid/criteria/findable_spec.rb +991 -0
  288. data/spec/mongoid/{criterion/inspection_spec.rb → criteria/inspectable_spec.rb} +5 -5
  289. data/spec/mongoid/{criterion → criteria}/marshalable_spec.rb +2 -2
  290. data/spec/mongoid/criteria/modifiable_spec.rb +1252 -0
  291. data/spec/mongoid/{criterion/scoping_spec.rb → criteria/scopable_spec.rb} +37 -37
  292. data/spec/mongoid/criteria_spec.rb +715 -2421
  293. data/spec/mongoid/document_spec.rb +171 -121
  294. data/spec/mongoid/equality_spec.rb +22 -22
  295. data/spec/mongoid/errors/ambiguous_relationship_spec.rb +3 -3
  296. data/spec/mongoid/errors/callback_spec.rb +3 -3
  297. data/spec/mongoid/errors/delete_restriction_spec.rb +3 -3
  298. data/spec/mongoid/errors/document_not_destroyed_spec.rb +33 -0
  299. data/spec/mongoid/errors/document_not_found_spec.rb +11 -11
  300. data/spec/mongoid/errors/eager_load_spec.rb +3 -3
  301. data/spec/mongoid/errors/invalid_collection_spec.rb +3 -3
  302. data/spec/mongoid/errors/invalid_config_option_spec.rb +3 -3
  303. data/spec/mongoid/errors/invalid_field_option_spec.rb +3 -3
  304. data/spec/mongoid/errors/invalid_field_spec.rb +3 -3
  305. data/spec/mongoid/errors/invalid_find_spec.rb +3 -3
  306. data/spec/mongoid/errors/invalid_includes_spec.rb +3 -3
  307. data/spec/mongoid/errors/invalid_index_spec.rb +3 -3
  308. data/spec/mongoid/errors/invalid_options_spec.rb +3 -3
  309. data/spec/mongoid/errors/invalid_path_spec.rb +3 -3
  310. data/spec/mongoid/errors/invalid_scope_spec.rb +5 -5
  311. data/spec/mongoid/errors/invalid_set_polymorphic_relation_spec.rb +3 -3
  312. data/spec/mongoid/errors/invalid_storage_options_spec.rb +3 -3
  313. data/spec/mongoid/errors/invalid_time_spec.rb +3 -3
  314. data/spec/mongoid/errors/inverse_not_found_spec.rb +3 -3
  315. data/spec/mongoid/errors/mixed_relations_spec.rb +3 -3
  316. data/spec/mongoid/errors/mixed_session_configuration_spec.rb +3 -3
  317. data/spec/mongoid/errors/mongoid_error_spec.rb +8 -8
  318. data/spec/mongoid/errors/nested_attributes_metadata_not_found_spec.rb +3 -3
  319. data/spec/mongoid/errors/no_environment_spec.rb +3 -3
  320. data/spec/mongoid/errors/no_map_reduce_output_spec.rb +3 -3
  321. data/spec/mongoid/errors/no_metadata_spec.rb +3 -3
  322. data/spec/mongoid/errors/no_parent_spec.rb +3 -3
  323. data/spec/mongoid/errors/no_session_config_spec.rb +3 -3
  324. data/spec/mongoid/errors/no_session_database_spec.rb +3 -3
  325. data/spec/mongoid/errors/no_session_hosts_spec.rb +3 -3
  326. data/spec/mongoid/errors/no_sessions_config_spec.rb +3 -3
  327. data/spec/mongoid/errors/readonly_attribute_spec.rb +3 -3
  328. data/spec/mongoid/errors/readonly_document_spec.rb +29 -0
  329. data/spec/mongoid/errors/scope_overwrite_spec.rb +3 -3
  330. data/spec/mongoid/errors/too_many_nested_attribute_records_spec.rb +3 -3
  331. data/spec/mongoid/errors/unknown_attribute_spec.rb +5 -5
  332. data/spec/mongoid/errors/unsaved_document_spec.rb +3 -3
  333. data/spec/mongoid/errors/unsupported_javascript_spec.rb +3 -3
  334. data/spec/mongoid/errors/validations_spec.rb +7 -7
  335. data/spec/mongoid/extensions/array_spec.rb +61 -61
  336. data/spec/mongoid/extensions/big_decimal_spec.rb +11 -11
  337. data/spec/mongoid/extensions/binary_spec.rb +12 -12
  338. data/spec/mongoid/extensions/boolean_spec.rb +18 -18
  339. data/spec/mongoid/extensions/date_spec.rb +13 -13
  340. data/spec/mongoid/extensions/date_time_spec.rb +8 -8
  341. data/spec/mongoid/extensions/false_class_spec.rb +5 -5
  342. data/spec/mongoid/extensions/float_spec.rb +29 -15
  343. data/spec/mongoid/extensions/hash_spec.rb +29 -29
  344. data/spec/mongoid/extensions/integer_spec.rb +15 -15
  345. data/spec/mongoid/extensions/module_spec.rb +2 -2
  346. data/spec/mongoid/extensions/nil_class_spec.rb +1 -1
  347. data/spec/mongoid/extensions/object_id_spec.rb +134 -134
  348. data/spec/mongoid/extensions/object_spec.rb +26 -26
  349. data/spec/mongoid/extensions/range_spec.rb +61 -12
  350. data/spec/mongoid/extensions/regexp_spec.rb +4 -4
  351. data/spec/mongoid/extensions/set_spec.rb +4 -4
  352. data/spec/mongoid/extensions/string_spec.rb +35 -46
  353. data/spec/mongoid/extensions/symbol_spec.rb +9 -9
  354. data/spec/mongoid/extensions/time_spec.rb +49 -49
  355. data/spec/mongoid/extensions/time_with_zone_spec.rb +34 -34
  356. data/spec/mongoid/extensions/true_class_spec.rb +5 -5
  357. data/spec/mongoid/extensions_spec.rb +29 -0
  358. data/spec/mongoid/factory_spec.rb +15 -15
  359. data/spec/mongoid/fields/foreign_key_spec.rb +73 -66
  360. data/spec/mongoid/fields/internal/foreign_keys/array_spec.rb +15 -15
  361. data/spec/mongoid/fields/internal/foreign_keys/object_spec.rb +22 -22
  362. data/spec/mongoid/fields/localized_spec.rb +38 -23
  363. data/spec/mongoid/fields/standard_spec.rb +12 -12
  364. data/spec/mongoid/fields_spec.rb +263 -217
  365. data/spec/mongoid/findable_spec.rb +509 -0
  366. data/spec/mongoid/indexable/specification_spec.rb +102 -0
  367. data/spec/mongoid/{indexes_spec.rb → indexable_spec.rb} +171 -51
  368. data/spec/mongoid/{inspection_spec.rb → inspectable_spec.rb} +6 -14
  369. data/spec/mongoid/{callbacks_spec.rb → interceptable_spec.rb} +117 -116
  370. data/spec/mongoid/log_subscriber_spec.rb +75 -0
  371. data/spec/mongoid/loggable_spec.rb +1 -1
  372. data/spec/mongoid/{matchers → matchable}/all_spec.rb +4 -4
  373. data/spec/mongoid/{matchers → matchable}/and_spec.rb +11 -11
  374. data/spec/mongoid/{matchers → matchable}/default_spec.rb +15 -15
  375. data/spec/mongoid/{matchers → matchable}/exists_spec.rb +5 -5
  376. data/spec/mongoid/{matchers → matchable}/gt_spec.rb +9 -8
  377. data/spec/mongoid/{matchers → matchable}/gte_spec.rb +7 -7
  378. data/spec/mongoid/matchable/in_spec.rb +49 -0
  379. data/spec/mongoid/{matchers → matchable}/lt_spec.rb +7 -7
  380. data/spec/mongoid/{matchers → matchable}/lte_spec.rb +7 -7
  381. data/spec/mongoid/matchable/ne_spec.rb +46 -0
  382. data/spec/mongoid/matchable/nin_spec.rb +48 -0
  383. data/spec/mongoid/{matchers → matchable}/or_spec.rb +6 -6
  384. data/spec/mongoid/{matchers → matchable}/size_spec.rb +3 -3
  385. data/spec/mongoid/{matchers_spec.rb → matchable_spec.rb} +41 -41
  386. data/spec/mongoid/persistable/creatable_spec.rb +553 -0
  387. data/spec/mongoid/persistable/deletable_spec.rb +218 -0
  388. data/spec/mongoid/persistable/destroyable_spec.rb +192 -0
  389. data/spec/mongoid/persistable/incrementable_spec.rb +173 -0
  390. data/spec/mongoid/persistable/logical_spec.rb +143 -0
  391. data/spec/mongoid/persistable/poppable_spec.rb +115 -0
  392. data/spec/mongoid/persistable/pullable_spec.rb +228 -0
  393. data/spec/mongoid/persistable/pushable_spec.rb +258 -0
  394. data/spec/mongoid/persistable/renamable_spec.rb +135 -0
  395. data/spec/mongoid/persistable/savable_spec.rb +498 -0
  396. data/spec/mongoid/persistable/settable_spec.rb +162 -0
  397. data/spec/mongoid/persistable/unsettable_spec.rb +155 -0
  398. data/spec/mongoid/persistable/updatable_spec.rb +558 -0
  399. data/spec/mongoid/persistable/upsertable_spec.rb +106 -0
  400. data/spec/mongoid/persistable_spec.rb +206 -0
  401. data/spec/mongoid/{atomic/positionable_spec.rb → positional_spec.rb} +14 -19
  402. data/spec/mongoid/query_cache_spec.rb +263 -0
  403. data/spec/mongoid/railties/document_spec.rb +2 -2
  404. data/spec/mongoid/relations/accessors_spec.rb +53 -145
  405. data/spec/mongoid/relations/auto_save_spec.rb +37 -17
  406. data/spec/mongoid/relations/bindings/embedded/in_spec.rb +12 -12
  407. data/spec/mongoid/relations/bindings/embedded/many_spec.rb +3 -3
  408. data/spec/mongoid/relations/bindings/embedded/one_spec.rb +5 -5
  409. data/spec/mongoid/relations/bindings/referenced/in_spec.rb +26 -26
  410. data/spec/mongoid/relations/bindings/referenced/many_spec.rb +10 -10
  411. data/spec/mongoid/relations/bindings/referenced/many_to_many_spec.rb +19 -19
  412. data/spec/mongoid/relations/bindings/referenced/one_spec.rb +12 -12
  413. data/spec/mongoid/relations/builders/embedded/in_spec.rb +4 -4
  414. data/spec/mongoid/relations/builders/embedded/many_spec.rb +18 -18
  415. data/spec/mongoid/relations/builders/embedded/one_spec.rb +11 -11
  416. data/spec/mongoid/relations/builders/nested_attributes/many_spec.rb +12 -13
  417. data/spec/mongoid/relations/builders/nested_attributes/one_spec.rb +14 -14
  418. data/spec/mongoid/relations/builders/referenced/in_spec.rb +24 -35
  419. data/spec/mongoid/relations/builders/referenced/many_spec.rb +15 -15
  420. data/spec/mongoid/relations/builders/referenced/many_to_many_spec.rb +18 -18
  421. data/spec/mongoid/relations/builders/referenced/one_spec.rb +12 -25
  422. data/spec/mongoid/relations/builders_spec.rb +21 -21
  423. data/spec/mongoid/relations/cascading/delete_spec.rb +9 -9
  424. data/spec/mongoid/relations/cascading/destroy_spec.rb +6 -6
  425. data/spec/mongoid/relations/cascading/nullify_spec.rb +4 -4
  426. data/spec/mongoid/relations/cascading/restrict_spec.rb +7 -7
  427. data/spec/mongoid/relations/cascading_spec.rb +16 -16
  428. data/spec/mongoid/relations/constraint_spec.rb +8 -7
  429. data/spec/mongoid/relations/conversions_spec.rb +16 -14
  430. data/spec/mongoid/relations/counter_cache_spec.rb +85 -0
  431. data/spec/mongoid/relations/cyclic_spec.rb +18 -18
  432. data/spec/mongoid/relations/eager/belongs_to_spec.rb +154 -0
  433. data/spec/mongoid/relations/eager/has_and_belongs_to_many_spec.rb +117 -0
  434. data/spec/mongoid/relations/eager/has_many_spec.rb +207 -0
  435. data/spec/mongoid/relations/eager/has_one_spec.rb +163 -0
  436. data/spec/mongoid/relations/eager_spec.rb +228 -0
  437. data/spec/mongoid/relations/embedded/dirty_spec.rb +8 -8
  438. data/spec/mongoid/relations/embedded/in_spec.rb +56 -57
  439. data/spec/mongoid/relations/embedded/many_spec.rb +467 -372
  440. data/spec/mongoid/relations/embedded/one_spec.rb +108 -141
  441. data/spec/mongoid/relations/macros_spec.rb +108 -102
  442. data/spec/mongoid/relations/metadata_spec.rb +180 -255
  443. data/spec/mongoid/relations/options_spec.rb +1 -1
  444. data/spec/mongoid/relations/polymorphic_spec.rb +13 -17
  445. data/spec/mongoid/relations/proxy_spec.rb +2 -2
  446. data/spec/mongoid/relations/referenced/in_spec.rb +128 -303
  447. data/spec/mongoid/relations/referenced/many_spec.rb +587 -527
  448. data/spec/mongoid/relations/referenced/many_to_many_spec.rb +401 -424
  449. data/spec/mongoid/relations/referenced/one_spec.rb +149 -264
  450. data/spec/mongoid/relations/reflections_spec.rb +6 -6
  451. data/spec/mongoid/relations/synchronization_spec.rb +46 -50
  452. data/spec/mongoid/relations/targets/enumerable_spec.rb +118 -118
  453. data/spec/mongoid/relations/touchable_spec.rb +333 -0
  454. data/spec/mongoid/relations_spec.rb +16 -15
  455. data/spec/mongoid/{reloading_spec.rb → reloadable_spec.rb} +38 -55
  456. data/spec/mongoid/{scoping_spec.rb → scopable_spec.rb} +89 -164
  457. data/spec/mongoid/selectable_spec.rb +134 -0
  458. data/spec/mongoid/{serialization_spec.rb → serializable_spec.rb} +129 -82
  459. data/spec/mongoid/sessions/factory_spec.rb +49 -28
  460. data/spec/mongoid/sessions/mongo_uri_spec.rb +7 -7
  461. data/spec/mongoid/sessions/options_spec.rb +108 -0
  462. data/spec/mongoid/sessions_spec.rb +319 -178
  463. data/spec/mongoid/{sharding_spec.rb → shardable_spec.rb} +8 -8
  464. data/spec/mongoid/{state_spec.rb → stateful_spec.rb} +36 -11
  465. data/spec/mongoid/tasks/database_rake_spec.rb +285 -0
  466. data/spec/mongoid/tasks/database_spec.rb +160 -0
  467. data/spec/mongoid/threaded_spec.rb +17 -70
  468. data/spec/mongoid/timestamps/created/short_spec.rb +6 -6
  469. data/spec/mongoid/timestamps/created_spec.rb +5 -5
  470. data/spec/mongoid/timestamps/timeless_spec.rb +6 -6
  471. data/spec/mongoid/timestamps/updated/short_spec.rb +11 -11
  472. data/spec/mongoid/timestamps/updated_spec.rb +9 -13
  473. data/spec/mongoid/timestamps_spec.rb +9 -13
  474. data/spec/mongoid/{hierarchy_spec.rb → traversable_spec.rb} +19 -19
  475. data/spec/mongoid/{validations → validatable}/associated_spec.rb +45 -22
  476. data/spec/mongoid/{validations → validatable}/format_spec.rb +6 -6
  477. data/spec/mongoid/{validations → validatable}/length_spec.rb +14 -14
  478. data/spec/mongoid/{validations → validatable}/numericality_spec.rb +1 -1
  479. data/spec/mongoid/{validations → validatable}/presence_spec.rb +37 -44
  480. data/spec/mongoid/{validations → validatable}/uniqueness_spec.rb +184 -192
  481. data/spec/mongoid/{validations_spec.rb → validatable_spec.rb} +28 -28
  482. data/spec/mongoid_spec.rb +8 -8
  483. data/spec/rails/mongoid_spec.rb +19 -335
  484. data/spec/spec_helper.rb +31 -13
  485. metadata +303 -283
  486. data/lib/mongoid/atomic/positionable.rb +0 -73
  487. data/lib/mongoid/components.rb +0 -92
  488. data/lib/mongoid/config/inflections.rb +0 -6
  489. data/lib/mongoid/contextual/eager.rb +0 -158
  490. data/lib/mongoid/errors/versioning_not_on_root.rb +0 -23
  491. data/lib/mongoid/identity_map.rb +0 -163
  492. data/lib/mongoid/json.rb +0 -16
  493. data/lib/mongoid/matchers.rb +0 -32
  494. data/lib/mongoid/matchers/strategies.rb +0 -97
  495. data/lib/mongoid/multi_parameter_attributes.rb +0 -105
  496. data/lib/mongoid/nested_attributes.rb +0 -78
  497. data/lib/mongoid/observer.rb +0 -192
  498. data/lib/mongoid/paranoia.rb +0 -136
  499. data/lib/mongoid/persistence.rb +0 -357
  500. data/lib/mongoid/persistence/atomic.rb +0 -231
  501. data/lib/mongoid/persistence/atomic/add_to_set.rb +0 -47
  502. data/lib/mongoid/persistence/atomic/bit.rb +0 -35
  503. data/lib/mongoid/persistence/atomic/inc.rb +0 -45
  504. data/lib/mongoid/persistence/atomic/operation.rb +0 -154
  505. data/lib/mongoid/persistence/atomic/pop.rb +0 -32
  506. data/lib/mongoid/persistence/atomic/pull.rb +0 -32
  507. data/lib/mongoid/persistence/atomic/pull_all.rb +0 -32
  508. data/lib/mongoid/persistence/atomic/push.rb +0 -25
  509. data/lib/mongoid/persistence/atomic/push_all.rb +0 -25
  510. data/lib/mongoid/persistence/atomic/rename.rb +0 -30
  511. data/lib/mongoid/persistence/atomic/sets.rb +0 -28
  512. data/lib/mongoid/persistence/atomic/unset.rb +0 -27
  513. data/lib/mongoid/persistence/deletion.rb +0 -31
  514. data/lib/mongoid/persistence/insertion.rb +0 -38
  515. data/lib/mongoid/persistence/modification.rb +0 -35
  516. data/lib/mongoid/persistence/operations.rb +0 -214
  517. data/lib/mongoid/persistence/operations/embedded/insert.rb +0 -46
  518. data/lib/mongoid/persistence/operations/embedded/remove.rb +0 -43
  519. data/lib/mongoid/persistence/operations/insert.rb +0 -34
  520. data/lib/mongoid/persistence/operations/remove.rb +0 -33
  521. data/lib/mongoid/persistence/operations/update.rb +0 -59
  522. data/lib/mongoid/persistence/operations/upsert.rb +0 -28
  523. data/lib/mongoid/persistence/upsertion.rb +0 -31
  524. data/lib/mongoid/unit_of_work.rb +0 -61
  525. data/lib/mongoid/versioning.rb +0 -217
  526. data/lib/rack/mongoid.rb +0 -2
  527. data/lib/rack/mongoid/middleware/identity_map.rb +0 -39
  528. data/lib/rails/generators/mongoid/observer/observer_generator.rb +0 -17
  529. data/lib/rails/generators/mongoid/observer/templates/observer.rb.tt +0 -4
  530. data/spec/app/models/actor_observer.rb +0 -15
  531. data/spec/app/models/callback_recorder.rb +0 -25
  532. data/spec/app/models/paranoid_phone.rb +0 -25
  533. data/spec/app/models/paranoid_post.rb +0 -36
  534. data/spec/app/models/phone_observer.rb +0 -6
  535. data/spec/mongoid/attributes/processing_spec.rb +0 -149
  536. data/spec/mongoid/criterion/destructive_spec.rb +0 -101
  537. data/spec/mongoid/criterion/modifiable_spec.rb +0 -409
  538. data/spec/mongoid/criterion/modification_spec.rb +0 -402
  539. data/spec/mongoid/errors/versioning_not_on_root_spec.rb +0 -29
  540. data/spec/mongoid/finders_spec.rb +0 -321
  541. data/spec/mongoid/identity_map_spec.rb +0 -564
  542. data/spec/mongoid/json_spec.rb +0 -33
  543. data/spec/mongoid/matchers/in_spec.rb +0 -25
  544. data/spec/mongoid/matchers/ne_spec.rb +0 -25
  545. data/spec/mongoid/matchers/nin_spec.rb +0 -25
  546. data/spec/mongoid/multi_parameter_attributes_spec.rb +0 -128
  547. data/spec/mongoid/observer_spec.rb +0 -290
  548. data/spec/mongoid/paranoia_spec.rb +0 -759
  549. data/spec/mongoid/persistence/atomic/add_to_set_spec.rb +0 -262
  550. data/spec/mongoid/persistence/atomic/bit_spec.rb +0 -88
  551. data/spec/mongoid/persistence/atomic/inc_spec.rb +0 -133
  552. data/spec/mongoid/persistence/atomic/pop_spec.rb +0 -111
  553. data/spec/mongoid/persistence/atomic/pull_all_spec.rb +0 -77
  554. data/spec/mongoid/persistence/atomic/pull_spec.rb +0 -80
  555. data/spec/mongoid/persistence/atomic/push_all_spec.rb +0 -77
  556. data/spec/mongoid/persistence/atomic/push_spec.rb +0 -77
  557. data/spec/mongoid/persistence/atomic/rename_spec.rb +0 -42
  558. data/spec/mongoid/persistence/atomic/sets_spec.rb +0 -154
  559. data/spec/mongoid/persistence/atomic/unset_spec.rb +0 -65
  560. data/spec/mongoid/persistence/atomic_spec.rb +0 -216
  561. data/spec/mongoid/persistence/operations/embedded/insert_spec.rb +0 -191
  562. data/spec/mongoid/persistence/operations/embedded/remove_spec.rb +0 -8
  563. data/spec/mongoid/persistence/operations/insert_spec.rb +0 -149
  564. data/spec/mongoid/persistence/operations/remove_spec.rb +0 -113
  565. data/spec/mongoid/persistence/operations/update_spec.rb +0 -141
  566. data/spec/mongoid/persistence/operations/upsert_spec.rb +0 -59
  567. data/spec/mongoid/persistence/operations_spec.rb +0 -313
  568. data/spec/mongoid/persistence_spec.rb +0 -2279
  569. data/spec/mongoid/unit_of_work_spec.rb +0 -196
  570. data/spec/mongoid/versioning_spec.rb +0 -540
  571. data/spec/rack/mongoid/middleware/identity_map_spec.rb +0 -72
@@ -7,14 +7,14 @@ describe Mongoid::Extensions::Symbol do
7
7
  context "when the object is not a symbol" do
8
8
 
9
9
  it "returns the symbol" do
10
- Symbol.demongoize("test").should eq(:test)
10
+ expect(Symbol.demongoize("test")).to eq(:test)
11
11
  end
12
12
  end
13
13
 
14
14
  context "when the object is nil" do
15
15
 
16
16
  it "returns nil" do
17
- Symbol.demongoize(nil).should be_nil
17
+ expect(Symbol.demongoize(nil)).to be_nil
18
18
  end
19
19
  end
20
20
  end
@@ -24,28 +24,28 @@ describe Mongoid::Extensions::Symbol do
24
24
  context "when the string is id" do
25
25
 
26
26
  it "returns true" do
27
- :id.should be_mongoid_id
27
+ expect(:id).to be_mongoid_id
28
28
  end
29
29
  end
30
30
 
31
31
  context "when the string is _id" do
32
32
 
33
33
  it "returns true" do
34
- :_id.should be_mongoid_id
34
+ expect(:_id).to be_mongoid_id
35
35
  end
36
36
  end
37
37
 
38
38
  context "when the string contains id" do
39
39
 
40
40
  it "returns false" do
41
- :identity.should_not be_mongoid_id
41
+ expect(:identity).to_not be_mongoid_id
42
42
  end
43
43
  end
44
44
 
45
45
  context "when the string contains _id" do
46
46
 
47
47
  it "returns false" do
48
- :something_id.should_not be_mongoid_id
48
+ expect(:something_id).to_not be_mongoid_id
49
49
  end
50
50
  end
51
51
  end
@@ -55,14 +55,14 @@ describe Mongoid::Extensions::Symbol do
55
55
  context "when the object is not a symbol" do
56
56
 
57
57
  it "returns the symbol" do
58
- Symbol.mongoize("test").should eq(:test)
58
+ expect(Symbol.mongoize("test")).to eq(:test)
59
59
  end
60
60
  end
61
61
 
62
62
  context "when the object is nil" do
63
63
 
64
64
  it "returns nil" do
65
- Symbol.mongoize(nil).should be_nil
65
+ expect(Symbol.mongoize(nil)).to be_nil
66
66
  end
67
67
  end
68
68
  end
@@ -70,7 +70,7 @@ describe Mongoid::Extensions::Symbol do
70
70
  describe "#mongoize" do
71
71
 
72
72
  it "returns self" do
73
- :test.mongoize.should eq(:test)
73
+ expect(:test.mongoize).to eq(:test)
74
74
  end
75
75
  end
76
76
  end
@@ -26,7 +26,7 @@ describe Mongoid::Extensions::Time do
26
26
  end
27
27
 
28
28
  it "returns the local time" do
29
- Time.demongoize(time).utc_offset.should eq(
29
+ expect(Time.demongoize(time).utc_offset).to eq(
30
30
  Time.local(2010, 11, 19).utc_offset
31
31
  )
32
32
  end
@@ -39,7 +39,7 @@ describe Mongoid::Extensions::Time do
39
39
  end
40
40
 
41
41
  it "returns the local time" do
42
- Time.demongoize(time).should eq(time.getlocal)
42
+ expect(Time.demongoize(time)).to eq(time.getlocal)
43
43
  end
44
44
  end
45
45
 
@@ -50,7 +50,7 @@ describe Mongoid::Extensions::Time do
50
50
  end
51
51
 
52
52
  it "changes it back to the equivalent local time" do
53
- Time.demongoize(time).should eq(time)
53
+ expect(Time.demongoize(time)).to eq(time)
54
54
  end
55
55
  end
56
56
 
@@ -67,7 +67,7 @@ describe Mongoid::Extensions::Time do
67
67
  end
68
68
 
69
69
  it "returns an ActiveSupport::TimeWithZone" do
70
- Time.demongoize(time).class.should eq(ActiveSupport::TimeWithZone)
70
+ expect(Time.demongoize(time).class).to eq(ActiveSupport::TimeWithZone)
71
71
  end
72
72
 
73
73
  context "when the local time is not observing daylight saving" do
@@ -77,7 +77,7 @@ describe Mongoid::Extensions::Time do
77
77
  end
78
78
 
79
79
  it "returns the local time" do
80
- Time.demongoize(new_time).should eq(
80
+ expect(Time.demongoize(new_time)).to eq(
81
81
  Time.zone.local(2010, 11, 19, 13)
82
82
  )
83
83
  end
@@ -90,7 +90,7 @@ describe Mongoid::Extensions::Time do
90
90
  end
91
91
 
92
92
  it "returns the local time" do
93
- Time.demongoize(new_time).should eq(
93
+ expect(Time.demongoize(new_time)).to eq(
94
94
  Time.zone.local(2010, 9, 19, 14)
95
95
  )
96
96
  end
@@ -103,7 +103,7 @@ describe Mongoid::Extensions::Time do
103
103
  end
104
104
 
105
105
  it "change it back to the equivalent local time" do
106
- Time.demongoize(new_time).should eq(
106
+ expect(Time.demongoize(new_time)).to eq(
107
107
  Time.zone.local(2010, 11, 19, 1, 30)
108
108
  )
109
109
  end
@@ -122,7 +122,7 @@ describe Mongoid::Extensions::Time do
122
122
  end
123
123
 
124
124
  it "returns utc" do
125
- Time.demongoize(time.dup.utc).utc_offset.should eq(0)
125
+ expect(Time.demongoize(time.dup.utc).utc_offset).to eq(0)
126
126
  end
127
127
 
128
128
  context "when using the ActiveSupport time zone" do
@@ -142,13 +142,13 @@ describe Mongoid::Extensions::Time do
142
142
  end
143
143
 
144
144
  it "returns utc" do
145
- Time.demongoize(time).should eq(
145
+ expect(Time.demongoize(time)).to eq(
146
146
  ActiveSupport::TimeZone['UTC'].local(2010, 11, 19, 0, 30)
147
147
  )
148
148
  end
149
149
 
150
150
  it "returns an ActiveSupport::TimeWithZone" do
151
- Time.demongoize(time).class.should eq(
151
+ expect(Time.demongoize(time).class).to eq(
152
152
  ActiveSupport::TimeWithZone
153
153
  )
154
154
  end
@@ -158,7 +158,7 @@ describe Mongoid::Extensions::Time do
158
158
  context "when time is nil" do
159
159
 
160
160
  it "returns nil" do
161
- Time.demongoize(nil).should be_nil
161
+ expect(Time.demongoize(nil)).to be_nil
162
162
  end
163
163
  end
164
164
  end
@@ -172,14 +172,14 @@ describe Mongoid::Extensions::Time do
172
172
  context "when given nil" do
173
173
 
174
174
  it "returns nil" do
175
- Time.mongoize(nil).should be_nil
175
+ expect(Time.mongoize(nil)).to be_nil
176
176
  end
177
177
  end
178
178
 
179
179
  context "when string is empty" do
180
180
 
181
181
  it "returns nil" do
182
- Time.mongoize("").should be_nil
182
+ expect(Time.mongoize("")).to be_nil
183
183
  end
184
184
  end
185
185
 
@@ -188,15 +188,15 @@ describe Mongoid::Extensions::Time do
188
188
  context "when the string is a valid time" do
189
189
 
190
190
  it "converts to a utc time" do
191
- Time.mongoize(time.to_s).utc_offset.should eq(0)
191
+ expect(Time.mongoize(time.to_s).utc_offset).to eq(0)
192
192
  end
193
193
 
194
194
  it "serializes with time parsing" do
195
- Time.mongoize(time.to_s).should eq(Time.parse(time.to_s).utc)
195
+ expect(Time.mongoize(time.to_s)).to eq(Time.parse(time.to_s).utc)
196
196
  end
197
197
 
198
198
  it "returns a local date from the string" do
199
- Time.mongoize(time.to_s).should eq(
199
+ expect(Time.mongoize(time.to_s)).to eq(
200
200
  Time.local(time.year, time.month, time.day, time.hour, time.min, time.sec)
201
201
  )
202
202
  end
@@ -209,7 +209,7 @@ describe Mongoid::Extensions::Time do
209
209
  end
210
210
 
211
211
  it "converts the time to epoch" do
212
- Time.mongoize("time").should eq(epoch)
212
+ expect(Time.mongoize("time")).to eq(epoch)
213
213
  end
214
214
  end
215
215
 
@@ -229,7 +229,7 @@ describe Mongoid::Extensions::Time do
229
229
  context "when the local time is not observing daylight saving" do
230
230
 
231
231
  it "returns the local time" do
232
- Time.mongoize('2010-11-19 5:00:00').should eq(
232
+ expect(Time.mongoize('2010-11-19 5:00:00')).to eq(
233
233
  Time.utc(2010, 11, 19, 4)
234
234
  )
235
235
  end
@@ -238,7 +238,7 @@ describe Mongoid::Extensions::Time do
238
238
  context "when the local time is observing daylight saving" do
239
239
 
240
240
  it "returns the local time" do
241
- Time.mongoize('2010-9-19 5:00:00').should eq(
241
+ expect(Time.mongoize('2010-9-19 5:00:00')).to eq(
242
242
  Time.utc(2010, 9, 19, 3)
243
243
  )
244
244
  end
@@ -261,27 +261,27 @@ describe Mongoid::Extensions::Time do
261
261
  end
262
262
 
263
263
  it "doesn't strip milli- or microseconds" do
264
- Time.mongoize(time).to_f.round(3).should eq(time.to_f.round(3))
264
+ expect(Time.mongoize(time).to_f).to eq(time.to_time.to_f)
265
265
  end
266
266
 
267
267
  it "doesn't round up the hour at end of month" do
268
- eom_time_mongoized.hour.should eq(eom_time.utc.hour)
268
+ expect(eom_time_mongoized.hour).to eq(eom_time.utc.hour)
269
269
  end
270
270
 
271
271
  it "doesn't round up the minute" do
272
- eom_time_mongoized.min.should eq(eom_time.utc.min)
272
+ expect(eom_time_mongoized.min).to eq(eom_time.utc.min)
273
273
  end
274
274
 
275
275
  it "doesn't round up the seconds" do
276
- eom_time_mongoized.sec.should eq(eom_time.utc.sec)
276
+ expect(eom_time_mongoized.sec).to eq(eom_time.utc.sec)
277
277
  end
278
278
 
279
279
  it "does not alter seconds" do
280
- (eom_time_mongoized.usec).should eq(999999)
280
+ expect((eom_time_mongoized.usec)).to eq(999999)
281
281
  end
282
282
 
283
283
  it "does not alter seconds with fractions" do
284
- DateTime.mongoize(11.11).to_f.should eq(11.11)
284
+ expect(DateTime.mongoize(11.11).to_f).to eq(11.11)
285
285
  end
286
286
 
287
287
  context "when using the ActiveSupport time zone" do
@@ -302,25 +302,25 @@ describe Mongoid::Extensions::Time do
302
302
  end
303
303
 
304
304
  it "assumes the given time is local" do
305
- Time.mongoize(datetime).should eq(
305
+ expect(Time.mongoize(datetime)).to eq(
306
306
  Time.utc(2010, 11, 19)
307
307
  )
308
308
  end
309
309
 
310
310
  it "doesn't round up the hour" do
311
- eom_time_mongoized.hour.should eq(eom_time.utc.hour)
311
+ expect(eom_time_mongoized.hour).to eq(eom_time.utc.hour)
312
312
  end
313
313
 
314
314
  it "doesn't round up the minutes" do
315
- eom_time_mongoized.min.should eq(eom_time.utc.min)
315
+ expect(eom_time_mongoized.min).to eq(eom_time.utc.min)
316
316
  end
317
317
 
318
318
  it "doesn't round up the seconds" do
319
- eom_time_mongoized.sec.should eq(eom_time.utc.sec)
319
+ expect(eom_time_mongoized.sec).to eq(eom_time.utc.sec)
320
320
  end
321
321
 
322
322
  it "does not alter the seconds" do
323
- (eom_time_mongoized.usec).should eq(999999)
323
+ expect((eom_time_mongoized.usec)).to eq(999999)
324
324
  end
325
325
  end
326
326
  end
@@ -328,23 +328,23 @@ describe Mongoid::Extensions::Time do
328
328
  context "when given a Time" do
329
329
 
330
330
  it "converts to a utc time" do
331
- Time.mongoize(time).utc_offset.should eq(0)
331
+ expect(Time.mongoize(time).utc_offset).to eq(0)
332
332
  end
333
333
 
334
334
  it "returns utc times unchanged" do
335
- Time.mongoize(time.utc).should eq(time.utc)
335
+ expect(Time.mongoize(time.utc)).to eq(time.utc)
336
336
  end
337
337
 
338
338
  it "returns the time as utc" do
339
- Time.mongoize(time).should eq(time.utc)
339
+ expect(Time.mongoize(time)).to eq(time.utc)
340
340
  end
341
341
 
342
342
  it "doesn't strip milli- or microseconds" do
343
- Time.mongoize(time).to_f.should eq(time.to_f)
343
+ expect(Time.mongoize(time).to_f).to eq(time.to_f)
344
344
  end
345
345
 
346
346
  it "does not alter seconds with fractions" do
347
- Time.mongoize(102.63).to_f.should eq(102.63)
347
+ expect(Time.mongoize(102.63).to_f).to eq(102.63)
348
348
  end
349
349
  end
350
350
 
@@ -355,7 +355,7 @@ describe Mongoid::Extensions::Time do
355
355
  end
356
356
 
357
357
  it "converts it to utc" do
358
- Time.mongoize(time.in_time_zone("Alaska")).should eq(
358
+ expect(Time.mongoize(time.in_time_zone("Alaska"))).to eq(
359
359
  Time.at(time.to_i).utc
360
360
  )
361
361
  end
@@ -368,11 +368,11 @@ describe Mongoid::Extensions::Time do
368
368
  end
369
369
 
370
370
  it "converts to a utc time" do
371
- Time.mongoize(date).should eq(Time.local(date.year, date.month, date.day))
371
+ expect(Time.mongoize(date)).to eq(Time.local(date.year, date.month, date.day))
372
372
  end
373
373
 
374
374
  it "has a zero utc offset" do
375
- Time.mongoize(date).utc_offset.should eq(0)
375
+ expect(Time.mongoize(date).utc_offset).to eq(0)
376
376
  end
377
377
 
378
378
  context "when using the ActiveSupport time zone" do
@@ -393,7 +393,7 @@ describe Mongoid::Extensions::Time do
393
393
  end
394
394
 
395
395
  it "assumes the given time is local" do
396
- Time.mongoize(date).should eq(Time.utc(2010, 11, 18, 23))
396
+ expect(Time.mongoize(date)).to eq(Time.utc(2010, 11, 18, 23))
397
397
  end
398
398
  end
399
399
  end
@@ -405,7 +405,7 @@ describe Mongoid::Extensions::Time do
405
405
  end
406
406
 
407
407
  it "returns a time" do
408
- Time.mongoize(array).should eq(Time.local(*array))
408
+ expect(Time.mongoize(array)).to eq(Time.local(*array))
409
409
  end
410
410
 
411
411
  context "when using the ActiveSupport time zone" do
@@ -422,7 +422,7 @@ describe Mongoid::Extensions::Time do
422
422
  end
423
423
 
424
424
  it "assumes the given time is local" do
425
- Time.mongoize(array).should eq(
425
+ expect(Time.mongoize(array)).to eq(
426
426
  Time.utc(2010, 11, 18, 23, 24, 49)
427
427
  )
428
428
  end
@@ -445,23 +445,23 @@ describe Mongoid::Extensions::Time do
445
445
  end
446
446
 
447
447
  it "converts to a utc time" do
448
- time.mongoize.utc_offset.should eq(0)
448
+ expect(time.mongoize.utc_offset).to eq(0)
449
449
  end
450
450
 
451
451
  it "returns the time as utc" do
452
- time.mongoize.should eq(time.utc)
452
+ expect(time.mongoize).to eq(time.utc)
453
453
  end
454
454
 
455
455
  it "doesn't strip milli- or microseconds" do
456
- time.mongoize.to_f.should eq(time.to_f)
456
+ expect(time.mongoize.to_f).to eq(time.to_f)
457
457
  end
458
458
 
459
459
  it "doesn't round up at end of month" do
460
- eom_time_mongoized.hour.should eq(eom_time.utc.hour)
461
- eom_time_mongoized.min.should eq(eom_time.utc.min)
462
- eom_time_mongoized.sec.should eq(eom_time.utc.sec)
463
- eom_time_mongoized.usec.should eq(eom_time.utc.usec)
464
- eom_time_mongoized.subsec.to_f.round(3).should eq(eom_time.utc.subsec.to_f.round(3))
460
+ expect(eom_time_mongoized.hour).to eq(eom_time.utc.hour)
461
+ expect(eom_time_mongoized.min).to eq(eom_time.utc.min)
462
+ expect(eom_time_mongoized.sec).to eq(eom_time.utc.sec)
463
+ expect(eom_time_mongoized.usec).to eq(eom_time.utc.usec)
464
+ expect(eom_time_mongoized.subsec.to_f.round(3)).to eq(eom_time.utc.subsec.to_f.round(3))
465
465
  end
466
466
  end
467
467
  end
@@ -26,7 +26,7 @@ describe Mongoid::Extensions::TimeWithZone do
26
26
  end
27
27
 
28
28
  it "returns the local time" do
29
- ActiveSupport::TimeWithZone.demongoize(time).utc_offset.should eq(
29
+ expect(ActiveSupport::TimeWithZone.demongoize(time).utc_offset).to eq(
30
30
  Time.local(2010, 11, 19).utc_offset
31
31
  )
32
32
  end
@@ -39,7 +39,7 @@ describe Mongoid::Extensions::TimeWithZone do
39
39
  end
40
40
 
41
41
  it "returns the local time" do
42
- ActiveSupport::TimeWithZone.demongoize(time).should eq(time.getlocal)
42
+ expect(ActiveSupport::TimeWithZone.demongoize(time)).to eq(time.getlocal)
43
43
  end
44
44
  end
45
45
 
@@ -50,7 +50,7 @@ describe Mongoid::Extensions::TimeWithZone do
50
50
  end
51
51
 
52
52
  it "changes it back to the equivalent local time" do
53
- ActiveSupport::TimeWithZone.demongoize(time).should eq(time)
53
+ expect(ActiveSupport::TimeWithZone.demongoize(time)).to eq(time)
54
54
  end
55
55
  end
56
56
 
@@ -67,7 +67,7 @@ describe Mongoid::Extensions::TimeWithZone do
67
67
  end
68
68
 
69
69
  it "returns an ActiveSupport::TimeWithZone" do
70
- ActiveSupport::TimeWithZone.demongoize(time).class.should eq(ActiveSupport::TimeWithZone)
70
+ expect(ActiveSupport::TimeWithZone.demongoize(time).class).to eq(ActiveSupport::TimeWithZone)
71
71
  end
72
72
 
73
73
  context "when the local time is not observing daylight saving" do
@@ -77,7 +77,7 @@ describe Mongoid::Extensions::TimeWithZone do
77
77
  end
78
78
 
79
79
  it "returns the local time" do
80
- ActiveSupport::TimeWithZone.demongoize(new_time).should eq(
80
+ expect(ActiveSupport::TimeWithZone.demongoize(new_time)).to eq(
81
81
  Time.zone.local(2010, 11, 19, 13)
82
82
  )
83
83
  end
@@ -90,7 +90,7 @@ describe Mongoid::Extensions::TimeWithZone do
90
90
  end
91
91
 
92
92
  it "returns the local time" do
93
- ActiveSupport::TimeWithZone.demongoize(new_time).should eq(
93
+ expect(ActiveSupport::TimeWithZone.demongoize(new_time)).to eq(
94
94
  Time.zone.local(2010, 9, 19, 14)
95
95
  )
96
96
  end
@@ -103,7 +103,7 @@ describe Mongoid::Extensions::TimeWithZone do
103
103
  end
104
104
 
105
105
  it "change it back to the equivalent local time" do
106
- ActiveSupport::TimeWithZone.demongoize(new_time).should eq(
106
+ expect(ActiveSupport::TimeWithZone.demongoize(new_time)).to eq(
107
107
  Time.zone.local(2010, 11, 19, 1, 30)
108
108
  )
109
109
  end
@@ -122,7 +122,7 @@ describe Mongoid::Extensions::TimeWithZone do
122
122
  end
123
123
 
124
124
  it "returns utc" do
125
- ActiveSupport::TimeWithZone.demongoize(time.dup.utc).utc_offset.should eq(0)
125
+ expect(ActiveSupport::TimeWithZone.demongoize(time.dup.utc).utc_offset).to eq(0)
126
126
  end
127
127
 
128
128
  context "when using the ActiveSupport time zone" do
@@ -142,13 +142,13 @@ describe Mongoid::Extensions::TimeWithZone do
142
142
  end
143
143
 
144
144
  it "returns utc" do
145
- ActiveSupport::TimeWithZone.demongoize(time).should eq(
145
+ expect(ActiveSupport::TimeWithZone.demongoize(time)).to eq(
146
146
  ActiveSupport::TimeZone['UTC'].local(2010, 11, 19, 0, 30)
147
147
  )
148
148
  end
149
149
 
150
150
  it "returns an ActiveSupport::TimeWithZone" do
151
- ActiveSupport::TimeWithZone.demongoize(time).class.should eq(
151
+ expect(ActiveSupport::TimeWithZone.demongoize(time).class).to eq(
152
152
  ActiveSupport::TimeWithZone
153
153
  )
154
154
  end
@@ -158,7 +158,7 @@ describe Mongoid::Extensions::TimeWithZone do
158
158
  context "when time is nil" do
159
159
 
160
160
  it "returns nil" do
161
- ActiveSupport::TimeWithZone.demongoize(nil).should be_nil
161
+ expect(ActiveSupport::TimeWithZone.demongoize(nil)).to be_nil
162
162
  end
163
163
  end
164
164
  end
@@ -172,14 +172,14 @@ describe Mongoid::Extensions::TimeWithZone do
172
172
  context "when given nil" do
173
173
 
174
174
  it "returns nil" do
175
- ActiveSupport::TimeWithZone.mongoize(nil).should be_nil
175
+ expect(ActiveSupport::TimeWithZone.mongoize(nil)).to be_nil
176
176
  end
177
177
  end
178
178
 
179
179
  context "when string is empty" do
180
180
 
181
181
  it "returns nil" do
182
- ActiveSupport::TimeWithZone.mongoize("").should be_nil
182
+ expect(ActiveSupport::TimeWithZone.mongoize("")).to be_nil
183
183
  end
184
184
  end
185
185
 
@@ -188,15 +188,15 @@ describe Mongoid::Extensions::TimeWithZone do
188
188
  context "when the string is a valid time" do
189
189
 
190
190
  it "converts to a utc time" do
191
- ActiveSupport::TimeWithZone.mongoize(time.to_s).utc_offset.should eq(0)
191
+ expect(ActiveSupport::TimeWithZone.mongoize(time.to_s).utc_offset).to eq(0)
192
192
  end
193
193
 
194
194
  it "serializes with time parsing" do
195
- ActiveSupport::TimeWithZone.mongoize(time.to_s).should eq(Time.parse(time.to_s).utc)
195
+ expect(ActiveSupport::TimeWithZone.mongoize(time.to_s)).to eq(Time.parse(time.to_s).utc)
196
196
  end
197
197
 
198
198
  it "returns a local date from the string" do
199
- ActiveSupport::TimeWithZone.mongoize(time.to_s).should eq(
199
+ expect(ActiveSupport::TimeWithZone.mongoize(time.to_s)).to eq(
200
200
  Time.local(time.year, time.month, time.day, time.hour, time.min, time.sec)
201
201
  )
202
202
  end
@@ -209,7 +209,7 @@ describe Mongoid::Extensions::TimeWithZone do
209
209
  end
210
210
 
211
211
  it "returns epoch" do
212
- ActiveSupport::TimeWithZone.mongoize("time").should eq(epoch)
212
+ expect(ActiveSupport::TimeWithZone.mongoize("time")).to eq(epoch)
213
213
  end
214
214
  end
215
215
 
@@ -229,7 +229,7 @@ describe Mongoid::Extensions::TimeWithZone do
229
229
  context "when the local time is not observing daylight saving" do
230
230
 
231
231
  it "returns the local time" do
232
- ActiveSupport::TimeWithZone.mongoize('2010-11-19 5:00:00').should eq(
232
+ expect(ActiveSupport::TimeWithZone.mongoize('2010-11-19 5:00:00')).to eq(
233
233
  Time.utc(2010, 11, 19, 4)
234
234
  )
235
235
  end
@@ -238,7 +238,7 @@ describe Mongoid::Extensions::TimeWithZone do
238
238
  context "when the local time is observing daylight saving" do
239
239
 
240
240
  it "returns the local time" do
241
- ActiveSupport::TimeWithZone.mongoize('2010-9-19 5:00:00').should eq(
241
+ expect(ActiveSupport::TimeWithZone.mongoize('2010-9-19 5:00:00')).to eq(
242
242
  Time.utc(2010, 9, 19, 3)
243
243
  )
244
244
  end
@@ -253,7 +253,7 @@ describe Mongoid::Extensions::TimeWithZone do
253
253
  end
254
254
 
255
255
  it "doesn't strip milli- or microseconds" do
256
- ActiveSupport::TimeWithZone.mongoize(time).to_f.round(4).should eq(
256
+ expect(ActiveSupport::TimeWithZone.mongoize(time).to_f.round(4)).to eq(
257
257
  time.to_f.round(4)
258
258
  )
259
259
  end
@@ -276,7 +276,7 @@ describe Mongoid::Extensions::TimeWithZone do
276
276
  end
277
277
 
278
278
  it "assumes the given time is local" do
279
- ActiveSupport::TimeWithZone.mongoize(datetime).should eq(
279
+ expect(ActiveSupport::TimeWithZone.mongoize(datetime)).to eq(
280
280
  Time.utc(2010, 11, 19)
281
281
  )
282
282
  end
@@ -286,19 +286,19 @@ describe Mongoid::Extensions::TimeWithZone do
286
286
  context "when given a Time" do
287
287
 
288
288
  it "converts to a utc time" do
289
- ActiveSupport::TimeWithZone.mongoize(time).utc_offset.should eq(0)
289
+ expect(ActiveSupport::TimeWithZone.mongoize(time).utc_offset).to eq(0)
290
290
  end
291
291
 
292
292
  it "returns utc times unchanged" do
293
- ActiveSupport::TimeWithZone.mongoize(time.utc).should eq(time.utc)
293
+ expect(ActiveSupport::TimeWithZone.mongoize(time.utc)).to eq(time.utc)
294
294
  end
295
295
 
296
296
  it "returns the time as utc" do
297
- ActiveSupport::TimeWithZone.mongoize(time).should eq(time.utc)
297
+ expect(ActiveSupport::TimeWithZone.mongoize(time)).to eq(time.utc)
298
298
  end
299
299
 
300
300
  it "doesn't strip milli- or microseconds" do
301
- ActiveSupport::TimeWithZone.mongoize(time).to_f.should eq(time.to_f)
301
+ expect(ActiveSupport::TimeWithZone.mongoize(time).to_f).to eq(time.to_f)
302
302
  end
303
303
  end
304
304
 
@@ -309,7 +309,7 @@ describe Mongoid::Extensions::TimeWithZone do
309
309
  end
310
310
 
311
311
  it "converts it to utc" do
312
- ActiveSupport::TimeWithZone.mongoize(time.in_time_zone("Alaska")).should eq(
312
+ expect(ActiveSupport::TimeWithZone.mongoize(time.in_time_zone("Alaska"))).to eq(
313
313
  Time.at(time.to_i).utc
314
314
  )
315
315
  end
@@ -322,11 +322,11 @@ describe Mongoid::Extensions::TimeWithZone do
322
322
  end
323
323
 
324
324
  it "converts to a utc time" do
325
- ActiveSupport::TimeWithZone.mongoize(date).should eq(Time.local(date.year, date.month, date.day))
325
+ expect(ActiveSupport::TimeWithZone.mongoize(date)).to eq(Time.local(date.year, date.month, date.day))
326
326
  end
327
327
 
328
328
  it "has a zero utc offset" do
329
- ActiveSupport::TimeWithZone.mongoize(date).utc_offset.should eq(0)
329
+ expect(ActiveSupport::TimeWithZone.mongoize(date).utc_offset).to eq(0)
330
330
  end
331
331
 
332
332
  context "when using the ActiveSupport time zone" do
@@ -347,7 +347,7 @@ describe Mongoid::Extensions::TimeWithZone do
347
347
  end
348
348
 
349
349
  it "assumes the given time is local" do
350
- ActiveSupport::TimeWithZone.mongoize(date).should eq(Time.utc(2010, 11, 18, 23))
350
+ expect(ActiveSupport::TimeWithZone.mongoize(date)).to eq(Time.utc(2010, 11, 18, 23))
351
351
  end
352
352
  end
353
353
  end
@@ -359,7 +359,7 @@ describe Mongoid::Extensions::TimeWithZone do
359
359
  end
360
360
 
361
361
  it "returns a time" do
362
- ActiveSupport::TimeWithZone.mongoize(array).should eq(Time.local(*array))
362
+ expect(ActiveSupport::TimeWithZone.mongoize(array)).to eq(Time.local(*array))
363
363
  end
364
364
 
365
365
  context "when using the ActiveSupport time zone" do
@@ -376,7 +376,7 @@ describe Mongoid::Extensions::TimeWithZone do
376
376
  end
377
377
 
378
378
  it "assumes the given time is local" do
379
- ActiveSupport::TimeWithZone.mongoize(array).should eq(
379
+ expect(ActiveSupport::TimeWithZone.mongoize(array)).to eq(
380
380
  Time.utc(2010, 11, 18, 23, 24, 49)
381
381
  )
382
382
  end
@@ -391,15 +391,15 @@ describe Mongoid::Extensions::TimeWithZone do
391
391
  end
392
392
 
393
393
  it "converts to a utc time" do
394
- time.mongoize.utc_offset.should eq(0)
394
+ expect(time.mongoize.utc_offset).to eq(0)
395
395
  end
396
396
 
397
397
  it "returns the time as utc" do
398
- time.mongoize.should eq(time.utc)
398
+ expect(time.mongoize).to eq(time.utc)
399
399
  end
400
400
 
401
401
  it "doesn't strip milli- or microseconds" do
402
- time.mongoize.to_f.should eq(time.to_f)
402
+ expect(time.mongoize.to_f).to eq(time.to_f)
403
403
  end
404
404
  end
405
405
  end