mongoid 2.4.9 → 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 +869 -8
  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 -6
  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 +4 -4
  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 +39 -12
  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 +12 -4
  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 -148
  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 +14 -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 -122
  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 +103 -25
  234. data/lib/mongoid/validations.rb +62 -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 +93 -155
  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 -485
  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 -31
  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,18 +1,18 @@
1
1
  # encoding: utf-8
2
2
  require "rails/generators/mongoid_generator"
3
3
 
4
- module Mongoid #:nodoc:
5
- module Generators #:nodoc:
6
- class ModelGenerator < Base #:nodoc:
4
+ module Mongoid
5
+ module Generators
6
+ class ModelGenerator < Base
7
7
 
8
8
  desc "Creates a Mongoid model"
9
- argument :attributes, :type => :array, :default => [], :banner => "field:type field:type"
9
+ argument :attributes, type: :array, default: [], banner: "field:type field:type"
10
10
 
11
11
  check_class_collision
12
12
 
13
- class_option :timestamps, :type => :boolean
14
- class_option :parent, :type => :string, :desc => "The parent class for the generated model"
15
- class_option :versioning, :type => :boolean, :default => false, :desc => "Enable mongoid versioning"
13
+ class_option :timestamps, type: :boolean
14
+ class_option :parent, type: :string, desc: "The parent class for the generated model"
15
+ class_option :versioning, type: :boolean, default: false, desc: "Enable mongoid versioning"
16
16
 
17
17
  def create_model_file
18
18
  template "model.rb.tt", File.join("app/models", class_path, "#{file_name}.rb")
@@ -10,10 +10,10 @@ class <%= class_name %><%= " < #{options[:parent].classify}" if options[:parent]
10
10
  include Mongoid::Versioning
11
11
  <% end -%>
12
12
  <% attributes.reject{|attr| attr.reference?}.each do |attribute| -%>
13
- field :<%= attribute.name %>, :type => <%= attribute.type_class %>
13
+ field :<%= attribute.name %>, type: <%= attribute.type_class %>
14
14
  <% end -%>
15
15
  <% attributes.select{|attr| attr.reference? }.each do |attribute| -%>
16
- embedded_in :<%= attribute.name%>, :inverse_of => :<%= class_name.tableize %>
16
+ embedded_in :<%= attribute.name%>
17
17
  <% end -%>
18
18
  end
19
19
  <% end -%>
@@ -1,11 +1,11 @@
1
1
  # encoding: utf-8
2
2
  require "rails/generators/mongoid_generator"
3
3
 
4
- module Mongoid #:nodoc:
5
- module Generators #:nodoc:
6
- class ObserverGenerator < Base #:nodoc:
4
+ module Mongoid
5
+ module Generators
6
+ class ObserverGenerator < Base
7
7
 
8
- check_class_collision :suffix => "Observer"
8
+ check_class_collision suffix: "Observer"
9
9
 
10
10
  def create_observer_file
11
11
  template 'observer.rb.tt', File.join('app/models', class_path, "#{file_name}_observer.rb")
@@ -2,9 +2,9 @@
2
2
  require "rails/generators/named_base"
3
3
  require "rails/generators/active_model"
4
4
 
5
- module Mongoid #:nodoc:
6
- module Generators #:nodoc:
7
- class Base < ::Rails::Generators::NamedBase #:nodoc:
5
+ module Mongoid
6
+ module Generators
7
+ class Base < ::Rails::Generators::NamedBase
8
8
 
9
9
  def self.source_root
10
10
  @_mongoid_source_root ||=
@@ -21,7 +21,7 @@ module Mongoid #:nodoc:
21
21
  end
22
22
  end
23
23
 
24
- class ActiveModel < ::Rails::Generators::ActiveModel #:nodoc:
24
+ class ActiveModel < ::Rails::Generators::ActiveModel
25
25
  def self.all(klass)
26
26
  "#{klass}.all"
27
27
  end
