mongoid 3.1.7 → 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 (567) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +470 -9
  3. data/README.md +10 -7
  4. data/lib/config/locales/en.yml +34 -20
  5. data/lib/mongoid/atomic/paths/embedded/many.rb +1 -1
  6. data/lib/mongoid/atomic/paths/embedded/one.rb +1 -1
  7. data/lib/mongoid/atomic/paths/embedded.rb +0 -30
  8. data/lib/mongoid/atomic/paths/root.rb +0 -13
  9. data/lib/mongoid/atomic.rb +3 -14
  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/attributes.rb +63 -99
  14. data/lib/mongoid/{dirty.rb → changeable.rb} +32 -2
  15. data/lib/mongoid/composable.rb +105 -0
  16. data/lib/mongoid/config/options.rb +1 -1
  17. data/lib/mongoid/config.rb +3 -9
  18. data/lib/mongoid/contextual/aggregable/memory.rb +2 -2
  19. data/lib/mongoid/contextual/aggregable/mongo.rb +5 -9
  20. data/lib/mongoid/contextual/atomic.rb +53 -53
  21. data/lib/mongoid/contextual/geo_near.rb +1 -1
  22. data/lib/mongoid/contextual/map_reduce.rb +4 -2
  23. data/lib/mongoid/contextual/memory.rb +23 -11
  24. data/lib/mongoid/contextual/mongo.rb +75 -57
  25. data/lib/mongoid/contextual/none.rb +90 -0
  26. data/lib/mongoid/contextual/text_search.rb +178 -0
  27. data/lib/mongoid/contextual.rb +2 -0
  28. data/lib/mongoid/copyable.rb +2 -3
  29. data/lib/mongoid/{criterion → criteria}/findable.rb +7 -47
  30. data/lib/mongoid/{criterion/inspection.rb → criteria/inspectable.rb} +2 -2
  31. data/lib/mongoid/{criterion → criteria}/marshalable.rb +3 -1
  32. data/lib/mongoid/{criterion → criteria}/modifiable.rb +28 -8
  33. data/lib/mongoid/criteria/permission.rb +70 -0
  34. data/lib/mongoid/{criterion/scoping.rb → criteria/scopable.rb} +2 -2
  35. data/lib/mongoid/criteria.rb +39 -34
  36. data/lib/mongoid/document.rb +39 -24
  37. data/lib/mongoid/errors/document_not_destroyed.rb +25 -0
  38. data/lib/mongoid/errors/document_not_found.rb +2 -1
  39. data/lib/mongoid/errors/invalid_storage_options.rb +1 -1
  40. data/lib/mongoid/errors/invalid_storage_parent.rb +26 -0
  41. data/lib/mongoid/errors/invalid_value.rb +16 -0
  42. data/lib/mongoid/errors/mongoid_error.rb +1 -1
  43. data/lib/mongoid/errors/readonly_document.rb +24 -0
  44. data/lib/mongoid/errors.rb +4 -1
  45. data/lib/mongoid/extensions/array.rb +3 -3
  46. data/lib/mongoid/extensions/big_decimal.rb +1 -1
  47. data/lib/mongoid/extensions/boolean.rb +15 -17
  48. data/lib/mongoid/extensions/date.rb +1 -1
  49. data/lib/mongoid/extensions/date_time.rb +3 -3
  50. data/lib/mongoid/extensions/float.rb +2 -1
  51. data/lib/mongoid/extensions/hash.rb +3 -3
  52. data/lib/mongoid/extensions/integer.rb +1 -1
  53. data/lib/mongoid/extensions/object.rb +7 -7
  54. data/lib/mongoid/extensions/object_id.rb +5 -5
  55. data/lib/mongoid/extensions/range.rb +9 -3
  56. data/lib/mongoid/extensions/regexp.rb +1 -1
  57. data/lib/mongoid/extensions/set.rb +1 -1
  58. data/lib/mongoid/extensions/string.rb +6 -18
  59. data/lib/mongoid/extensions/symbol.rb +1 -1
  60. data/lib/mongoid/extensions/time.rb +3 -3
  61. data/lib/mongoid/extensions/time_with_zone.rb +1 -1
  62. data/lib/mongoid/extensions.rb +15 -7
  63. data/lib/mongoid/factory.rb +8 -6
  64. data/lib/mongoid/fields/foreign_key.rb +3 -3
  65. data/lib/mongoid/fields/localized.rb +1 -1
  66. data/lib/mongoid/fields/standard.rb +5 -17
  67. data/lib/mongoid/fields/validators/macro.rb +15 -5
  68. data/lib/mongoid/fields.rb +41 -8
  69. data/lib/mongoid/{finders.rb → findable.rb} +35 -7
  70. data/lib/mongoid/indexable/specification.rb +104 -0
  71. data/lib/mongoid/{indexes → indexable}/validators/options.rb +2 -1
  72. data/lib/mongoid/{indexes.rb → indexable.rb} +50 -55
  73. data/lib/mongoid/{inspection.rb → inspectable.rb} +15 -11
  74. data/lib/mongoid/{callbacks.rb → interceptable.rb} +30 -62
  75. data/lib/mongoid/log_subscriber.rb +55 -0
  76. data/lib/mongoid/{matchers → matchable}/all.rb +1 -1
  77. data/lib/mongoid/{matchers → matchable}/and.rb +2 -2
  78. data/lib/mongoid/{matchers → matchable}/default.rb +1 -1
  79. data/lib/mongoid/{matchers → matchable}/exists.rb +1 -1
  80. data/lib/mongoid/{matchers → matchable}/gt.rb +1 -1
  81. data/lib/mongoid/{matchers → matchable}/gte.rb +1 -1
  82. data/lib/mongoid/{matchers → matchable}/in.rb +2 -2
  83. data/lib/mongoid/{matchers → matchable}/lt.rb +1 -1
  84. data/lib/mongoid/{matchers → matchable}/lte.rb +1 -1
  85. data/lib/mongoid/{matchers → matchable}/ne.rb +1 -1
  86. data/lib/mongoid/{matchers → matchable}/nin.rb +3 -2
  87. data/lib/mongoid/{matchers → matchable}/or.rb +2 -2
  88. data/lib/mongoid/{matchers → matchable}/size.rb +1 -1
  89. data/lib/mongoid/matchable.rb +152 -0
  90. data/lib/mongoid/persistable/creatable.rb +189 -0
  91. data/lib/mongoid/persistable/deletable.rb +149 -0
  92. data/lib/mongoid/persistable/destroyable.rb +60 -0
  93. data/lib/mongoid/persistable/incrementable.rb +36 -0
  94. data/lib/mongoid/persistable/logical.rb +38 -0
  95. data/lib/mongoid/persistable/poppable.rb +39 -0
  96. data/lib/mongoid/persistable/pullable.rb +55 -0
  97. data/lib/mongoid/persistable/pushable.rb +62 -0
  98. data/lib/mongoid/persistable/renamable.rb +35 -0
  99. data/lib/mongoid/persistable/savable.rb +52 -0
  100. data/lib/mongoid/persistable/settable.rb +33 -0
  101. data/lib/mongoid/persistable/unsettable.rb +36 -0
  102. data/lib/mongoid/persistable/updatable.rb +153 -0
  103. data/lib/mongoid/persistable/upsertable.rb +55 -0
  104. data/lib/mongoid/persistable.rb +216 -0
  105. data/lib/mongoid/positional.rb +71 -0
  106. data/lib/mongoid/query_cache.rb +255 -0
  107. data/lib/mongoid/railtie.rb +34 -60
  108. data/lib/mongoid/railties/database.rake +9 -25
  109. data/lib/mongoid/relations/accessors.rb +15 -51
  110. data/lib/mongoid/relations/auto_save.rb +15 -36
  111. data/lib/mongoid/relations/binding.rb +2 -25
  112. data/lib/mongoid/relations/bindings/embedded/in.rb +1 -1
  113. data/lib/mongoid/relations/bindings/embedded/many.rb +1 -3
  114. data/lib/mongoid/relations/bindings/referenced/in.rb +3 -8
  115. data/lib/mongoid/relations/bindings/referenced/many_to_many.rb +4 -2
  116. data/lib/mongoid/relations/builder.rb +1 -1
  117. data/lib/mongoid/relations/builders/embedded/one.rb +1 -1
  118. data/lib/mongoid/relations/builders/nested_attributes/many.rb +10 -13
  119. data/lib/mongoid/relations/builders/nested_attributes/one.rb +5 -6
  120. data/lib/mongoid/relations/builders/referenced/in.rb +1 -1
  121. data/lib/mongoid/relations/builders/referenced/many.rb +1 -2
  122. data/lib/mongoid/relations/builders/referenced/many_to_many.rb +1 -2
  123. data/lib/mongoid/relations/builders/referenced/one.rb +1 -1
  124. data/lib/mongoid/relations/builders.rb +2 -2
  125. data/lib/mongoid/relations/cascading.rb +3 -5
  126. data/lib/mongoid/relations/constraint.rb +1 -1
  127. data/lib/mongoid/relations/conversions.rb +1 -1
  128. data/lib/mongoid/relations/counter_cache.rb +39 -15
  129. data/lib/mongoid/relations/eager/base.rb +149 -0
  130. data/lib/mongoid/relations/eager/belongs_to.rb +31 -0
  131. data/lib/mongoid/relations/eager/has_and_belongs_to_many.rb +47 -0
  132. data/lib/mongoid/relations/eager/has_many.rb +38 -0
  133. data/lib/mongoid/relations/eager/has_one.rb +30 -0
  134. data/lib/mongoid/relations/eager.rb +46 -0
  135. data/lib/mongoid/relations/embedded/batchable.rb +4 -5
  136. data/lib/mongoid/relations/embedded/in.rb +4 -4
  137. data/lib/mongoid/relations/embedded/many.rb +14 -32
  138. data/lib/mongoid/relations/embedded/one.rb +1 -1
  139. data/lib/mongoid/relations/macros.rb +3 -4
  140. data/lib/mongoid/relations/many.rb +51 -31
  141. data/lib/mongoid/relations/marshalable.rb +3 -3
  142. data/lib/mongoid/relations/metadata.rb +14 -79
  143. data/lib/mongoid/relations/nested_builder.rb +2 -2
  144. data/lib/mongoid/relations/one.rb +1 -1
  145. data/lib/mongoid/relations/options.rb +1 -0
  146. data/lib/mongoid/relations/polymorphic.rb +0 -1
  147. data/lib/mongoid/relations/proxy.rb +21 -41
  148. data/lib/mongoid/relations/referenced/in.rb +4 -20
  149. data/lib/mongoid/relations/referenced/many.rb +22 -35
  150. data/lib/mongoid/relations/referenced/many_to_many.rb +19 -42
  151. data/lib/mongoid/relations/referenced/one.rb +6 -25
  152. data/lib/mongoid/relations/synchronization.rb +4 -4
  153. data/lib/mongoid/relations/targets/enumerable.rb +10 -10
  154. data/lib/mongoid/relations/touchable.rb +34 -1
  155. data/lib/mongoid/relations.rb +11 -25
  156. data/lib/mongoid/{reloading.rb → reloadable.rb} +7 -5
  157. data/lib/mongoid/{scoping.rb → scopable.rb} +36 -36
  158. data/lib/mongoid/selectable.rb +59 -0
  159. data/lib/mongoid/{serialization.rb → serializable.rb} +11 -2
  160. data/lib/mongoid/sessions/factory.rb +2 -0
  161. data/lib/mongoid/sessions/options.rb +185 -0
  162. data/lib/mongoid/sessions/storage_options.rb +140 -0
  163. data/lib/mongoid/sessions/thread_options.rb +19 -0
  164. data/lib/mongoid/sessions/validators/storage.rb +16 -3
  165. data/lib/mongoid/sessions.rb +37 -345
  166. data/lib/mongoid/{sharding.rb → shardable.rb} +5 -1
  167. data/lib/mongoid/{state.rb → stateful.rb} +13 -1
  168. data/lib/mongoid/support/query_counter.rb +23 -0
  169. data/lib/mongoid/tasks/database.rake +31 -0
  170. data/lib/mongoid/tasks/database.rb +107 -0
  171. data/lib/mongoid/threaded/lifecycle.rb +0 -28
  172. data/lib/mongoid/threaded.rb +26 -172
  173. data/lib/mongoid/timestamps/updated/short.rb +2 -2
  174. data/lib/mongoid/{hierarchy.rb → traversable.rb} +15 -7
  175. data/lib/mongoid/{validations → validatable}/associated.rb +4 -2
  176. data/lib/mongoid/{validations → validatable}/format.rb +1 -1
  177. data/lib/mongoid/{validations → validatable}/length.rb +1 -1
  178. data/lib/mongoid/{validations → validatable}/localizable.rb +1 -1
  179. data/lib/mongoid/{validations → validatable}/macros.rb +4 -3
  180. data/lib/mongoid/{validations → validatable}/presence.rb +1 -1
  181. data/lib/mongoid/{validations → validatable}/queryable.rb +1 -2
  182. data/lib/mongoid/{validations → validatable}/uniqueness.rb +25 -21
  183. data/lib/mongoid/{validations.rb → validatable.rb} +23 -10
  184. data/lib/mongoid/version.rb +1 -1
  185. data/lib/mongoid.rb +10 -76
  186. data/lib/rails/generators/mongoid/config/templates/mongoid.yml +46 -25
  187. data/lib/rails/generators/mongoid/model/model_generator.rb +0 -1
  188. data/lib/rails/generators/mongoid/model/templates/model.rb.tt +0 -3
  189. data/lib/rails/generators/mongoid_generator.rb +3 -40
  190. data/lib/rails/mongoid.rb +0 -122
  191. data/lib/support/ruby_version.rb +1 -1
  192. data/spec/app/models/account.rb +2 -6
  193. data/spec/app/models/acolyte.rb +2 -1
  194. data/spec/app/models/actor.rb +0 -1
  195. data/spec/app/models/address.rb +8 -3
  196. data/spec/app/models/animal.rb +1 -1
  197. data/spec/app/models/appointment.rb +3 -3
  198. data/spec/app/models/article.rb +1 -4
  199. data/spec/app/models/audio.rb +5 -0
  200. data/spec/app/models/author.rb +0 -2
  201. data/spec/app/models/band.rb +3 -2
  202. data/spec/app/models/bar.rb +1 -0
  203. data/spec/app/models/book.rb +1 -0
  204. data/spec/app/models/building.rb +0 -2
  205. data/spec/app/models/building_address.rb +0 -2
  206. data/spec/app/models/bus.rb +1 -1
  207. data/spec/app/models/canvas.rb +1 -1
  208. data/spec/app/models/contextable_item.rb +5 -0
  209. data/spec/app/models/contractor.rb +0 -2
  210. data/spec/app/models/country_code.rb +1 -1
  211. data/spec/app/models/definition.rb +2 -2
  212. data/spec/app/models/dog.rb +1 -1
  213. data/spec/app/models/dragon.rb +4 -0
  214. data/spec/app/models/drug.rb +1 -3
  215. data/spec/app/models/dungeon.rb +4 -0
  216. data/spec/app/models/edit.rb +5 -0
  217. data/spec/app/models/even.rb +7 -0
  218. data/spec/app/models/event.rb +1 -1
  219. data/spec/app/models/filesystem.rb +1 -0
  220. data/spec/app/models/fish.rb +0 -1
  221. data/spec/app/models/fruits.rb +6 -0
  222. data/spec/app/models/game.rb +0 -2
  223. data/spec/app/models/house.rb +1 -3
  224. data/spec/app/models/id_key.rb +6 -0
  225. data/spec/app/models/item.rb +1 -5
  226. data/spec/app/models/jar.rb +1 -1
  227. data/spec/app/models/label.rb +4 -4
  228. data/spec/app/models/line_item.rb +1 -1
  229. data/spec/app/models/login.rb +1 -1
  230. data/spec/app/models/message.rb +8 -0
  231. data/spec/app/models/movie.rb +1 -0
  232. data/spec/app/models/name.rb +3 -3
  233. data/spec/app/models/note.rb +3 -1
  234. data/spec/app/models/odd.rb +7 -0
  235. data/spec/app/models/oscar.rb +1 -1
  236. data/spec/app/models/parent_doc.rb +1 -1
  237. data/spec/app/models/person.rb +16 -10
  238. data/spec/app/models/phone.rb +1 -3
  239. data/spec/app/models/player.rb +3 -3
  240. data/spec/app/models/post.rb +5 -3
  241. data/spec/app/models/preference.rb +1 -1
  242. data/spec/app/models/quiz.rb +0 -3
  243. data/spec/app/models/record.rb +10 -5
  244. data/spec/app/models/registry.rb +1 -1
  245. data/spec/app/models/server.rb +1 -1
  246. data/spec/app/models/service.rb +3 -3
  247. data/spec/app/models/sound.rb +5 -0
  248. data/spec/app/models/symptom.rb +1 -1
  249. data/spec/app/models/template.rb +1 -1
  250. data/spec/app/models/title.rb +0 -1
  251. data/spec/app/models/track.rb +5 -5
  252. data/spec/app/models/tree.rb +3 -3
  253. data/spec/app/models/video.rb +1 -5
  254. data/spec/app/models/wiki_page.rb +2 -5
  255. data/spec/app/models/word.rb +3 -0
  256. data/spec/app/models/word_origin.rb +1 -1
  257. data/spec/config/mongoid.yml +7 -8
  258. data/spec/helpers.rb +18 -0
  259. data/spec/mongoid/atomic/modifiers_spec.rb +22 -22
  260. data/spec/mongoid/atomic/paths/embedded/many_spec.rb +8 -49
  261. data/spec/mongoid/atomic/paths/embedded/one_spec.rb +7 -49
  262. data/spec/mongoid/atomic/paths/root_spec.rb +3 -61
  263. data/spec/mongoid/atomic/paths_spec.rb +19 -19
  264. data/spec/mongoid/atomic_spec.rb +19 -19
  265. data/spec/mongoid/{nested_attributes_spec.rb → attributes/nested_spec.rb} +474 -592
  266. data/spec/mongoid/attributes/readonly_spec.rb +58 -18
  267. data/spec/mongoid/attributes_spec.rb +334 -434
  268. data/spec/mongoid/{dirty_spec.rb → changeable_spec.rb} +203 -153
  269. data/spec/mongoid/{components_spec.rb → composable_spec.rb} +3 -3
  270. data/spec/mongoid/config/environment_spec.rb +3 -3
  271. data/spec/mongoid/config/options_spec.rb +6 -6
  272. data/spec/mongoid/config_spec.rb +24 -48
  273. data/spec/mongoid/contextual/aggregable/memory_spec.rb +12 -12
  274. data/spec/mongoid/contextual/aggregable/mongo_spec.rb +46 -38
  275. data/spec/mongoid/contextual/atomic_spec.rb +59 -55
  276. data/spec/mongoid/contextual/find_and_modify_spec.rb +14 -14
  277. data/spec/mongoid/contextual/geo_near_spec.rb +22 -22
  278. data/spec/mongoid/contextual/map_reduce_spec.rb +27 -27
  279. data/spec/mongoid/contextual/memory_spec.rb +156 -94
  280. data/spec/mongoid/contextual/mongo_spec.rb +238 -150
  281. data/spec/mongoid/contextual/none_spec.rb +127 -0
  282. data/spec/mongoid/contextual/text_search_spec.rb +209 -0
  283. data/spec/mongoid/copyable_spec.rb +56 -68
  284. data/spec/mongoid/criteria/findable_spec.rb +991 -0
  285. data/spec/mongoid/{criterion/inspection_spec.rb → criteria/inspectable_spec.rb} +5 -5
  286. data/spec/mongoid/{criterion → criteria}/marshalable_spec.rb +2 -2
  287. data/spec/mongoid/criteria/modifiable_spec.rb +1252 -0
  288. data/spec/mongoid/{criterion/scoping_spec.rb → criteria/scopable_spec.rb} +37 -37
  289. data/spec/mongoid/criteria_spec.rb +713 -2419
  290. data/spec/mongoid/document_spec.rb +171 -121
  291. data/spec/mongoid/equality_spec.rb +22 -22
  292. data/spec/mongoid/errors/ambiguous_relationship_spec.rb +3 -3
  293. data/spec/mongoid/errors/callback_spec.rb +3 -3
  294. data/spec/mongoid/errors/delete_restriction_spec.rb +3 -3
  295. data/spec/mongoid/errors/document_not_destroyed_spec.rb +33 -0
  296. data/spec/mongoid/errors/document_not_found_spec.rb +11 -11
  297. data/spec/mongoid/errors/eager_load_spec.rb +3 -3
  298. data/spec/mongoid/errors/invalid_collection_spec.rb +3 -3
  299. data/spec/mongoid/errors/invalid_config_option_spec.rb +3 -3
  300. data/spec/mongoid/errors/invalid_field_option_spec.rb +3 -3
  301. data/spec/mongoid/errors/invalid_field_spec.rb +3 -3
  302. data/spec/mongoid/errors/invalid_find_spec.rb +3 -3
  303. data/spec/mongoid/errors/invalid_includes_spec.rb +3 -3
  304. data/spec/mongoid/errors/invalid_index_spec.rb +3 -3
  305. data/spec/mongoid/errors/invalid_options_spec.rb +3 -3
  306. data/spec/mongoid/errors/invalid_path_spec.rb +3 -3
  307. data/spec/mongoid/errors/invalid_scope_spec.rb +5 -5
  308. data/spec/mongoid/errors/invalid_set_polymorphic_relation_spec.rb +3 -3
  309. data/spec/mongoid/errors/invalid_storage_options_spec.rb +3 -3
  310. data/spec/mongoid/errors/invalid_time_spec.rb +3 -3
  311. data/spec/mongoid/errors/inverse_not_found_spec.rb +3 -3
  312. data/spec/mongoid/errors/mixed_relations_spec.rb +3 -3
  313. data/spec/mongoid/errors/mixed_session_configuration_spec.rb +3 -3
  314. data/spec/mongoid/errors/mongoid_error_spec.rb +8 -8
  315. data/spec/mongoid/errors/nested_attributes_metadata_not_found_spec.rb +3 -3
  316. data/spec/mongoid/errors/no_environment_spec.rb +3 -3
  317. data/spec/mongoid/errors/no_map_reduce_output_spec.rb +3 -3
  318. data/spec/mongoid/errors/no_metadata_spec.rb +3 -3
  319. data/spec/mongoid/errors/no_parent_spec.rb +3 -3
  320. data/spec/mongoid/errors/no_session_config_spec.rb +3 -3
  321. data/spec/mongoid/errors/no_session_database_spec.rb +3 -3
  322. data/spec/mongoid/errors/no_session_hosts_spec.rb +3 -3
  323. data/spec/mongoid/errors/no_sessions_config_spec.rb +3 -3
  324. data/spec/mongoid/errors/readonly_attribute_spec.rb +3 -3
  325. data/spec/mongoid/errors/readonly_document_spec.rb +29 -0
  326. data/spec/mongoid/errors/scope_overwrite_spec.rb +3 -3
  327. data/spec/mongoid/errors/too_many_nested_attribute_records_spec.rb +3 -3
  328. data/spec/mongoid/errors/unknown_attribute_spec.rb +5 -5
  329. data/spec/mongoid/errors/unsaved_document_spec.rb +3 -3
  330. data/spec/mongoid/errors/unsupported_javascript_spec.rb +3 -3
  331. data/spec/mongoid/errors/validations_spec.rb +7 -7
  332. data/spec/mongoid/extensions/array_spec.rb +61 -61
  333. data/spec/mongoid/extensions/big_decimal_spec.rb +11 -11
  334. data/spec/mongoid/extensions/binary_spec.rb +12 -12
  335. data/spec/mongoid/extensions/boolean_spec.rb +18 -18
  336. data/spec/mongoid/extensions/date_spec.rb +13 -13
  337. data/spec/mongoid/extensions/date_time_spec.rb +8 -8
  338. data/spec/mongoid/extensions/false_class_spec.rb +5 -5
  339. data/spec/mongoid/extensions/float_spec.rb +29 -15
  340. data/spec/mongoid/extensions/hash_spec.rb +29 -29
  341. data/spec/mongoid/extensions/integer_spec.rb +15 -15
  342. data/spec/mongoid/extensions/module_spec.rb +2 -2
  343. data/spec/mongoid/extensions/nil_class_spec.rb +1 -1
  344. data/spec/mongoid/extensions/object_id_spec.rb +134 -134
  345. data/spec/mongoid/extensions/object_spec.rb +26 -26
  346. data/spec/mongoid/extensions/range_spec.rb +61 -12
  347. data/spec/mongoid/extensions/regexp_spec.rb +4 -4
  348. data/spec/mongoid/extensions/set_spec.rb +4 -4
  349. data/spec/mongoid/extensions/string_spec.rb +35 -46
  350. data/spec/mongoid/extensions/symbol_spec.rb +9 -9
  351. data/spec/mongoid/extensions/time_spec.rb +49 -49
  352. data/spec/mongoid/extensions/time_with_zone_spec.rb +34 -34
  353. data/spec/mongoid/extensions/true_class_spec.rb +5 -5
  354. data/spec/mongoid/extensions_spec.rb +29 -0
  355. data/spec/mongoid/factory_spec.rb +15 -15
  356. data/spec/mongoid/fields/foreign_key_spec.rb +73 -66
  357. data/spec/mongoid/fields/internal/foreign_keys/array_spec.rb +15 -15
  358. data/spec/mongoid/fields/internal/foreign_keys/object_spec.rb +22 -22
  359. data/spec/mongoid/fields/localized_spec.rb +38 -23
  360. data/spec/mongoid/fields/standard_spec.rb +12 -12
  361. data/spec/mongoid/fields_spec.rb +263 -217
  362. data/spec/mongoid/findable_spec.rb +509 -0
  363. data/spec/mongoid/indexable/specification_spec.rb +102 -0
  364. data/spec/mongoid/{indexes_spec.rb → indexable_spec.rb} +171 -51
  365. data/spec/mongoid/{inspection_spec.rb → inspectable_spec.rb} +6 -14
  366. data/spec/mongoid/{callbacks_spec.rb → interceptable_spec.rb} +117 -116
  367. data/spec/mongoid/log_subscriber_spec.rb +75 -0
  368. data/spec/mongoid/loggable_spec.rb +1 -1
  369. data/spec/mongoid/{matchers → matchable}/all_spec.rb +4 -4
  370. data/spec/mongoid/{matchers → matchable}/and_spec.rb +11 -11
  371. data/spec/mongoid/{matchers → matchable}/default_spec.rb +15 -15
  372. data/spec/mongoid/{matchers → matchable}/exists_spec.rb +5 -5
  373. data/spec/mongoid/{matchers → matchable}/gt_spec.rb +9 -8
  374. data/spec/mongoid/{matchers → matchable}/gte_spec.rb +7 -7
  375. data/spec/mongoid/matchable/in_spec.rb +49 -0
  376. data/spec/mongoid/{matchers → matchable}/lt_spec.rb +7 -7
  377. data/spec/mongoid/{matchers → matchable}/lte_spec.rb +7 -7
  378. data/spec/mongoid/{matchers → matchable}/ne_spec.rb +3 -3
  379. data/spec/mongoid/matchable/nin_spec.rb +48 -0
  380. data/spec/mongoid/{matchers → matchable}/or_spec.rb +6 -6
  381. data/spec/mongoid/{matchers → matchable}/size_spec.rb +3 -3
  382. data/spec/mongoid/{matchers_spec.rb → matchable_spec.rb} +41 -41
  383. data/spec/mongoid/persistable/creatable_spec.rb +553 -0
  384. data/spec/mongoid/persistable/deletable_spec.rb +218 -0
  385. data/spec/mongoid/persistable/destroyable_spec.rb +192 -0
  386. data/spec/mongoid/persistable/incrementable_spec.rb +173 -0
  387. data/spec/mongoid/persistable/logical_spec.rb +143 -0
  388. data/spec/mongoid/persistable/poppable_spec.rb +115 -0
  389. data/spec/mongoid/persistable/pullable_spec.rb +228 -0
  390. data/spec/mongoid/persistable/pushable_spec.rb +258 -0
  391. data/spec/mongoid/persistable/renamable_spec.rb +135 -0
  392. data/spec/mongoid/persistable/savable_spec.rb +498 -0
  393. data/spec/mongoid/persistable/settable_spec.rb +162 -0
  394. data/spec/mongoid/persistable/unsettable_spec.rb +155 -0
  395. data/spec/mongoid/persistable/updatable_spec.rb +558 -0
  396. data/spec/mongoid/persistable/upsertable_spec.rb +106 -0
  397. data/spec/mongoid/persistable_spec.rb +206 -0
  398. data/spec/mongoid/{atomic/positionable_spec.rb → positional_spec.rb} +9 -9
  399. data/spec/mongoid/query_cache_spec.rb +263 -0
  400. data/spec/mongoid/railties/document_spec.rb +2 -2
  401. data/spec/mongoid/relations/accessors_spec.rb +53 -145
  402. data/spec/mongoid/relations/auto_save_spec.rb +37 -17
  403. data/spec/mongoid/relations/bindings/embedded/in_spec.rb +12 -12
  404. data/spec/mongoid/relations/bindings/embedded/many_spec.rb +3 -3
  405. data/spec/mongoid/relations/bindings/embedded/one_spec.rb +5 -5
  406. data/spec/mongoid/relations/bindings/referenced/in_spec.rb +26 -26
  407. data/spec/mongoid/relations/bindings/referenced/many_spec.rb +10 -10
  408. data/spec/mongoid/relations/bindings/referenced/many_to_many_spec.rb +19 -19
  409. data/spec/mongoid/relations/bindings/referenced/one_spec.rb +12 -12
  410. data/spec/mongoid/relations/builders/embedded/in_spec.rb +4 -4
  411. data/spec/mongoid/relations/builders/embedded/many_spec.rb +18 -18
  412. data/spec/mongoid/relations/builders/embedded/one_spec.rb +11 -11
  413. data/spec/mongoid/relations/builders/nested_attributes/many_spec.rb +12 -13
  414. data/spec/mongoid/relations/builders/nested_attributes/one_spec.rb +14 -14
  415. data/spec/mongoid/relations/builders/referenced/in_spec.rb +24 -35
  416. data/spec/mongoid/relations/builders/referenced/many_spec.rb +15 -15
  417. data/spec/mongoid/relations/builders/referenced/many_to_many_spec.rb +18 -18
  418. data/spec/mongoid/relations/builders/referenced/one_spec.rb +12 -25
  419. data/spec/mongoid/relations/builders_spec.rb +21 -21
  420. data/spec/mongoid/relations/cascading/delete_spec.rb +9 -9
  421. data/spec/mongoid/relations/cascading/destroy_spec.rb +6 -6
  422. data/spec/mongoid/relations/cascading/nullify_spec.rb +4 -4
  423. data/spec/mongoid/relations/cascading/restrict_spec.rb +7 -7
  424. data/spec/mongoid/relations/cascading_spec.rb +16 -16
  425. data/spec/mongoid/relations/constraint_spec.rb +8 -7
  426. data/spec/mongoid/relations/conversions_spec.rb +16 -14
  427. data/spec/mongoid/relations/counter_cache_spec.rb +85 -0
  428. data/spec/mongoid/relations/cyclic_spec.rb +18 -18
  429. data/spec/mongoid/relations/eager/belongs_to_spec.rb +154 -0
  430. data/spec/mongoid/relations/eager/has_and_belongs_to_many_spec.rb +117 -0
  431. data/spec/mongoid/relations/eager/has_many_spec.rb +207 -0
  432. data/spec/mongoid/relations/eager/has_one_spec.rb +163 -0
  433. data/spec/mongoid/relations/eager_spec.rb +228 -0
  434. data/spec/mongoid/relations/embedded/dirty_spec.rb +8 -8
  435. data/spec/mongoid/relations/embedded/in_spec.rb +56 -57
  436. data/spec/mongoid/relations/embedded/many_spec.rb +467 -372
  437. data/spec/mongoid/relations/embedded/one_spec.rb +108 -141
  438. data/spec/mongoid/relations/macros_spec.rb +108 -102
  439. data/spec/mongoid/relations/metadata_spec.rb +180 -255
  440. data/spec/mongoid/relations/options_spec.rb +1 -1
  441. data/spec/mongoid/relations/polymorphic_spec.rb +13 -17
  442. data/spec/mongoid/relations/proxy_spec.rb +2 -2
  443. data/spec/mongoid/relations/referenced/in_spec.rb +128 -303
  444. data/spec/mongoid/relations/referenced/many_spec.rb +587 -527
  445. data/spec/mongoid/relations/referenced/many_to_many_spec.rb +401 -424
  446. data/spec/mongoid/relations/referenced/one_spec.rb +149 -264
  447. data/spec/mongoid/relations/reflections_spec.rb +6 -6
  448. data/spec/mongoid/relations/synchronization_spec.rb +46 -50
  449. data/spec/mongoid/relations/targets/enumerable_spec.rb +118 -118
  450. data/spec/mongoid/relations/touchable_spec.rb +333 -0
  451. data/spec/mongoid/relations_spec.rb +16 -15
  452. data/spec/mongoid/{reloading_spec.rb → reloadable_spec.rb} +38 -55
  453. data/spec/mongoid/{scoping_spec.rb → scopable_spec.rb} +89 -164
  454. data/spec/mongoid/selectable_spec.rb +134 -0
  455. data/spec/mongoid/{serialization_spec.rb → serializable_spec.rb} +129 -82
  456. data/spec/mongoid/sessions/factory_spec.rb +49 -28
  457. data/spec/mongoid/sessions/mongo_uri_spec.rb +7 -7
  458. data/spec/mongoid/sessions/options_spec.rb +108 -0
  459. data/spec/mongoid/sessions_spec.rb +319 -178
  460. data/spec/mongoid/{sharding_spec.rb → shardable_spec.rb} +8 -8
  461. data/spec/mongoid/{state_spec.rb → stateful_spec.rb} +36 -11
  462. data/spec/mongoid/tasks/database_rake_spec.rb +285 -0
  463. data/spec/mongoid/tasks/database_spec.rb +160 -0
  464. data/spec/mongoid/threaded_spec.rb +17 -70
  465. data/spec/mongoid/timestamps/created/short_spec.rb +6 -6
  466. data/spec/mongoid/timestamps/created_spec.rb +5 -5
  467. data/spec/mongoid/timestamps/timeless_spec.rb +6 -6
  468. data/spec/mongoid/timestamps/updated/short_spec.rb +11 -11
  469. data/spec/mongoid/timestamps/updated_spec.rb +9 -13
  470. data/spec/mongoid/timestamps_spec.rb +9 -13
  471. data/spec/mongoid/{hierarchy_spec.rb → traversable_spec.rb} +19 -19
  472. data/spec/mongoid/{validations → validatable}/associated_spec.rb +45 -22
  473. data/spec/mongoid/{validations → validatable}/format_spec.rb +6 -6
  474. data/spec/mongoid/{validations → validatable}/length_spec.rb +14 -14
  475. data/spec/mongoid/{validations → validatable}/numericality_spec.rb +1 -1
  476. data/spec/mongoid/{validations → validatable}/presence_spec.rb +37 -44
  477. data/spec/mongoid/{validations → validatable}/uniqueness_spec.rb +184 -192
  478. data/spec/mongoid/{validations_spec.rb → validatable_spec.rb} +28 -28
  479. data/spec/mongoid_spec.rb +8 -8
  480. data/spec/rails/mongoid_spec.rb +19 -350
  481. data/spec/spec_helper.rb +26 -15
  482. metadata +262 -247
  483. data/lib/mongoid/atomic/positionable.rb +0 -73
  484. data/lib/mongoid/components.rb +0 -92
  485. data/lib/mongoid/config/inflections.rb +0 -6
  486. data/lib/mongoid/contextual/eager.rb +0 -158
  487. data/lib/mongoid/errors/versioning_not_on_root.rb +0 -23
  488. data/lib/mongoid/identity_map.rb +0 -163
  489. data/lib/mongoid/json.rb +0 -16
  490. data/lib/mongoid/matchers/strategies.rb +0 -97
  491. data/lib/mongoid/matchers.rb +0 -32
  492. data/lib/mongoid/multi_parameter_attributes.rb +0 -105
  493. data/lib/mongoid/nested_attributes.rb +0 -78
  494. data/lib/mongoid/observer.rb +0 -192
  495. data/lib/mongoid/paranoia.rb +0 -136
  496. data/lib/mongoid/persistence/atomic/add_to_set.rb +0 -47
  497. data/lib/mongoid/persistence/atomic/bit.rb +0 -35
  498. data/lib/mongoid/persistence/atomic/inc.rb +0 -45
  499. data/lib/mongoid/persistence/atomic/operation.rb +0 -154
  500. data/lib/mongoid/persistence/atomic/pop.rb +0 -32
  501. data/lib/mongoid/persistence/atomic/pull.rb +0 -32
  502. data/lib/mongoid/persistence/atomic/pull_all.rb +0 -32
  503. data/lib/mongoid/persistence/atomic/push.rb +0 -25
  504. data/lib/mongoid/persistence/atomic/push_all.rb +0 -25
  505. data/lib/mongoid/persistence/atomic/rename.rb +0 -30
  506. data/lib/mongoid/persistence/atomic/sets.rb +0 -28
  507. data/lib/mongoid/persistence/atomic/unset.rb +0 -27
  508. data/lib/mongoid/persistence/atomic.rb +0 -231
  509. data/lib/mongoid/persistence/deletion.rb +0 -31
  510. data/lib/mongoid/persistence/insertion.rb +0 -38
  511. data/lib/mongoid/persistence/modification.rb +0 -35
  512. data/lib/mongoid/persistence/operations/embedded/insert.rb +0 -46
  513. data/lib/mongoid/persistence/operations/embedded/remove.rb +0 -43
  514. data/lib/mongoid/persistence/operations/insert.rb +0 -34
  515. data/lib/mongoid/persistence/operations/remove.rb +0 -33
  516. data/lib/mongoid/persistence/operations/update.rb +0 -59
  517. data/lib/mongoid/persistence/operations/upsert.rb +0 -28
  518. data/lib/mongoid/persistence/operations.rb +0 -214
  519. data/lib/mongoid/persistence/upsertion.rb +0 -31
  520. data/lib/mongoid/persistence.rb +0 -357
  521. data/lib/mongoid/unit_of_work.rb +0 -61
  522. data/lib/mongoid/versioning.rb +0 -217
  523. data/lib/rack/mongoid/middleware/identity_map.rb +0 -39
  524. data/lib/rack/mongoid.rb +0 -2
  525. data/lib/rails/generators/mongoid/observer/observer_generator.rb +0 -17
  526. data/lib/rails/generators/mongoid/observer/templates/observer.rb.tt +0 -4
  527. data/spec/app/models/actor_observer.rb +0 -15
  528. data/spec/app/models/callback_recorder.rb +0 -25
  529. data/spec/app/models/paranoid_phone.rb +0 -25
  530. data/spec/app/models/paranoid_post.rb +0 -36
  531. data/spec/app/models/phone_observer.rb +0 -6
  532. data/spec/mongoid/attributes/processing_spec.rb +0 -149
  533. data/spec/mongoid/criterion/destructive_spec.rb +0 -101
  534. data/spec/mongoid/criterion/modifiable_spec.rb +0 -409
  535. data/spec/mongoid/criterion/modification_spec.rb +0 -402
  536. data/spec/mongoid/errors/versioning_not_on_root_spec.rb +0 -29
  537. data/spec/mongoid/finders_spec.rb +0 -321
  538. data/spec/mongoid/identity_map_spec.rb +0 -564
  539. data/spec/mongoid/json_spec.rb +0 -33
  540. data/spec/mongoid/matchers/in_spec.rb +0 -25
  541. data/spec/mongoid/matchers/nin_spec.rb +0 -25
  542. data/spec/mongoid/multi_parameter_attributes_spec.rb +0 -128
  543. data/spec/mongoid/observer_spec.rb +0 -290
  544. data/spec/mongoid/paranoia_spec.rb +0 -759
  545. data/spec/mongoid/persistence/atomic/add_to_set_spec.rb +0 -262
  546. data/spec/mongoid/persistence/atomic/bit_spec.rb +0 -88
  547. data/spec/mongoid/persistence/atomic/inc_spec.rb +0 -133
  548. data/spec/mongoid/persistence/atomic/pop_spec.rb +0 -111
  549. data/spec/mongoid/persistence/atomic/pull_all_spec.rb +0 -77
  550. data/spec/mongoid/persistence/atomic/pull_spec.rb +0 -80
  551. data/spec/mongoid/persistence/atomic/push_all_spec.rb +0 -77
  552. data/spec/mongoid/persistence/atomic/push_spec.rb +0 -77
  553. data/spec/mongoid/persistence/atomic/rename_spec.rb +0 -42
  554. data/spec/mongoid/persistence/atomic/sets_spec.rb +0 -154
  555. data/spec/mongoid/persistence/atomic/unset_spec.rb +0 -65
  556. data/spec/mongoid/persistence/atomic_spec.rb +0 -216
  557. data/spec/mongoid/persistence/operations/embedded/insert_spec.rb +0 -191
  558. data/spec/mongoid/persistence/operations/embedded/remove_spec.rb +0 -8
  559. data/spec/mongoid/persistence/operations/insert_spec.rb +0 -149
  560. data/spec/mongoid/persistence/operations/remove_spec.rb +0 -113
  561. data/spec/mongoid/persistence/operations/update_spec.rb +0 -141
  562. data/spec/mongoid/persistence/operations/upsert_spec.rb +0 -59
  563. data/spec/mongoid/persistence/operations_spec.rb +0 -313
  564. data/spec/mongoid/persistence_spec.rb +0 -2279
  565. data/spec/mongoid/unit_of_work_spec.rb +0 -196
  566. data/spec/mongoid/versioning_spec.rb +0 -540
  567. data/spec/rack/mongoid/middleware/identity_map_spec.rb +0 -72
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongoid
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.7
4
+ version: 4.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Durran Jordan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-05-19 00:00:00.000000000 Z
11
+ date: 2015-02-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
@@ -16,56 +16,56 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '3.2'
19
+ version: '4.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '3.2'
26
+ version: '4.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: tzinfo
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 0.3.29
33
+ version: 0.3.37
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: 0.3.29
40
+ version: 0.3.37
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: moped
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '1.4'
47
+ version: 2.0.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '1.4'
54
+ version: 2.0.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: origin
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '1.0'
61
+ version: '2.1'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '1.0'
68
+ version: '2.1'
69
69
  description: Mongoid is an ODM (Object Document Mapper) Framework for MongoDB, written
