mongoid 2.4.10 → 3.0.0.rc

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 (351) hide show
  1. data/CHANGELOG.md +843 -9
  2. data/LICENSE +1 -1
  3. data/README.md +10 -11
  4. data/Rakefile +2 -17
  5. data/lib/config/locales/en.yml +441 -51
  6. data/lib/mongoid/atomic/modifiers.rb +2 -2
  7. data/lib/mongoid/atomic/paths/embedded/many.rb +6 -6
  8. data/lib/mongoid/atomic/paths/embedded/one.rb +5 -5
  9. data/lib/mongoid/atomic/paths/embedded.rb +4 -5
  10. data/lib/mongoid/atomic/paths/root.rb +4 -5
  11. data/lib/mongoid/atomic.rb +16 -9
  12. data/lib/mongoid/attributes/processing.rb +14 -10
  13. data/lib/mongoid/attributes/readonly.rb +56 -0
  14. data/lib/mongoid/attributes.rb +95 -32
  15. data/lib/mongoid/callbacks.rb +100 -42
  16. data/lib/mongoid/collections/retry.rb +2 -3
  17. data/lib/mongoid/components.rb +10 -22
  18. data/lib/mongoid/config/environment.rb +4 -3
  19. data/lib/mongoid/config/inflections.rb +6 -0
  20. data/lib/mongoid/config/options.rb +1 -1
  21. data/lib/mongoid/config/validators/option.rb +25 -0
  22. data/lib/mongoid/config/validators/session.rb +140 -0
  23. data/lib/mongoid/config/validators.rb +3 -0
  24. data/lib/mongoid/config.rb +87 -233
  25. data/lib/mongoid/contextual/aggregable/memory.rb +98 -0
  26. data/lib/mongoid/contextual/aggregable/mongo.rb +181 -0
  27. data/lib/mongoid/contextual/atomic.rb +179 -0
  28. data/lib/mongoid/contextual/command.rb +43 -0
  29. data/lib/mongoid/contextual/find_and_modify.rb +66 -0
  30. data/lib/mongoid/contextual/map_reduce.rb +273 -0
  31. data/lib/mongoid/contextual/memory.rb +383 -0
  32. data/lib/mongoid/contextual/mongo.rb +543 -0
  33. data/lib/mongoid/contextual.rb +50 -0
  34. data/lib/mongoid/copyable.rb +2 -2
  35. data/lib/mongoid/criteria.rb +436 -248
  36. data/lib/mongoid/criterion/inspection.rb +14 -8
  37. data/lib/mongoid/criterion/scoping.rb +114 -44
  38. data/lib/mongoid/dirty.rb +152 -67
  39. data/lib/mongoid/document.rb +68 -49
  40. data/lib/mongoid/errors/ambiguous_relationship.rb +51 -0
  41. data/lib/mongoid/errors/callback.rb +5 -6
  42. data/lib/mongoid/errors/delete_restriction.rb +29 -0
  43. data/lib/mongoid/errors/document_not_found.rb +98 -17
  44. data/lib/mongoid/errors/eager_load.rb +3 -6
  45. data/lib/mongoid/errors/invalid_collection.rb +3 -3
  46. data/lib/mongoid/errors/invalid_config_option.rb +27 -0
  47. data/lib/mongoid/errors/invalid_database.rb +3 -3
  48. data/lib/mongoid/errors/invalid_field.rb +54 -8
  49. data/lib/mongoid/errors/invalid_field_option.rb +35 -0
  50. data/lib/mongoid/errors/invalid_find.rb +3 -3
  51. data/lib/mongoid/errors/invalid_index.rb +28 -0
  52. data/lib/mongoid/errors/invalid_options.rb +4 -4
  53. data/lib/mongoid/errors/invalid_scope.rb +24 -0
  54. data/lib/mongoid/errors/invalid_set_polymorphic_relation.rb +38 -0
  55. data/lib/mongoid/errors/invalid_storage_options.rb +27 -0
  56. data/lib/mongoid/errors/invalid_time.rb +3 -6
  57. data/lib/mongoid/errors/inverse_not_found.rb +29 -0
  58. data/lib/mongoid/errors/mixed_relations.rb +4 -9
  59. data/lib/mongoid/errors/mixed_session_configuration.rb +28 -0
  60. data/lib/mongoid/errors/mongoid_error.rb +54 -3
  61. data/lib/mongoid/errors/nested_attributes_metadata_not_found.rb +28 -0
  62. data/lib/mongoid/errors/no_default_session.rb +23 -0
  63. data/lib/mongoid/errors/no_environment.rb +3 -3
  64. data/lib/mongoid/errors/no_map_reduce_output.rb +24 -0
  65. data/lib/mongoid/errors/no_parent.rb +24 -0
  66. data/lib/mongoid/errors/no_session_config.rb +22 -0
  67. data/lib/mongoid/errors/no_session_database.rb +27 -0
  68. data/lib/mongoid/errors/no_session_hosts.rb +27 -0
  69. data/lib/mongoid/errors/no_sessions_config.rb +20 -0
  70. data/lib/mongoid/errors/readonly_attribute.rb +25 -0
  71. data/lib/mongoid/errors/scope_overwrite.rb +4 -4
  72. data/lib/mongoid/errors/too_many_nested_attribute_records.rb +4 -4
  73. data/lib/mongoid/errors/unknown_attribute.rb +25 -0
  74. data/lib/mongoid/errors/unsaved_document.rb +4 -8
  75. data/lib/mongoid/errors/unsupported_javascript.rb +27 -0
  76. data/lib/mongoid/errors/unsupported_version.rb +4 -4
  77. data/lib/mongoid/errors/validations.rb +7 -6
  78. data/lib/mongoid/errors/versioning_not_on_root.rb +23 -0
  79. data/lib/mongoid/errors.rb +22 -1
  80. data/lib/mongoid/extensions/array.rb +127 -0
  81. data/lib/mongoid/extensions/big_decimal.rb +42 -0
  82. data/lib/mongoid/extensions/boolean.rb +24 -0
  83. data/lib/mongoid/extensions/date.rb +70 -0
  84. data/lib/mongoid/extensions/date_time.rb +68 -0
  85. data/lib/mongoid/extensions/false_class.rb +26 -0
  86. data/lib/mongoid/extensions/float.rb +44 -0
  87. data/lib/mongoid/extensions/hash.rb +91 -0
  88. data/lib/mongoid/extensions/integer.rb +54 -0
  89. data/lib/mongoid/extensions/module.rb +28 -0
  90. data/lib/mongoid/extensions/nil_class.rb +21 -0
  91. data/lib/mongoid/extensions/object.rb +188 -0
  92. data/lib/mongoid/extensions/object_id.rb +53 -0
  93. data/lib/mongoid/extensions/range.rb +55 -0
  94. data/lib/mongoid/extensions/regexp.rb +27 -0
  95. data/lib/mongoid/extensions/set.rb +55 -0
  96. data/lib/mongoid/extensions/string.rb +155 -0
  97. data/lib/mongoid/extensions/symbol.rb +54 -0
  98. data/lib/mongoid/extensions/time.rb +78 -0
  99. data/lib/mongoid/extensions/time_with_zone.rb +55 -0
  100. data/lib/mongoid/extensions/true_class.rb +26 -0
  101. data/lib/mongoid/extensions.rb +28 -76
  102. data/lib/mongoid/factory.rb +1 -1
  103. data/lib/mongoid/fields/foreign_key.rb +134 -0
  104. data/lib/mongoid/fields/localized.rb +73 -0
  105. data/lib/mongoid/fields/standard.rb +268 -0
  106. data/lib/mongoid/fields/validators/macro.rb +83 -0
  107. data/lib/mongoid/fields/validators.rb +2 -0
  108. data/lib/mongoid/fields.rb +129 -194
  109. data/lib/mongoid/finders.rb +42 -43
  110. data/lib/mongoid/hierarchy.rb +25 -14
  111. data/lib/mongoid/identity_map.rb +31 -19
  112. data/lib/mongoid/indexes/validators/options.rb +80 -0
  113. data/lib/mongoid/indexes.rb +66 -15
  114. data/lib/mongoid/inspection.rb +1 -1
  115. data/lib/mongoid/javascript.rb +1 -1
  116. data/lib/mongoid/json.rb +2 -2
  117. data/lib/mongoid/loggable.rb +69 -0
  118. data/lib/mongoid/matchers/all.rb +7 -8
  119. data/lib/mongoid/matchers/and.rb +3 -3
  120. data/lib/mongoid/matchers/default.rb +6 -4
  121. data/lib/mongoid/matchers/exists.rb +2 -2
  122. data/lib/mongoid/matchers/gt.rb +2 -2
  123. data/lib/mongoid/matchers/gte.rb +2 -2
  124. data/lib/mongoid/matchers/in.rb +3 -7
  125. data/lib/mongoid/matchers/lt.rb +2 -2
  126. data/lib/mongoid/matchers/lte.rb +2 -2
  127. data/lib/mongoid/matchers/ne.rb +2 -2
  128. data/lib/mongoid/matchers/nin.rb +2 -2
  129. data/lib/mongoid/matchers/or.rb +2 -2
  130. data/lib/mongoid/matchers/size.rb +2 -2
  131. data/lib/mongoid/matchers/strategies.rb +3 -3
  132. data/lib/mongoid/matchers.rb +1 -1
  133. data/lib/mongoid/multi_parameter_attributes.rb +8 -10
  134. data/lib/mongoid/nested_attributes.rb +17 -9
  135. data/lib/mongoid/observer.rb +1 -2
  136. data/lib/mongoid/paranoia.rb +13 -18
  137. data/lib/mongoid/persistence/atomic/add_to_set.rb +5 -9
  138. data/lib/mongoid/persistence/atomic/bit.rb +5 -7
  139. data/lib/mongoid/persistence/atomic/inc.rb +5 -7
  140. data/lib/mongoid/persistence/atomic/operation.rb +45 -6
  141. data/lib/mongoid/persistence/atomic/pop.rb +5 -7
  142. data/lib/mongoid/persistence/atomic/pull.rb +5 -7
  143. data/lib/mongoid/persistence/atomic/pull_all.rb +5 -7
  144. data/lib/mongoid/persistence/atomic/push.rb +4 -10
  145. data/lib/mongoid/persistence/atomic/push_all.rb +4 -10
  146. data/lib/mongoid/persistence/atomic/rename.rb +6 -7
  147. data/lib/mongoid/persistence/atomic/sets.rb +5 -7
  148. data/lib/mongoid/persistence/atomic/unset.rb +4 -5
  149. data/lib/mongoid/persistence/atomic.rb +2 -2
  150. data/lib/mongoid/persistence/deletion.rb +2 -2
  151. data/lib/mongoid/persistence/insertion.rb +10 -16
  152. data/lib/mongoid/persistence/modification.rb +5 -9
  153. data/lib/mongoid/persistence/operations/embedded/insert.rb +7 -6
  154. data/lib/mongoid/persistence/operations/embedded/remove.rb +5 -5
  155. data/lib/mongoid/persistence/operations/insert.rb +4 -4
  156. data/lib/mongoid/persistence/operations/remove.rb +4 -4
  157. data/lib/mongoid/persistence/operations/update.rb +5 -5
  158. data/lib/mongoid/persistence/operations.rb +6 -19
  159. data/lib/mongoid/persistence.rb +64 -27
  160. data/lib/mongoid/railtie.rb +26 -11
  161. data/lib/mongoid/railties/database.rake +22 -108
  162. data/lib/mongoid/relations/accessors.rb +119 -19
  163. data/lib/mongoid/relations/auto_save.rb +59 -5
  164. data/lib/mongoid/relations/binding.rb +211 -2
  165. data/lib/mongoid/relations/bindings/embedded/in.rb +16 -22
  166. data/lib/mongoid/relations/bindings/embedded/many.rb +9 -50
  167. data/lib/mongoid/relations/bindings/embedded/one.rb +10 -16
  168. data/lib/mongoid/relations/bindings/referenced/in.rb +31 -57
  169. data/lib/mongoid/relations/bindings/referenced/many.rb +8 -20
  170. data/lib/mongoid/relations/bindings/referenced/many_to_many.rb +15 -19
  171. data/lib/mongoid/relations/bindings/referenced/one.rb +10 -24
  172. data/lib/mongoid/relations/builder.rb +3 -3
  173. data/lib/mongoid/relations/builders/embedded/in.rb +5 -5
  174. data/lib/mongoid/relations/builders/embedded/many.rb +12 -12
  175. data/lib/mongoid/relations/builders/embedded/one.rb +6 -6
  176. data/lib/mongoid/relations/builders/nested_attributes/many.rb +8 -8
  177. data/lib/mongoid/relations/builders/nested_attributes/one.rb +4 -4
  178. data/lib/mongoid/relations/builders/referenced/in.rb +4 -4
  179. data/lib/mongoid/relations/builders/referenced/many.rb +5 -5
  180. data/lib/mongoid/relations/builders/referenced/many_to_many.rb +7 -5
  181. data/lib/mongoid/relations/builders/referenced/one.rb +5 -5
  182. data/lib/mongoid/relations/builders.rb +19 -16
  183. data/lib/mongoid/relations/cascading/delete.rb +3 -5
  184. data/lib/mongoid/relations/cascading/destroy.rb +3 -3
  185. data/lib/mongoid/relations/cascading/nullify.rb +3 -3
  186. data/lib/mongoid/relations/cascading/restrict.rb +37 -0
  187. data/lib/mongoid/relations/cascading.rb +6 -4
  188. data/lib/mongoid/relations/constraint.rb +4 -3
  189. data/lib/mongoid/relations/conversions.rb +5 -6
  190. data/lib/mongoid/relations/cyclic.rb +7 -7
  191. data/lib/mongoid/relations/embedded/batchable.rb +346 -0
  192. data/lib/mongoid/relations/embedded/in.rb +23 -12
  193. data/lib/mongoid/relations/embedded/many.rb +99 -160
  194. data/lib/mongoid/relations/embedded/one.rb +25 -14
  195. data/lib/mongoid/relations/macros.rb +105 -60
  196. data/lib/mongoid/relations/many.rb +93 -14
  197. data/lib/mongoid/relations/metadata.rb +231 -45
  198. data/lib/mongoid/relations/nested_builder.rb +3 -5
  199. data/lib/mongoid/relations/one.rb +2 -2
  200. data/lib/mongoid/relations/options.rb +2 -2
  201. data/lib/mongoid/relations/polymorphic.rb +9 -9
  202. data/lib/mongoid/relations/proxy.rb +60 -31
  203. data/lib/mongoid/relations/referenced/in.rb +40 -15
  204. data/lib/mongoid/relations/referenced/many.rb +116 -128
  205. data/lib/mongoid/relations/referenced/many_to_many.rb +101 -46
  206. data/lib/mongoid/relations/referenced/one.rb +34 -13
  207. data/lib/mongoid/relations/reflections.rb +3 -3
  208. data/lib/mongoid/relations/synchronization.rb +19 -23
  209. data/lib/mongoid/relations/targets/enumerable.rb +86 -57
  210. data/lib/mongoid/relations/touchable.rb +32 -0
  211. data/lib/mongoid/relations.rb +6 -6
  212. data/lib/mongoid/reloading.rb +12 -14
  213. data/lib/mongoid/scoping.rb +329 -0
  214. data/lib/mongoid/serialization.rb +13 -30
  215. data/lib/mongoid/sessions/factory.rb +106 -0
  216. data/lib/mongoid/sessions/mongo_uri.rb +93 -0
  217. data/lib/mongoid/sessions/validators/storage.rb +49 -0
  218. data/lib/mongoid/sessions/validators.rb +2 -0
  219. data/lib/mongoid/sessions.rb +359 -0
  220. data/lib/mongoid/sharding.rb +6 -6
  221. data/lib/mongoid/state.rb +6 -7
  222. data/lib/mongoid/threaded/lifecycle.rb +21 -21
  223. data/lib/mongoid/threaded/sessions.rb +0 -0
  224. data/lib/mongoid/threaded.rb +167 -59
  225. data/lib/mongoid/timestamps/created.rb +8 -4
  226. data/lib/mongoid/timestamps/timeless.rb +6 -4
  227. data/lib/mongoid/timestamps/updated.rb +3 -3
  228. data/lib/mongoid/timestamps.rb +1 -1
  229. data/lib/mongoid/unit_of_work.rb +61 -0
  230. data/lib/mongoid/validations/associated.rb +2 -2
  231. data/lib/mongoid/validations/format.rb +2 -2
  232. data/lib/mongoid/validations/presence.rb +34 -4
  233. data/lib/mongoid/validations/uniqueness.rb +8 -10
  234. data/lib/mongoid/validations.rb +28 -20
  235. data/lib/mongoid/version.rb +2 -2
  236. data/lib/mongoid/versioning.rb +25 -26
  237. data/lib/mongoid.rb +24 -39
  238. data/lib/rack/mongoid/middleware/identity_map.rb +3 -3
  239. data/lib/rails/generators/mongoid/config/config_generator.rb +1 -1
  240. data/lib/rails/generators/mongoid/config/templates/mongoid.yml +59 -19
  241. data/lib/rails/generators/mongoid/model/model_generator.rb +7 -7
  242. data/lib/rails/generators/mongoid/model/templates/model.rb.tt +2 -2
  243. data/lib/rails/generators/mongoid/observer/observer_generator.rb +4 -4
  244. data/lib/rails/generators/mongoid_generator.rb +5 -5
  245. data/lib/rails/mongoid.rb +69 -25
  246. metadata +92 -154
  247. data/lib/config/locales/bg.yml +0 -61
  248. data/lib/config/locales/de.yml +0 -61
  249. data/lib/config/locales/en-GB.yml +0 -64
  250. data/lib/config/locales/es.yml +0 -59
  251. data/lib/config/locales/fr.yml +0 -62
  252. data/lib/config/locales/hi.yml +0 -53
  253. data/lib/config/locales/hu.yml +0 -64
  254. data/lib/config/locales/id.yml +0 -62
  255. data/lib/config/locales/it.yml +0 -59
  256. data/lib/config/locales/ja.yml +0 -57
  257. data/lib/config/locales/kr.yml +0 -54
  258. data/lib/config/locales/nl.yml +0 -61
  259. data/lib/config/locales/pl.yml +0 -59
  260. data/lib/config/locales/pt-BR.yml +0 -60
  261. data/lib/config/locales/pt.yml +0 -60
  262. data/lib/config/locales/ro.yml +0 -66
  263. data/lib/config/locales/ru.yml +0 -61
  264. data/lib/config/locales/sv.yml +0 -60
  265. data/lib/config/locales/vi.yml +0 -62
  266. data/lib/config/locales/zh-CN.yml +0 -53
  267. data/lib/mongoid/collection.rb +0 -157
  268. data/lib/mongoid/collections/master.rb +0 -45
  269. data/lib/mongoid/collections/operations.rb +0 -44
  270. data/lib/mongoid/collections.rb +0 -120
  271. data/lib/mongoid/config/database.rb +0 -181
  272. data/lib/mongoid/config/replset_database.rb +0 -80
  273. data/lib/mongoid/contexts/enumerable/sort.rb +0 -43
  274. data/lib/mongoid/contexts/enumerable.rb +0 -313
  275. data/lib/mongoid/contexts/mongo.rb +0 -487
  276. data/lib/mongoid/contexts.rb +0 -25
  277. data/lib/mongoid/criterion/builder.rb +0 -34
  278. data/lib/mongoid/criterion/complex.rb +0 -84
  279. data/lib/mongoid/criterion/creational.rb +0 -34
  280. data/lib/mongoid/criterion/exclusion.rb +0 -108
  281. data/lib/mongoid/criterion/inclusion.rb +0 -290
  282. data/lib/mongoid/criterion/optional.rb +0 -259
  283. data/lib/mongoid/criterion/selector.rb +0 -177
  284. data/lib/mongoid/cursor.rb +0 -88
  285. data/lib/mongoid/default_scope.rb +0 -36
  286. data/lib/mongoid/errors/invalid_type.rb +0 -25
  287. data/lib/mongoid/extensions/array/deep_copy.rb +0 -25
  288. data/lib/mongoid/extensions/array/deletion.rb +0 -29
  289. data/lib/mongoid/extensions/false_class/equality.rb +0 -26
  290. data/lib/mongoid/extensions/hash/criteria_helpers.rb +0 -47
  291. data/lib/mongoid/extensions/hash/deep_copy.rb +0 -25
  292. data/lib/mongoid/extensions/hash/scoping.rb +0 -25
  293. data/lib/mongoid/extensions/integer/checks.rb +0 -23
  294. data/lib/mongoid/extensions/nil/collectionization.rb +0 -23
  295. data/lib/mongoid/extensions/object/checks.rb +0 -29
  296. data/lib/mongoid/extensions/object/deep_copy.rb +0 -21
  297. data/lib/mongoid/extensions/object/reflections.rb +0 -48
  298. data/lib/mongoid/extensions/object/substitutable.rb +0 -15
  299. data/lib/mongoid/extensions/object/yoda.rb +0 -44
  300. data/lib/mongoid/extensions/object_id/conversions.rb +0 -60
  301. data/lib/mongoid/extensions/proc/scoping.rb +0 -25
  302. data/lib/mongoid/extensions/string/checks.rb +0 -36
  303. data/lib/mongoid/extensions/string/conversions.rb +0 -22
  304. data/lib/mongoid/extensions/string/inflections.rb +0 -118
  305. data/lib/mongoid/extensions/symbol/checks.rb +0 -23
  306. data/lib/mongoid/extensions/symbol/inflections.rb +0 -67
  307. data/lib/mongoid/extensions/true_class/equality.rb +0 -26
  308. data/lib/mongoid/extras.rb +0 -31
  309. data/lib/mongoid/fields/internal/array.rb +0 -76
  310. data/lib/mongoid/fields/internal/big_decimal.rb +0 -63
  311. data/lib/mongoid/fields/internal/bignum.rb +0 -10
  312. data/lib/mongoid/fields/internal/binary.rb +0 -11
  313. data/lib/mongoid/fields/internal/boolean.rb +0 -58
  314. data/lib/mongoid/fields/internal/date.rb +0 -51
  315. data/lib/mongoid/fields/internal/date_time.rb +0 -28
  316. data/lib/mongoid/fields/internal/false_class.rb +0 -10
  317. data/lib/mongoid/fields/internal/fixnum.rb +0 -10
  318. data/lib/mongoid/fields/internal/float.rb +0 -47
  319. data/lib/mongoid/fields/internal/foreign_keys/array.rb +0 -88
  320. data/lib/mongoid/fields/internal/foreign_keys/object.rb +0 -56
  321. data/lib/mongoid/fields/internal/hash.rb +0 -11
  322. data/lib/mongoid/fields/internal/integer.rb +0 -59
  323. data/lib/mongoid/fields/internal/localized.rb +0 -62
  324. data/lib/mongoid/fields/internal/nil_class.rb +0 -53
  325. data/lib/mongoid/fields/internal/object.rb +0 -11
  326. data/lib/mongoid/fields/internal/object_id.rb +0 -46
  327. data/lib/mongoid/fields/internal/range.rb +0 -61
  328. data/lib/mongoid/fields/internal/set.rb +0 -57
  329. data/lib/mongoid/fields/internal/string.rb +0 -42
  330. data/lib/mongoid/fields/internal/symbol.rb +0 -43
  331. data/lib/mongoid/fields/internal/time.rb +0 -23
  332. data/lib/mongoid/fields/internal/time_with_zone.rb +0 -23
  333. data/lib/mongoid/fields/internal/timekeeping.rb +0 -122
  334. data/lib/mongoid/fields/internal/true_class.rb +0 -10
  335. data/lib/mongoid/fields/mappings.rb +0 -42
  336. data/lib/mongoid/fields/serializable.rb +0 -270
  337. data/lib/mongoid/identity.rb +0 -92
  338. data/lib/mongoid/keys.rb +0 -144
  339. data/lib/mongoid/logger.rb +0 -45
  340. data/lib/mongoid/multi_database.rb +0 -36
  341. data/lib/mongoid/named_scope.rb +0 -166
  342. data/lib/mongoid/relations/embedded/atomic/operation.rb +0 -63
  343. data/lib/mongoid/relations/embedded/atomic/pull.rb +0 -65
  344. data/lib/mongoid/relations/embedded/atomic/push_all.rb +0 -59
  345. data/lib/mongoid/relations/embedded/atomic/set.rb +0 -61
  346. data/lib/mongoid/relations/embedded/atomic/unset.rb +0 -41
  347. data/lib/mongoid/relations/embedded/atomic.rb +0 -89
  348. data/lib/mongoid/relations/referenced/batch/insert.rb +0 -57
  349. data/lib/mongoid/relations/referenced/batch.rb +0 -73
  350. data/lib/mongoid/safety.rb +0 -105
  351. data/lib/mongoid/scope.rb +0 -31