@@ -59,7 +59,7 @@ end
59
59
 
60
60
  module Rails
61
61
  module Generators
62
- class GeneratedAttribute #:nodoc:
62
+ class GeneratedAttribute
63
63
  def type_class
64
64
  return "Time" if type.to_s == "datetime"
65
65
  return "String" if type.to_s == "text"
data/lib/rails/mongoid.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # encoding: utf-8
2
- module Rails #:nodoc:
3
- module Mongoid #:nodoc:
2
+ module Rails
3
+ module Mongoid
4
4
  extend self
5
5
 
6
6
  # Create indexes for each model given the provided pattern and the class is
@@ -15,23 +15,61 @@ module Rails #:nodoc:
15
15
  #
16
16
  # @since 2.1.0
17
17
  def create_indexes(pattern)
18
- Dir.glob(pattern).each do |file|
18
+ logger = Logger.new($stdout)
19
+ models(pattern).each do |model|
20
+ next if model.index_options.empty?
21
+ unless model.embedded?
22
+ model.create_indexes
23
+ logger.info("Creating indexes on: #{model} for: #{model.index_options.keys.join(", ")}.")
24
+ else
25
+ logger.info("Index ignored on: #{model}, please define in the root model.")
26
+ end
27
+ end
28
+ end
29
+
30
+ # Remove indexes for each model given the provided pattern and the class is
31
+ # not embedded.
32
+ #
33
+ # @example Remove all the indexes.
34
+ # Rails::Mongoid.create_indexes("app/models/**/*.rb")
35
+ #
36
+ # @param [ String ] pattern The file matching pattern.
37
+ #
38
+ # @return [ Array<String> ] The file names.
39
+ #
40
+ def remove_indexes(pattern)
41
+ logger = Logger.new($stdout)
42
+ models(pattern).each do |model|
43
+ next if model.embedded?
44
+ indexes = model.collection.indexes.map{ |doc| doc["name"] }
45
+ indexes.delete_one("_id_")
46
+ model.remove_indexes
47
+ logger.info("Removing indexes on: #{model} for: #{indexes.join(', ')}.")
48
+ end
49
+ end
50
+
51
+ # Return all models matching the pattern.
52
+ #
53
+ # @example Return all models.
54
+ # Rails::Mongoid.models("app/models/**/*.rb")
55
+ #
56
+ # @param [ String ] pattern The file matching pattern.
57
+ #
58
+ # @return [ Array<Class> ] The models.
59
+ #
60
+ def models(pattern)
61
+ Dir.glob(pattern).map do |file|
19
62
  logger = Logger.new($stdout)
20
63
  begin
21
- model = determine_model(file, logger)
64
+ determine_model(file, logger)
22
65
  rescue => e
23
66
  logger.error(%Q{Failed to determine model from #{file}:
24
67
  #{e.class}:#{e.message}
25
68
  #{e.backtrace.join("\n")}
26
69
  })
70
+ nil
27
71
  end
28
- if model
29
- model.create_indexes
30
- logger.info("Generated indexes for #{model}")
31
- else
32
- logger.info("Not a Mongoid parent model: #{file}")
33
- end
34
- end
72
+ end.flatten.compact
35
73
  end
36
74
 
37
75
  # Use the application configuration to get every model and require it, so
@@ -44,7 +82,14 @@ module Rails #:nodoc:
44
82
  # @param [ Application ] app The rails application.
45
83
  def load_models(app)
46
84
  app.config.paths["app/models"].each do |path|
47
- Dir.glob("#{path}/**/*.rb").sort.each do |file|
85
+ preload = ::Mongoid.preload_models
86
+ if preload.resizable?
87
+ files = preload.map { |model| "#{path}/#{model}.rb" }
88
+ else
89
+ files = Dir.glob("#{path}/**/*.rb")
90
+ end
91
+
92
+ files.sort.each do |file|
48
93
  load_model(file.gsub("#{path}/" , "").gsub(".rb", ""))