70
70
  in Ruby.
71
71
  email:
@@ -87,15 +87,15 @@ files:
87
87
  - lib/mongoid/atomic/paths/embedded/many.rb
88
88
  - lib/mongoid/atomic/paths/embedded/one.rb
89
89
  - lib/mongoid/atomic/paths/root.rb
90
- - lib/mongoid/atomic/positionable.rb
91
90
  - lib/mongoid/attributes.rb
91
+ - lib/mongoid/attributes/dynamic.rb
92
+ - lib/mongoid/attributes/nested.rb
92
93
  - lib/mongoid/attributes/processing.rb
93
94
  - lib/mongoid/attributes/readonly.rb
94
- - lib/mongoid/callbacks.rb
95
- - lib/mongoid/components.rb
95
+ - lib/mongoid/changeable.rb
96
+ - lib/mongoid/composable.rb
96
97
  - lib/mongoid/config.rb
97
98
  - lib/mongoid/config/environment.rb
98
- - lib/mongoid/config/inflections.rb
99
99
  - lib/mongoid/config/options.rb
100
100
  - lib/mongoid/config/validators.rb
101
101
  - lib/mongoid/config/validators/option.rb
@@ -105,28 +105,30 @@ files:
105
105
  - lib/mongoid/contextual/aggregable/mongo.rb
