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
@@ -23,7 +23,7 @@ describe Mongoid::Relations::Embedded::One do
23
23
  context "when the proxied document is same class" do
24
24
 
25
25
  it "returns true" do
26
- (relation === Name.new).should be_true
26
+ expect((relation === Name.new)).to be true
27
27
  end
28
28
  end
29
29
  end
@@ -47,19 +47,19 @@ describe Mongoid::Relations::Embedded::One do
47
47
  end
48
48
 
49
49
  it "sets the target of the relation" do
50
- person.name.should eq(name)
50
+ expect(person.name).to eq(name)
51
51
  end
52
52
 
53
53
  it "sets the base on the inverse relation" do
54
- name.namable.should eq(person)
54
+ expect(name.namable).to eq(person)
55
55
  end
56
56
 
57
57
  it "sets the same instance on the inverse relation" do
58
- name.namable.should eql(person)
58
+ expect(name.namable).to eql(person)
59
59
  end
60
60
 
61
61
  it "does not save the target" do
62
- name.should_not be_persisted
62
+ expect(name).to_not be_persisted
63
63
  end
64
64
 
65
65
  context "with overwritten getter" do
@@ -76,7 +76,7 @@ describe Mongoid::Relations::Embedded::One do
76
76
 
77
77
  it "sets the target without an invinite recursion" do
78
78
  person.name = name
79
- person.name.should be_present
79
+ expect(person.name).to be_present
80
80
  end
81
81
  end
82
82
  end
@@ -102,19 +102,19 @@ describe Mongoid::Relations::Embedded::One do
102
102
  end
103
103
 
104
104
  it "sets the target of the relation" do
105
- person.name.should eq(child_name)
105
+ expect(person.name).to eq(child_name)
106
106
  end
107
107
 
108
108
  it "sets the base on the inverse relation" do
109
- child_name.namable.should eq(person)
109
+ expect(child_name.namable).to eq(person)
110
110
  end
111
111
 
112
112
  it "sets the same instance on the inverse relation" do
113
- child_name.namable.should eql(person)
113
+ expect(child_name.namable).to eql(person)
114
114
  end
115
115
 
116
116
  it "saves the target" do
117
- child_name.should be_persisted
117
+ expect(child_name).to be_persisted
118
118
  end
119
119
 
120
120
  context "when replacing a relation with a hash" do
@@ -124,7 +124,7 @@ describe Mongoid::Relations::Embedded::One do
124
124
  end
125
125
 
126
126
  it "sets the relation with the proper object" do
127
- person.name.should be_a(Name)
127
+ expect(person.name).to be_a(Name)
128
128
  end
129
129
  end
130
130
  end
@@ -137,11 +137,11 @@ describe Mongoid::Relations::Embedded::One do
137
137
  end
138
138
 
139
139
  it "does not change the relation" do
140
- person.name.should eq(name)
140
+ expect(person.name).to eq(name)
141
141
  end
142
142
 
143
143
  it "does not persist any change" do
144
- person.reload.name.should eq(name)
144
+ expect(person.reload.name).to eq(name)
145
145
  end
146
146
  end
147
147
 
@@ -152,19 +152,19 @@ describe Mongoid::Relations::Embedded::One do
152
152
  end
153
153
 
154
154
  it "sets the target of the relation" do
155
- person.name.should eq(name)
155
+ expect(person.name).to eq(name)
156
156
  end
157
157
 
158
158
  it "sets the base on the inverse relation" do
159
- name.namable.should eq(person)
159
+ expect(name.namable).to eq(person)
160
160
  end
161
161
 
162
162
  it "sets the same instance on the inverse relation" do
163
- name.namable.should eql(person)
163
+ expect(name.namable).to eql(person)
164
164
  end
165
165
 
166
166
  it "saves the target" do
167
- name.should be_persisted
167
+ expect(name).to be_persisted
168
168
  end
169
169
 
170
170
  context "when replacing an exising document" do
@@ -187,7 +187,7 @@ describe Mongoid::Relations::Embedded::One do
187
187
  end
188
188
 
189
189
  it "runs the destroy callbacks on the old document" do