49
94
  end
50
95
  end
@@ -84,20 +129,19 @@ module Rails #:nodoc:
84
129
  #
85
130
  # @since 2.1.0
86
131
  def determine_model(file, logger)
87
- if file =~ /app\/models\/(.*).rb$/
88
- model_path = $1.split('/')
89
- begin
90
- parts = model_path.map { |path| path.camelize }
91
- name = parts.join("::")
92
- klass = name.constantize
93
- rescue NameError, LoadError => e
94
- logger.info("Attempted to constantize #{name}, trying without namespacing.")
95
- klass = parts.last.constantize
96
- end
97
- if klass.ancestors.include?(::Mongoid::Document) && !klass.embedded
98
- return klass
99
- end
132
+ return nil unless file =~ /app\/models\/(.*).rb$/
133
+ return nil unless logger
134
+
135
+ model_path = $1.split('/')
136
+ begin
137
+ parts = model_path.map { |path| path.camelize }
138
+ name = parts.join("::")
139
+ klass = name.constantize
140
+ rescue NameError, LoadError
141
+ logger.info("Attempted to constantize #{name}, trying without namespacing.")
142
+ klass = parts.last.constantize
100
143
  end
144
+ klass if klass.ancestors.include?(::Mongoid::Document)
101
145
  end
102
146
  end
103
147
  end
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongoid
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.9
5
- prerelease:
4
+ version: 3.0.0.rc
5
+ prerelease: 6
6
6
  platform: ruby
7
7
  authors:
8
8
  - Durran Jordan
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-04-24 00:00:00.000000000 Z
12
+ date: 2012-05-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activemodel
@@ -44,13 +44,13 @@ dependencies:
44
44
  - !ruby/object:Gem::Version
45
45
  version: 0.3.22
46
46
  - !ruby/object:Gem::Dependency
47
- name: mongo
47
+ name: moped
48
48
  requirement: !ruby/object:Gem::Requirement
49
49
  none: false
50
50
  requirements:
51
51
  - - ~>
52
52
  - !ruby/object:Gem::Version
53
- version: '1.3'
53
+ version: 1.0.0.rc
54
54
  type: :runtime
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
@@ -58,39 +58,23 @@ dependencies:
58
58
  requirements:
59
59
  - - ~>
60
60
  - !ruby/object:Gem::Version
61
- version: '1.3'
61
+ version: 1.0.0.rc
62
62
  - !ruby/object:Gem::Dependency
63
- name: rdoc
63
+ name: origin
64
64
  requirement: !ruby/object:Gem::Requirement
65
65
  none: false
66
66
  requirements:
67
67
  - - ~>
68
68
  - !ruby/object:Gem::Version
69
- version: 3.5.0
70
- type: :development
71
- prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
- requirements:
75
- - - ~>
76
- - !ruby/object:Gem::Version
77
- version: 3.5.0
78
- - !ruby/object:Gem::Dependency
79
- name: bson_ext
80
- requirement: !ruby/object:Gem::Requirement
81
- none: false
82
- requirements:
83
- - - ~>
84
- - !ruby/object:Gem::Version
85
- version: '1.3'
86
- type: :development
69
+ version: 1.0.0.rc
70
+ type: :runtime
87
71
  prerelease: false
88
72
  version_requirements: !ruby/object:Gem::Requirement
89
73
  none: false
90
74
  requirements:
91
75
  - - ~>
92
76
  - !ruby/object:Gem::Version
93
- version: '1.3'
77
+ version: 1.0.0.rc
94
78
  - !ruby/object:Gem::Dependency
95
79
  name: mocha
96
80
  requirement: !ruby/object:Gem::Requirement
@@ -98,7 +82,7 @@ dependencies:
98
82
  requirements:
99
83
  - - ~>
100
84
  - !ruby/object:Gem::Version
101
- version: '0.10'
85
+ version: '0.11'
102
86
  type: :development