106
106
  - lib/mongoid/contextual/atomic.rb
107
107
  - lib/mongoid/contextual/command.rb
108
- - lib/mongoid/contextual/eager.rb
109
108
  - lib/mongoid/contextual/find_and_modify.rb
110
109
  - lib/mongoid/contextual/geo_near.rb
111
110
  - lib/mongoid/contextual/map_reduce.rb
112
111
  - lib/mongoid/contextual/memory.rb
113
112
  - lib/mongoid/contextual/mongo.rb
113
+ - lib/mongoid/contextual/none.rb
114
114
  - lib/mongoid/contextual/queryable.rb
115
+ - lib/mongoid/contextual/text_search.rb
115
116
  - lib/mongoid/copyable.rb
116
117
  - lib/mongoid/criteria.rb
117
118
  - lib/mongoid/criteria/#findable.rb#
118
- - lib/mongoid/criterion/findable.rb
119
- - lib/mongoid/criterion/inspection.rb
120
- - lib/mongoid/criterion/marshalable.rb
121
- - lib/mongoid/criterion/modifiable.rb
122
- - lib/mongoid/criterion/scoping.rb
123
- - lib/mongoid/dirty.rb
119
+ - lib/mongoid/criteria/findable.rb
120
+ - lib/mongoid/criteria/inspectable.rb
121
+ - lib/mongoid/criteria/marshalable.rb
122
+ - lib/mongoid/criteria/modifiable.rb
123
+ - lib/mongoid/criteria/permission.rb
124
+ - lib/mongoid/criteria/scopable.rb
124
125
  - lib/mongoid/document.rb