190
- pet_one.destroy_flag.should be_true
190
+ expect(pet_one.destroy_flag).to be true
191
191
  end
192
192
  end
193
193
  end
@@ -199,11 +199,11 @@ describe Mongoid::Relations::Embedded::One do
199
199
  end
200
200
 
201
201
  it "sets the target of the relation" do
202
- person.name.should eq(name)
202
+ expect(person.name).to eq(name)
203
203
  end
204
204
 
205
205
  it "does not save the target" do
206
- name.should_not be_persisted
206
+ expect(name).to_not be_persisted
207
207
  end
208
208
  end
209
209
  end
@@ -226,19 +226,19 @@ describe Mongoid::Relations::Embedded::One do
226
226
  end
227
227
 
228
228
  it "sets the target of the relation" do
229
- parent_shelf.child_shelf.should eq(child_shelf)
229
+ expect(parent_shelf.child_shelf).to eq(child_shelf)
230
230
  end
231
231
 
232
232
  it "sets the base on the inverse relation" do
233
- child_shelf.parent_shelf.should eq(parent_shelf)
233
+ expect(child_shelf.parent_shelf).to eq(parent_shelf)
234
234
  end
235
235
 
236
236
  it "sets the same instance on the inverse relation" do
237
- child_shelf.parent_shelf.should eql(parent_shelf)
237
+ expect(child_shelf.parent_shelf).to eql(parent_shelf)
238
238
  end
239
239
 
240
240
  it "does not save the target" do
241
- child_shelf.should_not be_persisted
241
+ expect(child_shelf).to_not be_persisted
242
242
  end
243
243
  end
244
244
 
@@ -257,19 +257,19 @@ describe Mongoid::Relations::Embedded::One do
257
257
  end
258
258
 
259
259
  it "sets the target of the relation" do
260
- parent_shelf.child_shelf.should eq(child_shelf)
260
+ expect(parent_shelf.child_shelf).to eq(child_shelf)
261
261
  end
262
262
 
263
263
  it "sets the base on the inverse relation" do
264
- child_shelf.parent_shelf.should eq(parent_shelf)
264
+ expect(child_shelf.parent_shelf).to eq(parent_shelf)
265
265
  end
266
266
 
267
267
  it "sets the same instance on the inverse relation" do
268
- child_shelf.parent_shelf.should eql(parent_shelf)
268
+ expect(child_shelf.parent_shelf).to eql(parent_shelf)
269
269
  end
270
270
 
271
271
  it "saves the target" do
272
- child_shelf.should be_persisted
272
+ expect(child_shelf).to be_persisted
273
273
  end
274
274
  end
275
275
  end
@@ -287,7 +287,7 @@ describe Mongoid::Relations::Embedded::One do
287
287
  end
288
288
 
289
289
  it "saves the child document" do
290
- parent.first_child.should be_a(Child)
290
+ expect(parent.first_child).to be_a(Child)
291
291
  end
292
292
  end
293
293
  end
@@ -312,11 +312,11 @@ describe Mongoid::Relations::Embedded::One do
312
312
  end
313
313
 
314
314
  it "sets the relation to nil" do
315
- person.name.should be_nil
315
+ expect(person.name).to be_nil
316
316
  end
317
317
 
318
318
  it "removes the inverse relation" do
319
- name.namable.should be_nil
319
+ expect(name.namable).to be_nil
320
320
  end
321
321
  end
322
322
 
@@ -331,7 +331,7 @@ describe Mongoid::Relations::Embedded::One do
331
331
  end
332
332
 
333
333
  it "sets the relation to nil" do
334
- person.name.should be_nil
334
+ expect(person.name).to be_nil
335
335
  end
336
336
  end
337
337
 
@@ -353,15 +353,15 @@ describe Mongoid::Relations::Embedded::One do
353
353
  end
354
354
 
355
355
  it "sets the relation to nil" do
356
- person.name.should be_nil
356
+ expect(person.name).to be_nil
357
357
  end
358
358
 
359
359
  it "removed the inverse relation" do
360
- name.namable.should be_nil
360
+ expect(name.namable).to be_nil
361
361
  end
362
362
 
363
363
  it "deletes the child document" do