103
87
  prerelease: false
104
88
  version_requirements: !ruby/object:Gem::Requirement
@@ -106,7 +90,7 @@ dependencies:
106
90
  requirements:
107
91
  - - ~>
108
92
  - !ruby/object:Gem::Version
109
- version: '0.10'
93
+ version: '0.11'
110
94
  - !ruby/object:Gem::Dependency
111
95
  name: rspec
112
96
  requirement: !ruby/object:Gem::Requirement
@@ -114,7 +98,7 @@ dependencies:
114
98
  requirements:
115
99
  - - ~>
116
100
  - !ruby/object:Gem::Version
117
- version: '2.6'
101
+ version: '2.10'
118
102
  type: :development
119
103
  prerelease: false
120
104
  version_requirements: !ruby/object:Gem::Requirement
@@ -122,7 +106,7 @@ dependencies:
122
106
  requirements:
123
107
  - - ~>
124
108
  - !ruby/object:Gem::Version
125
- version: '2.6'
109
+ version: '2.10'
126
110
  - !ruby/object:Gem::Dependency
127
111
  name: guard-rspec
128
112
  requirement: !ruby/object:Gem::Requirement
@@ -130,23 +114,7 @@ dependencies:
130
114
  requirements:
131
115
  - - ~>
132
116
  - !ruby/object:Gem::Version
133
- version: '0.6'
134
- type: :development
135
- prerelease: false
136
- version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
- requirements:
139
- - - ~>
140
- - !ruby/object:Gem::Version
141
- version: '0.6'
142
- - !ruby/object:Gem::Dependency
143
- name: ammeter
144
- requirement: !ruby/object:Gem::Requirement
145
- none: false
146
- requirements:
147
- - - ~>
148
- - !ruby/object:Gem::Version
149
- version: 0.1.3
117
+ version: '0.7'
150
118
  type: :development
151
119
  prerelease: false
152
120
  version_requirements: !ruby/object:Gem::Requirement
@@ -154,7 +122,7 @@ dependencies:
154
122
  requirements:
155
123
  - - ~>
156
124
  - !ruby/object:Gem::Version
157
- version: 0.1.3
125
+ version: '0.7'
158
126
  description: Mongoid is an ODM (Object Document Mapper) Framework for MongoDB, written
159
127
  in Ruby.
160
128
  email:
@@ -163,27 +131,7 @@ executables: []
163
131
  extensions: []
164
132
  extra_rdoc_files: []
165
133
  files:
166
- - lib/config/locales/bg.yml
167
- - lib/config/locales/de.yml
168
- - lib/config/locales/en-GB.yml
169
134
  - lib/config/locales/en.yml
170
- - lib/config/locales/es.yml
171
- - lib/config/locales/fr.yml
172
- - lib/config/locales/hi.yml
173
- - lib/config/locales/hu.yml
174
- - lib/config/locales/id.yml
175
- - lib/config/locales/it.yml
176
- - lib/config/locales/ja.yml
177
- - lib/config/locales/kr.yml
178
- - lib/config/locales/nl.yml
179
- - lib/config/locales/pl.yml
180
- - lib/config/locales/pt-BR.yml
181
- - lib/config/locales/pt.yml
182
- - lib/config/locales/ro.yml
183
- - lib/config/locales/ru.yml
184
- - lib/config/locales/sv.yml
185
- - lib/config/locales/vi.yml
186
- - lib/config/locales/zh-CN.yml
187
135
  - lib/mongoid/atomic/modifiers.rb
188
136
  - lib/mongoid/atomic/paths/embedded/many.rb
189
137
  - lib/mongoid/atomic/paths/embedded/one.rb
@@ -192,121 +140,112 @@ files:
192
140
  - lib/mongoid/atomic/paths.rb
193
141
  - lib/mongoid/atomic.rb
194
142
  - lib/mongoid/attributes/processing.rb
143
+ - lib/mongoid/attributes/readonly.rb
195
144
  - lib/mongoid/attributes.rb