@@ -1,60 +0,0 @@
1
- pt:
2
- mongoid:
3
- errors:
4
- messages:
5
- taken:
6
- já está utilizada
7
- callbacks:
8
- "Calling %{method} on %{klass} resulted in a false return from a callback."
9
- document_not_found:
10
- Nenhum documento encontrado para a classe %{klass} com os id(s) %{identifiers}.
11
- eager_load:
12
- "Eager loading :%{name} is not supported due to it being a many-to-many
13
- or polymorphic belongs_to relation."
14
- invalid_database:
15
- A base de dados deverá ser uma Mongo::DB, em vez de %{name}.
16
- invalid_time:
17
- "'%{value}' is not a valid Time."
18
- invalid_type:
19
- O campo foi definido como %{klass}, mas recebeu uma instância de %{other} com
20
- o valor %{value}.
21
- invalid_options:
22
- "Invalid option :%{invalid} provided to relation :%{name}. Valid options
23
- are: %{valid}."
24
- unsupported_version:
25
- MongoDB %{version} não é suportada, por favor actualize para a
26
- versão %{mongo_version}.
27
- validations:
28
- A validação falhou - %{errors}.
29
- invalid_collection:
30
- O acesso à colecção para %{klass} não é permitido porque
31
- é um documento embebido, por favor aceda à colecção através
32
- do documento raiz.
33
- invalid_field:
34
- Não é permitido definir um campo com o nome %{name}. Não defina
35
- campos que entrem em conflito com os nomes dos atributos internos e métodos
36
- do Mongoid. Use Document#instance_methods para consultar esses nomes.
37
- too_many_nested_attribute_records:
38
- A aceitação de atributos encadeados para %{association} encontra-se limitada
39
- a %{limit} registros.
40
- embedded_in_must_have_inverse_of:
41
- As opções para uma associação embedded_in devem incluir inverse_of.
42
- dependent_only_references_one_or_many:
43
- A opção The dependent => destroy|delete que é fornecida
44
- é apenas válida para associações references_one ou references_many.
45
- association_cant_have_inverse_of:
46
- A definição de inverse_of nesta associação não é permitida. Apenas
47
- use esta opção em embedded_in ou references_many como lista.
48
- unsaved_document:
49
- You cannot call create or create! through a relational association
50
- relation (%{document}) who's parent (%{base}) is not already saved.
51
- mixed_relations:
52
- Referencing a(n) %{embedded} document from the %{root} document via a
53
- relational association is not allowed since the %{embedded} is embedded.
54
- no_environment:
55
- "Mongoid attempted to find the appropriate environment but no Rails.env,
56
- Sinatra::Base.environment, or RACK_ENV could be found."
57
- scope_overwrite:
58
- "Cannot create scope :%{scope_name}, because of existing method
59
- %{model_name}.%{scope_name}."
60
- blank_on_locale: "can't be blank in %{in_locale}"
@@ -1,66 +0,0 @@
1
- ro:
2
- mongoid:
3
- errors:
4
- messages:
5
- taken:
6
- este deja folosit
7
- callbacks:
8
- "Calling %{method} on %{klass} resulted in a false return from a callback."
9
- document_not_found:
10
- Nu există document în clasa %{klass} cu id %{identifiers}.
11
- eager_load:
12
- "Eager loading :%{name} is not supported due to it being a many-to-many
13
- or polymorphic belongs_to relation."
14
- invalid_database:
15
- Baza de date ar trebui să fie de tipul Mongo::DB, nu %{name}.
16
- invalid_time:
17
- "'%{value}' is not a valid Time."
18
- invalid_type:
19
- Câmpul a fost definit ca şi un(o) %{klass}, dar valoarea
20
- recepţionată %{value} este de clasa %{other}.
21
- invalid_options:
22
- "Invalid option :%{invalid} provided to relation :%{name}. Valid options
23
- are: %{valid}."
24
- unsupported_version:
25
- Versiunea MongoDB %{version} nu este suportată.
26
- Vă rugăm să folosiţi versiunea %{mongo_version}.
27
- validations:
28
- Validare nereuşită - %{errors}.
29
- invalid_collection:
30
- Accesul la colecţie din clasa %{klass} este interzisă, fiindcă
31
- este un document încorporat. Vă rugăm accesaţi colecţia din
32
- documentul rădăcină.
33
- invalid_field:
34
- Folosirea denumirii %{name} ptr. un câmp este interzisă. Vă
35
- rugăm să evitaţi utilizarea acelor cuvinte care intră în conflict
36
- cu denumirile folosite de proprietăţile sau metodele Mongoid-lui.
37
- Folosiţi comanda Document#instance_methods pentru a afla care
38
- sunt acestea.
39
- too_many_nested_attribute_records:
40
- În cazul %{association} folosirea atributelor îmbricate este
41
- limitat la %{limit} înregistrări.
42
- embedded_in_must_have_inverse_of:
43
- Folosirea opţiunii inverse_of este obligatorie în cazul
44
- asociaţiilor de tip embedded_in.
45
- dependent_only_references_one_or_many:
46
- Opţiunea dependent => destroy|delete poate fi folosită doar în
47
- cazul asociaţiilor de tip references_one sau references_many.
48
- association_cant_have_inverse_of:
49
- Folosire opţiunii inverse_of la acest tip de asociaţie este
50
- interzisă. Aceasta poate fi folosită doar la asociaţiile de
51
- tip embedded_in sau references_many as array.
52
- calling_document_find_with_nil_is_invalid:
53
- Folosirea metodei Document#find cu valoarea nil este invalidă.
54
- unsaved_document:
55
- You cannot call create or create! through a relational association
56
- relation (%{document}) who's parent (%{base}) is not already saved.
57
- mixed_relations:
58
- Referencing a(n) %{embedded} document from the %{root} document via a
59
- relational association is not allowed since the %{embedded} is embedded.
60
- no_environment:
61
- "Mongoid attempted to find the appropriate environment but no Rails.env,
62
- Sinatra::Base.environment, or RACK_ENV could be found."
63
- scope_overwrite:
64
- "Cannot create scope :%{scope_name}, because of existing method
65
- %{model_name}.%{scope_name}."
66
- blank_on_locale: "can't be blank in %{in_locale}"
@@ -1,61 +0,0 @@
1
- ru:
2
- mongoid:
3
- errors:
4
- messages:
5
- taken:
6
- уже занят
7
- callbacks:
8
- "Calling %{method} on %{klass} resulted in a false return from a callback."
9
- document_not_found:
10
- Документ класса %{klass} с id %{identifiers} не найден.
11
- eager_load:
12
- "Eager loading :%{name} is not supported due to it being a many-to-many
13
- or polymorphic belongs_to relation."
14
- invalid_database:
15
- База данных должна быть Mongo::DB, а не %{name}.
16
- invalid_time:
17
- "'%{value}' is not a valid Time."
18
- invalid_type:
19
- Поле уже было определено в классе %{klass}, но получено как %{other}
20
- со значением %{value}.
21
- invalid_options:
22
- "Invalid option :%{invalid} provided to relation :%{name}. Valid options
23
- are: %{valid}."
24
- unsupported_version:
25
- Версия MongoDB %{version} не поддерживается. Пожалуйста, обновитесь до
26
- версии %{mongo_version}.
27
- validations:
28
- Документ не прошёл валидацию - %{errors}.
29
- invalid_collection:
30
- Доступ к коллекции для класса %{klass} запрещён, так как это вложенный
31
- документ. Пожалуйста, обратитесь к коллекции через родительский документ.
32
- invalid_field:
33
- Определение поля с именем %{name} запрещено. Не определяйте поля
34
- с именами совпадающими с внутренними атрибутами или методами Mongoid.
35
- Используйте Document#instance_methods для просмотра запрещённых имён.
36
- too_many_nested_attribute_records:
37
- Accepting nested attributes для %{association} ограничено
38
- %{limit} записями.
39
- embedded_in_must_have_inverse_of:
40
- Указание опции inverse_of для embedded_in ассоциации обязательно.
41
- dependent_only_references_one_or_many:
42
- Опция dependent => destroy|delete доступная только для
43
- references_one или references_many ассоциаций.
44
- association_cant_have_inverse_of:
45
- Опция inverse_of не может использоваться с этой ассоциацией.
46
- Используйте её с embedded_in или references_many ассоциациями.
47
- calling_document_find_with_nil_is_invalid:
48
- Вызов Document#find с nil запрещён
49
- unsaved_document:
50
- Вызов методов create или create! запрещён у реляционной ассоциации
51
- (%{document}), у которой родитель (%{base}) не сохранён.
52
- mixed_relations:
53
- Referencing a(n) %{embedded} document from the %{root} document via a
54
- relational association is not allowed since the %{embedded} is embedded.
55
- no_environment:
56
- "Mongoid attempted to find the appropriate environment but no Rails.env,
57
- Sinatra::Base.environment, or RACK_ENV could be found."
58
- scope_overwrite:
59
- "Cannot create scope :%{scope_name}, because of existing method
60
- %{model_name}.%{scope_name}."
61
- blank_on_locale: "can't be blank in %{in_locale}"
@@ -1,60 +0,0 @@
1
- sv:
2
- mongoid:
3
- errors:
4
- messages:
5
- taken:
6
- har redan använts
7
- callbacks:
8
- "Calling %{method} on %{klass} resulted in a false return from a callback."
9
- document_not_found:
10
- Inget dokument kunde hittas för klass %{klass} med id %{identifiers}.
11
- eager_load:
12
- "Eager loading :%{name} is not supported due to it being a many-to-many
13
- or polymorphic belongs_to relation."
14
- invalid_database:
15
- Databasen bör vara Mongo::DB, inte %{name}.
16
- invalid_time:
17
- "'%{value}' is not a valid Time."
18
- invalid_type:
19
- Fältet var definerat som %{klass}, men fick %{other} med
20
- värdet %{value}.
21
- invalid_options:
22
- "Invalid option :%{invalid} provided to relation :%{name}. Valid options
23
- are: %{valid}."
24
- unsupported_version:
25
- MongoDB %{version} stöds ej, vänligen upgradera
26
- till %{mongo_version}.
27
- validations:
28
- Validering misslyckades - %{errors}.
29
- invalid_collection:
30
- Tillgång till kollektionen för %{klass} är inte tillåten eftersom den
31
- är ett inbäddat dokument, vänligen accessa kollektionen från
32
- rotdokumentet.
33
- invalid_field:
34
- Att definera ett fält med namnet %{name} är inte tillåtet. Definera inte
35
- fält som är i konflikt med Mongoids interna attribut eller metod
36
- namn. Använd Document#instance_methods för att se vilka namn detta innefattar.
37
- too_many_nested_attribute_records:
38
- Acceptans av nästlade attribut för %{association} är begränsat
39
- till %{limit} register.
40
- embedded_in_must_have_inverse_of:
41
- Alternativ för en embedded_in association måste innehålla inverse_of.
42
- dependent_only_references_one_or_many:
43
- Alternativet dependent => destroy|delete som angavs
44
- är endast giltigt för references_one eller references_many associationer.
45
- association_cant_have_inverse_of:
46
- Att definera inverse_of på denna association är inte tillåtet. Använd
47
- endast detta alternativ på embedded_in eller references_many as array.
48
- unsaved_document:
49
- You cannot call create or create! through a relational association
50
- relation (%{document}) who's parent (%{base}) is not already saved.
51
- mixed_relations:
52
- Referencing a(n) %{embedded} document from the %{root} document via a
53
- relational association is not allowed since the %{embedded} is embedded.
54
- no_environment:
55
- "Mongoid attempted to find the appropriate environment but no Rails.env,
56
- Sinatra::Base.environment, or RACK_ENV could be found."
57
- scope_overwrite:
58
- "Cannot create scope :%{scope_name}, because of existing method
59
- %{model_name}.%{scope_name}."
60
- blank_on_locale: "can't be blank in %{in_locale}"
@@ -1,62 +0,0 @@
1
- vi:
2
- mongoid:
3
- errors:
4
- messages:
5
- taken:
6
- đã bị lấy
7
- callbacks:
8
- "Calling %{method} on %{klass} resulted in a false return from a callback."
9
- document_not_found:
10
- Không tìm thấy văn bản cho lớp %{klass} với định danh %{identifiers}.
11
- eager_load:
12
- "Eager loading :%{name} is not supported due to it being a many-to-many
13
- or polymorphic belongs_to relation."
14
- invalid_database:
15
- Cơ sở dữ liệu nên là Mongo::DB, không phải %{name}.
16
- invalid_time:
17
- "'%{value}' is not a valid Time."
18
- invalid_type:
19
- Trường được định nghĩa là một %{klass}, nhưng nhận được %{other} với
20
- giá trị %{value}.
21
- invalid_options:
22
- "Invalid option :%{invalid} provided to relation :%{name}. Valid options
23
- are: %{valid}."
24
- unsupported_version:
25
- MongoDB %{version} không được hỗ trợ, xin vui lòng nâng cấp
26
- lên %{mongo_version}.
27
- validations:
28
- Kiểm định không thành công - %{errors}.
29
- invalid_collection:
30
- Không được phép truy cập tập văn bản cuả %{klass} vì đây
31
- là một văn bản nhúng, xin vui lòng truy cập tập văn bản từ
32
- văn bản gốc.
33
- invalid_field:
34
- Không được phép định nghĩa tên trường là %{name}. Không định nghĩa
35
- tên trường trùng với các thuộc tính có sẵn hoặc các tên hàm cuả Mongoid.
36
- Sử dụng Use Document#instance_methods để xem danh sách tên đã được dùng.
37
- too_many_nested_attribute_records:
38
- Số lượng các thuộc tính lồng cho %{association} bị giới hạn
39
- ở %{limit} bản ghi.
40
- embedded_in_must_have_inverse_of:
41
- Phải cho thêm inverse_of vào lực chọn cuả kết hợp embedded_in.
42
- dependent_only_references_one_or_many:
43
- Lựa chọn dependent => destroy|delete
44
- chỉ có hiệu lực với kết hợp references_one hoặc references_many.
45
- association_cant_have_inverse_of:
46
- Không được phép định nghĩa inverse_of cho kết hợp này. Chỉ
47
- sử dụng lựa chọn này cho embedded_in or references_many as array.
48
- calling_document_find_with_nil_is_invalid:
49
- Không được phép gọi Document#find với giá trị nil
50
- unsaved_document:
51
- Bạn không được gọi create hoặc create! thông qua một quan hệ kết hợp
52
- mà văn bản gốc (%{base}) chưa được lưu.
53
- mixed_relations:
54
- Không được phép tham chiếu một văn bản %{embedded} từ văn bản %{root} thông qua một
55
- quan hệ kết hợp vì %{embedded} là kiểu nhúng.
56
- no_environment:
57
- "Mongoid attempted to find the appropriate environment but no Rails.env,
58
- Sinatra::Base.environment, or RACK_ENV could be found."
59
- scope_overwrite:
60
- "Cannot create scope :%{scope_name}, because of existing method
61
- %{model_name}.%{scope_name}."
62
- blank_on_locale: "can't be blank in %{in_locale}"
@@ -1,53 +0,0 @@
1
- zh-CN:
2
- mongoid:
3
- errors:
4
- messages:
5
- blank:
6
- 不能为空
7
- callbacks:
8
- "Calling %{method} on %{klass} resulted in a false return from a callback."
9
- taken:
10
- 已占用
11
- document_not_found:
12
- 没有发现类是%{klass}id(s)是%{identifiers}的文档
13
- eager_load:
14
- "Eager loading :%{name} is not supported due to it being a many-to-many
15
- or polymorphic belongs_to relation."
16
- invalid_database:
17
- 数据库应该是Mongo::DB,而不是%{name}.
18
- invalid_time:
19
- "'%{value}' is not a valid Time."
20
- invalid_type:
21
- 在类%{klass}中定义了字段,实际值是%{value}的%{other}.
22
- invalid_options:
23
- "Invalid option :%{invalid} provided to relation :%{name}. Valid options
24
- are: %{valid}."
25
- unsupported_version:
26
- MongoDB %{version} 版本已过期,请升级到 %{mongo_version}.
27
- validations:
28
- 校验失败 - %{errors}.
29
- invalid_collection:
30
- 不允许直接访问嵌入式的集合%{klass} , 请从文档的根访问集合.
31
- invalid_field:
32
- 字段的名字不允许为 %{name}. 你不应该定义跟Mongoid内部属性或者方法相同的名字,详细请看Use Document#instance_methods.
33
- too_many_nested_attribute_records:
34
- 被关联的%{association} 嵌入式属性不能超过 %{limit}.
35
- embedded_in_must_have_inverse_of:
36
- embedded_in的关联属性必须包含inverse_of.
37
- dependent_only_references_one_or_many:
38
- dependent => destroy|delete 选项只有在references_one或者references_many时候有效.
39
- association_cant_have_inverse_of:
40
- 在当前的关联中,不允许定义inverse_of去,其只有在embedded_in或者references_many是数组的情况下使用
41
- unsaved_document:
42
- You cannot call create or create! through a relational association
43
- relation (%{document}) who's parent (%{base}) is not already saved.
44
- mixed_relations:
45
- Referencing a(n) %{embedded} document from the %{root} document via a
46
- relational association is not allowed since the %{embedded} is embedded.
47
- no_environment:
48
- "Mongoid attempted to find the appropriate environment but no Rails.env,
49
- Sinatra::Base.environment, or RACK_ENV could be found."
50
- scope_overwrite:
51
- "Cannot create scope :%{scope_name}, because of existing method
52
- %{model_name}.%{scope_name}."
53
- blank_on_locale: "can't be blank in %{in_locale}"
@@ -1,157 +0,0 @@
1
- # encoding: utf-8
2
- require "mongoid/collections/retry"
3
- require "mongoid/collections/operations"
4
- require "mongoid/collections/master"
5
-
6
- module Mongoid #:nodoc
7
-
8
- # This class is the Mongoid wrapper to the Mongo Ruby driver's collection
9
- # object.
10
- class Collection
11
- attr_reader :counter, :klass, :name
12
-
13
- # All write operations should delegate to the master connection. These
14
- # operations mimic the methods on a Mongo:Collection.
15
- #
16
- # @example Delegate the operation.
17
- # collection.save({ :name => "Al" })
18
- delegate *(Collections::Operations::PROXIED.dup << {:to => :master})
19
-
20
- # Get the unwrapped driver collection for this mongoid collection.
21
- #
22
- # @example Get the driver collection.
23
- # collection.driver
24
- #
25
- # @return [ Mongo::Collection ] The driver collection.
26
- #
27
- # @since 2.2.0
28
- def driver
29
- master.collection
30
- end
31
-
32
- # Find documents from the database given a selector and options.
33
- #
34
- # @example Find documents in the collection.
35
- # collection.find({ :test => "value" })
36
- #
37
- # @param [ Hash ] selector The query selector.
38
- # @param [ Hash ] options The options to pass to the db.
39
- #
40
- # @return [ Cursor ] The results.
41
- def find(selector = {}, options = {})
42
- cursor = Mongoid::Cursor.new(klass, self, master(options).find(selector, options))
43
- if block_given?
44
- yield cursor; cursor.close
45
- else
46
- cursor
47
- end
48
- end
49
-
50
- # Find the first document from the database given a selector and options.
51
- #
52
- # @example Find one document.
53
- # collection.find_one({ :test => "value" })
54
- #
55
- # @param [ Hash ] selector The query selector.
56
- # @param [ Hash ] options The options to pass to the db.
57
- #
58
- # @return [ Document, nil ] A matching document or nil if none found.
59
- def find_one(selector = {}, options = {})
60
- master(options).find_one(selector, options)
61
- end
62
-
63
- # Initialize a new Mongoid::Collection, setting up the master, slave, and
64
- # name attributes. Masters will be used for writes, slaves for reads.
65
- #
66
- # @example Create the new collection.
67
- # Collection.new(masters, slaves, "test")
68
- #
69
- # @param [ Class ] klass The class the collection is for.
70
- # @param [ String ] name The name of the collection.
71
- # @param [ Hash ] options The collection options.
72
- #
73
- # @option options [ true, false ] :capped If the collection is capped.
74
- # @option options [ Integer ] :size The capped collection size.
75
- # @option options [ Integer ] :max The maximum number of docs in the
76
- # capped collection.
77
- def initialize(klass, name, options = {})
78
- @klass, @name, @options = klass, name, options || {}
79
- end
80
-
81
- # Inserts one or more documents in the collection.
82
- #
83
- # @example Insert documents.
84
- # collection.insert(
85
- # { "field" => "value" },
86
- # :safe => true
87
- # )
88
- #
89
- # @param [ Hash, Array<Hash> ] documents A single document or multiples.
90
- # @param [ Hash ] options The options.
91
- #
92
- # @since 2.0.2, batch-relational-insert
93
- def insert(documents, options = {})
94
- consumer = Threaded.insert(name)
95
- if consumer
96
- consumer.consume(documents, options)
97
- else
98
- master(options).insert(documents, options)
99
- end
100
- end
101
-
102
- # Perform a map/reduce on the documents.
103
- #
104
- # @example Perform the map/reduce.
105
- # collection.map_reduce(map, reduce)
106
- #
107
- # @param [ String ] map The map javascript function.
108
- # @param [ String ] reduce The reduce javascript function.
109
- # @param [ Hash ] options The options to pass to the db.
110
- #
111
- # @return [ Cursor ] The results.
112
- def map_reduce(map, reduce, options = {})
113
- master(options).map_reduce(map, reduce, options)
114
- end
115
- alias :mapreduce :map_reduce
116
-
117
- # Return the object responsible for writes to the database. This will
118
- # always return a collection associated with the Master DB.
119
- #
120
- # @example Get the master connection.
121
- # collection.master
122
- #
123
- # @return [ Master ] The master connection.
124
- def master(options = {})
125
- options.delete(:cache)
126
- db = Mongoid.databases[klass.database] || Mongoid.master
127
- @master ||= Collections::Master.new(db, @name, @options)
128
- end
129
-
130
- # Updates one or more documents in the collection.
131
- #
132
- # @example Update documents.
133
- # collection.update(
134
- # { "_id" => BSON::OjectId.new },
135
- # { "$push" => { "addresses" => { "_id" => "street" } } },
136
- # :safe => true
137
- # )
138
- #
139
- # @param [ Hash ] selector The document selector.
140
- # @param [ Hash ] document The modifier.
141
- # @param [ Hash ] options The options.
142
- #
143
- # @since 2.0.0
144
- def update(selector, document, options = {})
145
- updater = Threaded.update_consumer(name)
146
- if updater
147
- updater.consume(selector, document, options)
148
- else
149
- master(options).update(selector, document, options)
150
- end
151
- end
152
-
153
- def drop(*args)
154
- @master = nil if master.drop
155
- end
156
- end
157
- end
@@ -1,45 +0,0 @@
1
- # encoding: utf-8
2
- module Mongoid #:nodoc:
3
- module Collections #:nodoc:
4
-
5
- # This class wraps the MongoDB master database.
6
- class Master
7
- include Mongoid::Collections::Retry
8
-
9
- attr_reader :collection
10
-
11
- # All read and write operations should delegate to the master connection.
12
- # These operations mimic the methods on a Mongo:Collection.
13
- #
14
- # @example Proxy the driver save.
15
- # collection.save({ :name => "Al" })
16
- Operations::ALL.each do |name|
17
- class_eval <<-EOS, __FILE__, __LINE__
18
- def #{name}(*args)
19
- retry_on_connection_failure do
20
- collection.#{name}(*args)
21
- end
22
- end
23
- EOS
24
- end
25
-
26
- # Create the new database writer. Will create a collection from the
27
- # master database.
28
- #
29
- # @example Create a new wrapped master.
30
- # Master.new(db, "testing")
31
- #
32
- # @param [ Mongo::DB ] master The master database.
33
- # @param [ String ] name The name of the database.
34
- # @param [ Hash ] options The collection options.
35
- #
36
- # @option options [ true, false ] :capped If the collection is capped.
37
- # @option options [ Integer ] :size The capped collection size.
38
- # @option options [ Integer ] :max The maximum number of docs in the
39
- # capped collection.
40
- def initialize(master, name, options = {})
41
- @collection = master.create_collection(name, options)
42
- end
43
- end
44
- end
45
- end
@@ -1,44 +0,0 @@
1
- # encoding: utf-8
2
- module Mongoid #:nodoc:
3
- module Collections #:nodoc:
4
- module Operations #:nodoc:
5
-
6
- # Constant definining all the read operations available for a
7
- # Mongo:Collection. This is used in delegation.
8
- READ = [
9
- :[],
10
- :db,
11
- :count,
12
- :distinct,
13
- :find,
14
- :find_one,
15
- :group,
16
- :index_information,
17
- :map_reduce,
18
- :mapreduce,
19
- :stats,
20
- :options
21
- ]
22
-
23
- # Constant definining all the write operations available for a
24
- # Mongo:Collection. This is used in delegation.
25
- WRITE = [
26
- :<<,
27
- :create_index,
28
- :drop,
29
- :drop_index,
30
- :drop_indexes,
31
- :find_and_modify,
32
- :insert,
33
- :remove,
34
- :rename,
35
- :save,
36
- :update
37
- ]
38
-
39
- # Convenience constant for getting back all collection operations.
40
- ALL = (READ + WRITE)
41
- PROXIED = ALL - [ :find, :find_one, :map_reduce, :mapreduce, :update ]
42
- end
43
- end
44
- end