125
126
  - lib/mongoid/equality.rb
126
127
  - lib/mongoid/errors.rb
127
128
  - lib/mongoid/errors/ambiguous_relationship.rb
128
129
  - lib/mongoid/errors/callback.rb
129
130
  - lib/mongoid/errors/delete_restriction.rb
131
+ - lib/mongoid/errors/document_not_destroyed.rb
130
132
  - lib/mongoid/errors/document_not_found.rb
131
133
  - lib/mongoid/errors/eager_load.rb
132
134
  - lib/mongoid/errors/invalid_collection.rb
@@ -141,7 +143,9 @@ files:
141
143
  - lib/mongoid/errors/invalid_scope.rb
142
144
  - lib/mongoid/errors/invalid_set_polymorphic_relation.rb
143
145
  - lib/mongoid/errors/invalid_storage_options.rb
146
+ - lib/mongoid/errors/invalid_storage_parent.rb
144
147
  - lib/mongoid/errors/invalid_time.rb
148
+ - lib/mongoid/errors/invalid_value.rb
145
149
  - lib/mongoid/errors/inverse_not_found.rb
146
150
  - lib/mongoid/errors/mixed_relations.rb
147
151
  - lib/mongoid/errors/mixed_session_configuration.rb
@@ -157,13 +161,13 @@ files:
157
161
  - lib/mongoid/errors/no_session_hosts.rb
158
162
  - lib/mongoid/errors/no_sessions_config.rb
159
163
  - lib/mongoid/errors/readonly_attribute.rb
164
+ - lib/mongoid/errors/readonly_document.rb
160
165
  - lib/mongoid/errors/scope_overwrite.rb
161
166
  - lib/mongoid/errors/too_many_nested_attribute_records.rb
162
167
  - lib/mongoid/errors/unknown_attribute.rb
163
168
  - lib/mongoid/errors/unsaved_document.rb
164
169
  - lib/mongoid/errors/unsupported_javascript.rb
165
170
  - lib/mongoid/errors/validations.rb
166
- - lib/mongoid/errors/versioning_not_on_root.rb
167
171
  - lib/mongoid/evolvable.rb
168
172
  - lib/mongoid/extensions.rb
169
173
  - lib/mongoid/extensions/array.rb
@@ -194,58 +198,45 @@ files:
194
198
  - lib/mongoid/fields/standard.rb
195
199
  - lib/mongoid/fields/validators.rb
196
200
  - lib/mongoid/fields/validators/macro.rb