364
- name.should be_destroyed
364
+ expect(name).to be_destroyed
365
365
  end
366
366
  end
367
367
 
@@ -373,11 +373,11 @@ describe Mongoid::Relations::Embedded::One do
373
373
  end
374
374
 
375
375
  it "sets the relation to nil" do
376
- person.name.should be_nil
376
+ expect(person.name).to be_nil
377
377
  end
378
378
 
379
379
  it "does not delete the child document" do
380
- name.should_not be_destroyed
380
+ expect(name).to_not be_destroyed
381
381
  end
382
382
  end
383
383
  end
@@ -401,11 +401,11 @@ describe Mongoid::Relations::Embedded::One do
401
401
  end
402
402
 
403
403
  it "sets the relation to nil" do
404
- parent_shelf.child_shelf.should be_nil
404
+ expect(parent_shelf.child_shelf).to be_nil
405
405
  end
406
406
 
407
407
  it "removes the inverse relation" do
408
- child_shelf.parent_shelf.should be_nil
408
+ expect(child_shelf.parent_shelf).to be_nil
409
409
  end
410
410
  end
411
411
 
@@ -420,7 +420,7 @@ describe Mongoid::Relations::Embedded::One do
420
420
  end
421
421
 
422
422
  it "sets the relation to nil" do
423
- parent_shelf.child_shelf.should be_nil
423
+ expect(parent_shelf.child_shelf).to be_nil
424
424
  end
425
425
  end
426
426
 
@@ -440,15 +440,15 @@ describe Mongoid::Relations::Embedded::One do
440
440
  end
441
441
 
442
442
  it "sets the relation to nil" do
443
- parent_shelf.child_shelf.should be_nil
443
+ expect(parent_shelf.child_shelf).to be_nil
444
444
  end
445
445
 
446
446
  it "removed the inverse relation" do
447
- child_shelf.parent_shelf.should be_nil
447
+ expect(child_shelf.parent_shelf).to be_nil
448
448
  end
449
449
 
450
450
  it "deletes the child document" do
451
- child_shelf.should be_destroyed
451
+ expect(child_shelf).to be_destroyed
452
452
  end
453
453
  end
454
454
  end
@@ -456,27 +456,6 @@ describe Mongoid::Relations::Embedded::One do
456
456
 
457
457
  describe "#build_#\{name}" do
458
458
 
459
- context "when providing mass assignment scoping" do
460
-
461
- let(:person) do
462
- Person.new
463
- end
464
-
465
- let(:quiz) do
466
- person.build_quiz(
467
- { topic: "Testing", name: "Test" }, as: :admin
468
- )
469
- end
470
-
471
- it "sets the attributes for the role" do
472
- quiz.topic.should eq("Testing")
473
- end
474
-
475
- it "does not set attributes not for the role" do
476
- quiz.name.should be_nil
477
- end
478
- end
479
-
480
459
  context "when the relation is not cyclic" do
481
460
 
482
461
  context "when the parent is a new record" do
@@ -494,19 +473,19 @@ describe Mongoid::Relations::Embedded::One do
494
473
  end
495
474
 
496
475
  it "sets the target of the relation" do
497
- person.name.should eq(name)
476
+ expect(person.name).to eq(name)
498
477
  end
499
478
 
500
479
  it "sets the base on the inverse relation" do
501
- name.namable.should eq(person)
480
+ expect(name.namable).to eq(person)
502
481
  end
503
482
 
504
483
  it "sets no attributes" do
505
- name.first_name.should be_nil
484
+ expect(name.first_name).to be_nil
506
485
  end
507
486
 
508
487
  it "does not save the target" do
509
- name.should_not be_persisted
488
+ expect(name).to_not be_persisted
510
489
  end
511
490
  end
512
491
 
@@ -522,19 +501,19 @@ describe Mongoid::Relations::Embedded::One do
522
501
  end
523
502
 
524
503
  it "sets the target of the relation" do
525
- person.name.should eq(name)
504
+ expect(person.name).to eq(name)
526
505
  end
527
506
 
528
507
  it "sets the base on the inverse relation" do
529
- name.namable.should eq(person)
508
+ expect(name.namable).to eq(person)
530
509
  end