196
145
  - lib/mongoid/callbacks.rb
197
- - lib/mongoid/collection.rb
198
- - lib/mongoid/collections/master.rb
199
- - lib/mongoid/collections/operations.rb
200
146
  - lib/mongoid/collections/retry.rb
201
- - lib/mongoid/collections.rb
202
147
  - lib/mongoid/components.rb
203
- - lib/mongoid/config/database.rb
204
148
  - lib/mongoid/config/environment.rb
149
+ - lib/mongoid/config/inflections.rb
205
150
  - lib/mongoid/config/options.rb
206
- - lib/mongoid/config/replset_database.rb
151
+ - lib/mongoid/config/validators/option.rb
152
+ - lib/mongoid/config/validators/session.rb
153
+ - lib/mongoid/config/validators.rb
207
154
  - lib/mongoid/config.rb
208
- - lib/mongoid/contexts/enumerable/sort.rb
209
- - lib/mongoid/contexts/enumerable.rb
210
- - lib/mongoid/contexts/mongo.rb
211
- - lib/mongoid/contexts.rb
155
+ - lib/mongoid/contextual/aggregable/memory.rb
156
+ - lib/mongoid/contextual/aggregable/mongo.rb
157
+ - lib/mongoid/contextual/atomic.rb
158
+ - lib/mongoid/contextual/command.rb
159
+ - lib/mongoid/contextual/find_and_modify.rb
160
+ - lib/mongoid/contextual/map_reduce.rb
161
+ - lib/mongoid/contextual/memory.rb
162
+ - lib/mongoid/contextual/mongo.rb
163
+ - lib/mongoid/contextual.rb
212
164
  - lib/mongoid/copyable.rb
213
165
  - lib/mongoid/criteria.rb
214
- - lib/mongoid/criterion/builder.rb
215
- - lib/mongoid/criterion/complex.rb
216
- - lib/mongoid/criterion/creational.rb
217
- - lib/mongoid/criterion/exclusion.rb
218
- - lib/mongoid/criterion/inclusion.rb
219
166
  - lib/mongoid/criterion/inspection.rb
220
- - lib/mongoid/criterion/optional.rb
221
167
  - lib/mongoid/criterion/scoping.rb
222
- - lib/mongoid/criterion/selector.rb
223
- - lib/mongoid/cursor.rb
224
- - lib/mongoid/default_scope.rb
225
168
  - lib/mongoid/dirty.rb
226
169
  - lib/mongoid/document.rb
170
+ - lib/mongoid/errors/ambiguous_relationship.rb
227
171
  - lib/mongoid/errors/callback.rb
172
+ - lib/mongoid/errors/delete_restriction.rb
228
173
  - lib/mongoid/errors/document_not_found.rb
229
174
  - lib/mongoid/errors/eager_load.rb
230
175
  - lib/mongoid/errors/invalid_collection.rb
176
+ - lib/mongoid/errors/invalid_config_option.rb
231
177
  - lib/mongoid/errors/invalid_database.rb
232
178
  - lib/mongoid/errors/invalid_field.rb
179
+ - lib/mongoid/errors/invalid_field_option.rb
233
180
  - lib/mongoid/errors/invalid_find.rb
181
+ - lib/mongoid/errors/invalid_index.rb
234
182
  - lib/mongoid/errors/invalid_options.rb
183
+ - lib/mongoid/errors/invalid_scope.rb
184
+ - lib/mongoid/errors/invalid_set_polymorphic_relation.rb
185
+ - lib/mongoid/errors/invalid_storage_options.rb
235
186
  - lib/mongoid/errors/invalid_time.rb
236
- - lib/mongoid/errors/invalid_type.rb
187
+ - lib/mongoid/errors/inverse_not_found.rb
237
188
  - lib/mongoid/errors/mixed_relations.rb