197
- - lib/mongoid/finders.rb
198
- - lib/mongoid/hierarchy.rb
199
- - lib/mongoid/identity_map.rb
200
- - lib/mongoid/indexes.rb
201
- - lib/mongoid/indexes/validators/options.rb
202
- - lib/mongoid/inspection.rb
203
- - lib/mongoid/json.rb
201
+ - lib/mongoid/findable.rb
202
+ - lib/mongoid/indexable.rb
203
+ - lib/mongoid/indexable/specification.rb
204
+ - lib/mongoid/indexable/validators/options.rb
205
+ - lib/mongoid/inspectable.rb
206
+ - lib/mongoid/interceptable.rb
207
+ - lib/mongoid/log_subscriber.rb
204
208
  - lib/mongoid/loggable.rb
205
- - lib/mongoid/matchers.rb
206
- - lib/mongoid/matchers/all.rb
207
- - lib/mongoid/matchers/and.rb
208
- - lib/mongoid/matchers/default.rb
209
- - lib/mongoid/matchers/exists.rb
210
- - lib/mongoid/matchers/gt.rb
211
- - lib/mongoid/matchers/gte.rb
212
- - lib/mongoid/matchers/in.rb
213
- - lib/mongoid/matchers/lt.rb
214
- - lib/mongoid/matchers/lte.rb
215
- - lib/mongoid/matchers/ne.rb
216
- - lib/mongoid/matchers/nin.rb
217
- - lib/mongoid/matchers/or.rb
218
- - lib/mongoid/matchers/size.rb
219
- - lib/mongoid/matchers/strategies.rb
220
- - lib/mongoid/multi_parameter_attributes.rb
221
- - lib/mongoid/nested_attributes.rb
222
- - lib/mongoid/observer.rb
223
- - lib/mongoid/paranoia.rb
224
- - lib/mongoid/persistence.rb
225
- - lib/mongoid/persistence/atomic.rb
226
- - lib/mongoid/persistence/atomic/add_to_set.rb
227
- - lib/mongoid/persistence/atomic/bit.rb
228
- - lib/mongoid/persistence/atomic/inc.rb
229
- - lib/mongoid/persistence/atomic/operation.rb
230
- - lib/mongoid/persistence/atomic/pop.rb
231
- - lib/mongoid/persistence/atomic/pull.rb
232
- - lib/mongoid/persistence/atomic/pull_all.rb
233
- - lib/mongoid/persistence/atomic/push.rb
234
- - lib/mongoid/persistence/atomic/push_all.rb
235
- - lib/mongoid/persistence/atomic/rename.rb
236
- - lib/mongoid/persistence/atomic/sets.rb
237
- - lib/mongoid/persistence/atomic/unset.rb
238
- - lib/mongoid/persistence/deletion.rb
239
- - lib/mongoid/persistence/insertion.rb
240
- - lib/mongoid/persistence/modification.rb
241
- - lib/mongoid/persistence/operations.rb
242
- - lib/mongoid/persistence/operations/embedded/insert.rb
243
- - lib/mongoid/persistence/operations/embedded/remove.rb
244
- - lib/mongoid/persistence/operations/insert.rb
245
- - lib/mongoid/persistence/operations/remove.rb
246
- - lib/mongoid/persistence/operations/update.rb
247
- - lib/mongoid/persistence/operations/upsert.rb
248
- - lib/mongoid/persistence/upsertion.rb
209
+ - lib/mongoid/matchable.rb
210
+ - lib/mongoid/matchable/all.rb
211
+ - lib/mongoid/matchable/and.rb
212
+ - lib/mongoid/matchable/default.rb
213
+ - lib/mongoid/matchable/exists.rb
214
+ - lib/mongoid/matchable/gt.rb
215
+ - lib/mongoid/matchable/gte.rb
216
+ - lib/mongoid/matchable/in.rb
217
+ - lib/mongoid/matchable/lt.rb
218
+ - lib/mongoid/matchable/lte.rb
219
+ - lib/mongoid/matchable/ne.rb
220
+ - lib/mongoid/matchable/nin.rb
221
+ - lib/mongoid/matchable/or.rb
222
+ - lib/mongoid/matchable/size.rb
223
+ - lib/mongoid/persistable.rb
224
+ - lib/mongoid/persistable/creatable.rb
225
+ - lib/mongoid/persistable/deletable.rb
226
+ - lib/mongoid/persistable/destroyable.rb
227
+ - lib/mongoid/persistable/incrementable.rb
228
+ - lib/mongoid/persistable/logical.rb
229
+ - lib/mongoid/persistable/poppable.rb
230
+ - lib/mongoid/persistable/pullable.rb
231
+ - lib/mongoid/persistable/pushable.rb
232
+ - lib/mongoid/persistable/renamable.rb
233
+ - lib/mongoid/persistable/savable.rb
234
+ - lib/mongoid/persistable/settable.rb
235
+ - lib/mongoid/persistable/unsettable.rb
236
+ - lib/mongoid/persistable/updatable.rb
237
+ - lib/mongoid/persistable/upsertable.rb
238
+ - lib/mongoid/positional.rb
239
+ - lib/mongoid/query_cache.rb
249
240
  - lib/mongoid/railtie.rb
250
241
  - lib/mongoid/railties/database.rake
251
242
  - lib/mongoid/railties/document.rb
@@ -281,6 +272,12 @@ files:
281
272
  - lib/mongoid/relations/conversions.rb
282
273
  - lib/mongoid/relations/counter_cache.rb
283
274
  - lib/mongoid/relations/cyclic.rb
275
+ - lib/mongoid/relations/eager.rb
276
+ - lib/mongoid/relations/eager/base.rb
277
+ - lib/mongoid/relations/eager/belongs_to.rb
278
+ - lib/mongoid/relations/eager/has_and_belongs_to_many.rb
279
+ - lib/mongoid/relations/eager/has_many.rb
280
+ - lib/mongoid/relations/eager/has_one.rb
284
281
  - lib/mongoid/relations/embedded/batchable.rb
285
282
  - lib/mongoid/relations/embedded/in.rb
286
283
  - lib/mongoid/relations/embedded/many.rb
@@ -303,16 +300,23 @@ files:
303
300
  - lib/mongoid/relations/targets.rb
304
301
  - lib/mongoid/relations/targets/enumerable.rb
305
302
  - lib/mongoid/relations/touchable.rb
306
- - lib/mongoid/reloading.rb
307
- - lib/mongoid/scoping.rb
308
- - lib/mongoid/serialization.rb
303
+ - lib/mongoid/reloadable.rb
304
+ - lib/mongoid/scopable.rb
305
+ - lib/mongoid/selectable.rb
306
+ - lib/mongoid/serializable.rb
309
307
  - lib/mongoid/sessions.rb
310
308
  - lib/mongoid/sessions/factory.rb
311
309
  - lib/mongoid/sessions/mongo_uri.rb
310
+ - lib/mongoid/sessions/options.rb
311
+ - lib/mongoid/sessions/storage_options.rb
312
+ - lib/mongoid/sessions/thread_options.rb
312
313
  - lib/mongoid/sessions/validators.rb
313
314
  - lib/mongoid/sessions/validators/storage.rb
314
- - lib/mongoid/sharding.rb
315
- - lib/mongoid/state.rb
315
+ - lib/mongoid/shardable.rb
316
+ - lib/mongoid/stateful.rb
317
+ - lib/mongoid/support/query_counter.rb
318
+ - lib/mongoid/tasks/database.rake
319
+ - lib/mongoid/tasks/database.rb
316
320
  - lib/mongoid/threaded.rb
317
321
  - lib/mongoid/threaded/lifecycle.rb
318
322
  - lib/mongoid/timestamps.rb
@@ -322,33 +326,27 @@ files:
322
326
  - lib/mongoid/timestamps/timeless.rb
323
327
  - lib/mongoid/timestamps/updated.rb
324
328
  - lib/mongoid/timestamps/updated/short.rb
325
- - lib/mongoid/unit_of_work.rb
326
- - lib/mongoid/validations.rb
327
- - lib/mongoid/validations/associated.rb
328
- - lib/mongoid/validations/format.rb
329
- - lib/mongoid/validations/length.rb
330
- - lib/mongoid/validations/localizable.rb
331
- - lib/mongoid/validations/macros.rb
332
- - lib/mongoid/validations/presence.rb
333
- - lib/mongoid/validations/queryable.rb
334
- - lib/mongoid/validations/uniqueness.rb
329
+ - lib/mongoid/traversable.rb
330
+ - lib/mongoid/validatable.rb
331
+ - lib/mongoid/validatable/associated.rb
332
+ - lib/mongoid/validatable/format.rb
333
+ - lib/mongoid/validatable/length.rb
334
+ - lib/mongoid/validatable/localizable.rb
335
+ - lib/mongoid/validatable/macros.rb
336
+ - lib/mongoid/validatable/presence.rb
337
+ - lib/mongoid/validatable/queryable.rb
338
+ - lib/mongoid/validatable/uniqueness.rb
335
339
  - lib/mongoid/version.rb
336
- - lib/mongoid/versioning.rb
337
- - lib/rack/mongoid.rb
338
- - lib/rack/mongoid/middleware/identity_map.rb
339
340
  - lib/rails/generators/mongoid/config/config_generator.rb
340
341
  - lib/rails/generators/mongoid/config/templates/mongoid.yml
341
342
  - lib/rails/generators/mongoid/model/model_generator.rb
342
343
  - lib/rails/generators/mongoid/model/templates/model.rb.tt
343
- - lib/rails/generators/mongoid/observer/observer_generator.rb
344
- - lib/rails/generators/mongoid/observer/templates/observer.rb.tt
345
344
  - lib/rails/generators/mongoid_generator.rb
346
345
  - lib/rails/mongoid.rb
347
346
  - lib/support/ruby_version.rb
348
347
  - spec/app/models/account.rb
349
348
  - spec/app/models/acolyte.rb
350
349
  - spec/app/models/actor.rb
351
- - spec/app/models/actor_observer.rb
352
350
  - spec/app/models/actress.rb
353
351
  - spec/app/models/address.rb
354
352
  - spec/app/models/address_component.rb
@@ -363,6 +361,7 @@ files:
363
361
  - spec/app/models/article.rb
364
362
  - spec/app/models/artist.rb
365
363
  - spec/app/models/artwork.rb
364
+ - spec/app/models/audio.rb
366
365
  - spec/app/models/augmentation.rb
367
366
  - spec/app/models/author.rb
368
367
  - spec/app/models/band.rb
@@ -378,7 +377,6 @@ files:
378
377
  - spec/app/models/building_address.rb
379
378
  - spec/app/models/bus.rb
380
379
  - spec/app/models/business.rb
381
- - spec/app/models/callback_recorder.rb
382
380
  - spec/app/models/callback_test.rb
383
381
  - spec/app/models/canvas.rb
384
382
  - spec/app/models/car.rb
@@ -392,6 +390,7 @@ files:
392
390
  - spec/app/models/circus.rb
393
391
  - spec/app/models/code.rb
394
392
  - spec/app/models/comment.rb
393
+ - spec/app/models/contextable_item.rb
395
394
  - spec/app/models/contractor.rb
396
395
  - spec/app/models/cookie.rb
397
396
  - spec/app/models/country_code.rb
@@ -403,12 +402,16 @@ files:
403
402
  - spec/app/models/dog.rb
404
403
  - spec/app/models/dokument.rb
405
404
  - spec/app/models/draft.rb
405
+ - spec/app/models/dragon.rb
406
406
  - spec/app/models/driver.rb
407
407
  - spec/app/models/drug.rb
408
+ - spec/app/models/dungeon.rb
409
+ - spec/app/models/edit.rb
408
410
  - spec/app/models/email.rb
409
411
  - spec/app/models/employer.rb
410
412
  - spec/app/models/entry.rb
411
413
  - spec/app/models/eraser.rb
414
+ - spec/app/models/even.rb
412
415
  - spec/app/models/event.rb
413
416
  - spec/app/models/exhibition.rb
414
417
  - spec/app/models/exhibitor.rb
@@ -428,6 +431,7 @@ files:
428
431
  - spec/app/models/home.rb
429
432
  - spec/app/models/house.rb
430
433
  - spec/app/models/html_writer.rb
434
+ - spec/app/models/id_key.rb
431
435
  - spec/app/models/image.rb