531
510
 
532
511
  it "sets no attributes" do
533
- name.first_name.should be_nil
512
+ expect(name.first_name).to be_nil
534
513
  end
535
514
 
536
515
  it "does not save the target" do
537
- name.should_not be_persisted
516
+ expect(name).to_not be_persisted
538
517
  end
539
518
  end
540
519
  end
@@ -550,19 +529,19 @@ describe Mongoid::Relations::Embedded::One do
550
529
  end
551
530
 
552
531
  it "sets the target of the relation" do
553
- person.name.should eq(name)
532
+ expect(person.name).to eq(name)
554
533
  end
555
534
 
556
535
  it "sets the base on the inverse relation" do
557
- name.namable.should eq(person)
536
+ expect(name.namable).to eq(person)
558
537
  end
559
538
 
560
539
  it "sets no attributes" do
561
- name.first_name.should be_nil
540
+ expect(name.first_name).to be_nil
562
541
  end
563
542
 
564
543
  it "does not save the target" do
565
- name.should_not be_persisted
544
+ expect(name).to_not be_persisted
566
545
  end
567
546
  end
568
547
 
@@ -577,19 +556,19 @@ describe Mongoid::Relations::Embedded::One do
577
556
  end
578
557
 
579
558
  it "sets the target of the relation" do
580
- person.name.should eq(name)
559
+ expect(person.name).to eq(name)
581
560
  end
582
561
 
583
562
  it "sets the base on the inverse relation" do
584
- name.namable.should eq(person)
563
+ expect(name.namable).to eq(person)
585
564
  end
586
565
 
587
566
  it "sets the attributes" do
588
- name.first_name.should eq("James")
567
+ expect(name.first_name).to eq("James")
589
568
  end
590
569
 
591
570
  it "does not save the target" do
592
- name.should_not be_persisted
571
+ expect(name).to_not be_persisted
593
572
  end
594
573
  end
595
574
  end
@@ -605,7 +584,7 @@ describe Mongoid::Relations::Embedded::One do
605
584
  end
606
585
 
607
586
  it "does not save the target" do
608
- name.should_not be_persisted
587
+ expect(name).to_not be_persisted
609
588
  end
610
589
  end
611
590
  end
@@ -623,19 +602,19 @@ describe Mongoid::Relations::Embedded::One do
623
602
  end
624
603
 
625
604
  it "sets the target of the relation" do
626
- parent_shelf.child_shelf.should eq(child_shelf)
605
+ expect(parent_shelf.child_shelf).to eq(child_shelf)
627
606
  end
628
607
 
629
608
  it "sets the base on the inverse relation" do
630
- child_shelf.parent_shelf.should eq(parent_shelf)
609
+ expect(child_shelf.parent_shelf).to eq(parent_shelf)
631
610
  end
632
611
 
633
612
  it "sets the attributes" do
634
- child_shelf.level.should eq(1)
613
+ expect(child_shelf.level).to eq(1)
635
614
  end
636
615
 
637
616
  it "does not save the target" do
638
- child_shelf.should_not be_persisted
617
+ expect(child_shelf).to_not be_persisted
639
618
  end
640
619
  end
641
620
 
@@ -650,7 +629,7 @@ describe Mongoid::Relations::Embedded::One do
650
629
  end
651
630
 
652
631
  it "does not save the target" do
653
- child_shelf.should_not be_persisted
632
+ expect(child_shelf).to_not be_persisted
654
633
  end
655
634
  end
656
635
  end
@@ -675,33 +654,12 @@ describe Mongoid::Relations::Embedded::One do
675
654
  end
676
655
 
677
656
  it "returns the embedded one builder" do
678
- described_class.builder(base, metadata, target).should be_a(builder_klass)
657
+ expect(described_class.builder(base, metadata, target)).to be_a(builder_klass)
679
658
  end
680
659
  end
681
660
 
682
661
  describe "#create_#\{name}" do
683
662
 