189
+ - lib/mongoid/errors/mixed_session_configuration.rb
238
190
  - lib/mongoid/errors/mongoid_error.rb
191
+ - lib/mongoid/errors/nested_attributes_metadata_not_found.rb
192
+ - lib/mongoid/errors/no_default_session.rb
239
193
  - lib/mongoid/errors/no_environment.rb
194
+ - lib/mongoid/errors/no_map_reduce_output.rb
195
+ - lib/mongoid/errors/no_parent.rb
196
+ - lib/mongoid/errors/no_session_config.rb
197
+ - lib/mongoid/errors/no_session_database.rb
198
+ - lib/mongoid/errors/no_session_hosts.rb
199
+ - lib/mongoid/errors/no_sessions_config.rb
200
+ - lib/mongoid/errors/readonly_attribute.rb
240
201
  - lib/mongoid/errors/scope_overwrite.rb
241
202
  - lib/mongoid/errors/too_many_nested_attribute_records.rb
203
+ - lib/mongoid/errors/unknown_attribute.rb
242
204
  - lib/mongoid/errors/unsaved_document.rb
205
+ - lib/mongoid/errors/unsupported_javascript.rb
243
206
  - lib/mongoid/errors/unsupported_version.rb
244
207
  - lib/mongoid/errors/validations.rb
208
+ - lib/mongoid/errors/versioning_not_on_root.rb
245
209
  - lib/mongoid/errors.rb
246
- - lib/mongoid/extensions/array/deep_copy.rb
247
- - lib/mongoid/extensions/array/deletion.rb
248
- - lib/mongoid/extensions/false_class/equality.rb
249
- - lib/mongoid/extensions/hash/criteria_helpers.rb
250
- - lib/mongoid/extensions/hash/deep_copy.rb
251
- - lib/mongoid/extensions/hash/scoping.rb
252
- - lib/mongoid/extensions/integer/checks.rb
253
- - lib/mongoid/extensions/nil/collectionization.rb
254
- - lib/mongoid/extensions/object/checks.rb
255
- - lib/mongoid/extensions/object/deep_copy.rb
256
- - lib/mongoid/extensions/object/reflections.rb
257
- - lib/mongoid/extensions/object/substitutable.rb
258
- - lib/mongoid/extensions/object/yoda.rb
259
- - lib/mongoid/extensions/object_id/conversions.rb
260
- - lib/mongoid/extensions/proc/scoping.rb
261
- - lib/mongoid/extensions/string/checks.rb
262
- - lib/mongoid/extensions/string/conversions.rb
263
- - lib/mongoid/extensions/string/inflections.rb
264
- - lib/mongoid/extensions/symbol/checks.rb
265
- - lib/mongoid/extensions/symbol/inflections.rb
266
- - lib/mongoid/extensions/true_class/equality.rb
210
+ - lib/mongoid/extensions/array.rb
211
+ - lib/mongoid/extensions/big_decimal.rb
212
+ - lib/mongoid/extensions/boolean.rb
213
+ - lib/mongoid/extensions/date.rb
214
+ - lib/mongoid/extensions/date_time.rb
215
+ - lib/mongoid/extensions/false_class.rb
216
+ - lib/mongoid/extensions/float.rb
217
+ - lib/mongoid/extensions/hash.rb
218
+ - lib/mongoid/extensions/integer.rb
219
+ - lib/mongoid/extensions/module.rb
220
+ - lib/mongoid/extensions/nil_class.rb
221
+ - lib/mongoid/extensions/object.rb
222
+ - lib/mongoid/extensions/object_id.rb
223
+ - lib/mongoid/extensions/range.rb
224
+ - lib/mongoid/extensions/regexp.rb
225
+ - lib/mongoid/extensions/set.rb
226
+ - lib/mongoid/extensions/string.rb
227
+ - lib/mongoid/extensions/symbol.rb
228
+ - lib/mongoid/extensions/time.rb
229
+ - lib/mongoid/extensions/time_with_zone.rb
230
+ - lib/mongoid/extensions/true_class.rb
267
231
  - lib/mongoid/extensions.rb