432
436
  - spec/app/models/implant.rb
433
437
  - spec/app/models/item.rb
@@ -443,12 +447,14 @@ files:
443
447
  - spec/app/models/manufacturer.rb
444
448
  - spec/app/models/meat.rb
445
449
  - spec/app/models/membership.rb
450
+ - spec/app/models/message.rb
446
451
  - spec/app/models/mixed_drink.rb
447
452
  - spec/app/models/movie.rb
448
453
  - spec/app/models/my_hash.rb
449
454
  - spec/app/models/name.rb
450
455
  - spec/app/models/node.rb
451
456
  - spec/app/models/note.rb
457
+ - spec/app/models/odd.rb
452
458
  - spec/app/models/ordered_post.rb
453
459
  - spec/app/models/ordered_preference.rb
454
460
  - spec/app/models/oscar.rb
@@ -459,8 +465,6 @@ files:
459
465
  - spec/app/models/page.rb
460
466
  - spec/app/models/page_question.rb
461
467
  - spec/app/models/palette.rb
462
- - spec/app/models/paranoid_phone.rb
463
- - spec/app/models/paranoid_post.rb
464
468
  - spec/app/models/parent.rb
465
469
  - spec/app/models/parent_doc.rb
466
470
  - spec/app/models/passport.rb
@@ -471,7 +475,6 @@ files:
471
475
  - spec/app/models/pet.rb
472
476
  - spec/app/models/pet_owner.rb
473
477
  - spec/app/models/phone.rb
474
- - spec/app/models/phone_observer.rb
475
478
  - spec/app/models/pizza.rb
476
479
  - spec/app/models/player.rb
477
480
  - spec/app/models/post.rb
@@ -504,6 +507,7 @@ files:
504
507
  - spec/app/models/short_quiz.rb
505
508
  - spec/app/models/slave.rb
506
509
  - spec/app/models/song.rb
510
+ - spec/app/models/sound.rb
507
511
  - spec/app/models/square.rb
508
512
  - spec/app/models/strategy.rb
509
513
  - spec/app/models/sub_item.rb
@@ -535,19 +539,19 @@ files:
535
539
  - spec/app/models/word_origin.rb
536
540
  - spec/app/models/writer.rb
537
541
  - spec/config/mongoid.yml
542
+ - spec/helpers.rb
538
543
  - spec/mongoid/#atomic_spec.rb#
539
544
  - spec/mongoid/atomic/modifiers_spec.rb
540
545
  - spec/mongoid/atomic/paths/embedded/many_spec.rb
541
546
  - spec/mongoid/atomic/paths/embedded/one_spec.rb
542
547
  - spec/mongoid/atomic/paths/root_spec.rb
543
548
  - spec/mongoid/atomic/paths_spec.rb
544
- - spec/mongoid/atomic/positionable_spec.rb
545
549
  - spec/mongoid/atomic_spec.rb
546
- - spec/mongoid/attributes/processing_spec.rb
550
+ - spec/mongoid/attributes/nested_spec.rb
547
551
  - spec/mongoid/attributes/readonly_spec.rb
548
552
  - spec/mongoid/attributes_spec.rb
549
- - spec/mongoid/callbacks_spec.rb
550
- - spec/mongoid/components_spec.rb
553
+ - spec/mongoid/changeable_spec.rb
554
+ - spec/mongoid/composable_spec.rb
551
555
  - spec/mongoid/config/environment_spec.rb
552
556
  - spec/mongoid/config/options_spec.rb
553
557
  - spec/mongoid/config_spec.rb
@@ -559,20 +563,21 @@ files:
559
563
  - spec/mongoid/contextual/map_reduce_spec.rb
560
564
  - spec/mongoid/contextual/memory_spec.rb
561
565
  - spec/mongoid/contextual/mongo_spec.rb
566
+ - spec/mongoid/contextual/none_spec.rb
567
+ - spec/mongoid/contextual/text_search_spec.rb
562
568
  - spec/mongoid/copyable_spec.rb
569
+ - spec/mongoid/criteria/findable_spec.rb
570
+ - spec/mongoid/criteria/inspectable_spec.rb
571
+ - spec/mongoid/criteria/marshalable_spec.rb
572
+ - spec/mongoid/criteria/modifiable_spec.rb
573
+ - spec/mongoid/criteria/scopable_spec.rb
563
574
  - spec/mongoid/criteria_spec.rb
564
- - spec/mongoid/criterion/destructive_spec.rb
565
- - spec/mongoid/criterion/inspection_spec.rb
566
- - spec/mongoid/criterion/marshalable_spec.rb
567
- - spec/mongoid/criterion/modifiable_spec.rb
568
- - spec/mongoid/criterion/modification_spec.rb
569
- - spec/mongoid/criterion/scoping_spec.rb
570
- - spec/mongoid/dirty_spec.rb
571
575
  - spec/mongoid/document_spec.rb
572
576
  - spec/mongoid/equality_spec.rb
573
577
  - spec/mongoid/errors/ambiguous_relationship_spec.rb
574
578
  - spec/mongoid/errors/callback_spec.rb
575
579
  - spec/mongoid/errors/delete_restriction_spec.rb
580
+ - spec/mongoid/errors/document_not_destroyed_spec.rb
576
581
  - spec/mongoid/errors/document_not_found_spec.rb
577
582
  - spec/mongoid/errors/eager_load_spec.rb
578
583
  - spec/mongoid/errors/invalid_collection_spec.rb
@@ -602,13 +607,13 @@ files:
602
607
  - spec/mongoid/errors/no_session_hosts_spec.rb
603
608
  - spec/mongoid/errors/no_sessions_config_spec.rb
604
609
  - spec/mongoid/errors/readonly_attribute_spec.rb
610
+ - spec/mongoid/errors/readonly_document_spec.rb
605
611
  - spec/mongoid/errors/scope_overwrite_spec.rb
606
612
  - spec/mongoid/errors/too_many_nested_attribute_records_spec.rb
607
613
  - spec/mongoid/errors/unknown_attribute_spec.rb
608
614
  - spec/mongoid/errors/unsaved_document_spec.rb
609
615
  - spec/mongoid/errors/unsupported_javascript_spec.rb
610
616
  - spec/mongoid/errors/validations_spec.rb
611
- - spec/mongoid/errors/versioning_not_on_root_spec.rb
612
617
  - spec/mongoid/extensions/array_spec.rb
613
618
  - spec/mongoid/extensions/big_decimal_spec.rb
614
619
  - spec/mongoid/extensions/binary_spec.rb
@@ -631,6 +636,7 @@ files:
631
636
  - spec/mongoid/extensions/time_spec.rb
632
637
  - spec/mongoid/extensions/time_with_zone_spec.rb
633
638
  - spec/mongoid/extensions/true_class_spec.rb
639
+ - spec/mongoid/extensions_spec.rb
634
640
  - spec/mongoid/factory_spec.rb
635
641
  - spec/mongoid/fields/foreign_key_spec.rb
636
642
  - spec/mongoid/fields/internal/foreign_keys/array_spec.rb
@@ -638,51 +644,44 @@ files:
638
644
  - spec/mongoid/fields/localized_spec.rb
639
645
  - spec/mongoid/fields/standard_spec.rb
640
646
  - spec/mongoid/fields_spec.rb
641
- - spec/mongoid/finders_spec.rb
642
- - spec/mongoid/hierarchy_spec.rb
643
- - spec/mongoid/identity_map_spec.rb
644
- - spec/mongoid/indexes_spec.rb
645
- - spec/mongoid/inspection_spec.rb
646
- - spec/mongoid/json_spec.rb
647
+ - spec/mongoid/findable_spec.rb
648
+ - spec/mongoid/indexable/specification_spec.rb
649
+ - spec/mongoid/indexable_spec.rb
650
+ - spec/mongoid/inspectable_spec.rb
651
+ - spec/mongoid/interceptable_spec.rb
652
+ - spec/mongoid/log_subscriber_spec.rb
647
653
  - spec/mongoid/loggable_spec.rb
648
- - spec/mongoid/matchers/all_spec.rb
649
- - spec/mongoid/matchers/and_spec.rb
650
- - spec/mongoid/matchers/default_spec.rb
651
- - spec/mongoid/matchers/exists_spec.rb
652
- - spec/mongoid/matchers/gt_spec.rb
653
- - spec/mongoid/matchers/gte_spec.rb
654
- - spec/mongoid/matchers/in_spec.rb
655
- - spec/mongoid/matchers/lt_spec.rb
656
- - spec/mongoid/matchers/lte_spec.rb
657
- - spec/mongoid/matchers/ne_spec.rb
658
- - spec/mongoid/matchers/nin_spec.rb
659
- - spec/mongoid/matchers/or_spec.rb
660
- - spec/mongoid/matchers/size_spec.rb
661
- - spec/mongoid/matchers_spec.rb
662
- - spec/mongoid/multi_parameter_attributes_spec.rb
663
- - spec/mongoid/nested_attributes_spec.rb
664
- - spec/mongoid/observer_spec.rb
665
- - spec/mongoid/paranoia_spec.rb
666
- - spec/mongoid/persistence/atomic/add_to_set_spec.rb
667
- - spec/mongoid/persistence/atomic/bit_spec.rb
668
- - spec/mongoid/persistence/atomic/inc_spec.rb
669
- - spec/mongoid/persistence/atomic/pop_spec.rb
670
- - spec/mongoid/persistence/atomic/pull_all_spec.rb
671
- - spec/mongoid/persistence/atomic/pull_spec.rb
672
- - spec/mongoid/persistence/atomic/push_all_spec.rb
673
- - spec/mongoid/persistence/atomic/push_spec.rb
674
- - spec/mongoid/persistence/atomic/rename_spec.rb
675
- - spec/mongoid/persistence/atomic/sets_spec.rb
676
- - spec/mongoid/persistence/atomic/unset_spec.rb
677
- - spec/mongoid/persistence/atomic_spec.rb
678
- - spec/mongoid/persistence/operations/embedded/insert_spec.rb
679
- - spec/mongoid/persistence/operations/embedded/remove_spec.rb
680
- - spec/mongoid/persistence/operations/insert_spec.rb
681
- - spec/mongoid/persistence/operations/remove_spec.rb
682
- - spec/mongoid/persistence/operations/update_spec.rb
683
- - spec/mongoid/persistence/operations/upsert_spec.rb
684
- - spec/mongoid/persistence/operations_spec.rb
685
- - spec/mongoid/persistence_spec.rb
654
+ - spec/mongoid/matchable/all_spec.rb
655
+ - spec/mongoid/matchable/and_spec.rb
656
+ - spec/mongoid/matchable/default_spec.rb
657
+ - spec/mongoid/matchable/exists_spec.rb
658
+ - spec/mongoid/matchable/gt_spec.rb
659
+ - spec/mongoid/matchable/gte_spec.rb
660
+ - spec/mongoid/matchable/in_spec.rb
661
+ - spec/mongoid/matchable/lt_spec.rb
662
+ - spec/mongoid/matchable/lte_spec.rb
663
+ - spec/mongoid/matchable/ne_spec.rb
664
+ - spec/mongoid/matchable/nin_spec.rb
665
+ - spec/mongoid/matchable/or_spec.rb
666
+ - spec/mongoid/matchable/size_spec.rb
667
+ - spec/mongoid/matchable_spec.rb
668
+ - spec/mongoid/persistable/creatable_spec.rb
669
+ - spec/mongoid/persistable/deletable_spec.rb
670
+ - spec/mongoid/persistable/destroyable_spec.rb
671
+ - spec/mongoid/persistable/incrementable_spec.rb
672
+ - spec/mongoid/persistable/logical_spec.rb
673
+ - spec/mongoid/persistable/poppable_spec.rb
674
+ - spec/mongoid/persistable/pullable_spec.rb
675
+ - spec/mongoid/persistable/pushable_spec.rb
676
+ - spec/mongoid/persistable/renamable_spec.rb
677
+ - spec/mongoid/persistable/savable_spec.rb
678
+ - spec/mongoid/persistable/settable_spec.rb
679
+ - spec/mongoid/persistable/unsettable_spec.rb
680
+ - spec/mongoid/persistable/updatable_spec.rb
681
+ - spec/mongoid/persistable/upsertable_spec.rb
682
+ - spec/mongoid/persistable_spec.rb
683
+ - spec/mongoid/positional_spec.rb
684
+ - spec/mongoid/query_cache_spec.rb
686
685
  - spec/mongoid/railties/document_spec.rb