684
- context "when providing mass assignment scoping" do
685
-
686
- let(:person) do
687
- Person.new
688
- end
689
-
690
- let(:quiz) do
691
- person.create_quiz(
692
- { topic: "Testing", name: "Test" }, as: :admin
693
- )
694
- end
695
-
696
- it "sets the attributes for the role" do
697
- quiz.topic.should eq("Testing")
698
- end
699
-
700
- it "does not set attributes not for the role" do
701
- quiz.name.should be_nil
702
- end
703
- end
704
-
705
663
  context "when the parent is a new record" do
706
664
 
707
665
  context "when not providing any attributes" do
@@ -715,19 +673,19 @@ describe Mongoid::Relations::Embedded::One do
715
673
  end
716
674
 
717
675
  it "sets the target of the relation" do
718
- person.name.should eq(name)
676
+ expect(person.name).to eq(name)
719
677
  end
720
678
 
721
679
  it "sets the base on the inverse relation" do
722
- name.namable.should eq(person)
680
+ expect(name.namable).to eq(person)
723
681
  end
724
682
 
725
683
  it "sets no attributes" do
726
- name.first_name.should be_nil
684
+ expect(name.first_name).to be_nil
727
685
  end
728
686
 
729
687
  it "saves the target" do
730
- name.should be_persisted
688
+ expect(name).to be_persisted
731
689
  end
732
690
  end
733
691
 
@@ -742,19 +700,19 @@ describe Mongoid::Relations::Embedded::One do
742
700
  end
743
701
 
744
702
  it "sets the target of the relation" do
745
- person.name.should eq(name)
703
+ expect(person.name).to eq(name)
746
704
  end
747
705
 
748
706
  it "sets the base on the inverse relation" do
749
- name.namable.should eq(person)
707
+ expect(name.namable).to eq(person)
750
708
  end
751
709
 
752
710
  it "sets no attributes" do
753
- name.first_name.should be_nil
711
+ expect(name.first_name).to be_nil
754
712
  end
755
713
 
756
714
  it "saves the target" do
757
- name.should be_persisted
715
+ expect(name).to be_persisted
758
716
  end
759
717
  end
760
718
 
@@ -769,19 +727,19 @@ describe Mongoid::Relations::Embedded::One do
769
727
  end
770
728
 
771
729
  it "sets the target of the relation" do
772
- person.name.should eq(name)
730
+ expect(person.name).to eq(name)
773
731
  end
774
732
 
775
733
  it "sets the base on the inverse relation" do
776
- name.namable.should eq(person)
734
+ expect(name.namable).to eq(person)
777
735
  end
778
736
 
779
737
  it "sets the attributes" do
780
- name.first_name.should eq("James")
738
+ expect(name.first_name).to eq("James")
781
739
  end
782
740
 
783
741
  it "saves the target" do
784
- name.should be_persisted
742
+ expect(name).to be_persisted
785
743
  end
786
744
  end
787
745
 
@@ -796,7 +754,7 @@ describe Mongoid::Relations::Embedded::One do
796
754
  end
797
755
 
798
756
  it "does not save the target" do
799
- name.should be_persisted
757
+ expect(name).to be_persisted
800
758
  end
801
759
  end
802
760
  end
@@ -805,21 +763,21 @@ describe Mongoid::Relations::Embedded::One do
805
763
  describe ".embedded?" do
806
764
 
807
765
  it "returns true" do
808
- described_class.should be_embedded
766
+ expect(described_class).to be_embedded
809
767
  end
810
768
  end
811
769
 
812
770
  describe ".foreign_key_suffix" do
813
771
 
814
772
  it "returns nil" do
815
- described_class.foreign_key_suffix.should be_nil
773
+ expect(described_class.foreign_key_suffix).to be_nil
816
774
  end
817
775
  end
818
776
 
819
777
  describe ".macro" do
820
778
 
821
779
  it "returns embeds_one" do
822
- described_class.macro.should eq(:embeds_one)
780
+ expect(described_class.macro).to eq(:embeds_one)
823
781
  end
824
782
  end
825
783
 
@@ -838,8 +796,9 @@ describe Mongoid::Relations::Embedded::One do
838
796
  end
839
797
 
840
798
  it "returns the single nested builder" do