268
- - lib/mongoid/extras.rb
269
232
  - lib/mongoid/factory.rb
270
- - lib/mongoid/fields/internal/array.rb
271
- - lib/mongoid/fields/internal/big_decimal.rb
272
- - lib/mongoid/fields/internal/bignum.rb
273
- - lib/mongoid/fields/internal/binary.rb
274
- - lib/mongoid/fields/internal/boolean.rb
275
- - lib/mongoid/fields/internal/date.rb
276
- - lib/mongoid/fields/internal/date_time.rb
277
- - lib/mongoid/fields/internal/false_class.rb
278
- - lib/mongoid/fields/internal/fixnum.rb
279
- - lib/mongoid/fields/internal/float.rb
280
- - lib/mongoid/fields/internal/foreign_keys/array.rb
281
- - lib/mongoid/fields/internal/foreign_keys/object.rb
282
- - lib/mongoid/fields/internal/hash.rb
283
- - lib/mongoid/fields/internal/integer.rb
284
- - lib/mongoid/fields/internal/localized.rb
285
- - lib/mongoid/fields/internal/nil_class.rb
286
- - lib/mongoid/fields/internal/object.rb
287
- - lib/mongoid/fields/internal/object_id.rb
288
- - lib/mongoid/fields/internal/range.rb
289
- - lib/mongoid/fields/internal/set.rb
290
- - lib/mongoid/fields/internal/string.rb
291
- - lib/mongoid/fields/internal/symbol.rb
292
- - lib/mongoid/fields/internal/time.rb
293
- - lib/mongoid/fields/internal/time_with_zone.rb
294
- - lib/mongoid/fields/internal/timekeeping.rb
295
- - lib/mongoid/fields/internal/true_class.rb
296
- - lib/mongoid/fields/mappings.rb
297
- - lib/mongoid/fields/serializable.rb
233
+ - lib/mongoid/fields/foreign_key.rb
234
+ - lib/mongoid/fields/localized.rb
235
+ - lib/mongoid/fields/standard.rb
236
+ - lib/mongoid/fields/validators/macro.rb
237
+ - lib/mongoid/fields/validators.rb
298
238
  - lib/mongoid/fields.rb
299
239
  - lib/mongoid/finders.rb
300
240
  - lib/mongoid/hierarchy.rb
301
- - lib/mongoid/identity.rb
302
241
  - lib/mongoid/identity_map.rb
242
+ - lib/mongoid/indexes/validators/options.rb
303
243
  - lib/mongoid/indexes.rb
304
244
  - lib/mongoid/inspection.rb
305
245
  - lib/mongoid/javascript/functions.yml
306
246
  - lib/mongoid/javascript.rb
307
247
  - lib/mongoid/json.rb
308
- - lib/mongoid/keys.rb
309
- - lib/mongoid/logger.rb
248
+ - lib/mongoid/loggable.rb
310
249
  - lib/mongoid/matchers/all.rb
311
250
  - lib/mongoid/matchers/and.rb
312
251
  - lib/mongoid/matchers/default.rb
@@ -322,9 +261,7 @@ files:
322
261
  - lib/mongoid/matchers/size.rb
323
262
  - lib/mongoid/matchers/strategies.rb
324
263
  - lib/mongoid/matchers.rb
325
- - lib/mongoid/multi_database.rb
326
264
  - lib/mongoid/multi_parameter_attributes.rb
327
- - lib/mongoid/named_scope.rb
328
265
  - lib/mongoid/nested_attributes.rb
329
266
  - lib/mongoid/observer.rb
330
267
  - lib/mongoid/paranoia.rb
@@ -379,16 +316,12 @@ files:
379
316
  - lib/mongoid/relations/cascading/delete.rb
380
317
  - lib/mongoid/relations/cascading/destroy.rb
381
318
  - lib/mongoid/relations/cascading/nullify.rb