687
686
  - spec/mongoid/relations/accessors_spec.rb
688
687
  - spec/mongoid/relations/auto_save_spec.rb
@@ -712,6 +711,11 @@ files:
712
711
  - spec/mongoid/relations/conversions_spec.rb
713
712
  - spec/mongoid/relations/counter_cache_spec.rb
714
713
  - spec/mongoid/relations/cyclic_spec.rb
714
+ - spec/mongoid/relations/eager/belongs_to_spec.rb
715
+ - spec/mongoid/relations/eager/has_and_belongs_to_many_spec.rb
716
+ - spec/mongoid/relations/eager/has_many_spec.rb
717
+ - spec/mongoid/relations/eager/has_one_spec.rb
718
+ - spec/mongoid/relations/eager_spec.rb
715
719
  - spec/mongoid/relations/embedded/dirty_spec.rb
716
720
  - spec/mongoid/relations/embedded/in_spec.rb
717
721
  - spec/mongoid/relations/embedded/many_spec.rb
@@ -728,15 +732,20 @@ files:
728
732
  - spec/mongoid/relations/reflections_spec.rb
729
733
  - spec/mongoid/relations/synchronization_spec.rb
730
734
  - spec/mongoid/relations/targets/enumerable_spec.rb
735
+ - spec/mongoid/relations/touchable_spec.rb
731
736
  - spec/mongoid/relations_spec.rb
732
- - spec/mongoid/reloading_spec.rb
733
- - spec/mongoid/scoping_spec.rb
734
- - spec/mongoid/serialization_spec.rb
737
+ - spec/mongoid/reloadable_spec.rb
738
+ - spec/mongoid/scopable_spec.rb
739
+ - spec/mongoid/selectable_spec.rb
740
+ - spec/mongoid/serializable_spec.rb
735
741
  - spec/mongoid/sessions/factory_spec.rb
736
742
  - spec/mongoid/sessions/mongo_uri_spec.rb
743
+ - spec/mongoid/sessions/options_spec.rb
737
744
  - spec/mongoid/sessions_spec.rb
738
- - spec/mongoid/sharding_spec.rb
739
- - spec/mongoid/state_spec.rb
745
+ - spec/mongoid/shardable_spec.rb
746
+ - spec/mongoid/stateful_spec.rb
747
+ - spec/mongoid/tasks/database_rake_spec.rb
748
+ - spec/mongoid/tasks/database_spec.rb
740
749
  - spec/mongoid/threaded_spec.rb
741
750
  - spec/mongoid/timestamps/created/short_spec.rb
742
751
  - spec/mongoid/timestamps/created_spec.rb
@@ -744,17 +753,15 @@ files:
744
753
  - spec/mongoid/timestamps/updated/short_spec.rb
745
754
  - spec/mongoid/timestamps/updated_spec.rb
746
755
  - spec/mongoid/timestamps_spec.rb
747
- - spec/mongoid/unit_of_work_spec.rb
748
- - spec/mongoid/validations/associated_spec.rb
749
- - spec/mongoid/validations/format_spec.rb
750
- - spec/mongoid/validations/length_spec.rb
751
- - spec/mongoid/validations/numericality_spec.rb
752
- - spec/mongoid/validations/presence_spec.rb
753
- - spec/mongoid/validations/uniqueness_spec.rb
754
- - spec/mongoid/validations_spec.rb
755
- - spec/mongoid/versioning_spec.rb
756
+ - spec/mongoid/traversable_spec.rb
757
+ - spec/mongoid/validatable/associated_spec.rb
758
+ - spec/mongoid/validatable/format_spec.rb
759
+ - spec/mongoid/validatable/length_spec.rb
760
+ - spec/mongoid/validatable/numericality_spec.rb
761
+ - spec/mongoid/validatable/presence_spec.rb
762
+ - spec/mongoid/validatable/uniqueness_spec.rb
763
+ - spec/mongoid/validatable_spec.rb
756
764
  - spec/mongoid_spec.rb
757
- - spec/rack/mongoid/middleware/identity_map_spec.rb
758
765
  - spec/rails/mongoid_spec.rb
759
766
  - spec/spec_helper.rb
760
767
  homepage: http://mongoid.org
@@ -785,7 +792,6 @@ test_files:
785
792
  - spec/app/models/account.rb
786
793
  - spec/app/models/acolyte.rb
787
794
  - spec/app/models/actor.rb
788
- - spec/app/models/actor_observer.rb
789
795
  - spec/app/models/actress.rb
790
796
  - spec/app/models/address.rb
791
797
  - spec/app/models/address_component.rb
@@ -800,6 +806,7 @@ test_files:
800
806
  - spec/app/models/article.rb
801
807
  - spec/app/models/artist.rb
802
808
  - spec/app/models/artwork.rb
809
+ - spec/app/models/audio.rb
803
810
  - spec/app/models/augmentation.rb
804
811
  - spec/app/models/author.rb
805
812
  - spec/app/models/band.rb
@@ -815,7 +822,6 @@ test_files:
815
822
  - spec/app/models/building_address.rb
816
823
  - spec/app/models/bus.rb
817
824
  - spec/app/models/business.rb
818
- - spec/app/models/callback_recorder.rb
819
825
  - spec/app/models/callback_test.rb
820
826
  - spec/app/models/canvas.rb
821
827
  - spec/app/models/car.rb
@@ -829,6 +835,7 @@ test_files:
829
835
  - spec/app/models/circus.rb
830
836
  - spec/app/models/code.rb
831
837
  - spec/app/models/comment.rb
838
+ - spec/app/models/contextable_item.rb
832
839
  - spec/app/models/contractor.rb
833
840
  - spec/app/models/cookie.rb
834
841
  - spec/app/models/country_code.rb
@@ -840,12 +847,16 @@ test_files:
840
847
  - spec/app/models/dog.rb
841
848
  - spec/app/models/dokument.rb
842
849
  - spec/app/models/draft.rb
850
+ - spec/app/models/dragon.rb
843
851
  - spec/app/models/driver.rb
844
852
  - spec/app/models/drug.rb
853
+ - spec/app/models/dungeon.rb
854
+ - spec/app/models/edit.rb
845
855
  - spec/app/models/email.rb
846
856
  - spec/app/models/employer.rb
847
857
  - spec/app/models/entry.rb
848
858
  - spec/app/models/eraser.rb
859
+ - spec/app/models/even.rb
849
860
  - spec/app/models/event.rb
850
861
  - spec/app/models/exhibition.rb
851
862
  - spec/app/models/exhibitor.rb
@@ -865,6 +876,7 @@ test_files:
865
876
  - spec/app/models/home.rb
866
877
  - spec/app/models/house.rb
867
878
  - spec/app/models/html_writer.rb
879
+ - spec/app/models/id_key.rb
868
880
  - spec/app/models/image.rb
869
881
  - spec/app/models/implant.rb
870
882
  - spec/app/models/item.rb
@@ -880,12 +892,14 @@ test_files:
880
892
  - spec/app/models/manufacturer.rb
881
893
  - spec/app/models/meat.rb
882
894
  - spec/app/models/membership.rb
895
+ - spec/app/models/message.rb
883
896
  - spec/app/models/mixed_drink.rb
884
897
  - spec/app/models/movie.rb
885
898
  - spec/app/models/my_hash.rb
886
899
  - spec/app/models/name.rb
887
900
  - spec/app/models/node.rb
888
901
  - spec/app/models/note.rb
902
+ - spec/app/models/odd.rb
889
903
  - spec/app/models/ordered_post.rb
890
904
  - spec/app/models/ordered_preference.rb
891
905
  - spec/app/models/oscar.rb
@@ -896,8 +910,6 @@ test_files:
896
910
  - spec/app/models/page.rb
897
911
  - spec/app/models/page_question.rb
898
912
  - spec/app/models/palette.rb
899
- - spec/app/models/paranoid_phone.rb
900
- - spec/app/models/paranoid_post.rb
901
913
  - spec/app/models/parent.rb
902
914
  - spec/app/models/parent_doc.rb
903
915
  - spec/app/models/passport.rb
@@ -908,7 +920,6 @@ test_files:
908
920
  - spec/app/models/pet.rb
909
921
  - spec/app/models/pet_owner.rb
910
922
  - spec/app/models/phone.rb
911
- - spec/app/models/phone_observer.rb
912
923
  - spec/app/models/pizza.rb
913
924
  - spec/app/models/player.rb
914
925
  - spec/app/models/post.rb
@@ -941,6 +952,7 @@ test_files:
941
952
  - spec/app/models/short_quiz.rb
942
953
  - spec/app/models/slave.rb
943
954
  - spec/app/models/song.rb
955
+ - spec/app/models/sound.rb
944
956
  - spec/app/models/square.rb
945
957
  - spec/app/models/strategy.rb
946
958
  - spec/app/models/sub_item.rb
@@ -972,19 +984,19 @@ test_files:
972
984
  - spec/app/models/word_origin.rb
973
985
  - spec/app/models/writer.rb
974
986
  - spec/config/mongoid.yml
987
+ - spec/helpers.rb
975
988
  - spec/mongoid/#atomic_spec.rb#
976
989
  - spec/mongoid/atomic/modifiers_spec.rb
977
990
  - spec/mongoid/atomic/paths/embedded/many_spec.rb
978
991
  - spec/mongoid/atomic/paths/embedded/one_spec.rb
979
992
  - spec/mongoid/atomic/paths/root_spec.rb
980
993
  - spec/mongoid/atomic/paths_spec.rb
981
- - spec/mongoid/atomic/positionable_spec.rb
982
994
  - spec/mongoid/atomic_spec.rb
983
- - spec/mongoid/attributes/processing_spec.rb
995
+ - spec/mongoid/attributes/nested_spec.rb
984
996
  - spec/mongoid/attributes/readonly_spec.rb
985
997
  - spec/mongoid/attributes_spec.rb
986
- - spec/mongoid/callbacks_spec.rb
987
- - spec/mongoid/components_spec.rb
998
+ - spec/mongoid/changeable_spec.rb
999
+ - spec/mongoid/composable_spec.rb
988
1000
  - spec/mongoid/config/environment_spec.rb
989
1001
  - spec/mongoid/config/options_spec.rb
990
1002
  - spec/mongoid/config_spec.rb
@@ -996,20 +1008,21 @@ test_files:
996
1008
  - spec/mongoid/contextual/map_reduce_spec.rb
997
1009
  - spec/mongoid/contextual/memory_spec.rb
998
1010
  - spec/mongoid/contextual/mongo_spec.rb
1011
+ - spec/mongoid/contextual/none_spec.rb
1012
+ - spec/mongoid/contextual/text_search_spec.rb
999
1013
  - spec/mongoid/copyable_spec.rb
1014
+ - spec/mongoid/criteria/findable_spec.rb
1015
+ - spec/mongoid/criteria/inspectable_spec.rb
1016
+ - spec/mongoid/criteria/marshalable_spec.rb
1017
+ - spec/mongoid/criteria/modifiable_spec.rb
1018
+ - spec/mongoid/criteria/scopable_spec.rb
1000
1019
  - spec/mongoid/criteria_spec.rb
1001
- - spec/mongoid/criterion/destructive_spec.rb
1002
- - spec/mongoid/criterion/inspection_spec.rb
1003
- - spec/mongoid/criterion/marshalable_spec.rb
1004
- - spec/mongoid/criterion/modifiable_spec.rb
1005
- - spec/mongoid/criterion/modification_spec.rb
1006
- - spec/mongoid/criterion/scoping_spec.rb
1007
- - spec/mongoid/dirty_spec.rb
1008
1020
  - spec/mongoid/document_spec.rb
1009
1021
  - spec/mongoid/equality_spec.rb
1010
1022
  - spec/mongoid/errors/ambiguous_relationship_spec.rb
1011
1023
  - spec/mongoid/errors/callback_spec.rb