841
- described_class.nested_builder(metadata, attributes, {}).should
842
- be_a(nested_builder_klass)
799
+ expect(
800
+ described_class.nested_builder(metadata, attributes, {})
801
+ ).to be_a(nested_builder_klass)
843
802
  end
844
803
  end
845
804
 
@@ -862,20 +821,20 @@ describe Mongoid::Relations::Embedded::One do
862
821
  context "when checking #{method}" do
863
822
 
864
823
  it "returns true" do
865
- document.respond_to?(method).should be_true
824
+ expect(document.respond_to?(method)).to be true
866
825
  end
867
826
  end
868
827
  end
869
828
 
870
829
  it "responds to persisted?" do
871
- document.should respond_to(:persisted?)
830
+ expect(document).to respond_to(:persisted?)
872
831
  end
873
832
  end
874
833
 
875
834
  describe ".valid_options" do
876
835
 
877
836
  it "returns the valid options" do
878
- described_class.valid_options.should eq(
837
+ expect(described_class.valid_options).to eq(
879
838
  [ :autobuild, :as, :cascade_callbacks, :cyclic, :store_as ]
880
839
  )
881
840
  end
@@ -884,7 +843,7 @@ describe Mongoid::Relations::Embedded::One do
884
843
  describe ".validation_default" do
885
844
 
886
845
  it "returns true" do
887
- described_class.validation_default.should be_true
846
+ expect(described_class.validation_default).to be true
888
847
  end
889
848
  end
890
849
 
@@ -914,11 +873,11 @@ describe Mongoid::Relations::Embedded::One do
914
873
  end
915
874
 
916
875
  it "sets the values of the array" do
917
- from_db.aliases.should eq([ "Syd", "Sydney" ])
876
+ expect(from_db.aliases).to eq([ "Syd", "Sydney" ])
918
877
  end
919
878
 
920
879
  it "persists the array" do
921
- Person.find(person.id).name.aliases.should eq([ "Syd", "Sydney" ])
880
+ expect(Person.find(person.id).name.aliases).to eq([ "Syd", "Sydney" ])
922
881
  end
923
882
  end
924
883
  end
@@ -956,7 +915,7 @@ describe Mongoid::Relations::Embedded::One do
956
915
  end
957
916
 
958
917
  it "persists the new document on the first save" do
959
- from_db.reload.name.translations.should_not be_empty
918
+ expect(from_db.reload.name.translations).to_not be_empty
960
919
  end
961
920
  end
962
921
  end
@@ -986,7 +945,7 @@ describe Mongoid::Relations::Embedded::One do
986
945
  end
987
946
 
988
947
  it "reloads the correct number" do
989
- person.reload.addresses.count.should eq(1)
948
+ expect(person.reload.addresses.count).to eq(1)
990
949
  end
991
950
 
992
951
  context "when adding a child" do
@@ -1000,7 +959,7 @@ describe Mongoid::Relations::Embedded::One do
1000
959
  end
1001
960
 
1002
961
  it "reloads the correct number" do
1003
- person.reload.addresses.count.should eq(1)
962
+ expect(person.reload.addresses.count).to eq(1)
1004
963
  end
1005
964
  end
1006
965
  end
@@ -1029,11 +988,11 @@ describe Mongoid::Relations::Embedded::One do
1029
988
  end
1030
989
 
1031
990
  it "creates proper documents from the db" do
1032
- label.name.should eq("Mute")
991
+ expect(label.name).to eq("Mute")
1033
992
  end
1034
993
 
1035
994
  it "assigns ids to the documents" do
1036
- label.id.should_not be_nil
995
+ expect(label.id).to_not be_nil
1037
996
  end
1038
997
 
1039
998
  context "when subsequently updating the documents" do
@@ -1043,11 +1002,11 @@ describe Mongoid::Relations::Embedded::One do
1043
1002
  end
1044
1003
 
1045
1004
  it "updates the document" do
1046
- label.name.should eq("Interscope")
1005
+ expect(label.name).to eq("Interscope")
1047
1006
  end
1048
1007
 
1049
1008
  it "persists the change" do
1050
- label.reload.name.should eq("Interscope")
1009
+ expect(label.reload.name).to eq("Interscope")
1051
1010
  end
1052
1011
  end
1053
1012
  end