319
+ - lib/mongoid/relations/cascading/restrict.rb
382
320
  - lib/mongoid/relations/cascading.rb
383
321
  - lib/mongoid/relations/constraint.rb
384
322
  - lib/mongoid/relations/conversions.rb
385
323
  - lib/mongoid/relations/cyclic.rb
386
- - lib/mongoid/relations/embedded/atomic/operation.rb
387
- - lib/mongoid/relations/embedded/atomic/pull.rb
388
- - lib/mongoid/relations/embedded/atomic/push_all.rb
389
- - lib/mongoid/relations/embedded/atomic/set.rb
390
- - lib/mongoid/relations/embedded/atomic/unset.rb
391
- - lib/mongoid/relations/embedded/atomic.rb
324
+ - lib/mongoid/relations/embedded/batchable.rb
392
325
  - lib/mongoid/relations/embedded/in.rb
393
326
  - lib/mongoid/relations/embedded/many.rb
394
327
  - lib/mongoid/relations/embedded/one.rb
@@ -400,8 +333,6 @@ files:
400
333
  - lib/mongoid/relations/options.rb
401
334
  - lib/mongoid/relations/polymorphic.rb
402
335
  - lib/mongoid/relations/proxy.rb
403
- - lib/mongoid/relations/referenced/batch/insert.rb
404
- - lib/mongoid/relations/referenced/batch.rb
405
336
  - lib/mongoid/relations/referenced/in.rb
406
337
  - lib/mongoid/relations/referenced/many.rb
407
338
  - lib/mongoid/relations/referenced/many_to_many.rb
@@ -410,19 +341,26 @@ files:
410
341
  - lib/mongoid/relations/synchronization.rb
411
342
  - lib/mongoid/relations/targets/enumerable.rb
412
343
  - lib/mongoid/relations/targets.rb
344
+ - lib/mongoid/relations/touchable.rb
413
345
  - lib/mongoid/relations.rb
414
346
  - lib/mongoid/reloading.rb
415
- - lib/mongoid/safety.rb
416
- - lib/mongoid/scope.rb
347
+ - lib/mongoid/scoping.rb
417
348
  - lib/mongoid/serialization.rb
349
+ - lib/mongoid/sessions/factory.rb
350
+ - lib/mongoid/sessions/mongo_uri.rb
351
+ - lib/mongoid/sessions/validators/storage.rb
352
+ - lib/mongoid/sessions/validators.rb
353
+ - lib/mongoid/sessions.rb
418
354
  - lib/mongoid/sharding.rb
419
355
  - lib/mongoid/state.rb
420
356
  - lib/mongoid/threaded/lifecycle.rb
357
+ - lib/mongoid/threaded/sessions.rb
421
358
  - lib/mongoid/threaded.rb
422
359
  - lib/mongoid/timestamps/created.rb
423
360
  - lib/mongoid/timestamps/timeless.rb
424
361
  - lib/mongoid/timestamps/updated.rb
425
362
  - lib/mongoid/timestamps.rb
363
+ - lib/mongoid/unit_of_work.rb
426
364
  - lib/mongoid/validations/associated.rb
427
365
  - lib/mongoid/validations/format.rb
428
366
  - lib/mongoid/validations/length.rb
@@ -461,7 +399,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
461
399
  version: '0'
462
400
  segments:
463
401
  - 0
464
- hash: 3721994237204070315
402
+ hash: 2284933859052458151
465
403
  required_rubygems_version: !ruby/object:Gem::Requirement
466
404
  none: false
467
405
  requirements:
@@ -470,7 +408,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
470
408
  version: 1.3.6
471
409
  requirements: []
472
410
  rubyforge_project: mongoid
473
- rubygems_version: 1.8.19
411
+ rubygems_version: 1.8.24
474
412
  signing_key:
475
413
  specification_version: 3
476
414
  summary: Elegant Persistance in Ruby for MongoDB.