1012
1024
  - spec/mongoid/errors/delete_restriction_spec.rb
1025
+ - spec/mongoid/errors/document_not_destroyed_spec.rb
1013
1026
  - spec/mongoid/errors/document_not_found_spec.rb
1014
1027
  - spec/mongoid/errors/eager_load_spec.rb
1015
1028
  - spec/mongoid/errors/invalid_collection_spec.rb
@@ -1039,13 +1052,13 @@ test_files:
1039
1052
  - spec/mongoid/errors/no_session_hosts_spec.rb
1040
1053
  - spec/mongoid/errors/no_sessions_config_spec.rb
1041
1054
  - spec/mongoid/errors/readonly_attribute_spec.rb
1055
+ - spec/mongoid/errors/readonly_document_spec.rb
1042
1056
  - spec/mongoid/errors/scope_overwrite_spec.rb
1043
1057
  - spec/mongoid/errors/too_many_nested_attribute_records_spec.rb
1044
1058
  - spec/mongoid/errors/unknown_attribute_spec.rb
1045
1059
  - spec/mongoid/errors/unsaved_document_spec.rb
1046
1060
  - spec/mongoid/errors/unsupported_javascript_spec.rb
1047
1061
  - spec/mongoid/errors/validations_spec.rb
1048
- - spec/mongoid/errors/versioning_not_on_root_spec.rb
1049
1062
  - spec/mongoid/extensions/array_spec.rb
1050
1063
  - spec/mongoid/extensions/big_decimal_spec.rb
1051
1064
  - spec/mongoid/extensions/binary_spec.rb
@@ -1068,6 +1081,7 @@ test_files:
1068
1081
  - spec/mongoid/extensions/time_spec.rb
1069
1082
  - spec/mongoid/extensions/time_with_zone_spec.rb
1070
1083
  - spec/mongoid/extensions/true_class_spec.rb
1084
+ - spec/mongoid/extensions_spec.rb
1071
1085
  - spec/mongoid/factory_spec.rb
1072
1086
  - spec/mongoid/fields/foreign_key_spec.rb
1073
1087
  - spec/mongoid/fields/internal/foreign_keys/array_spec.rb
@@ -1075,51 +1089,44 @@ test_files:
1075
1089
  - spec/mongoid/fields/localized_spec.rb
1076
1090
  - spec/mongoid/fields/standard_spec.rb
1077
1091
  - spec/mongoid/fields_spec.rb
1078
- - spec/mongoid/finders_spec.rb
1079
- - spec/mongoid/hierarchy_spec.rb
1080
- - spec/mongoid/identity_map_spec.rb
1081
- - spec/mongoid/indexes_spec.rb
1082
- - spec/mongoid/inspection_spec.rb
1083
- - spec/mongoid/json_spec.rb
1092
+ - spec/mongoid/findable_spec.rb
1093
+ - spec/mongoid/indexable/specification_spec.rb
1094
+ - spec/mongoid/indexable_spec.rb
1095
+ - spec/mongoid/inspectable_spec.rb
1096
+ - spec/mongoid/interceptable_spec.rb
1097
+ - spec/mongoid/log_subscriber_spec.rb
1084
1098
  - spec/mongoid/loggable_spec.rb
1085
- - spec/mongoid/matchers/all_spec.rb
1086
- - spec/mongoid/matchers/and_spec.rb
1087
- - spec/mongoid/matchers/default_spec.rb
1088
- - spec/mongoid/matchers/exists_spec.rb
1089
- - spec/mongoid/matchers/gt_spec.rb
1090
- - spec/mongoid/matchers/gte_spec.rb
1091
- - spec/mongoid/matchers/in_spec.rb
1092
- - spec/mongoid/matchers/lt_spec.rb
1093
- - spec/mongoid/matchers/lte_spec.rb
1094
- - spec/mongoid/matchers/ne_spec.rb
1095
- - spec/mongoid/matchers/nin_spec.rb
1096
- - spec/mongoid/matchers/or_spec.rb
1097
- - spec/mongoid/matchers/size_spec.rb
1098
- - spec/mongoid/matchers_spec.rb
1099
- - spec/mongoid/multi_parameter_attributes_spec.rb
1100
- - spec/mongoid/nested_attributes_spec.rb
1101
- - spec/mongoid/observer_spec.rb
1102
- - spec/mongoid/paranoia_spec.rb
1103
- - spec/mongoid/persistence/atomic/add_to_set_spec.rb
1104
- - spec/mongoid/persistence/atomic/bit_spec.rb
1105
- - spec/mongoid/persistence/atomic/inc_spec.rb
1106
- - spec/mongoid/persistence/atomic/pop_spec.rb
1107
- - spec/mongoid/persistence/atomic/pull_all_spec.rb
1108
- - spec/mongoid/persistence/atomic/pull_spec.rb
1109
- - spec/mongoid/persistence/atomic/push_all_spec.rb
1110
- - spec/mongoid/persistence/atomic/push_spec.rb
1111
- - spec/mongoid/persistence/atomic/rename_spec.rb
1112
- - spec/mongoid/persistence/atomic/sets_spec.rb
1113
- - spec/mongoid/persistence/atomic/unset_spec.rb
1114
- - spec/mongoid/persistence/atomic_spec.rb
1115
- - spec/mongoid/persistence/operations/embedded/insert_spec.rb
1116
- - spec/mongoid/persistence/operations/embedded/remove_spec.rb
1117
- - spec/mongoid/persistence/operations/insert_spec.rb
1118
- - spec/mongoid/persistence/operations/remove_spec.rb
1119
- - spec/mongoid/persistence/operations/update_spec.rb
1120
- - spec/mongoid/persistence/operations/upsert_spec.rb
1121
- - spec/mongoid/persistence/operations_spec.rb
1122
- - spec/mongoid/persistence_spec.rb
1099
+ - spec/mongoid/matchable/all_spec.rb
1100
+ - spec/mongoid/matchable/and_spec.rb
1101
+ - spec/mongoid/matchable/default_spec.rb
1102
+ - spec/mongoid/matchable/exists_spec.rb
1103
+ - spec/mongoid/matchable/gt_spec.rb
1104
+ - spec/mongoid/matchable/gte_spec.rb
1105
+ - spec/mongoid/matchable/in_spec.rb
1106
+ - spec/mongoid/matchable/lt_spec.rb
1107
+ - spec/mongoid/matchable/lte_spec.rb
1108
+ - spec/mongoid/matchable/ne_spec.rb
1109
+ - spec/mongoid/matchable/nin_spec.rb
1110
+ - spec/mongoid/matchable/or_spec.rb
1111
+ - spec/mongoid/matchable/size_spec.rb
1112
+ - spec/mongoid/matchable_spec.rb
1113
+ - spec/mongoid/persistable/creatable_spec.rb
1114
+ - spec/mongoid/persistable/deletable_spec.rb
1115
+ - spec/mongoid/persistable/destroyable_spec.rb
1116
+ - spec/mongoid/persistable/incrementable_spec.rb
1117
+ - spec/mongoid/persistable/logical_spec.rb
1118
+ - spec/mongoid/persistable/poppable_spec.rb
1119
+ - spec/mongoid/persistable/pullable_spec.rb
1120
+ - spec/mongoid/persistable/pushable_spec.rb
1121
+ - spec/mongoid/persistable/renamable_spec.rb
1122
+ - spec/mongoid/persistable/savable_spec.rb
1123
+ - spec/mongoid/persistable/settable_spec.rb
1124
+ - spec/mongoid/persistable/unsettable_spec.rb
1125
+ - spec/mongoid/persistable/updatable_spec.rb
1126
+ - spec/mongoid/persistable/upsertable_spec.rb
1127
+ - spec/mongoid/persistable_spec.rb
1128
+ - spec/mongoid/positional_spec.rb
1129
+ - spec/mongoid/query_cache_spec.rb
1123
1130
  - spec/mongoid/railties/document_spec.rb
1124
1131
  - spec/mongoid/relations/accessors_spec.rb
1125
1132
  - spec/mongoid/relations/auto_save_spec.rb
@@ -1149,6 +1156,11 @@ test_files:
1149
1156
  - spec/mongoid/relations/conversions_spec.rb
1150
1157
  - spec/mongoid/relations/counter_cache_spec.rb
1151
1158
  - spec/mongoid/relations/cyclic_spec.rb
1159
+ - spec/mongoid/relations/eager/belongs_to_spec.rb
1160
+ - spec/mongoid/relations/eager/has_and_belongs_to_many_spec.rb
1161
+ - spec/mongoid/relations/eager/has_many_spec.rb
1162
+ - spec/mongoid/relations/eager/has_one_spec.rb
1163
+ - spec/mongoid/relations/eager_spec.rb
1152
1164
  - spec/mongoid/relations/embedded/dirty_spec.rb
1153
1165
  - spec/mongoid/relations/embedded/in_spec.rb
1154
1166
  - spec/mongoid/relations/embedded/many_spec.rb
@@ -1165,15 +1177,20 @@ test_files:
1165
1177
  - spec/mongoid/relations/reflections_spec.rb
1166
1178
  - spec/mongoid/relations/synchronization_spec.rb
1167
1179
  - spec/mongoid/relations/targets/enumerable_spec.rb
1180
+ - spec/mongoid/relations/touchable_spec.rb
1168
1181
  - spec/mongoid/relations_spec.rb
1169
- - spec/mongoid/reloading_spec.rb
1170
- - spec/mongoid/scoping_spec.rb
1171
- - spec/mongoid/serialization_spec.rb
1182
+ - spec/mongoid/reloadable_spec.rb
1183
+ - spec/mongoid/scopable_spec.rb
1184
+ - spec/mongoid/selectable_spec.rb
1185
+ - spec/mongoid/serializable_spec.rb
1172
1186
  - spec/mongoid/sessions/factory_spec.rb
1173
1187
  - spec/mongoid/sessions/mongo_uri_spec.rb
1188
+ - spec/mongoid/sessions/options_spec.rb
1174
1189
  - spec/mongoid/sessions_spec.rb
1175
- - spec/mongoid/sharding_spec.rb
1176
- - spec/mongoid/state_spec.rb
1190
+ - spec/mongoid/shardable_spec.rb
1191
+ - spec/mongoid/stateful_spec.rb
1192
+ - spec/mongoid/tasks/database_rake_spec.rb
1193
+ - spec/mongoid/tasks/database_spec.rb
1177
1194
  - spec/mongoid/threaded_spec.rb
1178
1195
  - spec/mongoid/timestamps/created/short_spec.rb
1179
1196
  - spec/mongoid/timestamps/created_spec.rb
@@ -1181,16 +1198,14 @@ test_files:
1181
1198
  - spec/mongoid/timestamps/updated/short_spec.rb
1182
1199
  - spec/mongoid/timestamps/updated_spec.rb
1183
1200
  - spec/mongoid/timestamps_spec.rb
1184
- - spec/mongoid/unit_of_work_spec.rb
1185
- - spec/mongoid/validations/associated_spec.rb
1186
- - spec/mongoid/validations/format_spec.rb
1187
- - spec/mongoid/validations/length_spec.rb
1188
- - spec/mongoid/validations/numericality_spec.rb
1189
- - spec/mongoid/validations/presence_spec.rb
1190
- - spec/mongoid/validations/uniqueness_spec.rb
1191
- - spec/mongoid/validations_spec.rb
1192
- - spec/mongoid/versioning_spec.rb
1201
+ - spec/mongoid/traversable_spec.rb
1202
+ - spec/mongoid/validatable/associated_spec.rb
1203
+ - spec/mongoid/validatable/format_spec.rb
1204
+ - spec/mongoid/validatable/length_spec.rb
1205
+ - spec/mongoid/validatable/numericality_spec.rb
1206
+ - spec/mongoid/validatable/presence_spec.rb
1207
+ - spec/mongoid/validatable/uniqueness_spec.rb
1208
+ - spec/mongoid/validatable_spec.rb
1193
1209
  - spec/mongoid_spec.rb
1194
- - spec/rack/mongoid/middleware/identity_map_spec.rb
1195
1210
  - spec/rails/mongoid_spec.rb
1196
1211
  - spec/spec_helper.rb