rq 3.1.0 → 3.3.0

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 (1758) hide show
  1. data/Makefile +6 -0
  2. data/all/install.rb +1 -1
  3. data/all/install.sh +50 -7
  4. data/all/local_arch_install.rb +120 -0
  5. data/all/packages/INSTALL +3 -1
  6. data/all/packages/main-1.0.0.tgz +0 -0
  7. data/all/packages/open4-0.9.3.tgz +0 -0
  8. data/all/packages/ruby-1.8.6.tar.gz +0 -0
  9. data/all/packages/sqlite-2.8.17.tar.gz +0 -0
  10. data/bin/rq +32 -3
  11. data/bin/rqmailer +846 -0
  12. data/extconf.rb +39 -11
  13. data/lib/rq.rb +25 -7
  14. data/lib/rq/arrayfields.rb +371 -0
  15. data/lib/{rq-3.1.0 → rq}/backer.rb +0 -0
  16. data/lib/{rq-3.1.0 → rq}/configfile.rb +0 -0
  17. data/lib/{rq-3.1.0 → rq}/configurator.rb +0 -0
  18. data/lib/rq/creator.rb +54 -0
  19. data/lib/rq/cron.rb +132 -0
  20. data/lib/{rq-3.1.0 → rq}/defaultconfig.txt +0 -0
  21. data/lib/{rq-3.1.0 → rq}/deleter.rb +0 -0
  22. data/lib/{rq-3.1.0 → rq}/executor.rb +0 -0
  23. data/lib/rq/feeder.rb +527 -0
  24. data/lib/{rq-3.1.0 → rq}/ioviewer.rb +0 -0
  25. data/lib/{rq-3.1.0 → rq}/job.rb +0 -0
  26. data/lib/rq/jobqueue.rb +944 -0
  27. data/lib/rq/jobrunner.rb +108 -0
  28. data/lib/{rq-3.1.0 → rq}/jobrunnerdaemon.rb +0 -0
  29. data/lib/{rq-3.1.0 → rq}/lister.rb +0 -0
  30. data/lib/{rq-3.1.0 → rq}/locker.rb +0 -0
  31. data/lib/rq/lockfile.rb +564 -0
  32. data/lib/{rq-3.1.0 → rq}/logging.rb +0 -0
  33. data/lib/rq/mainhelper.rb +189 -0
  34. data/lib/{rq-3.1.0 → rq}/orderedautohash.rb +0 -0
  35. data/lib/{rq-3.1.0 → rq}/orderedhash.rb +0 -0
  36. data/lib/rq/qdb.rb +733 -0
  37. data/lib/{rq-3.1.0 → rq}/querier.rb +0 -0
  38. data/lib/rq/rails.rb +80 -0
  39. data/lib/{rq-3.1.0 → rq}/recoverer.rb +0 -0
  40. data/lib/{rq-3.1.0 → rq}/refresher.rb +0 -0
  41. data/lib/{rq-3.1.0 → rq}/relayer.rb +0 -0
  42. data/lib/{rq-3.1.0 → rq}/resource.rb +0 -0
  43. data/lib/{rq-3.1.0 → rq}/resourcemanager.rb +0 -0
  44. data/lib/rq/resubmitter.rb +100 -0
  45. data/lib/{rq-3.1.0 → rq}/rotater.rb +0 -0
  46. data/lib/{rq-3.1.0 → rq}/sleepcycle.rb +0 -0
  47. data/lib/{rq-3.1.0 → rq}/snapshotter.rb +0 -0
  48. data/lib/{rq-3.1.0 → rq}/sqlite.rb +0 -0
  49. data/lib/{rq-3.1.0 → rq}/statuslister.rb +0 -0
  50. data/lib/rq/submitter.rb +113 -0
  51. data/lib/rq/toucher.rb +182 -0
  52. data/lib/{rq-3.1.0 → rq}/updater.rb +0 -0
  53. data/lib/{rq-3.1.0 → rq}/usage.rb +0 -0
  54. data/lib/{rq-3.1.0 → rq}/util.rb +0 -0
  55. data/q/bin/rqmailer +16 -0
  56. data/q/db +0 -0
  57. data/q/db.schema +28 -0
  58. data/{rq-3.1.0.gem → q/lock} +0 -0
  59. data/rails/README +182 -0
  60. data/rails/Rakefile +10 -0
  61. data/rails/app/controllers/application.rb +7 -0
  62. data/rails/app/helpers/application_helper.rb +3 -0
  63. data/rails/config/boot.rb +45 -0
  64. data/rails/config/database.yml +36 -0
  65. data/rails/config/environment.rb +60 -0
  66. data/rails/config/environments/development.rb +21 -0
  67. data/rails/config/environments/production.rb +18 -0
  68. data/rails/config/environments/test.rb +19 -0
  69. data/rails/config/routes.rb +23 -0
  70. data/rails/data/config +13 -0
  71. data/rails/data/template +7 -0
  72. data/rails/doc/README_FOR_APP +2 -0
  73. data/rails/example.rb +86 -0
  74. data/rails/log/development.log +0 -0
  75. data/rails/log/production.log +0 -0
  76. data/rails/log/server.log +0 -0
  77. data/rails/log/test.log +0 -0
  78. data/rails/public/404.html +30 -0
  79. data/rails/public/500.html +30 -0
  80. data/rails/public/dispatch.cgi +10 -0
  81. data/rails/public/dispatch.fcgi +24 -0
  82. data/rails/public/dispatch.rb +10 -0
  83. data/rails/public/favicon.ico +0 -0
  84. data/rails/public/images/rails.png +0 -0
  85. data/rails/public/index.html +277 -0
  86. data/rails/public/javascripts/application.js +2 -0
  87. data/rails/public/javascripts/controls.js +833 -0
  88. data/rails/public/javascripts/dragdrop.js +942 -0
  89. data/rails/public/javascripts/effects.js +1088 -0
  90. data/rails/public/javascripts/prototype.js +2515 -0
  91. data/rails/public/robots.txt +1 -0
  92. data/rails/q.20070629122840.tgz +0 -0
  93. data/rails/q/bin/rqmailer +847 -0
  94. data/rails/q/db +0 -0
  95. data/rails/q/db.schema +28 -0
  96. data/rails/q/lock +0 -0
  97. data/rails/script/about +3 -0
  98. data/rails/script/breakpointer +3 -0
  99. data/rails/script/console +3 -0
  100. data/rails/script/destroy +3 -0
  101. data/rails/script/generate +3 -0
  102. data/rails/script/performance/benchmarker +3 -0
  103. data/rails/script/performance/profiler +3 -0
  104. data/rails/script/plugin +3 -0
  105. data/rails/script/process/inspector +3 -0
  106. data/rails/script/process/reaper +3 -0
  107. data/rails/script/process/spawner +3 -0
  108. data/rails/script/runner +3 -0
  109. data/rails/script/server +3 -0
  110. data/rails/test/test_helper.rb +28 -0
  111. data/rails/vendor/rails/actionmailer/CHANGELOG +297 -0
  112. data/rails/vendor/rails/actionmailer/MIT-LICENSE +21 -0
  113. data/rails/vendor/rails/actionmailer/README +145 -0
  114. data/rails/vendor/rails/actionmailer/Rakefile +95 -0
  115. data/rails/vendor/rails/actionmailer/install.rb +30 -0
  116. data/rails/vendor/rails/actionmailer/lib/action_mailer.rb +50 -0
  117. data/rails/vendor/rails/actionmailer/lib/action_mailer/adv_attr_accessor.rb +30 -0
  118. data/rails/vendor/rails/actionmailer/lib/action_mailer/base.rb +582 -0
  119. data/rails/vendor/rails/actionmailer/lib/action_mailer/helpers.rb +111 -0
  120. data/rails/vendor/rails/actionmailer/lib/action_mailer/mail_helper.rb +19 -0
  121. data/rails/vendor/rails/actionmailer/lib/action_mailer/part.rb +113 -0
  122. data/rails/vendor/rails/actionmailer/lib/action_mailer/part_container.rb +51 -0
  123. data/rails/vendor/rails/actionmailer/lib/action_mailer/quoting.rb +59 -0
  124. data/rails/vendor/rails/actionmailer/lib/action_mailer/utils.rb +8 -0
  125. data/rails/vendor/rails/actionmailer/lib/action_mailer/vendor/text/format.rb +1466 -0
  126. data/rails/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail.rb +3 -0
  127. data/rails/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail/address.rb +242 -0
  128. data/rails/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail/attachments.rb +39 -0
  129. data/rails/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail/base64.rb +71 -0
  130. data/rails/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail/config.rb +69 -0
  131. data/rails/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail/encode.rb +467 -0
  132. data/rails/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail/facade.rb +552 -0
  133. data/rails/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail/header.rb +914 -0
  134. data/rails/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail/info.rb +35 -0
  135. data/rails/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail/loader.rb +1 -0
  136. data/rails/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail/mail.rb +447 -0
  137. data/rails/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail/mailbox.rb +433 -0
  138. data/rails/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail/mbox.rb +1 -0
  139. data/rails/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail/net.rb +280 -0
  140. data/rails/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail/obsolete.rb +135 -0
  141. data/rails/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail/parser.rb +1522 -0
  142. data/rails/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail/port.rb +377 -0
  143. data/rails/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail/quoting.rb +131 -0
  144. data/rails/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail/scanner.rb +41 -0
  145. data/rails/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail/scanner_r.rb +263 -0
  146. data/rails/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail/stringio.rb +277 -0
  147. data/rails/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail/tmail.rb +1 -0
  148. data/rails/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail/utils.rb +238 -0
  149. data/rails/vendor/rails/actionmailer/lib/action_mailer/version.rb +9 -0
  150. data/rails/vendor/rails/actionmailer/test/abstract_unit.rb +30 -0
  151. data/rails/vendor/rails/actionmailer/test/fixtures/first_mailer/share.rhtml +1 -0
  152. data/rails/vendor/rails/actionmailer/test/fixtures/helper_mailer/use_helper.rhtml +1 -0
  153. data/rails/vendor/rails/actionmailer/test/fixtures/helper_mailer/use_helper_method.rhtml +1 -0
  154. data/rails/vendor/rails/actionmailer/test/fixtures/helper_mailer/use_mail_helper.rhtml +5 -0
  155. data/rails/vendor/rails/actionmailer/test/fixtures/helper_mailer/use_test_helper.rhtml +1 -0
  156. data/rails/vendor/rails/actionmailer/test/fixtures/helpers/test_helper.rb +5 -0
  157. data/rails/vendor/rails/actionmailer/test/fixtures/path.with.dots/funky_path_mailer/multipart_with_template_path_with_dots.rhtml +1 -0
  158. data/rails/vendor/rails/actionmailer/test/fixtures/path.with.dots/multipart_with_template_path_with_dots.rhtml +0 -0
  159. data/rails/vendor/rails/actionmailer/test/fixtures/raw_email +14 -0
  160. data/rails/vendor/rails/actionmailer/test/fixtures/raw_email10 +20 -0
  161. data/rails/vendor/rails/actionmailer/test/fixtures/raw_email11 +34 -0
  162. data/rails/vendor/rails/actionmailer/test/fixtures/raw_email12 +32 -0
  163. data/rails/vendor/rails/actionmailer/test/fixtures/raw_email13 +29 -0
  164. data/rails/vendor/rails/actionmailer/test/fixtures/raw_email2 +114 -0
  165. data/rails/vendor/rails/actionmailer/test/fixtures/raw_email3 +70 -0
  166. data/rails/vendor/rails/actionmailer/test/fixtures/raw_email4 +59 -0
  167. data/rails/vendor/rails/actionmailer/test/fixtures/raw_email5 +19 -0
  168. data/rails/vendor/rails/actionmailer/test/fixtures/raw_email6 +20 -0
  169. data/rails/vendor/rails/actionmailer/test/fixtures/raw_email7 +66 -0
  170. data/rails/vendor/rails/actionmailer/test/fixtures/raw_email8 +47 -0
  171. data/rails/vendor/rails/actionmailer/test/fixtures/raw_email9 +28 -0
  172. data/rails/vendor/rails/actionmailer/test/fixtures/raw_email_quoted_with_0d0a +14 -0
  173. data/rails/vendor/rails/actionmailer/test/fixtures/raw_email_with_partially_quoted_subject +14 -0
  174. data/rails/vendor/rails/actionmailer/test/fixtures/second_mailer/share.rhtml +1 -0
  175. data/rails/vendor/rails/actionmailer/test/fixtures/templates/signed_up.rhtml +3 -0
  176. data/rails/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.ignored.rhtml +1 -0
  177. data/rails/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.rhtml.bak +1 -0
  178. data/rails/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.text.html.rhtml +10 -0
  179. data/rails/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.text.plain.rhtml +2 -0
  180. data/rails/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.text.yaml.rhtml +1 -0
  181. data/rails/vendor/rails/actionmailer/test/fixtures/test_mailer/signed_up.rhtml +3 -0
  182. data/rails/vendor/rails/actionmailer/test/fixtures/test_mailer/signed_up_with_url.rhtml +3 -0
  183. data/rails/vendor/rails/actionmailer/test/mail_helper_test.rb +91 -0
  184. data/rails/vendor/rails/actionmailer/test/mail_render_test.rb +79 -0
  185. data/rails/vendor/rails/actionmailer/test/mail_service_test.rb +816 -0
  186. data/rails/vendor/rails/actionmailer/test/quoting_test.rb +57 -0
  187. data/rails/vendor/rails/actionmailer/test/tmail_test.rb +13 -0
  188. data/rails/vendor/rails/actionmailer/test/url_test.rb +68 -0
  189. data/rails/vendor/rails/actionpack/CHANGELOG +3138 -0
  190. data/rails/vendor/rails/actionpack/MIT-LICENSE +21 -0
  191. data/rails/vendor/rails/actionpack/README +469 -0
  192. data/rails/vendor/rails/actionpack/RUNNING_UNIT_TESTS +25 -0
  193. data/rails/vendor/rails/actionpack/Rakefile +154 -0
  194. data/rails/vendor/rails/actionpack/examples/address_book/index.rhtml +33 -0
  195. data/rails/vendor/rails/actionpack/examples/address_book/layout.rhtml +8 -0
  196. data/rails/vendor/rails/actionpack/examples/address_book_controller.cgi +9 -0
  197. data/rails/vendor/rails/actionpack/examples/address_book_controller.fcgi +6 -0
  198. data/rails/vendor/rails/actionpack/examples/address_book_controller.rb +52 -0
  199. data/rails/vendor/rails/actionpack/examples/address_book_controller.rbx +4 -0
  200. data/rails/vendor/rails/actionpack/examples/benchmark.rb +52 -0
  201. data/rails/vendor/rails/actionpack/examples/benchmark_with_ar.fcgi +89 -0
  202. data/rails/vendor/rails/actionpack/examples/blog_controller.cgi +53 -0
  203. data/rails/vendor/rails/actionpack/examples/debate/index.rhtml +14 -0
  204. data/rails/vendor/rails/actionpack/examples/debate/new_topic.rhtml +22 -0
  205. data/rails/vendor/rails/actionpack/examples/debate/topic.rhtml +32 -0
  206. data/rails/vendor/rails/actionpack/examples/debate_controller.cgi +57 -0
  207. data/rails/vendor/rails/actionpack/install.rb +30 -0
  208. data/rails/vendor/rails/actionpack/lib/action_controller.rb +83 -0
  209. data/rails/vendor/rails/actionpack/lib/action_controller/assertions.rb +82 -0
  210. data/rails/vendor/rails/actionpack/lib/action_controller/assertions/deprecated_assertions.rb +228 -0
  211. data/rails/vendor/rails/actionpack/lib/action_controller/assertions/dom_assertions.rb +25 -0
  212. data/rails/vendor/rails/actionpack/lib/action_controller/assertions/model_assertions.rb +12 -0
  213. data/rails/vendor/rails/actionpack/lib/action_controller/assertions/response_assertions.rb +140 -0
  214. data/rails/vendor/rails/actionpack/lib/action_controller/assertions/routing_assertions.rb +98 -0
  215. data/rails/vendor/rails/actionpack/lib/action_controller/assertions/selector_assertions.rb +571 -0
  216. data/rails/vendor/rails/actionpack/lib/action_controller/assertions/tag_assertions.rb +117 -0
  217. data/rails/vendor/rails/actionpack/lib/action_controller/base.rb +1231 -0
  218. data/rails/vendor/rails/actionpack/lib/action_controller/benchmarking.rb +89 -0
  219. data/rails/vendor/rails/actionpack/lib/action_controller/caching.rb +616 -0
  220. data/rails/vendor/rails/actionpack/lib/action_controller/cgi_ext/cgi_ext.rb +36 -0
  221. data/rails/vendor/rails/actionpack/lib/action_controller/cgi_ext/cgi_methods.rb +211 -0
  222. data/rails/vendor/rails/actionpack/lib/action_controller/cgi_ext/cookie_performance_fix.rb +125 -0
  223. data/rails/vendor/rails/actionpack/lib/action_controller/cgi_ext/raw_post_data_fix.rb +95 -0
  224. data/rails/vendor/rails/actionpack/lib/action_controller/cgi_ext/session_performance_fix.rb +30 -0
  225. data/rails/vendor/rails/actionpack/lib/action_controller/cgi_process.rb +231 -0
  226. data/rails/vendor/rails/actionpack/lib/action_controller/components.rb +182 -0
  227. data/rails/vendor/rails/actionpack/lib/action_controller/cookies.rb +78 -0
  228. data/rails/vendor/rails/actionpack/lib/action_controller/deprecated_dependencies.rb +65 -0
  229. data/rails/vendor/rails/actionpack/lib/action_controller/deprecated_redirects.rb +17 -0
  230. data/rails/vendor/rails/actionpack/lib/action_controller/deprecated_request_methods.rb +34 -0
  231. data/rails/vendor/rails/actionpack/lib/action_controller/filters.rb +667 -0
  232. data/rails/vendor/rails/actionpack/lib/action_controller/flash.rb +182 -0
  233. data/rails/vendor/rails/actionpack/lib/action_controller/helpers.rb +131 -0
  234. data/rails/vendor/rails/actionpack/lib/action_controller/integration.rb +552 -0
  235. data/rails/vendor/rails/actionpack/lib/action_controller/layout.rb +313 -0
  236. data/rails/vendor/rails/actionpack/lib/action_controller/macros/auto_complete.rb +53 -0
  237. data/rails/vendor/rails/actionpack/lib/action_controller/macros/in_place_editing.rb +33 -0
  238. data/rails/vendor/rails/actionpack/lib/action_controller/mime_responds.rb +181 -0
  239. data/rails/vendor/rails/actionpack/lib/action_controller/mime_type.rb +200 -0
  240. data/rails/vendor/rails/actionpack/lib/action_controller/pagination.rb +402 -0
  241. data/rails/vendor/rails/actionpack/lib/action_controller/request.rb +265 -0
  242. data/rails/vendor/rails/actionpack/lib/action_controller/rescue.rb +142 -0
  243. data/rails/vendor/rails/actionpack/lib/action_controller/resources.rb +405 -0
  244. data/rails/vendor/rails/actionpack/lib/action_controller/response.rb +35 -0
  245. data/rails/vendor/rails/actionpack/lib/action_controller/routing.rb +1340 -0
  246. data/rails/vendor/rails/actionpack/lib/action_controller/scaffolding.rb +189 -0
  247. data/rails/vendor/rails/actionpack/lib/action_controller/session/active_record_store.rb +335 -0
  248. data/rails/vendor/rails/actionpack/lib/action_controller/session/drb_server.rb +32 -0
  249. data/rails/vendor/rails/actionpack/lib/action_controller/session/drb_store.rb +35 -0
  250. data/rails/vendor/rails/actionpack/lib/action_controller/session/mem_cache_store.rb +105 -0
  251. data/rails/vendor/rails/actionpack/lib/action_controller/session_management.rb +142 -0
  252. data/rails/vendor/rails/actionpack/lib/action_controller/status_codes.rb +88 -0
  253. data/rails/vendor/rails/actionpack/lib/action_controller/streaming.rb +138 -0
  254. data/rails/vendor/rails/actionpack/lib/action_controller/templates/rescues/_request_and_response.rhtml +44 -0
  255. data/rails/vendor/rails/actionpack/lib/action_controller/templates/rescues/_trace.rhtml +26 -0
  256. data/rails/vendor/rails/actionpack/lib/action_controller/templates/rescues/diagnostics.rhtml +11 -0
  257. data/rails/vendor/rails/actionpack/lib/action_controller/templates/rescues/layout.rhtml +29 -0
  258. data/rails/vendor/rails/actionpack/lib/action_controller/templates/rescues/missing_template.rhtml +2 -0
  259. data/rails/vendor/rails/actionpack/lib/action_controller/templates/rescues/routing_error.rhtml +10 -0
  260. data/rails/vendor/rails/actionpack/lib/action_controller/templates/rescues/template_error.rhtml +21 -0
  261. data/rails/vendor/rails/actionpack/lib/action_controller/templates/rescues/unknown_action.rhtml +2 -0
  262. data/rails/vendor/rails/actionpack/lib/action_controller/templates/scaffolds/edit.rhtml +7 -0
  263. data/rails/vendor/rails/actionpack/lib/action_controller/templates/scaffolds/layout.rhtml +69 -0
  264. data/rails/vendor/rails/actionpack/lib/action_controller/templates/scaffolds/list.rhtml +27 -0
  265. data/rails/vendor/rails/actionpack/lib/action_controller/templates/scaffolds/new.rhtml +6 -0
  266. data/rails/vendor/rails/actionpack/lib/action_controller/templates/scaffolds/show.rhtml +9 -0
  267. data/rails/vendor/rails/actionpack/lib/action_controller/test_process.rb +504 -0
  268. data/rails/vendor/rails/actionpack/lib/action_controller/url_rewriter.rb +108 -0
  269. data/rails/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/document.rb +65 -0
  270. data/rails/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/node.rb +530 -0
  271. data/rails/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/selector.rb +823 -0
  272. data/rails/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/tokenizer.rb +105 -0
  273. data/rails/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/version.rb +11 -0
  274. data/rails/vendor/rails/actionpack/lib/action_controller/vendor/xml_node.rb +97 -0
  275. data/rails/vendor/rails/actionpack/lib/action_controller/verification.rb +107 -0
  276. data/rails/vendor/rails/actionpack/lib/action_pack.rb +24 -0
  277. data/rails/vendor/rails/actionpack/lib/action_pack/version.rb +9 -0
  278. data/rails/vendor/rails/actionpack/lib/action_view.rb +32 -0
  279. data/rails/vendor/rails/actionpack/lib/action_view/base.rb +538 -0
  280. data/rails/vendor/rails/actionpack/lib/action_view/compiled_templates.rb +70 -0
  281. data/rails/vendor/rails/actionpack/lib/action_view/helpers/active_record_helper.rb +237 -0
  282. data/rails/vendor/rails/actionpack/lib/action_view/helpers/asset_tag_helper.rb +218 -0
  283. data/rails/vendor/rails/actionpack/lib/action_view/helpers/benchmark_helper.rb +24 -0
  284. data/rails/vendor/rails/actionpack/lib/action_view/helpers/cache_helper.rb +10 -0
  285. data/rails/vendor/rails/actionpack/lib/action_view/helpers/capture_helper.rb +128 -0
  286. data/rails/vendor/rails/actionpack/lib/action_view/helpers/date_helper.rb +429 -0
  287. data/rails/vendor/rails/actionpack/lib/action_view/helpers/debug_helper.rb +17 -0
  288. data/rails/vendor/rails/actionpack/lib/action_view/helpers/deprecated_helper.rb +34 -0
  289. data/rails/vendor/rails/actionpack/lib/action_view/helpers/form_helper.rb +446 -0
  290. data/rails/vendor/rails/actionpack/lib/action_view/helpers/form_options_helper.rb +363 -0
  291. data/rails/vendor/rails/actionpack/lib/action_view/helpers/form_tag_helper.rb +176 -0
  292. data/rails/vendor/rails/actionpack/lib/action_view/helpers/java_script_macros_helper.rb +233 -0
  293. data/rails/vendor/rails/actionpack/lib/action_view/helpers/javascript_helper.rb +193 -0
  294. data/rails/vendor/rails/actionpack/lib/action_view/helpers/javascripts/controls.js +833 -0
  295. data/rails/vendor/rails/actionpack/lib/action_view/helpers/javascripts/dragdrop.js +942 -0
  296. data/rails/vendor/rails/actionpack/lib/action_view/helpers/javascripts/effects.js +1088 -0
  297. data/rails/vendor/rails/actionpack/lib/action_view/helpers/javascripts/prototype.js +2515 -0
  298. data/rails/vendor/rails/actionpack/lib/action_view/helpers/number_helper.rb +155 -0
  299. data/rails/vendor/rails/actionpack/lib/action_view/helpers/pagination_helper.rb +86 -0
  300. data/rails/vendor/rails/actionpack/lib/action_view/helpers/prototype_helper.rb +876 -0
  301. data/rails/vendor/rails/actionpack/lib/action_view/helpers/scriptaculous_helper.rb +140 -0
  302. data/rails/vendor/rails/actionpack/lib/action_view/helpers/tag_helper.rb +103 -0
  303. data/rails/vendor/rails/actionpack/lib/action_view/helpers/text_helper.rb +406 -0
  304. data/rails/vendor/rails/actionpack/lib/action_view/helpers/url_helper.rb +406 -0
  305. data/rails/vendor/rails/actionpack/lib/action_view/partials.rb +128 -0
  306. data/rails/vendor/rails/actionpack/lib/action_view/template_error.rb +110 -0
  307. data/rails/vendor/rails/actionpack/test/abstract_unit.rb +16 -0
  308. data/rails/vendor/rails/actionpack/test/active_record_unit.rb +116 -0
  309. data/rails/vendor/rails/actionpack/test/activerecord/active_record_assertions_test.rb +92 -0
  310. data/rails/vendor/rails/actionpack/test/activerecord/active_record_store_test.rb +142 -0
  311. data/rails/vendor/rails/actionpack/test/activerecord/pagination_test.rb +156 -0
  312. data/rails/vendor/rails/actionpack/test/controller/action_pack_assertions_test.rb +610 -0
  313. data/rails/vendor/rails/actionpack/test/controller/addresses_render_test.rb +45 -0
  314. data/rails/vendor/rails/actionpack/test/controller/assert_select_test.rb +576 -0
  315. data/rails/vendor/rails/actionpack/test/controller/base_test.rb +136 -0
  316. data/rails/vendor/rails/actionpack/test/controller/benchmark_test.rb +33 -0
  317. data/rails/vendor/rails/actionpack/test/controller/caching_test.rb +228 -0
  318. data/rails/vendor/rails/actionpack/test/controller/capture_test.rb +82 -0
  319. data/rails/vendor/rails/actionpack/test/controller/cgi_test.rb +440 -0
  320. data/rails/vendor/rails/actionpack/test/controller/components_test.rb +151 -0
  321. data/rails/vendor/rails/actionpack/test/controller/content_type_test.rb +139 -0
  322. data/rails/vendor/rails/actionpack/test/controller/controller_fixtures/app/controllers/admin/user_controller.rb +0 -0
  323. data/rails/vendor/rails/actionpack/test/controller/controller_fixtures/app/controllers/user_controller.rb +0 -0
  324. data/rails/vendor/rails/actionpack/test/controller/controller_fixtures/vendor/plugins/bad_plugin/lib/plugin_controller.rb +0 -0
  325. data/rails/vendor/rails/actionpack/test/controller/cookie_test.rb +88 -0
  326. data/rails/vendor/rails/actionpack/test/controller/custom_handler_test.rb +41 -0
  327. data/rails/vendor/rails/actionpack/test/controller/deprecated_instance_variables_test.rb +48 -0
  328. data/rails/vendor/rails/actionpack/test/controller/deprecation/deprecated_base_methods_test.rb +60 -0
  329. data/rails/vendor/rails/actionpack/test/controller/fake_controllers.rb +16 -0
  330. data/rails/vendor/rails/actionpack/test/controller/filter_params_test.rb +42 -0
  331. data/rails/vendor/rails/actionpack/test/controller/filters_test.rb +695 -0
  332. data/rails/vendor/rails/actionpack/test/controller/flash_test.rb +102 -0
  333. data/rails/vendor/rails/actionpack/test/controller/fragment_store_setting_test.rb +45 -0
  334. data/rails/vendor/rails/actionpack/test/controller/helper_test.rb +187 -0
  335. data/rails/vendor/rails/actionpack/test/controller/integration_test.rb +154 -0
  336. data/rails/vendor/rails/actionpack/test/controller/layout_test.rb +187 -0
  337. data/rails/vendor/rails/actionpack/test/controller/mime_responds_test.rb +351 -0
  338. data/rails/vendor/rails/actionpack/test/controller/mime_type_test.rb +33 -0
  339. data/rails/vendor/rails/actionpack/test/controller/new_render_test.rb +750 -0
  340. data/rails/vendor/rails/actionpack/test/controller/raw_post_test.rb +68 -0
  341. data/rails/vendor/rails/actionpack/test/controller/redirect_test.rb +156 -0
  342. data/rails/vendor/rails/actionpack/test/controller/render_test.rb +293 -0
  343. data/rails/vendor/rails/actionpack/test/controller/request_test.rb +317 -0
  344. data/rails/vendor/rails/actionpack/test/controller/resources_test.rb +482 -0
  345. data/rails/vendor/rails/actionpack/test/controller/routing_test.rb +1801 -0
  346. data/rails/vendor/rails/actionpack/test/controller/selector_test.rb +628 -0
  347. data/rails/vendor/rails/actionpack/test/controller/send_file_test.rb +117 -0
  348. data/rails/vendor/rails/actionpack/test/controller/session_management_test.rb +156 -0
  349. data/rails/vendor/rails/actionpack/test/controller/test_test.rb +495 -0
  350. data/rails/vendor/rails/actionpack/test/controller/url_rewriter_test.rb +115 -0
  351. data/rails/vendor/rails/actionpack/test/controller/verification_test.rb +227 -0
  352. data/rails/vendor/rails/actionpack/test/controller/webservice_test.rb +248 -0
  353. data/rails/vendor/rails/actionpack/test/fixtures/addresses/list.rhtml +1 -0
  354. data/rails/vendor/rails/actionpack/test/fixtures/companies.yml +24 -0
  355. data/rails/vendor/rails/actionpack/test/fixtures/company.rb +9 -0
  356. data/rails/vendor/rails/actionpack/test/fixtures/content_type/render_default_content_types_for_respond_to.rhtml +1 -0
  357. data/rails/vendor/rails/actionpack/test/fixtures/content_type/render_default_for_rhtml.rhtml +1 -0
  358. data/rails/vendor/rails/actionpack/test/fixtures/content_type/render_default_for_rjs.rjs +1 -0
  359. data/rails/vendor/rails/actionpack/test/fixtures/content_type/render_default_for_rxml.rxml +1 -0
  360. data/rails/vendor/rails/actionpack/test/fixtures/db_definitions/sqlite.sql +42 -0
  361. data/rails/vendor/rails/actionpack/test/fixtures/deprecated_instance_variables/_cookies_ivar.rhtml +1 -0
  362. data/rails/vendor/rails/actionpack/test/fixtures/deprecated_instance_variables/_cookies_method.rhtml +1 -0
  363. data/rails/vendor/rails/actionpack/test/fixtures/deprecated_instance_variables/_flash_ivar.rhtml +1 -0
  364. data/rails/vendor/rails/actionpack/test/fixtures/deprecated_instance_variables/_flash_method.rhtml +1 -0
  365. data/rails/vendor/rails/actionpack/test/fixtures/deprecated_instance_variables/_headers_ivar.rhtml +1 -0
  366. data/rails/vendor/rails/actionpack/test/fixtures/deprecated_instance_variables/_headers_method.rhtml +1 -0
  367. data/rails/vendor/rails/actionpack/test/fixtures/deprecated_instance_variables/_params_ivar.rhtml +1 -0
  368. data/rails/vendor/rails/actionpack/test/fixtures/deprecated_instance_variables/_params_method.rhtml +1 -0
  369. data/rails/vendor/rails/actionpack/test/fixtures/deprecated_instance_variables/_request_ivar.rhtml +1 -0
  370. data/rails/vendor/rails/actionpack/test/fixtures/deprecated_instance_variables/_request_method.rhtml +1 -0
  371. data/rails/vendor/rails/actionpack/test/fixtures/deprecated_instance_variables/_response_ivar.rhtml +1 -0
  372. data/rails/vendor/rails/actionpack/test/fixtures/deprecated_instance_variables/_response_method.rhtml +1 -0
  373. data/rails/vendor/rails/actionpack/test/fixtures/deprecated_instance_variables/_session_ivar.rhtml +1 -0
  374. data/rails/vendor/rails/actionpack/test/fixtures/deprecated_instance_variables/_session_method.rhtml +1 -0
  375. data/rails/vendor/rails/actionpack/test/fixtures/developer.rb +7 -0
  376. data/rails/vendor/rails/actionpack/test/fixtures/developers.yml +21 -0
  377. data/rails/vendor/rails/actionpack/test/fixtures/developers_projects.yml +13 -0
  378. data/rails/vendor/rails/actionpack/test/fixtures/fun/games/hello_world.rhtml +1 -0
  379. data/rails/vendor/rails/actionpack/test/fixtures/helpers/abc_helper.rb +5 -0
  380. data/rails/vendor/rails/actionpack/test/fixtures/helpers/fun/games_helper.rb +3 -0
  381. data/rails/vendor/rails/actionpack/test/fixtures/helpers/fun/pdf_helper.rb +3 -0
  382. data/rails/vendor/rails/actionpack/test/fixtures/layout_tests/layouts/controller_name_space/nested.rhtml +1 -0
  383. data/rails/vendor/rails/actionpack/test/fixtures/layout_tests/layouts/item.rhtml +1 -0
  384. data/rails/vendor/rails/actionpack/test/fixtures/layout_tests/layouts/layout_test.rhtml +1 -0
  385. data/rails/vendor/rails/actionpack/test/fixtures/layout_tests/layouts/third_party_template_library.mab +1 -0
  386. data/rails/vendor/rails/actionpack/test/fixtures/layout_tests/views/hello.rhtml +1 -0
  387. data/rails/vendor/rails/actionpack/test/fixtures/layouts/builder.rxml +3 -0
  388. data/rails/vendor/rails/actionpack/test/fixtures/layouts/standard.rhtml +1 -0
  389. data/rails/vendor/rails/actionpack/test/fixtures/layouts/talk_from_action.rhtml +2 -0
  390. data/rails/vendor/rails/actionpack/test/fixtures/layouts/yield.rhtml +2 -0
  391. data/rails/vendor/rails/actionpack/test/fixtures/multipart/binary_file +0 -0
  392. data/rails/vendor/rails/actionpack/test/fixtures/multipart/large_text_file +10 -0
  393. data/rails/vendor/rails/actionpack/test/fixtures/multipart/mixed_files +0 -0
  394. data/rails/vendor/rails/actionpack/test/fixtures/multipart/mona_lisa.jpg +0 -0
  395. data/rails/vendor/rails/actionpack/test/fixtures/multipart/single_parameter +5 -0
  396. data/rails/vendor/rails/actionpack/test/fixtures/multipart/text_file +10 -0
  397. data/rails/vendor/rails/actionpack/test/fixtures/project.rb +3 -0
  398. data/rails/vendor/rails/actionpack/test/fixtures/projects.yml +7 -0
  399. data/rails/vendor/rails/actionpack/test/fixtures/public/images/rails.png +0 -0
  400. data/rails/vendor/rails/actionpack/test/fixtures/public/javascripts/application.js +1 -0
  401. data/rails/vendor/rails/actionpack/test/fixtures/replies.yml +13 -0
  402. data/rails/vendor/rails/actionpack/test/fixtures/reply.rb +5 -0
  403. data/rails/vendor/rails/actionpack/test/fixtures/respond_to/all_types_with_layout.rhtml +1 -0
  404. data/rails/vendor/rails/actionpack/test/fixtures/respond_to/all_types_with_layout.rjs +1 -0
  405. data/rails/vendor/rails/actionpack/test/fixtures/respond_to/layouts/standard.rhtml +1 -0
  406. data/rails/vendor/rails/actionpack/test/fixtures/respond_to/using_defaults.rhtml +1 -0
  407. data/rails/vendor/rails/actionpack/test/fixtures/respond_to/using_defaults.rjs +1 -0
  408. data/rails/vendor/rails/actionpack/test/fixtures/respond_to/using_defaults.rxml +1 -0
  409. data/rails/vendor/rails/actionpack/test/fixtures/respond_to/using_defaults_with_type_list.rhtml +1 -0
  410. data/rails/vendor/rails/actionpack/test/fixtures/respond_to/using_defaults_with_type_list.rjs +1 -0
  411. data/rails/vendor/rails/actionpack/test/fixtures/respond_to/using_defaults_with_type_list.rxml +1 -0
  412. data/rails/vendor/rails/actionpack/test/fixtures/scope/test/modgreet.rhtml +1 -0
  413. data/rails/vendor/rails/actionpack/test/fixtures/test/_customer.rhtml +1 -0
  414. data/rails/vendor/rails/actionpack/test/fixtures/test/_customer_greeting.rhtml +1 -0
  415. data/rails/vendor/rails/actionpack/test/fixtures/test/_hash_object.rhtml +1 -0
  416. data/rails/vendor/rails/actionpack/test/fixtures/test/_hello.rxml +1 -0
  417. data/rails/vendor/rails/actionpack/test/fixtures/test/_partial_only.rhtml +1 -0
  418. data/rails/vendor/rails/actionpack/test/fixtures/test/_person.rhtml +2 -0
  419. data/rails/vendor/rails/actionpack/test/fixtures/test/action_talk_to_layout.rhtml +2 -0
  420. data/rails/vendor/rails/actionpack/test/fixtures/test/block_content_for.rhtml +2 -0
  421. data/rails/vendor/rails/actionpack/test/fixtures/test/capturing.rhtml +4 -0
  422. data/rails/vendor/rails/actionpack/test/fixtures/test/content_for.rhtml +2 -0
  423. data/rails/vendor/rails/actionpack/test/fixtures/test/delete_with_js.rjs +2 -0
  424. data/rails/vendor/rails/actionpack/test/fixtures/test/dot.directory/render_file_with_ivar.rhtml +1 -0
  425. data/rails/vendor/rails/actionpack/test/fixtures/test/enum_rjs_test.rjs +6 -0
  426. data/rails/vendor/rails/actionpack/test/fixtures/test/erb_content_for.rhtml +2 -0
  427. data/rails/vendor/rails/actionpack/test/fixtures/test/greeting.rhtml +1 -0
  428. data/rails/vendor/rails/actionpack/test/fixtures/test/hello.rxml +4 -0
  429. data/rails/vendor/rails/actionpack/test/fixtures/test/hello_world.rhtml +1 -0
  430. data/rails/vendor/rails/actionpack/test/fixtures/test/hello_world.rxml +3 -0
  431. data/rails/vendor/rails/actionpack/test/fixtures/test/hello_world_container.rxml +3 -0
  432. data/rails/vendor/rails/actionpack/test/fixtures/test/hello_world_with_layout_false.rhtml +1 -0
  433. data/rails/vendor/rails/actionpack/test/fixtures/test/hello_xml_world.rxml +11 -0
  434. data/rails/vendor/rails/actionpack/test/fixtures/test/list.rhtml +1 -0
  435. data/rails/vendor/rails/actionpack/test/fixtures/test/non_erb_block_content_for.rxml +4 -0
  436. data/rails/vendor/rails/actionpack/test/fixtures/test/potential_conflicts.rhtml +4 -0
  437. data/rails/vendor/rails/actionpack/test/fixtures/test/render_file_with_ivar.rhtml +1 -0
  438. data/rails/vendor/rails/actionpack/test/fixtures/test/render_file_with_locals.rhtml +1 -0
  439. data/rails/vendor/rails/actionpack/test/fixtures/test/render_to_string_test.rhtml +1 -0
  440. data/rails/vendor/rails/actionpack/test/fixtures/test/update_element_with_capture.rhtml +9 -0
  441. data/rails/vendor/rails/actionpack/test/fixtures/topic.rb +3 -0
  442. data/rails/vendor/rails/actionpack/test/fixtures/topics.yml +22 -0
  443. data/rails/vendor/rails/actionpack/test/template/active_record_helper_test.rb +204 -0
  444. data/rails/vendor/rails/actionpack/test/template/asset_tag_helper_test.rb +232 -0
  445. data/rails/vendor/rails/actionpack/test/template/benchmark_helper_test.rb +72 -0
  446. data/rails/vendor/rails/actionpack/test/template/compiled_templates_test.rb +135 -0
  447. data/rails/vendor/rails/actionpack/test/template/date_helper_test.rb +1322 -0
  448. data/rails/vendor/rails/actionpack/test/template/deprecated_helper_test.rb +36 -0
  449. data/rails/vendor/rails/actionpack/test/template/deprecated_instance_variables_test.rb +43 -0
  450. data/rails/vendor/rails/actionpack/test/template/form_helper_test.rb +499 -0
  451. data/rails/vendor/rails/actionpack/test/template/form_options_helper_test.rb +489 -0
  452. data/rails/vendor/rails/actionpack/test/template/form_tag_helper_test.rb +172 -0
  453. data/rails/vendor/rails/actionpack/test/template/java_script_macros_helper_test.rb +109 -0
  454. data/rails/vendor/rails/actionpack/test/template/javascript_helper_test.rb +67 -0
  455. data/rails/vendor/rails/actionpack/test/template/number_helper_test.rb +92 -0
  456. data/rails/vendor/rails/actionpack/test/template/prototype_helper_test.rb +466 -0
  457. data/rails/vendor/rails/actionpack/test/template/scriptaculous_helper_test.rb +90 -0
  458. data/rails/vendor/rails/actionpack/test/template/tag_helper_test.rb +69 -0
  459. data/rails/vendor/rails/actionpack/test/template/text_helper_test.rb +349 -0
  460. data/rails/vendor/rails/actionpack/test/template/url_helper_test.rb +366 -0
  461. data/rails/vendor/rails/actionpack/test/testing_sandbox.rb +11 -0
  462. data/rails/vendor/rails/actionwebservice/CHANGELOG +279 -0
  463. data/rails/vendor/rails/actionwebservice/MIT-LICENSE +21 -0
  464. data/rails/vendor/rails/actionwebservice/README +364 -0
  465. data/rails/vendor/rails/actionwebservice/Rakefile +171 -0
  466. data/rails/vendor/rails/actionwebservice/TODO +32 -0
  467. data/rails/vendor/rails/actionwebservice/examples/googlesearch/README +143 -0
  468. data/rails/vendor/rails/actionwebservice/examples/googlesearch/autoloading/google_search_api.rb +50 -0
  469. data/rails/vendor/rails/actionwebservice/examples/googlesearch/autoloading/google_search_controller.rb +57 -0
  470. data/rails/vendor/rails/actionwebservice/examples/googlesearch/delegated/google_search_service.rb +108 -0
  471. data/rails/vendor/rails/actionwebservice/examples/googlesearch/delegated/search_controller.rb +7 -0
  472. data/rails/vendor/rails/actionwebservice/examples/googlesearch/direct/google_search_api.rb +50 -0
  473. data/rails/vendor/rails/actionwebservice/examples/googlesearch/direct/search_controller.rb +58 -0
  474. data/rails/vendor/rails/actionwebservice/examples/metaWeblog/README +17 -0
  475. data/rails/vendor/rails/actionwebservice/examples/metaWeblog/apis/blogger_api.rb +60 -0
  476. data/rails/vendor/rails/actionwebservice/examples/metaWeblog/apis/blogger_service.rb +34 -0
  477. data/rails/vendor/rails/actionwebservice/examples/metaWeblog/apis/meta_weblog_api.rb +67 -0
  478. data/rails/vendor/rails/actionwebservice/examples/metaWeblog/apis/meta_weblog_service.rb +48 -0
  479. data/rails/vendor/rails/actionwebservice/examples/metaWeblog/controllers/xmlrpc_controller.rb +16 -0
  480. data/rails/vendor/rails/actionwebservice/lib/action_web_service.rb +66 -0
  481. data/rails/vendor/rails/actionwebservice/lib/action_web_service/api.rb +249 -0
  482. data/rails/vendor/rails/actionwebservice/lib/action_web_service/base.rb +42 -0
  483. data/rails/vendor/rails/actionwebservice/lib/action_web_service/casting.rb +136 -0
  484. data/rails/vendor/rails/actionwebservice/lib/action_web_service/client.rb +3 -0
  485. data/rails/vendor/rails/actionwebservice/lib/action_web_service/client/base.rb +28 -0
  486. data/rails/vendor/rails/actionwebservice/lib/action_web_service/client/soap_client.rb +113 -0
  487. data/rails/vendor/rails/actionwebservice/lib/action_web_service/client/xmlrpc_client.rb +58 -0
  488. data/rails/vendor/rails/actionwebservice/lib/action_web_service/container.rb +3 -0
  489. data/rails/vendor/rails/actionwebservice/lib/action_web_service/container/action_controller_container.rb +93 -0
  490. data/rails/vendor/rails/actionwebservice/lib/action_web_service/container/delegated_container.rb +86 -0
  491. data/rails/vendor/rails/actionwebservice/lib/action_web_service/container/direct_container.rb +69 -0
  492. data/rails/vendor/rails/actionwebservice/lib/action_web_service/dispatcher.rb +2 -0
  493. data/rails/vendor/rails/actionwebservice/lib/action_web_service/dispatcher/abstract.rb +203 -0
  494. data/rails/vendor/rails/actionwebservice/lib/action_web_service/dispatcher/action_controller_dispatcher.rb +376 -0
  495. data/rails/vendor/rails/actionwebservice/lib/action_web_service/invocation.rb +202 -0
  496. data/rails/vendor/rails/actionwebservice/lib/action_web_service/protocol.rb +4 -0
  497. data/rails/vendor/rails/actionwebservice/lib/action_web_service/protocol/abstract.rb +112 -0
  498. data/rails/vendor/rails/actionwebservice/lib/action_web_service/protocol/discovery.rb +37 -0
  499. data/rails/vendor/rails/actionwebservice/lib/action_web_service/protocol/soap_protocol.rb +176 -0
  500. data/rails/vendor/rails/actionwebservice/lib/action_web_service/protocol/soap_protocol/marshaler.rb +241 -0
  501. data/rails/vendor/rails/actionwebservice/lib/action_web_service/protocol/xmlrpc_protocol.rb +110 -0
  502. data/rails/vendor/rails/actionwebservice/lib/action_web_service/scaffolding.rb +283 -0
  503. data/rails/vendor/rails/actionwebservice/lib/action_web_service/struct.rb +68 -0
  504. data/rails/vendor/rails/actionwebservice/lib/action_web_service/support/class_inheritable_options.rb +26 -0
  505. data/rails/vendor/rails/actionwebservice/lib/action_web_service/support/signature_types.rb +222 -0
  506. data/rails/vendor/rails/actionwebservice/lib/action_web_service/templates/scaffolds/layout.rhtml +65 -0
  507. data/rails/vendor/rails/actionwebservice/lib/action_web_service/templates/scaffolds/methods.rhtml +6 -0
  508. data/rails/vendor/rails/actionwebservice/lib/action_web_service/templates/scaffolds/parameters.rhtml +29 -0
  509. data/rails/vendor/rails/actionwebservice/lib/action_web_service/templates/scaffolds/result.rhtml +30 -0
  510. data/rails/vendor/rails/actionwebservice/lib/action_web_service/test_invoke.rb +110 -0
  511. data/rails/vendor/rails/actionwebservice/lib/action_web_service/version.rb +9 -0
  512. data/rails/vendor/rails/actionwebservice/setup.rb +1379 -0
  513. data/rails/vendor/rails/actionwebservice/test/abstract_client.rb +183 -0
  514. data/rails/vendor/rails/actionwebservice/test/abstract_dispatcher.rb +505 -0
  515. data/rails/vendor/rails/actionwebservice/test/abstract_unit.rb +45 -0
  516. data/rails/vendor/rails/actionwebservice/test/api_test.rb +102 -0
  517. data/rails/vendor/rails/actionwebservice/test/apis/auto_load_api.rb +3 -0
  518. data/rails/vendor/rails/actionwebservice/test/apis/broken_auto_load_api.rb +2 -0
  519. data/rails/vendor/rails/actionwebservice/test/base_test.rb +42 -0
  520. data/rails/vendor/rails/actionwebservice/test/casting_test.rb +86 -0
  521. data/rails/vendor/rails/actionwebservice/test/client_soap_test.rb +152 -0
  522. data/rails/vendor/rails/actionwebservice/test/client_xmlrpc_test.rb +151 -0
  523. data/rails/vendor/rails/actionwebservice/test/container_test.rb +73 -0
  524. data/rails/vendor/rails/actionwebservice/test/dispatcher_action_controller_soap_test.rb +137 -0
  525. data/rails/vendor/rails/actionwebservice/test/dispatcher_action_controller_xmlrpc_test.rb +59 -0
  526. data/rails/vendor/rails/actionwebservice/test/fixtures/db_definitions/mysql.sql +7 -0
  527. data/rails/vendor/rails/actionwebservice/test/fixtures/users.yml +10 -0
  528. data/rails/vendor/rails/actionwebservice/test/gencov +3 -0
  529. data/rails/vendor/rails/actionwebservice/test/invocation_test.rb +185 -0
  530. data/rails/vendor/rails/actionwebservice/test/run +6 -0
  531. data/rails/vendor/rails/actionwebservice/test/scaffolded_controller_test.rb +146 -0
  532. data/rails/vendor/rails/actionwebservice/test/struct_test.rb +52 -0
  533. data/rails/vendor/rails/actionwebservice/test/test_invoke_test.rb +112 -0
  534. data/rails/vendor/rails/activerecord/CHANGELOG +3043 -0
  535. data/rails/vendor/rails/activerecord/README +360 -0
  536. data/rails/vendor/rails/activerecord/RUNNING_UNIT_TESTS +64 -0
  537. data/rails/vendor/rails/activerecord/Rakefile +226 -0
  538. data/rails/vendor/rails/activerecord/examples/associations.png +0 -0
  539. data/rails/vendor/rails/activerecord/examples/associations.rb +87 -0
  540. data/rails/vendor/rails/activerecord/examples/shared_setup.rb +15 -0
  541. data/rails/vendor/rails/activerecord/examples/validation.rb +85 -0
  542. data/rails/vendor/rails/activerecord/install.rb +30 -0
  543. data/rails/vendor/rails/activerecord/lib/active_record.rb +85 -0
  544. data/rails/vendor/rails/activerecord/lib/active_record/acts/list.rb +244 -0
  545. data/rails/vendor/rails/activerecord/lib/active_record/acts/nested_set.rb +211 -0
  546. data/rails/vendor/rails/activerecord/lib/active_record/acts/tree.rb +89 -0
  547. data/rails/vendor/rails/activerecord/lib/active_record/aggregations.rb +191 -0
  548. data/rails/vendor/rails/activerecord/lib/active_record/associations.rb +1627 -0
  549. data/rails/vendor/rails/activerecord/lib/active_record/associations/association_collection.rb +190 -0
  550. data/rails/vendor/rails/activerecord/lib/active_record/associations/association_proxy.rb +158 -0
  551. data/rails/vendor/rails/activerecord/lib/active_record/associations/belongs_to_association.rb +56 -0
  552. data/rails/vendor/rails/activerecord/lib/active_record/associations/belongs_to_polymorphic_association.rb +50 -0
  553. data/rails/vendor/rails/activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb +169 -0
  554. data/rails/vendor/rails/activerecord/lib/active_record/associations/has_many_association.rb +210 -0
  555. data/rails/vendor/rails/activerecord/lib/active_record/associations/has_many_through_association.rb +247 -0
  556. data/rails/vendor/rails/activerecord/lib/active_record/associations/has_one_association.rb +80 -0
  557. data/rails/vendor/rails/activerecord/lib/active_record/attribute_methods.rb +75 -0
  558. data/rails/vendor/rails/activerecord/lib/active_record/base.rb +2164 -0
  559. data/rails/vendor/rails/activerecord/lib/active_record/calculations.rb +270 -0
  560. data/rails/vendor/rails/activerecord/lib/active_record/callbacks.rb +367 -0
  561. data/rails/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_specification.rb +279 -0
  562. data/rails/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb +130 -0
  563. data/rails/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/quoting.rb +58 -0
  564. data/rails/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb +343 -0
  565. data/rails/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb +303 -0
  566. data/rails/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb +161 -0
  567. data/rails/vendor/rails/activerecord/lib/active_record/connection_adapters/db2_adapter.rb +228 -0
  568. data/rails/vendor/rails/activerecord/lib/active_record/connection_adapters/firebird_adapter.rb +728 -0
  569. data/rails/vendor/rails/activerecord/lib/active_record/connection_adapters/frontbase_adapter.rb +861 -0
  570. data/rails/vendor/rails/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb +414 -0
  571. data/rails/vendor/rails/activerecord/lib/active_record/connection_adapters/openbase_adapter.rb +350 -0
  572. data/rails/vendor/rails/activerecord/lib/active_record/connection_adapters/oracle_adapter.rb +689 -0
  573. data/rails/vendor/rails/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb +584 -0
  574. data/rails/vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb +407 -0
  575. data/rails/vendor/rails/activerecord/lib/active_record/connection_adapters/sqlserver_adapter.rb +591 -0
  576. data/rails/vendor/rails/activerecord/lib/active_record/connection_adapters/sybase_adapter.rb +662 -0
  577. data/rails/vendor/rails/activerecord/lib/active_record/deprecated_associations.rb +104 -0
  578. data/rails/vendor/rails/activerecord/lib/active_record/deprecated_finders.rb +44 -0
  579. data/rails/vendor/rails/activerecord/lib/active_record/fixtures.rb +628 -0
  580. data/rails/vendor/rails/activerecord/lib/active_record/locking/optimistic.rb +106 -0
  581. data/rails/vendor/rails/activerecord/lib/active_record/locking/pessimistic.rb +77 -0
  582. data/rails/vendor/rails/activerecord/lib/active_record/migration.rb +394 -0
  583. data/rails/vendor/rails/activerecord/lib/active_record/observer.rb +178 -0
  584. data/rails/vendor/rails/activerecord/lib/active_record/query_cache.rb +64 -0
  585. data/rails/vendor/rails/activerecord/lib/active_record/reflection.rb +222 -0
  586. data/rails/vendor/rails/activerecord/lib/active_record/schema.rb +58 -0
  587. data/rails/vendor/rails/activerecord/lib/active_record/schema_dumper.rb +149 -0
  588. data/rails/vendor/rails/activerecord/lib/active_record/timestamp.rb +51 -0
  589. data/rails/vendor/rails/activerecord/lib/active_record/transactions.rb +136 -0
  590. data/rails/vendor/rails/activerecord/lib/active_record/validations.rb +843 -0
  591. data/rails/vendor/rails/activerecord/lib/active_record/vendor/db2.rb +362 -0
  592. data/rails/vendor/rails/activerecord/lib/active_record/vendor/mysql.rb +1214 -0
  593. data/rails/vendor/rails/activerecord/lib/active_record/vendor/simple.rb +693 -0
  594. data/rails/vendor/rails/activerecord/lib/active_record/version.rb +9 -0
  595. data/rails/vendor/rails/activerecord/lib/active_record/wrappers/yaml_wrapper.rb +15 -0
  596. data/rails/vendor/rails/activerecord/lib/active_record/wrappings.rb +58 -0
  597. data/rails/vendor/rails/activerecord/lib/active_record/xml_serialization.rb +308 -0
  598. data/rails/vendor/rails/activerecord/test/aaa_create_tables_test.rb +59 -0
  599. data/rails/vendor/rails/activerecord/test/abstract_unit.rb +77 -0
  600. data/rails/vendor/rails/activerecord/test/active_schema_test_mysql.rb +31 -0
  601. data/rails/vendor/rails/activerecord/test/adapter_test.rb +87 -0
  602. data/rails/vendor/rails/activerecord/test/adapter_test_sqlserver.rb +81 -0
  603. data/rails/vendor/rails/activerecord/test/aggregations_test.rb +95 -0
  604. data/rails/vendor/rails/activerecord/test/all.sh +8 -0
  605. data/rails/vendor/rails/activerecord/test/ar_schema_test.rb +33 -0
  606. data/rails/vendor/rails/activerecord/test/association_inheritance_reload.rb +14 -0
  607. data/rails/vendor/rails/activerecord/test/associations/callbacks_test.rb +126 -0
  608. data/rails/vendor/rails/activerecord/test/associations/cascaded_eager_loading_test.rb +138 -0
  609. data/rails/vendor/rails/activerecord/test/associations/eager_test.rb +393 -0
  610. data/rails/vendor/rails/activerecord/test/associations/extension_test.rb +42 -0
  611. data/rails/vendor/rails/activerecord/test/associations/join_model_test.rb +497 -0
  612. data/rails/vendor/rails/activerecord/test/associations_test.rb +1809 -0
  613. data/rails/vendor/rails/activerecord/test/attribute_methods_test.rb +49 -0
  614. data/rails/vendor/rails/activerecord/test/base_test.rb +1586 -0
  615. data/rails/vendor/rails/activerecord/test/binary_test.rb +37 -0
  616. data/rails/vendor/rails/activerecord/test/calculations_test.rb +219 -0
  617. data/rails/vendor/rails/activerecord/test/callbacks_test.rb +377 -0
  618. data/rails/vendor/rails/activerecord/test/class_inheritable_attributes_test.rb +32 -0
  619. data/rails/vendor/rails/activerecord/test/column_alias_test.rb +17 -0
  620. data/rails/vendor/rails/activerecord/test/connection_test_firebird.rb +8 -0
  621. data/rails/vendor/rails/activerecord/test/connections/native_db2/connection.rb +25 -0
  622. data/rails/vendor/rails/activerecord/test/connections/native_firebird/connection.rb +26 -0
  623. data/rails/vendor/rails/activerecord/test/connections/native_frontbase/connection.rb +27 -0
  624. data/rails/vendor/rails/activerecord/test/connections/native_mysql/connection.rb +24 -0
  625. data/rails/vendor/rails/activerecord/test/connections/native_openbase/connection.rb +21 -0
  626. data/rails/vendor/rails/activerecord/test/connections/native_oracle/connection.rb +27 -0
  627. data/rails/vendor/rails/activerecord/test/connections/native_postgresql/connection.rb +23 -0
  628. data/rails/vendor/rails/activerecord/test/connections/native_sqlite/connection.rb +34 -0
  629. data/rails/vendor/rails/activerecord/test/connections/native_sqlite3/connection.rb +34 -0
  630. data/rails/vendor/rails/activerecord/test/connections/native_sqlite3/in_memory_connection.rb +18 -0
  631. data/rails/vendor/rails/activerecord/test/connections/native_sqlserver/connection.rb +23 -0
  632. data/rails/vendor/rails/activerecord/test/connections/native_sqlserver_odbc/connection.rb +25 -0
  633. data/rails/vendor/rails/activerecord/test/connections/native_sybase/connection.rb +23 -0
  634. data/rails/vendor/rails/activerecord/test/copy_table_sqlite.rb +64 -0
  635. data/rails/vendor/rails/activerecord/test/datatype_test_postgresql.rb +52 -0
  636. data/rails/vendor/rails/activerecord/test/default_test_firebird.rb +16 -0
  637. data/rails/vendor/rails/activerecord/test/defaults_test.rb +60 -0
  638. data/rails/vendor/rails/activerecord/test/deprecated_associations_test.rb +396 -0
  639. data/rails/vendor/rails/activerecord/test/deprecated_finder_test.rb +151 -0
  640. data/rails/vendor/rails/activerecord/test/empty_date_time_test.rb +25 -0
  641. data/rails/vendor/rails/activerecord/test/finder_test.rb +504 -0
  642. data/rails/vendor/rails/activerecord/test/fixtures/accounts.yml +28 -0
  643. data/rails/vendor/rails/activerecord/test/fixtures/author.rb +99 -0
  644. data/rails/vendor/rails/activerecord/test/fixtures/author_favorites.yml +4 -0
  645. data/rails/vendor/rails/activerecord/test/fixtures/authors.yml +7 -0
  646. data/rails/vendor/rails/activerecord/test/fixtures/auto_id.rb +4 -0
  647. data/rails/vendor/rails/activerecord/test/fixtures/bad_fixtures/attr_with_numeric_first_char +1 -0
  648. data/rails/vendor/rails/activerecord/test/fixtures/bad_fixtures/attr_with_spaces +1 -0
  649. data/rails/vendor/rails/activerecord/test/fixtures/bad_fixtures/blank_line +3 -0
  650. data/rails/vendor/rails/activerecord/test/fixtures/bad_fixtures/duplicate_attributes +3 -0
  651. data/rails/vendor/rails/activerecord/test/fixtures/bad_fixtures/missing_value +1 -0
  652. data/rails/vendor/rails/activerecord/test/fixtures/binary.rb +2 -0
  653. data/rails/vendor/rails/activerecord/test/fixtures/categories.yml +14 -0
  654. data/rails/vendor/rails/activerecord/test/fixtures/categories/special_categories.yml +9 -0
  655. data/rails/vendor/rails/activerecord/test/fixtures/categories/subsubdir/arbitrary_filename.yml +4 -0
  656. data/rails/vendor/rails/activerecord/test/fixtures/categories_ordered.yml +7 -0
  657. data/rails/vendor/rails/activerecord/test/fixtures/categories_posts.yml +23 -0
  658. data/rails/vendor/rails/activerecord/test/fixtures/categorization.rb +5 -0
  659. data/rails/vendor/rails/activerecord/test/fixtures/categorizations.yml +17 -0
  660. data/rails/vendor/rails/activerecord/test/fixtures/category.rb +20 -0
  661. data/rails/vendor/rails/activerecord/test/fixtures/column_name.rb +3 -0
  662. data/rails/vendor/rails/activerecord/test/fixtures/comment.rb +23 -0
  663. data/rails/vendor/rails/activerecord/test/fixtures/comments.yml +59 -0
  664. data/rails/vendor/rails/activerecord/test/fixtures/companies.yml +55 -0
  665. data/rails/vendor/rails/activerecord/test/fixtures/company.rb +107 -0
  666. data/rails/vendor/rails/activerecord/test/fixtures/company_in_module.rb +59 -0
  667. data/rails/vendor/rails/activerecord/test/fixtures/computer.rb +3 -0
  668. data/rails/vendor/rails/activerecord/test/fixtures/computers.yml +4 -0
  669. data/rails/vendor/rails/activerecord/test/fixtures/course.rb +3 -0
  670. data/rails/vendor/rails/activerecord/test/fixtures/courses.yml +7 -0
  671. data/rails/vendor/rails/activerecord/test/fixtures/customer.rb +55 -0
  672. data/rails/vendor/rails/activerecord/test/fixtures/customers.yml +17 -0
  673. data/rails/vendor/rails/activerecord/test/fixtures/db_definitions/db2.drop.sql +32 -0
  674. data/rails/vendor/rails/activerecord/test/fixtures/db_definitions/db2.sql +231 -0
  675. data/rails/vendor/rails/activerecord/test/fixtures/db_definitions/db22.drop.sql +2 -0
  676. data/rails/vendor/rails/activerecord/test/fixtures/db_definitions/db22.sql +5 -0
  677. data/rails/vendor/rails/activerecord/test/fixtures/db_definitions/firebird.drop.sql +63 -0
  678. data/rails/vendor/rails/activerecord/test/fixtures/db_definitions/firebird.sql +304 -0
  679. data/rails/vendor/rails/activerecord/test/fixtures/db_definitions/firebird2.drop.sql +2 -0
  680. data/rails/vendor/rails/activerecord/test/fixtures/db_definitions/firebird2.sql +6 -0
  681. data/rails/vendor/rails/activerecord/test/fixtures/db_definitions/frontbase.drop.sql +32 -0
  682. data/rails/vendor/rails/activerecord/test/fixtures/db_definitions/frontbase.sql +268 -0
  683. data/rails/vendor/rails/activerecord/test/fixtures/db_definitions/frontbase2.drop.sql +1 -0
  684. data/rails/vendor/rails/activerecord/test/fixtures/db_definitions/frontbase2.sql +4 -0
  685. data/rails/vendor/rails/activerecord/test/fixtures/db_definitions/mysql.drop.sql +32 -0
  686. data/rails/vendor/rails/activerecord/test/fixtures/db_definitions/mysql.sql +234 -0
  687. data/rails/vendor/rails/activerecord/test/fixtures/db_definitions/mysql2.drop.sql +2 -0
  688. data/rails/vendor/rails/activerecord/test/fixtures/db_definitions/mysql2.sql +5 -0
  689. data/rails/vendor/rails/activerecord/test/fixtures/db_definitions/openbase.drop.sql +2 -0
  690. data/rails/vendor/rails/activerecord/test/fixtures/db_definitions/openbase.sql +302 -0
  691. data/rails/vendor/rails/activerecord/test/fixtures/db_definitions/openbase2.drop.sql +2 -0
  692. data/rails/vendor/rails/activerecord/test/fixtures/db_definitions/openbase2.sql +7 -0
  693. data/rails/vendor/rails/activerecord/test/fixtures/db_definitions/oracle.drop.sql +65 -0
  694. data/rails/vendor/rails/activerecord/test/fixtures/db_definitions/oracle.sql +325 -0
  695. data/rails/vendor/rails/activerecord/test/fixtures/db_definitions/oracle2.drop.sql +2 -0
  696. data/rails/vendor/rails/activerecord/test/fixtures/db_definitions/oracle2.sql +6 -0
  697. data/rails/vendor/rails/activerecord/test/fixtures/db_definitions/postgresql.drop.sql +37 -0
  698. data/rails/vendor/rails/activerecord/test/fixtures/db_definitions/postgresql.sql +263 -0
  699. data/rails/vendor/rails/activerecord/test/fixtures/db_definitions/postgresql2.drop.sql +2 -0
  700. data/rails/vendor/rails/activerecord/test/fixtures/db_definitions/postgresql2.sql +5 -0
  701. data/rails/vendor/rails/activerecord/test/fixtures/db_definitions/schema.rb +60 -0
  702. data/rails/vendor/rails/activerecord/test/fixtures/db_definitions/sqlite.drop.sql +32 -0
  703. data/rails/vendor/rails/activerecord/test/fixtures/db_definitions/sqlite.sql +215 -0
  704. data/rails/vendor/rails/activerecord/test/fixtures/db_definitions/sqlite2.drop.sql +2 -0
  705. data/rails/vendor/rails/activerecord/test/fixtures/db_definitions/sqlite2.sql +5 -0
  706. data/rails/vendor/rails/activerecord/test/fixtures/db_definitions/sqlserver.drop.sql +34 -0
  707. data/rails/vendor/rails/activerecord/test/fixtures/db_definitions/sqlserver.sql +243 -0
  708. data/rails/vendor/rails/activerecord/test/fixtures/db_definitions/sqlserver2.drop.sql +2 -0
  709. data/rails/vendor/rails/activerecord/test/fixtures/db_definitions/sqlserver2.sql +5 -0
  710. data/rails/vendor/rails/activerecord/test/fixtures/db_definitions/sybase.drop.sql +34 -0
  711. data/rails/vendor/rails/activerecord/test/fixtures/db_definitions/sybase.sql +218 -0
  712. data/rails/vendor/rails/activerecord/test/fixtures/db_definitions/sybase2.drop.sql +4 -0
  713. data/rails/vendor/rails/activerecord/test/fixtures/db_definitions/sybase2.sql +5 -0
  714. data/rails/vendor/rails/activerecord/test/fixtures/default.rb +2 -0
  715. data/rails/vendor/rails/activerecord/test/fixtures/developer.rb +52 -0
  716. data/rails/vendor/rails/activerecord/test/fixtures/developers.yml +21 -0
  717. data/rails/vendor/rails/activerecord/test/fixtures/developers_projects.yml +17 -0
  718. data/rails/vendor/rails/activerecord/test/fixtures/developers_projects/david_action_controller +3 -0
  719. data/rails/vendor/rails/activerecord/test/fixtures/developers_projects/david_active_record +3 -0
  720. data/rails/vendor/rails/activerecord/test/fixtures/developers_projects/jamis_active_record +2 -0
  721. data/rails/vendor/rails/activerecord/test/fixtures/edge.rb +5 -0
  722. data/rails/vendor/rails/activerecord/test/fixtures/edges.yml +6 -0
  723. data/rails/vendor/rails/activerecord/test/fixtures/entrant.rb +3 -0
  724. data/rails/vendor/rails/activerecord/test/fixtures/entrants.yml +14 -0
  725. data/rails/vendor/rails/activerecord/test/fixtures/fk_test_has_fk.yml +3 -0
  726. data/rails/vendor/rails/activerecord/test/fixtures/fk_test_has_pk.yml +2 -0
  727. data/rails/vendor/rails/activerecord/test/fixtures/flowers.jpg +0 -0
  728. data/rails/vendor/rails/activerecord/test/fixtures/funny_jokes.yml +10 -0
  729. data/rails/vendor/rails/activerecord/test/fixtures/joke.rb +6 -0
  730. data/rails/vendor/rails/activerecord/test/fixtures/keyboard.rb +3 -0
  731. data/rails/vendor/rails/activerecord/test/fixtures/legacy_thing.rb +3 -0
  732. data/rails/vendor/rails/activerecord/test/fixtures/legacy_things.yml +3 -0
  733. data/rails/vendor/rails/activerecord/test/fixtures/migrations/1_people_have_last_names.rb +9 -0
  734. data/rails/vendor/rails/activerecord/test/fixtures/migrations/2_we_need_reminders.rb +12 -0
  735. data/rails/vendor/rails/activerecord/test/fixtures/migrations/3_innocent_jointable.rb +12 -0
  736. data/rails/vendor/rails/activerecord/test/fixtures/migrations_with_decimal/1_give_me_big_numbers.rb +15 -0
  737. data/rails/vendor/rails/activerecord/test/fixtures/migrations_with_duplicate/1_people_have_last_names.rb +9 -0
  738. data/rails/vendor/rails/activerecord/test/fixtures/migrations_with_duplicate/2_we_need_reminders.rb +12 -0
  739. data/rails/vendor/rails/activerecord/test/fixtures/migrations_with_duplicate/3_foo.rb +7 -0
  740. data/rails/vendor/rails/activerecord/test/fixtures/migrations_with_duplicate/3_innocent_jointable.rb +12 -0
  741. data/rails/vendor/rails/activerecord/test/fixtures/migrations_with_missing_versions/1000_people_have_middle_names.rb +9 -0
  742. data/rails/vendor/rails/activerecord/test/fixtures/migrations_with_missing_versions/1_people_have_last_names.rb +9 -0
  743. data/rails/vendor/rails/activerecord/test/fixtures/migrations_with_missing_versions/3_we_need_reminders.rb +12 -0
  744. data/rails/vendor/rails/activerecord/test/fixtures/migrations_with_missing_versions/4_innocent_jointable.rb +12 -0
  745. data/rails/vendor/rails/activerecord/test/fixtures/mixed_case_monkey.rb +3 -0
  746. data/rails/vendor/rails/activerecord/test/fixtures/mixed_case_monkeys.yml +6 -0
  747. data/rails/vendor/rails/activerecord/test/fixtures/mixin.rb +63 -0
  748. data/rails/vendor/rails/activerecord/test/fixtures/mixins.yml +127 -0
  749. data/rails/vendor/rails/activerecord/test/fixtures/movie.rb +5 -0
  750. data/rails/vendor/rails/activerecord/test/fixtures/movies.yml +7 -0
  751. data/rails/vendor/rails/activerecord/test/fixtures/naked/csv/accounts.csv +1 -0
  752. data/rails/vendor/rails/activerecord/test/fixtures/naked/yml/accounts.yml +1 -0
  753. data/rails/vendor/rails/activerecord/test/fixtures/naked/yml/companies.yml +1 -0
  754. data/rails/vendor/rails/activerecord/test/fixtures/naked/yml/courses.yml +1 -0
  755. data/rails/vendor/rails/activerecord/test/fixtures/order.rb +4 -0
  756. data/rails/vendor/rails/activerecord/test/fixtures/people.yml +3 -0
  757. data/rails/vendor/rails/activerecord/test/fixtures/person.rb +4 -0
  758. data/rails/vendor/rails/activerecord/test/fixtures/post.rb +58 -0
  759. data/rails/vendor/rails/activerecord/test/fixtures/posts.yml +48 -0
  760. data/rails/vendor/rails/activerecord/test/fixtures/project.rb +27 -0
  761. data/rails/vendor/rails/activerecord/test/fixtures/projects.yml +7 -0
  762. data/rails/vendor/rails/activerecord/test/fixtures/reader.rb +4 -0
  763. data/rails/vendor/rails/activerecord/test/fixtures/readers.yml +4 -0
  764. data/rails/vendor/rails/activerecord/test/fixtures/reply.rb +37 -0
  765. data/rails/vendor/rails/activerecord/test/fixtures/subject.rb +4 -0
  766. data/rails/vendor/rails/activerecord/test/fixtures/subscriber.rb +6 -0
  767. data/rails/vendor/rails/activerecord/test/fixtures/subscribers/first +2 -0
  768. data/rails/vendor/rails/activerecord/test/fixtures/subscribers/second +2 -0
  769. data/rails/vendor/rails/activerecord/test/fixtures/tag.rb +7 -0
  770. data/rails/vendor/rails/activerecord/test/fixtures/tagging.rb +6 -0
  771. data/rails/vendor/rails/activerecord/test/fixtures/taggings.yml +18 -0
  772. data/rails/vendor/rails/activerecord/test/fixtures/tags.yml +7 -0
  773. data/rails/vendor/rails/activerecord/test/fixtures/task.rb +3 -0
  774. data/rails/vendor/rails/activerecord/test/fixtures/tasks.yml +7 -0
  775. data/rails/vendor/rails/activerecord/test/fixtures/topic.rb +25 -0
  776. data/rails/vendor/rails/activerecord/test/fixtures/topics.yml +22 -0
  777. data/rails/vendor/rails/activerecord/test/fixtures/vertex.rb +9 -0
  778. data/rails/vendor/rails/activerecord/test/fixtures/vertices.yml +4 -0
  779. data/rails/vendor/rails/activerecord/test/fixtures_test.rb +401 -0
  780. data/rails/vendor/rails/activerecord/test/inheritance_test.rb +205 -0
  781. data/rails/vendor/rails/activerecord/test/lifecycle_test.rb +137 -0
  782. data/rails/vendor/rails/activerecord/test/locking_test.rb +190 -0
  783. data/rails/vendor/rails/activerecord/test/method_scoping_test.rb +416 -0
  784. data/rails/vendor/rails/activerecord/test/migration_test.rb +768 -0
  785. data/rails/vendor/rails/activerecord/test/migration_test_firebird.rb +124 -0
  786. data/rails/vendor/rails/activerecord/test/mixin_nested_set_test.rb +196 -0
  787. data/rails/vendor/rails/activerecord/test/mixin_test.rb +550 -0
  788. data/rails/vendor/rails/activerecord/test/modules_test.rb +34 -0
  789. data/rails/vendor/rails/activerecord/test/multiple_db_test.rb +60 -0
  790. data/rails/vendor/rails/activerecord/test/pk_test.rb +104 -0
  791. data/rails/vendor/rails/activerecord/test/readonly_test.rb +107 -0
  792. data/rails/vendor/rails/activerecord/test/reflection_test.rb +159 -0
  793. data/rails/vendor/rails/activerecord/test/schema_authorization_test_postgresql.rb +75 -0
  794. data/rails/vendor/rails/activerecord/test/schema_dumper_test.rb +96 -0
  795. data/rails/vendor/rails/activerecord/test/schema_test_postgresql.rb +64 -0
  796. data/rails/vendor/rails/activerecord/test/synonym_test_oracle.rb +17 -0
  797. data/rails/vendor/rails/activerecord/test/table_name_test_sqlserver.rb +23 -0
  798. data/rails/vendor/rails/activerecord/test/threaded_connections_test.rb +48 -0
  799. data/rails/vendor/rails/activerecord/test/transactions_test.rb +230 -0
  800. data/rails/vendor/rails/activerecord/test/unconnected_test.rb +32 -0
  801. data/rails/vendor/rails/activerecord/test/validations_test.rb +1097 -0
  802. data/rails/vendor/rails/activerecord/test/xml_serialization_test.rb +125 -0
  803. data/rails/vendor/rails/activesupport/CHANGELOG +703 -0
  804. data/rails/vendor/rails/activesupport/README +43 -0
  805. data/rails/vendor/rails/activesupport/lib/active_support.rb +44 -0
  806. data/rails/vendor/rails/activesupport/lib/active_support/binding_of_caller.rb +84 -0
  807. data/rails/vendor/rails/activesupport/lib/active_support/breakpoint.rb +528 -0
  808. data/rails/vendor/rails/activesupport/lib/active_support/caching_tools.rb +62 -0
  809. data/rails/vendor/rails/activesupport/lib/active_support/clean_logger.rb +38 -0
  810. data/rails/vendor/rails/activesupport/lib/active_support/core_ext.rb +1 -0
  811. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/array.rb +7 -0
  812. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/array/conversions.rb +72 -0
  813. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/array/grouping.rb +55 -0
  814. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/bigdecimal.rb +3 -0
  815. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/bigdecimal/formatting.rb +7 -0
  816. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/blank.rb +50 -0
  817. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/cgi.rb +5 -0
  818. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/cgi/escape_skipping_slashes.rb +14 -0
  819. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/class.rb +3 -0
  820. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/class/attribute_accessors.rb +48 -0
  821. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/class/inheritable_attributes.rb +140 -0
  822. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/class/removal.rb +24 -0
  823. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/date.rb +6 -0
  824. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/date/conversions.rb +39 -0
  825. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/enumerable.rb +62 -0
  826. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/exception.rb +33 -0
  827. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/hash.rb +13 -0
  828. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/hash/conversions.rb +155 -0
  829. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/hash/diff.rb +11 -0
  830. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb +88 -0
  831. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/hash/keys.rb +53 -0
  832. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/hash/reverse_merge.rb +25 -0
  833. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/integer.rb +7 -0
  834. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/integer/even_odd.rb +24 -0
  835. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/integer/inflections.rb +21 -0
  836. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/kernel.rb +4 -0
  837. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/kernel/agnostics.rb +11 -0
  838. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/kernel/daemonizing.rb +15 -0
  839. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/kernel/reporting.rb +51 -0
  840. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/kernel/requires.rb +24 -0
  841. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/load_error.rb +38 -0
  842. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/logger.rb +16 -0
  843. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/module.rb +7 -0
  844. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/module/aliasing.rb +58 -0
  845. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/module/attr_internal.rb +31 -0
  846. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/module/attribute_accessors.rb +48 -0
  847. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/module/delegation.rb +41 -0
  848. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/module/inclusion.rb +11 -0
  849. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/module/introspection.rb +21 -0
  850. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/module/loading.rb +13 -0
  851. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/name_error.rb +17 -0
  852. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/numeric.rb +7 -0
  853. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/numeric/bytes.rb +44 -0
  854. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/numeric/time.rb +72 -0
  855. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/object.rb +2 -0
  856. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/object/extending.rb +47 -0
  857. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/object/misc.rb +34 -0
  858. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/pathname.rb +7 -0
  859. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/pathname/clean_within.rb +14 -0
  860. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/proc.rb +12 -0
  861. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/range.rb +5 -0
  862. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/range/conversions.rb +21 -0
  863. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/string.rb +15 -0
  864. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/string/access.rb +58 -0
  865. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/string/conversions.rb +19 -0
  866. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/string/inflections.rb +153 -0
  867. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/string/iterators.rb +17 -0
  868. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/string/starts_ends_with.rb +20 -0
  869. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/string/unicode.rb +42 -0
  870. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/symbol.rb +12 -0
  871. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/time.rb +17 -0
  872. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/time/calculations.rb +191 -0
  873. data/rails/vendor/rails/activesupport/lib/active_support/core_ext/time/conversions.rb +33 -0
  874. data/rails/vendor/rails/activesupport/lib/active_support/dependencies.rb +539 -0
  875. data/rails/vendor/rails/activesupport/lib/active_support/deprecation.rb +202 -0
  876. data/rails/vendor/rails/activesupport/lib/active_support/inflections.rb +52 -0
  877. data/rails/vendor/rails/activesupport/lib/active_support/inflector.rb +275 -0
  878. data/rails/vendor/rails/activesupport/lib/active_support/json.rb +48 -0
  879. data/rails/vendor/rails/activesupport/lib/active_support/json/encoders.rb +25 -0
  880. data/rails/vendor/rails/activesupport/lib/active_support/json/encoders/core.rb +68 -0
  881. data/rails/vendor/rails/activesupport/lib/active_support/multibyte.rb +7 -0
  882. data/rails/vendor/rails/activesupport/lib/active_support/multibyte/chars.rb +129 -0
  883. data/rails/vendor/rails/activesupport/lib/active_support/multibyte/generators/generate_tables.rb +149 -0
  884. data/rails/vendor/rails/activesupport/lib/active_support/multibyte/handlers/passthru_handler.rb +9 -0
  885. data/rails/vendor/rails/activesupport/lib/active_support/multibyte/handlers/utf8_handler.rb +454 -0
  886. data/rails/vendor/rails/activesupport/lib/active_support/multibyte/handlers/utf8_handler_proc.rb +43 -0
  887. data/rails/vendor/rails/activesupport/lib/active_support/option_merger.rb +25 -0
  888. data/rails/vendor/rails/activesupport/lib/active_support/ordered_options.rb +44 -0
  889. data/rails/vendor/rails/activesupport/lib/active_support/reloadable.rb +60 -0
  890. data/rails/vendor/rails/activesupport/lib/active_support/values/time_zone.rb +180 -0
  891. data/rails/vendor/rails/activesupport/lib/active_support/values/unicode_tables.dat +0 -0
  892. data/rails/vendor/rails/activesupport/lib/active_support/vendor/builder.rb +13 -0
  893. data/rails/vendor/rails/activesupport/lib/active_support/vendor/builder/blankslate.rb +63 -0
  894. data/rails/vendor/rails/activesupport/lib/active_support/vendor/builder/xchar.rb +112 -0
  895. data/rails/vendor/rails/activesupport/lib/active_support/vendor/builder/xmlbase.rb +145 -0
  896. data/rails/vendor/rails/activesupport/lib/active_support/vendor/builder/xmlevents.rb +63 -0
  897. data/rails/vendor/rails/activesupport/lib/active_support/vendor/builder/xmlmarkup.rb +327 -0
  898. data/rails/vendor/rails/activesupport/lib/active_support/vendor/xml_simple.rb +1021 -0
  899. data/rails/vendor/rails/activesupport/lib/active_support/version.rb +9 -0
  900. data/rails/vendor/rails/activesupport/lib/active_support/whiny_nil.rb +38 -0
  901. data/rails/vendor/rails/railties/CHANGELOG +1366 -0
  902. data/rails/vendor/rails/railties/MIT-LICENSE +20 -0
  903. data/rails/vendor/rails/railties/README +182 -0
  904. data/rails/vendor/rails/railties/Rakefile +334 -0
  905. data/rails/vendor/rails/railties/bin/about +3 -0
  906. data/rails/vendor/rails/railties/bin/breakpointer +3 -0
  907. data/rails/vendor/rails/railties/bin/console +3 -0
  908. data/rails/vendor/rails/railties/bin/destroy +3 -0
  909. data/rails/vendor/rails/railties/bin/generate +3 -0
  910. data/rails/vendor/rails/railties/bin/performance/benchmarker +3 -0
  911. data/rails/vendor/rails/railties/bin/performance/profiler +3 -0
  912. data/rails/vendor/rails/railties/bin/plugin +3 -0
  913. data/rails/vendor/rails/railties/bin/process/inspector +3 -0
  914. data/rails/vendor/rails/railties/bin/process/reaper +3 -0
  915. data/rails/vendor/rails/railties/bin/process/spawner +3 -0
  916. data/rails/vendor/rails/railties/bin/rails +19 -0
  917. data/rails/vendor/rails/railties/bin/runner +3 -0
  918. data/rails/vendor/rails/railties/bin/server +3 -0
  919. data/rails/vendor/rails/railties/builtin/rails_info/rails/info.rb +123 -0
  920. data/rails/vendor/rails/railties/builtin/rails_info/rails/info_controller.rb +9 -0
  921. data/rails/vendor/rails/railties/builtin/rails_info/rails/info_helper.rb +2 -0
  922. data/rails/vendor/rails/railties/builtin/rails_info/rails_info_controller.rb +2 -0
  923. data/rails/vendor/rails/railties/configs/apache.conf +40 -0
  924. data/rails/vendor/rails/railties/configs/databases/frontbase.yml +28 -0
  925. data/rails/vendor/rails/railties/configs/databases/mysql.yml +48 -0
  926. data/rails/vendor/rails/railties/configs/databases/oracle.yml +39 -0
  927. data/rails/vendor/rails/railties/configs/databases/postgresql.yml +44 -0
  928. data/rails/vendor/rails/railties/configs/databases/sqlite2.yml +16 -0
  929. data/rails/vendor/rails/railties/configs/databases/sqlite3.yml +19 -0
  930. data/rails/vendor/rails/railties/configs/empty.log +0 -0
  931. data/rails/vendor/rails/railties/configs/lighttpd.conf +54 -0
  932. data/rails/vendor/rails/railties/configs/routes.rb +23 -0
  933. data/rails/vendor/rails/railties/dispatches/dispatch.fcgi +24 -0
  934. data/rails/vendor/rails/railties/dispatches/dispatch.rb +10 -0
  935. data/rails/vendor/rails/railties/dispatches/gateway.cgi +97 -0
  936. data/rails/vendor/rails/railties/doc/README_FOR_APP +2 -0
  937. data/rails/vendor/rails/railties/environments/boot.rb +45 -0
  938. data/rails/vendor/rails/railties/environments/development.rb +21 -0
  939. data/rails/vendor/rails/railties/environments/environment.rb +60 -0
  940. data/rails/vendor/rails/railties/environments/production.rb +18 -0
  941. data/rails/vendor/rails/railties/environments/test.rb +19 -0
  942. data/rails/vendor/rails/railties/fresh_rakefile +10 -0
  943. data/rails/vendor/rails/railties/helpers/application.rb +7 -0
  944. data/rails/vendor/rails/railties/helpers/application_helper.rb +3 -0
  945. data/rails/vendor/rails/railties/helpers/test_helper.rb +28 -0
  946. data/rails/vendor/rails/railties/html/404.html +30 -0
  947. data/rails/vendor/rails/railties/html/500.html +30 -0
  948. data/rails/vendor/rails/railties/html/favicon.ico +0 -0
  949. data/rails/vendor/rails/railties/html/images/rails.png +0 -0
  950. data/rails/vendor/rails/railties/html/index.html +277 -0
  951. data/rails/vendor/rails/railties/html/javascripts/application.js +2 -0
  952. data/rails/vendor/rails/railties/html/javascripts/controls.js +833 -0
  953. data/rails/vendor/rails/railties/html/javascripts/dragdrop.js +942 -0
  954. data/rails/vendor/rails/railties/html/javascripts/effects.js +1088 -0
  955. data/rails/vendor/rails/railties/html/javascripts/prototype.js +2515 -0
  956. data/rails/vendor/rails/railties/html/robots.txt +1 -0
  957. data/rails/vendor/rails/railties/lib/binding_of_caller.rb +85 -0
  958. data/rails/vendor/rails/railties/lib/breakpoint.rb +553 -0
  959. data/rails/vendor/rails/railties/lib/breakpoint_client.rb +196 -0
  960. data/rails/vendor/rails/railties/lib/code_statistics.rb +107 -0
  961. data/rails/vendor/rails/railties/lib/commands.rb +17 -0
  962. data/rails/vendor/rails/railties/lib/commands/about.rb +2 -0
  963. data/rails/vendor/rails/railties/lib/commands/breakpointer.rb +1 -0
  964. data/rails/vendor/rails/railties/lib/commands/console.rb +25 -0
  965. data/rails/vendor/rails/railties/lib/commands/destroy.rb +6 -0
  966. data/rails/vendor/rails/railties/lib/commands/generate.rb +6 -0
  967. data/rails/vendor/rails/railties/lib/commands/ncgi/listener +86 -0
  968. data/rails/vendor/rails/railties/lib/commands/ncgi/tracker +69 -0
  969. data/rails/vendor/rails/railties/lib/commands/performance/benchmarker.rb +24 -0
  970. data/rails/vendor/rails/railties/lib/commands/performance/profiler.rb +50 -0
  971. data/rails/vendor/rails/railties/lib/commands/plugin.rb +918 -0
  972. data/rails/vendor/rails/railties/lib/commands/process/inspector.rb +68 -0
  973. data/rails/vendor/rails/railties/lib/commands/process/reaper.rb +149 -0
  974. data/rails/vendor/rails/railties/lib/commands/process/spawner.rb +209 -0
  975. data/rails/vendor/rails/railties/lib/commands/process/spinner.rb +57 -0
  976. data/rails/vendor/rails/railties/lib/commands/runner.rb +48 -0
  977. data/rails/vendor/rails/railties/lib/commands/server.rb +39 -0
  978. data/rails/vendor/rails/railties/lib/commands/servers/base.rb +19 -0
  979. data/rails/vendor/rails/railties/lib/commands/servers/lighttpd.rb +94 -0
  980. data/rails/vendor/rails/railties/lib/commands/servers/mongrel.rb +65 -0
  981. data/rails/vendor/rails/railties/lib/commands/servers/webrick.rb +59 -0
  982. data/rails/vendor/rails/railties/lib/commands/update.rb +4 -0
  983. data/rails/vendor/rails/railties/lib/console_app.rb +27 -0
  984. data/rails/vendor/rails/railties/lib/console_sandbox.rb +6 -0
  985. data/rails/vendor/rails/railties/lib/console_with_helpers.rb +23 -0
  986. data/rails/vendor/rails/railties/lib/dispatcher.rb +173 -0
  987. data/rails/vendor/rails/railties/lib/fcgi_handler.rb +225 -0
  988. data/rails/vendor/rails/railties/lib/initializer.rb +702 -0
  989. data/rails/vendor/rails/railties/lib/rails/version.rb +9 -0
  990. data/rails/vendor/rails/railties/lib/rails_generator.rb +43 -0
  991. data/rails/vendor/rails/railties/lib/rails_generator/base.rb +261 -0
  992. data/rails/vendor/rails/railties/lib/rails_generator/commands.rb +581 -0
  993. data/rails/vendor/rails/railties/lib/rails_generator/generated_attribute.rb +42 -0
  994. data/rails/vendor/rails/railties/lib/rails_generator/generators/applications/app/USAGE +16 -0
  995. data/rails/vendor/rails/railties/lib/rails_generator/generators/applications/app/app_generator.rb +160 -0
  996. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/controller/USAGE +30 -0
  997. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/controller/controller_generator.rb +37 -0
  998. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/controller/templates/controller.rb +10 -0
  999. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/controller/templates/functional_test.rb +18 -0
  1000. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/controller/templates/helper.rb +2 -0
  1001. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/controller/templates/view.rhtml +2 -0
  1002. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/integration_test/USAGE +14 -0
  1003. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/integration_test/integration_test_generator.rb +16 -0
  1004. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/integration_test/templates/integration_test.rb +10 -0
  1005. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/mailer/USAGE +18 -0
  1006. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/mailer/mailer_generator.rb +34 -0
  1007. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/mailer/templates/fixture.rhtml +3 -0
  1008. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/mailer/templates/mailer.rb +13 -0
  1009. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/mailer/templates/unit_test.rb +37 -0
  1010. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/mailer/templates/view.rhtml +3 -0
  1011. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/migration/USAGE +14 -0
  1012. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/migration/migration_generator.rb +7 -0
  1013. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/migration/templates/migration.rb +7 -0
  1014. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/model/USAGE +26 -0
  1015. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/model/model_generator.rb +38 -0
  1016. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/model/templates/fixtures.yml +11 -0
  1017. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/model/templates/migration.rb +13 -0
  1018. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/model/templates/model.rb +2 -0
  1019. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/model/templates/unit_test.rb +10 -0
  1020. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/observer/USAGE +15 -0
  1021. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/observer/observer_generator.rb +16 -0
  1022. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/observer/templates/observer.rb +2 -0
  1023. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/observer/templates/unit_test.rb +10 -0
  1024. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/plugin/USAGE +35 -0
  1025. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/plugin/plugin_generator.rb +38 -0
  1026. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/README +4 -0
  1027. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/Rakefile +22 -0
  1028. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/USAGE +8 -0
  1029. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/generator.rb +8 -0
  1030. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/init.rb +1 -0
  1031. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/install.rb +1 -0
  1032. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/plugin.rb +1 -0
  1033. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/tasks.rake +4 -0
  1034. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/uninstall.rb +1 -0
  1035. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/unit_test.rb +8 -0
  1036. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/resource/resource_generator.rb +76 -0
  1037. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/resource/templates/USAGE +18 -0
  1038. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/resource/templates/controller.rb +2 -0
  1039. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/resource/templates/fixtures.yml +11 -0
  1040. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/resource/templates/functional_test.rb +20 -0
  1041. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/resource/templates/helper.rb +2 -0
  1042. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/resource/templates/migration.rb +13 -0
  1043. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/resource/templates/model.rb +2 -0
  1044. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/resource/templates/unit_test.rb +10 -0
  1045. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/USAGE +32 -0
  1046. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/scaffold_generator.rb +193 -0
  1047. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/controller.rb +58 -0
  1048. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/form.rhtml +3 -0
  1049. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/form_scaffolding.rhtml +1 -0
  1050. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/functional_test.rb +102 -0
  1051. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/helper.rb +2 -0
  1052. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/layout.rhtml +17 -0
  1053. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/style.css +74 -0
  1054. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/view_edit.rhtml +9 -0
  1055. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/view_list.rhtml +27 -0
  1056. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/view_new.rhtml +8 -0
  1057. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/view_show.rhtml +8 -0
  1058. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/scaffold_resource/USAGE +29 -0
  1059. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/scaffold_resource/scaffold_resource_generator.rb +92 -0
  1060. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/scaffold_resource/templates/controller.rb +79 -0
  1061. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/scaffold_resource/templates/fixtures.yml +11 -0
  1062. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/scaffold_resource/templates/functional_test.rb +57 -0
  1063. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/scaffold_resource/templates/helper.rb +2 -0
  1064. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/scaffold_resource/templates/layout.rhtml +17 -0
  1065. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/scaffold_resource/templates/migration.rb +13 -0
  1066. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/scaffold_resource/templates/model.rb +2 -0
  1067. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/scaffold_resource/templates/style.css +74 -0
  1068. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/scaffold_resource/templates/unit_test.rb +10 -0
  1069. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/scaffold_resource/templates/view_edit.rhtml +19 -0
  1070. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/scaffold_resource/templates/view_index.rhtml +24 -0
  1071. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/scaffold_resource/templates/view_new.rhtml +18 -0
  1072. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/scaffold_resource/templates/view_show.rhtml +10 -0
  1073. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/session_migration/USAGE +15 -0
  1074. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/session_migration/session_migration_generator.rb +18 -0
  1075. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/session_migration/templates/migration.rb +16 -0
  1076. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/web_service/USAGE +28 -0
  1077. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/web_service/templates/api_definition.rb +5 -0
  1078. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/web_service/templates/controller.rb +8 -0
  1079. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/web_service/templates/functional_test.rb +19 -0
  1080. data/rails/vendor/rails/railties/lib/rails_generator/generators/components/web_service/web_service_generator.rb +29 -0
  1081. data/rails/vendor/rails/railties/lib/rails_generator/lookup.rb +209 -0
  1082. data/rails/vendor/rails/railties/lib/rails_generator/manifest.rb +53 -0
  1083. data/rails/vendor/rails/railties/lib/rails_generator/options.rb +143 -0
  1084. data/rails/vendor/rails/railties/lib/rails_generator/scripts.rb +83 -0
  1085. data/rails/vendor/rails/railties/lib/rails_generator/scripts/destroy.rb +7 -0
  1086. data/rails/vendor/rails/railties/lib/rails_generator/scripts/generate.rb +7 -0
  1087. data/rails/vendor/rails/railties/lib/rails_generator/scripts/update.rb +12 -0
  1088. data/rails/vendor/rails/railties/lib/rails_generator/simple_logger.rb +46 -0
  1089. data/rails/vendor/rails/railties/lib/rails_generator/spec.rb +44 -0
  1090. data/rails/vendor/rails/railties/lib/railties_path.rb +1 -0
  1091. data/rails/vendor/rails/railties/lib/ruby_version_check.rb +17 -0
  1092. data/rails/vendor/rails/railties/lib/rubyprof_ext.rb +35 -0
  1093. data/rails/vendor/rails/railties/lib/tasks/databases.rake +187 -0
  1094. data/rails/vendor/rails/railties/lib/tasks/documentation.rake +82 -0
  1095. data/rails/vendor/rails/railties/lib/tasks/framework.rake +112 -0
  1096. data/rails/vendor/rails/railties/lib/tasks/log.rake +9 -0
  1097. data/rails/vendor/rails/railties/lib/tasks/misc.rake +4 -0
  1098. data/rails/vendor/rails/railties/lib/tasks/pre_namespace_aliases.rake +53 -0
  1099. data/rails/vendor/rails/railties/lib/tasks/rails.rb +8 -0
  1100. data/rails/vendor/rails/railties/lib/tasks/statistics.rake +18 -0
  1101. data/rails/vendor/rails/railties/lib/tasks/testing.rake +120 -0
  1102. data/rails/vendor/rails/railties/lib/tasks/tmp.rake +37 -0
  1103. data/rails/vendor/rails/railties/lib/test_help.rb +19 -0
  1104. data/rails/vendor/rails/railties/lib/webrick_server.rb +166 -0
  1105. metadata +1463 -782
  1106. data/all/packages/ruby-1.8.6.tgz +0 -0
  1107. data/all/packages/sqlite-2.8.15.tar.gz +0 -0
  1108. data/bin/rq-3.1.0 +0 -860
  1109. data/doc/classes/ARGV.html +0 -134
  1110. data/doc/classes/ARGV.src/M000036.html +0 -36
  1111. data/doc/classes/ARGV.src/M000037.html +0 -25
  1112. data/doc/classes/OrderedHash.html +0 -1043
  1113. data/doc/classes/OrderedHash.src/M000003.html +0 -26
  1114. data/doc/classes/OrderedHash.src/M000004.html +0 -31
  1115. data/doc/classes/OrderedHash.src/M000005.html +0 -23
  1116. data/doc/classes/OrderedHash.src/M000006.html +0 -23
  1117. data/doc/classes/OrderedHash.src/M000007.html +0 -24
  1118. data/doc/classes/OrderedHash.src/M000009.html +0 -24
  1119. data/doc/classes/OrderedHash.src/M000010.html +0 -24
  1120. data/doc/classes/OrderedHash.src/M000011.html +0 -24
  1121. data/doc/classes/OrderedHash.src/M000012.html +0 -24
  1122. data/doc/classes/OrderedHash.src/M000013.html +0 -24
  1123. data/doc/classes/OrderedHash.src/M000014.html +0 -24
  1124. data/doc/classes/OrderedHash.src/M000016.html +0 -26
  1125. data/doc/classes/OrderedHash.src/M000017.html +0 -25
  1126. data/doc/classes/OrderedHash.src/M000018.html +0 -23
  1127. data/doc/classes/OrderedHash.src/M000019.html +0 -25
  1128. data/doc/classes/OrderedHash.src/M000020.html +0 -23
  1129. data/doc/classes/OrderedHash.src/M000021.html +0 -24
  1130. data/doc/classes/OrderedHash.src/M000022.html +0 -24
  1131. data/doc/classes/OrderedHash.src/M000023.html +0 -24
  1132. data/doc/classes/OrderedHash.src/M000024.html +0 -29
  1133. data/doc/classes/OrderedHash.src/M000025.html +0 -29
  1134. data/doc/classes/OrderedHash.src/M000026.html +0 -24
  1135. data/doc/classes/OrderedHash.src/M000027.html +0 -25
  1136. data/doc/classes/OrderedHash.src/M000028.html +0 -23
  1137. data/doc/classes/OrderedHash.src/M000029.html +0 -25
  1138. data/doc/classes/OrderedHash.src/M000030.html +0 -24
  1139. data/doc/classes/OrderedHash.src/M000032.html +0 -23
  1140. data/doc/classes/OrderedHash.src/M000033.html +0 -25
  1141. data/doc/classes/OrderedHash.src/M000034.html +0 -36
  1142. data/doc/classes/OrderedHash.src/M000035.html +0 -23
  1143. data/doc/classes/RQ.html +0 -647
  1144. data/doc/classes/RQ/Backer.html +0 -240
  1145. data/doc/classes/RQ/Backer.src/M000121.html +0 -31
  1146. data/doc/classes/RQ/ConfigFile.html +0 -416
  1147. data/doc/classes/RQ/ConfigFile.src/M000100.html +0 -34
  1148. data/doc/classes/RQ/ConfigFile.src/M000101.html +0 -26
  1149. data/doc/classes/RQ/ConfigFile.src/M000102.html +0 -33
  1150. data/doc/classes/RQ/ConfigFile.src/M000103.html +0 -25
  1151. data/doc/classes/RQ/ConfigFile.src/M000104.html +0 -34
  1152. data/doc/classes/RQ/ConfigFile.src/M000105.html +0 -25
  1153. data/doc/classes/RQ/Configurator.html +0 -249
  1154. data/doc/classes/RQ/Configurator.src/M000122.html +0 -40
  1155. data/doc/classes/RQ/Creator.html +0 -264
  1156. data/doc/classes/RQ/Creator.src/M000157.html +0 -32
  1157. data/doc/classes/RQ/Cron.html +0 -461
  1158. data/doc/classes/RQ/Deleter.html +0 -259
  1159. data/doc/classes/RQ/Deleter.src/M000078.html +0 -52
  1160. data/doc/classes/RQ/Executor.html +0 -249
  1161. data/doc/classes/RQ/Executor.src/M000099.html +0 -45
  1162. data/doc/classes/RQ/Feeder.html +0 -1131
  1163. data/doc/classes/RQ/Feeder.src/M000079.html +0 -67
  1164. data/doc/classes/RQ/Feeder.src/M000080.html +0 -47
  1165. data/doc/classes/RQ/Feeder.src/M000081.html +0 -98
  1166. data/doc/classes/RQ/Feeder.src/M000082.html +0 -25
  1167. data/doc/classes/RQ/Feeder.src/M000083.html +0 -30
  1168. data/doc/classes/RQ/Feeder.src/M000084.html +0 -58
  1169. data/doc/classes/RQ/Feeder.src/M000085.html +0 -37
  1170. data/doc/classes/RQ/Feeder.src/M000086.html +0 -40
  1171. data/doc/classes/RQ/Feeder.src/M000087.html +0 -37
  1172. data/doc/classes/RQ/Feeder.src/M000088.html +0 -35
  1173. data/doc/classes/RQ/Feeder.src/M000089.html +0 -47
  1174. data/doc/classes/RQ/Feeder.src/M000090.html +0 -25
  1175. data/doc/classes/RQ/Feeder.src/M000091.html +0 -78
  1176. data/doc/classes/RQ/Feeder.src/M000092.html +0 -34
  1177. data/doc/classes/RQ/Feeder.src/M000093.html +0 -36
  1178. data/doc/classes/RQ/Feeder.src/M000094.html +0 -25
  1179. data/doc/classes/RQ/Feeder.src/M000095.html +0 -27
  1180. data/doc/classes/RQ/IOViewer.html +0 -256
  1181. data/doc/classes/RQ/Job.html +0 -304
  1182. data/doc/classes/RQ/Job.src/M000168.html +0 -26
  1183. data/doc/classes/RQ/Job.src/M000169.html +0 -37
  1184. data/doc/classes/RQ/Job.src/M000170.html +0 -23
  1185. data/doc/classes/RQ/Job/Methods.html +0 -210
  1186. data/doc/classes/RQ/JobQueue.html +0 -1780
  1187. data/doc/classes/RQ/JobQueue.src/M000176.html +0 -31
  1188. data/doc/classes/RQ/JobQueue.src/M000177.html +0 -34
  1189. data/doc/classes/RQ/JobQueue.src/M000178.html +0 -60
  1190. data/doc/classes/RQ/JobQueue.src/M000179.html +0 -63
  1191. data/doc/classes/RQ/JobQueue.src/M000180.html +0 -73
  1192. data/doc/classes/RQ/JobQueue.src/M000181.html +0 -217
  1193. data/doc/classes/RQ/JobQueue.src/M000182.html +0 -50
  1194. data/doc/classes/RQ/JobQueue.src/M000183.html +0 -83
  1195. data/doc/classes/RQ/JobQueue.src/M000184.html +0 -25
  1196. data/doc/classes/RQ/JobQueue.src/M000185.html +0 -83
  1197. data/doc/classes/RQ/JobQueue.src/M000186.html +0 -28
  1198. data/doc/classes/RQ/JobQueue.src/M000187.html +0 -26
  1199. data/doc/classes/RQ/JobQueue.src/M000188.html +0 -26
  1200. data/doc/classes/RQ/JobQueue.src/M000189.html +0 -32
  1201. data/doc/classes/RQ/JobQueue.src/M000190.html +0 -30
  1202. data/doc/classes/RQ/JobQueue.src/M000191.html +0 -37
  1203. data/doc/classes/RQ/JobQueue.src/M000192.html +0 -36
  1204. data/doc/classes/RQ/JobQueue.src/M000193.html +0 -25
  1205. data/doc/classes/RQ/JobQueue.src/M000194.html +0 -25
  1206. data/doc/classes/RQ/JobQueue.src/M000195.html +0 -25
  1207. data/doc/classes/RQ/JobQueue.src/M000196.html +0 -25
  1208. data/doc/classes/RQ/JobQueue.src/M000197.html +0 -25
  1209. data/doc/classes/RQ/JobQueue.src/M000198.html +0 -73
  1210. data/doc/classes/RQ/JobQueue.src/M000199.html +0 -25
  1211. data/doc/classes/RQ/JobQueue.src/M000200.html +0 -38
  1212. data/doc/classes/RQ/JobQueue.src/M000201.html +0 -28
  1213. data/doc/classes/RQ/JobQueue/Error.html +0 -187
  1214. data/doc/classes/RQ/JobRunner.html +0 -386
  1215. data/doc/classes/RQ/JobRunner.src/M000117.html +0 -53
  1216. data/doc/classes/RQ/JobRunner.src/M000118.html +0 -26
  1217. data/doc/classes/RQ/JobRunnerDaemon.html +0 -590
  1218. data/doc/classes/RQ/JobRunnerDaemon.src/M000159.html +0 -94
  1219. data/doc/classes/RQ/JobRunnerDaemon.src/M000160.html +0 -27
  1220. data/doc/classes/RQ/JobRunnerDaemon.src/M000161.html +0 -39
  1221. data/doc/classes/RQ/JobRunnerDaemon.src/M000162.html +0 -27
  1222. data/doc/classes/RQ/JobRunnerDaemon.src/M000163.html +0 -27
  1223. data/doc/classes/RQ/JobRunnerDaemon.src/M000164.html +0 -28
  1224. data/doc/classes/RQ/JobRunnerDaemon.src/M000165.html +0 -28
  1225. data/doc/classes/RQ/JobRunnerDaemon.src/M000166.html +0 -37
  1226. data/doc/classes/RQ/JobRunnerDaemon.src/M000167.html +0 -25
  1227. data/doc/classes/RQ/Lister.html +0 -256
  1228. data/doc/classes/RQ/Lister.src/M000156.html +0 -52
  1229. data/doc/classes/RQ/Locker.html +0 -250
  1230. data/doc/classes/RQ/Locker.src/M000120.html +0 -40
  1231. data/doc/classes/RQ/Logging.html +0 -296
  1232. data/doc/classes/RQ/Logging.src/M000067.html +0 -28
  1233. data/doc/classes/RQ/Logging/LogClassMethods.html +0 -254
  1234. data/doc/classes/RQ/Logging/LogClassMethods.src/M000068.html +0 -32
  1235. data/doc/classes/RQ/Logging/LogClassMethods.src/M000069.html +0 -28
  1236. data/doc/classes/RQ/Logging/LogMethods.html +0 -404
  1237. data/doc/classes/RQ/Logging/LogMethods.src/M000070.html +0 -35
  1238. data/doc/classes/RQ/Logging/LogMethods.src/M000071.html +0 -28
  1239. data/doc/classes/RQ/Logging/LogMethods.src/M000072.html +0 -21
  1240. data/doc/classes/RQ/Logging/LogMethods.src/M000073.html +0 -21
  1241. data/doc/classes/RQ/Logging/LogMethods.src/M000074.html +0 -21
  1242. data/doc/classes/RQ/Logging/LogMethods.src/M000075.html +0 -21
  1243. data/doc/classes/RQ/Logging/LogMethods.src/M000076.html +0 -21
  1244. data/doc/classes/RQ/Logging/LogMethods.src/M000077.html +0 -29
  1245. data/doc/classes/RQ/Logging/LoggerExt.html +0 -194
  1246. data/doc/classes/RQ/Main.html +0 -2110
  1247. data/doc/classes/RQ/MainHelper.html +0 -607
  1248. data/doc/classes/RQ/MainHelper.src/M000171.html +0 -33
  1249. data/doc/classes/RQ/MainHelper.src/M000172.html +0 -32
  1250. data/doc/classes/RQ/MainHelper.src/M000173.html +0 -44
  1251. data/doc/classes/RQ/OrderedAutoHash.html +0 -258
  1252. data/doc/classes/RQ/OrderedAutoHash.src/M000205.html +0 -25
  1253. data/doc/classes/RQ/OrderedAutoHash.src/M000206.html +0 -25
  1254. data/doc/classes/RQ/QDB.html +0 -1653
  1255. data/doc/classes/RQ/QDB.src/M000126.html +0 -25
  1256. data/doc/classes/RQ/QDB.src/M000127.html +0 -37
  1257. data/doc/classes/RQ/QDB.src/M000128.html +0 -27
  1258. data/doc/classes/RQ/QDB.src/M000129.html +0 -27
  1259. data/doc/classes/RQ/QDB.src/M000130.html +0 -27
  1260. data/doc/classes/RQ/QDB.src/M000131.html +0 -31
  1261. data/doc/classes/RQ/QDB.src/M000132.html +0 -32
  1262. data/doc/classes/RQ/QDB.src/M000133.html +0 -30
  1263. data/doc/classes/RQ/QDB.src/M000134.html +0 -91
  1264. data/doc/classes/RQ/QDB.src/M000135.html +0 -26
  1265. data/doc/classes/RQ/QDB.src/M000136.html +0 -46
  1266. data/doc/classes/RQ/QDB.src/M000137.html +0 -26
  1267. data/doc/classes/RQ/QDB.src/M000138.html +0 -51
  1268. data/doc/classes/RQ/QDB.src/M000139.html +0 -61
  1269. data/doc/classes/RQ/QDB.src/M000140.html +0 -57
  1270. data/doc/classes/RQ/QDB.src/M000141.html +0 -25
  1271. data/doc/classes/RQ/QDB.src/M000142.html +0 -25
  1272. data/doc/classes/RQ/QDB.src/M000143.html +0 -37
  1273. data/doc/classes/RQ/QDB.src/M000144.html +0 -107
  1274. data/doc/classes/RQ/QDB.src/M000145.html +0 -40
  1275. data/doc/classes/RQ/QDB.src/M000146.html +0 -34
  1276. data/doc/classes/RQ/QDB.src/M000147.html +0 -33
  1277. data/doc/classes/RQ/QDB.src/M000148.html +0 -32
  1278. data/doc/classes/RQ/QDB.src/M000149.html +0 -98
  1279. data/doc/classes/RQ/QDB.src/M000150.html +0 -26
  1280. data/doc/classes/RQ/QDB.src/M000151.html +0 -31
  1281. data/doc/classes/RQ/QDB.src/M000154.html +0 -26
  1282. data/doc/classes/RQ/QDB/AbortedTransactionError.html +0 -187
  1283. data/doc/classes/RQ/QDB/RollbackTransactionError.html +0 -187
  1284. data/doc/classes/RQ/Querier.html +0 -328
  1285. data/doc/classes/RQ/Querier.src/M000203.html +0 -45
  1286. data/doc/classes/RQ/Querier.src/M000204.html +0 -78
  1287. data/doc/classes/RQ/ReSubmitter.html +0 -307
  1288. data/doc/classes/RQ/ReSubmitter.src/M000098.html +0 -111
  1289. data/doc/classes/RQ/Recoverer.html +0 -247
  1290. data/doc/classes/RQ/Refresher.html +0 -346
  1291. data/doc/classes/RQ/Refresher.src/M000174.html +0 -51
  1292. data/doc/classes/RQ/Refresher.src/M000175.html +0 -44
  1293. data/doc/classes/RQ/Relayer.html +0 -723
  1294. data/doc/classes/RQ/Relayer.src/M000106.html +0 -91
  1295. data/doc/classes/RQ/Relayer.src/M000107.html +0 -47
  1296. data/doc/classes/RQ/Relayer.src/M000108.html +0 -46
  1297. data/doc/classes/RQ/Relayer.src/M000109.html +0 -26
  1298. data/doc/classes/RQ/Relayer.src/M000110.html +0 -46
  1299. data/doc/classes/RQ/Relayer.src/M000111.html +0 -40
  1300. data/doc/classes/RQ/Relayer.src/M000112.html +0 -37
  1301. data/doc/classes/RQ/Relayer.src/M000113.html +0 -40
  1302. data/doc/classes/RQ/Relayer.src/M000114.html +0 -27
  1303. data/doc/classes/RQ/Relayer.src/M000115.html +0 -25
  1304. data/doc/classes/RQ/Relayer.src/M000116.html +0 -38
  1305. data/doc/classes/RQ/Resource.html +0 -187
  1306. data/doc/classes/RQ/ResourceManager.html +0 -276
  1307. data/doc/classes/RQ/Rotater.html +0 -324
  1308. data/doc/classes/RQ/Rotater.src/M000158.html +0 -71
  1309. data/doc/classes/RQ/SleepCycle.html +0 -322
  1310. data/doc/classes/RQ/SleepCycle.src/M000123.html +0 -32
  1311. data/doc/classes/RQ/SleepCycle.src/M000124.html +0 -27
  1312. data/doc/classes/RQ/SleepCycle.src/M000125.html +0 -25
  1313. data/doc/classes/RQ/Snapshotter.html +0 -250
  1314. data/doc/classes/RQ/Snapshotter.src/M000097.html +0 -35
  1315. data/doc/classes/RQ/StatusLister.html +0 -289
  1316. data/doc/classes/RQ/StatusLister.src/M000096.html +0 -26
  1317. data/doc/classes/RQ/Submitter.html +0 -319
  1318. data/doc/classes/RQ/Submitter.src/M000119.html +0 -92
  1319. data/doc/classes/RQ/Toucher.html +0 -384
  1320. data/doc/classes/RQ/Updater.html +0 -304
  1321. data/doc/classes/RQ/Updater.src/M000202.html +0 -97
  1322. data/doc/classes/RQ/Usage.html +0 -346
  1323. data/doc/classes/RQ/Usage.src/M000038.html +0 -29
  1324. data/doc/classes/RQ/Usage.src/M000039.html +0 -72
  1325. data/doc/classes/RQ/Util.html +0 -1043
  1326. data/doc/classes/RQ/Util.src/M000040.html +0 -27
  1327. data/doc/classes/RQ/Util.src/M000041.html +0 -26
  1328. data/doc/classes/RQ/Util.src/M000042.html +0 -25
  1329. data/doc/classes/RQ/Util.src/M000043.html +0 -25
  1330. data/doc/classes/RQ/Util.src/M000044.html +0 -30
  1331. data/doc/classes/RQ/Util.src/M000045.html +0 -25
  1332. data/doc/classes/RQ/Util.src/M000046.html +0 -34
  1333. data/doc/classes/RQ/Util.src/M000047.html +0 -31
  1334. data/doc/classes/RQ/Util.src/M000048.html +0 -41
  1335. data/doc/classes/RQ/Util.src/M000049.html +0 -27
  1336. data/doc/classes/RQ/Util.src/M000050.html +0 -34
  1337. data/doc/classes/RQ/Util.src/M000051.html +0 -28
  1338. data/doc/classes/RQ/Util.src/M000052.html +0 -27
  1339. data/doc/classes/RQ/Util.src/M000053.html +0 -31
  1340. data/doc/classes/RQ/Util.src/M000054.html +0 -31
  1341. data/doc/classes/RQ/Util.src/M000055.html +0 -31
  1342. data/doc/classes/RQ/Util.src/M000056.html +0 -25
  1343. data/doc/classes/RQ/Util.src/M000057.html +0 -25
  1344. data/doc/classes/RQ/Util.src/M000058.html +0 -25
  1345. data/doc/classes/RQ/Util.src/M000059.html +0 -25
  1346. data/doc/classes/RQ/Util.src/M000060.html +0 -25
  1347. data/doc/classes/RQ/Util.src/M000061.html +0 -27
  1348. data/doc/classes/RQ/Util.src/M000062.html +0 -28
  1349. data/doc/classes/RQ/Util.src/M000063.html +0 -39
  1350. data/doc/classes/RQ/Util.src/M000064.html +0 -39
  1351. data/doc/classes/RQ/Util.src/M000065.html +0 -31
  1352. data/doc/classes/RQ/Util.src/M000066.html +0 -29
  1353. data/doc/classes/SQLite.html +0 -120
  1354. data/doc/classes/SQLite/Database.html +0 -546
  1355. data/doc/classes/SQLite/TypeTranslator.html +0 -221
  1356. data/doc/created.rid +0 -1
  1357. data/doc/dot/f_0.dot +0 -14
  1358. data/doc/dot/f_0.jpg +0 -0
  1359. data/doc/dot/f_1.dot +0 -14
  1360. data/doc/dot/f_1.jpg +0 -0
  1361. data/doc/dot/f_10.dot +0 -802
  1362. data/doc/dot/f_10.jpg +0 -0
  1363. data/doc/dot/f_11.dot +0 -14
  1364. data/doc/dot/f_11.jpg +0 -0
  1365. data/doc/dot/f_12.dot +0 -802
  1366. data/doc/dot/f_12.jpg +0 -0
  1367. data/doc/dot/f_13.dot +0 -802
  1368. data/doc/dot/f_13.jpg +0 -0
  1369. data/doc/dot/f_14.dot +0 -802
  1370. data/doc/dot/f_14.jpg +0 -0
  1371. data/doc/dot/f_15.dot +0 -802
  1372. data/doc/dot/f_15.jpg +0 -0
  1373. data/doc/dot/f_16.dot +0 -802
  1374. data/doc/dot/f_16.jpg +0 -0
  1375. data/doc/dot/f_17.dot +0 -802
  1376. data/doc/dot/f_17.jpg +0 -0
  1377. data/doc/dot/f_18.dot +0 -14
  1378. data/doc/dot/f_18.jpg +0 -0
  1379. data/doc/dot/f_19.dot +0 -802
  1380. data/doc/dot/f_19.jpg +0 -0
  1381. data/doc/dot/f_2.dot +0 -14
  1382. data/doc/dot/f_2.jpg +0 -0
  1383. data/doc/dot/f_20.dot +0 -802
  1384. data/doc/dot/f_20.jpg +0 -0
  1385. data/doc/dot/f_21.dot +0 -802
  1386. data/doc/dot/f_21.jpg +0 -0
  1387. data/doc/dot/f_22.dot +0 -802
  1388. data/doc/dot/f_22.jpg +0 -0
  1389. data/doc/dot/f_23.dot +0 -802
  1390. data/doc/dot/f_23.jpg +0 -0
  1391. data/doc/dot/f_24.dot +0 -802
  1392. data/doc/dot/f_24.jpg +0 -0
  1393. data/doc/dot/f_25.dot +0 -817
  1394. data/doc/dot/f_25.jpg +0 -0
  1395. data/doc/dot/f_26.dot +0 -29
  1396. data/doc/dot/f_26.jpg +0 -0
  1397. data/doc/dot/f_27.dot +0 -802
  1398. data/doc/dot/f_27.jpg +0 -0
  1399. data/doc/dot/f_28.dot +0 -802
  1400. data/doc/dot/f_28.jpg +0 -0
  1401. data/doc/dot/f_29.dot +0 -802
  1402. data/doc/dot/f_29.jpg +0 -0
  1403. data/doc/dot/f_3.dot +0 -14
  1404. data/doc/dot/f_3.jpg +0 -0
  1405. data/doc/dot/f_30.dot +0 -802
  1406. data/doc/dot/f_30.jpg +0 -0
  1407. data/doc/dot/f_31.dot +0 -802
  1408. data/doc/dot/f_31.jpg +0 -0
  1409. data/doc/dot/f_32.dot +0 -802
  1410. data/doc/dot/f_32.jpg +0 -0
  1411. data/doc/dot/f_33.dot +0 -802
  1412. data/doc/dot/f_33.jpg +0 -0
  1413. data/doc/dot/f_34.dot +0 -802
  1414. data/doc/dot/f_34.jpg +0 -0
  1415. data/doc/dot/f_35.dot +0 -802
  1416. data/doc/dot/f_35.jpg +0 -0
  1417. data/doc/dot/f_36.dot +0 -802
  1418. data/doc/dot/f_36.jpg +0 -0
  1419. data/doc/dot/f_37.dot +0 -802
  1420. data/doc/dot/f_37.jpg +0 -0
  1421. data/doc/dot/f_38.dot +0 -54
  1422. data/doc/dot/f_38.jpg +0 -0
  1423. data/doc/dot/f_39.dot +0 -802
  1424. data/doc/dot/f_39.jpg +0 -0
  1425. data/doc/dot/f_4.dot +0 -802
  1426. data/doc/dot/f_4.jpg +0 -0
  1427. data/doc/dot/f_40.dot +0 -802
  1428. data/doc/dot/f_40.jpg +0 -0
  1429. data/doc/dot/f_41.dot +0 -802
  1430. data/doc/dot/f_41.jpg +0 -0
  1431. data/doc/dot/f_42.dot +0 -802
  1432. data/doc/dot/f_42.jpg +0 -0
  1433. data/doc/dot/f_43.dot +0 -802
  1434. data/doc/dot/f_43.jpg +0 -0
  1435. data/doc/dot/f_44.dot +0 -802
  1436. data/doc/dot/f_44.jpg +0 -0
  1437. data/doc/dot/f_5.dot +0 -802
  1438. data/doc/dot/f_5.jpg +0 -0
  1439. data/doc/dot/f_6.dot +0 -802
  1440. data/doc/dot/f_6.jpg +0 -0
  1441. data/doc/dot/f_7.dot +0 -802
  1442. data/doc/dot/f_7.jpg +0 -0
  1443. data/doc/dot/f_8.dot +0 -802
  1444. data/doc/dot/f_8.jpg +0 -0
  1445. data/doc/dot/f_9.dot +0 -802
  1446. data/doc/dot/f_9.jpg +0 -0
  1447. data/doc/dot/m_10_0.dot +0 -802
  1448. data/doc/dot/m_10_0.jpg +0 -0
  1449. data/doc/dot/m_11_0.dot +0 -734
  1450. data/doc/dot/m_11_0.jpg +0 -0
  1451. data/doc/dot/m_12_0.dot +0 -802
  1452. data/doc/dot/m_12_0.jpg +0 -0
  1453. data/doc/dot/m_13_0.dot +0 -802
  1454. data/doc/dot/m_13_0.jpg +0 -0
  1455. data/doc/dot/m_14_0.dot +0 -802
  1456. data/doc/dot/m_14_0.jpg +0 -0
  1457. data/doc/dot/m_15_0.dot +0 -802
  1458. data/doc/dot/m_15_0.jpg +0 -0
  1459. data/doc/dot/m_16_0.dot +0 -802
  1460. data/doc/dot/m_16_0.jpg +0 -0
  1461. data/doc/dot/m_17_0.dot +0 -802
  1462. data/doc/dot/m_17_0.jpg +0 -0
  1463. data/doc/dot/m_18_0.dot +0 -734
  1464. data/doc/dot/m_18_0.jpg +0 -0
  1465. data/doc/dot/m_19_0.dot +0 -802
  1466. data/doc/dot/m_19_0.jpg +0 -0
  1467. data/doc/dot/m_20_0.dot +0 -802
  1468. data/doc/dot/m_20_0.jpg +0 -0
  1469. data/doc/dot/m_21_0.dot +0 -802
  1470. data/doc/dot/m_21_0.jpg +0 -0
  1471. data/doc/dot/m_22_0.dot +0 -802
  1472. data/doc/dot/m_22_0.jpg +0 -0
  1473. data/doc/dot/m_23_0.dot +0 -802
  1474. data/doc/dot/m_23_0.jpg +0 -0
  1475. data/doc/dot/m_24_0.dot +0 -802
  1476. data/doc/dot/m_24_0.jpg +0 -0
  1477. data/doc/dot/m_25_0.dot +0 -802
  1478. data/doc/dot/m_25_0.jpg +0 -0
  1479. data/doc/dot/m_26_0.dot +0 -734
  1480. data/doc/dot/m_26_0.jpg +0 -0
  1481. data/doc/dot/m_27_0.dot +0 -802
  1482. data/doc/dot/m_27_0.jpg +0 -0
  1483. data/doc/dot/m_28_0.dot +0 -802
  1484. data/doc/dot/m_28_0.jpg +0 -0
  1485. data/doc/dot/m_29_0.dot +0 -802
  1486. data/doc/dot/m_29_0.jpg +0 -0
  1487. data/doc/dot/m_30_0.dot +0 -802
  1488. data/doc/dot/m_30_0.jpg +0 -0
  1489. data/doc/dot/m_31_0.dot +0 -802
  1490. data/doc/dot/m_31_0.jpg +0 -0
  1491. data/doc/dot/m_32_0.dot +0 -802
  1492. data/doc/dot/m_32_0.jpg +0 -0
  1493. data/doc/dot/m_33_0.dot +0 -802
  1494. data/doc/dot/m_33_0.jpg +0 -0
  1495. data/doc/dot/m_34_0.dot +0 -802
  1496. data/doc/dot/m_34_0.jpg +0 -0
  1497. data/doc/dot/m_35_0.dot +0 -802
  1498. data/doc/dot/m_35_0.jpg +0 -0
  1499. data/doc/dot/m_36_0.dot +0 -802
  1500. data/doc/dot/m_36_0.jpg +0 -0
  1501. data/doc/dot/m_37_0.dot +0 -802
  1502. data/doc/dot/m_37_0.jpg +0 -0
  1503. data/doc/dot/m_38_0.dot +0 -54
  1504. data/doc/dot/m_38_0.jpg +0 -0
  1505. data/doc/dot/m_39_0.dot +0 -802
  1506. data/doc/dot/m_39_0.jpg +0 -0
  1507. data/doc/dot/m_40_0.dot +0 -802
  1508. data/doc/dot/m_40_0.jpg +0 -0
  1509. data/doc/dot/m_41_0.dot +0 -802
  1510. data/doc/dot/m_41_0.jpg +0 -0
  1511. data/doc/dot/m_42_0.dot +0 -802
  1512. data/doc/dot/m_42_0.jpg +0 -0
  1513. data/doc/dot/m_43_0.dot +0 -802
  1514. data/doc/dot/m_43_0.jpg +0 -0
  1515. data/doc/dot/m_44_0.dot +0 -802
  1516. data/doc/dot/m_44_0.jpg +0 -0
  1517. data/doc/dot/m_4_0.dot +0 -802
  1518. data/doc/dot/m_4_0.jpg +0 -0
  1519. data/doc/dot/m_5_0.dot +0 -802
  1520. data/doc/dot/m_5_0.jpg +0 -0
  1521. data/doc/dot/m_6_0.dot +0 -802
  1522. data/doc/dot/m_6_0.jpg +0 -0
  1523. data/doc/dot/m_7_0.dot +0 -802
  1524. data/doc/dot/m_7_0.jpg +0 -0
  1525. data/doc/dot/m_8_0.dot +0 -802
  1526. data/doc/dot/m_8_0.jpg +0 -0
  1527. data/doc/dot/m_9_0.dot +0 -802
  1528. data/doc/dot/m_9_0.jpg +0 -0
  1529. data/doc/files/DEPENDS.html +0 -107
  1530. data/doc/files/HISTORY.html +0 -316
  1531. data/doc/files/INSTALL.html +0 -126
  1532. data/doc/files/README.html +0 -1223
  1533. data/doc/files/TODO.html +0 -148
  1534. data/doc/files/TUTORIAL.html +0 -392
  1535. data/doc/files/VERSION.html +0 -107
  1536. data/doc/files/bin/rq_rb.html +0 -231
  1537. data/doc/files/install_rb.html +0 -188
  1538. data/doc/files/install_rb.src/M000001.html +0 -53
  1539. data/doc/files/install_rb.src/M000002.html +0 -43
  1540. data/doc/files/lib/rq-1_0_0/backer_rb.html +0 -174
  1541. data/doc/files/lib/rq-1_0_0/configfile_rb.html +0 -174
  1542. data/doc/files/lib/rq-1_0_0/configurator_rb.html +0 -174
  1543. data/doc/files/lib/rq-1_0_0/creator_rb.html +0 -174
  1544. data/doc/files/lib/rq-1_0_0/defaultconfig_txt.html +0 -110
  1545. data/doc/files/lib/rq-1_0_0/deleter_rb.html +0 -174
  1546. data/doc/files/lib/rq-1_0_0/executor_rb.html +0 -174
  1547. data/doc/files/lib/rq-1_0_0/feeder_rb.html +0 -178
  1548. data/doc/files/lib/rq-1_0_0/job_rb.html +0 -176
  1549. data/doc/files/lib/rq-1_0_0/jobqueue_rb.html +0 -177
  1550. data/doc/files/lib/rq-1_0_0/jobrunner_rb.html +0 -175
  1551. data/doc/files/lib/rq-1_0_0/jobrunnerdaemon_rb.html +0 -179
  1552. data/doc/files/lib/rq-1_0_0/lister_rb.html +0 -174
  1553. data/doc/files/lib/rq-1_0_0/locker_rb.html +0 -175
  1554. data/doc/files/lib/rq-1_0_0/logging_rb.html +0 -178
  1555. data/doc/files/lib/rq-1_0_0/mainhelper_rb.html +0 -175
  1556. data/doc/files/lib/rq-1_0_0/qdb_rb.html +0 -177
  1557. data/doc/files/lib/rq-1_0_0/querier_rb.html +0 -174
  1558. data/doc/files/lib/rq-1_0_0/refresher_rb.html +0 -167
  1559. data/doc/files/lib/rq-1_0_0/relayer_rb.html +0 -178
  1560. data/doc/files/lib/rq-1_0_0/sleepcycle_rb.html +0 -167
  1561. data/doc/files/lib/rq-1_0_0/snapshotter_rb.html +0 -174
  1562. data/doc/files/lib/rq-1_0_0/statuslister_rb.html +0 -174
  1563. data/doc/files/lib/rq-1_0_0/submitter_rb.html +0 -174
  1564. data/doc/files/lib/rq-1_0_0/updater_rb.html +0 -174
  1565. data/doc/files/lib/rq-1_0_0/usage_rb.html +0 -174
  1566. data/doc/files/lib/rq-1_0_0/util_rb.html +0 -176
  1567. data/doc/files/lib/rq-2_0_0/backer_rb.html +0 -180
  1568. data/doc/files/lib/rq-2_0_0/configfile_rb.html +0 -180
  1569. data/doc/files/lib/rq-2_0_0/configurator_rb.html +0 -180
  1570. data/doc/files/lib/rq-2_0_0/creator_rb.html +0 -180
  1571. data/doc/files/lib/rq-2_0_0/defaultconfig_txt.html +0 -110
  1572. data/doc/files/lib/rq-2_0_0/deleter_rb.html +0 -180
  1573. data/doc/files/lib/rq-2_0_0/executor_rb.html +0 -180
  1574. data/doc/files/lib/rq-2_0_0/feeder_rb.html +0 -184
  1575. data/doc/files/lib/rq-2_0_0/job_rb.html +0 -182
  1576. data/doc/files/lib/rq-2_0_0/jobqueue_rb.html +0 -185
  1577. data/doc/files/lib/rq-2_0_0/jobrunner_rb.html +0 -181
  1578. data/doc/files/lib/rq-2_0_0/jobrunnerdaemon_rb.html +0 -185
  1579. data/doc/files/lib/rq-2_0_0/lister_rb.html +0 -180
  1580. data/doc/files/lib/rq-2_0_0/locker_rb.html +0 -181
  1581. data/doc/files/lib/rq-2_0_0/logging_rb.html +0 -184
  1582. data/doc/files/lib/rq-2_0_0/mainhelper_rb.html +0 -181
  1583. data/doc/files/lib/rq-2_0_0/orderedautohash_rb.html +0 -182
  1584. data/doc/files/lib/rq-2_0_0/orderedhash_rb.html +0 -138
  1585. data/doc/files/lib/rq-2_0_0/qdb_rb.html +0 -184
  1586. data/doc/files/lib/rq-2_0_0/querier_rb.html +0 -180
  1587. data/doc/files/lib/rq-2_0_0/refresher_rb.html +0 -173
  1588. data/doc/files/lib/rq-2_0_0/relayer_rb.html +0 -184
  1589. data/doc/files/lib/rq-2_0_0/rotater_rb.html +0 -180
  1590. data/doc/files/lib/rq-2_0_0/sleepcycle_rb.html +0 -173
  1591. data/doc/files/lib/rq-2_0_0/snapshotter_rb.html +0 -180
  1592. data/doc/files/lib/rq-2_0_0/statuslister_rb.html +0 -180
  1593. data/doc/files/lib/rq-2_0_0/submitter_rb.html +0 -181
  1594. data/doc/files/lib/rq-2_0_0/updater_rb.html +0 -180
  1595. data/doc/files/lib/rq-2_0_0/usage_rb.html +0 -180
  1596. data/doc/files/lib/rq-2_0_0/util_rb.html +0 -182
  1597. data/doc/files/lib/rq-2_3_1/backer_rb.html +0 -182
  1598. data/doc/files/lib/rq-2_3_1/configfile_rb.html +0 -182
  1599. data/doc/files/lib/rq-2_3_1/configurator_rb.html +0 -182
  1600. data/doc/files/lib/rq-2_3_1/creator_rb.html +0 -182
  1601. data/doc/files/lib/rq-2_3_1/defaultconfig_txt.html +0 -110
  1602. data/doc/files/lib/rq-2_3_1/deleter_rb.html +0 -182
  1603. data/doc/files/lib/rq-2_3_1/executor_rb.html +0 -182
  1604. data/doc/files/lib/rq-2_3_1/feeder_rb.html +0 -187
  1605. data/doc/files/lib/rq-2_3_1/job_rb.html +0 -185
  1606. data/doc/files/lib/rq-2_3_1/jobqueue_rb.html +0 -187
  1607. data/doc/files/lib/rq-2_3_1/jobrunner_rb.html +0 -184
  1608. data/doc/files/lib/rq-2_3_1/jobrunnerdaemon_rb.html +0 -187
  1609. data/doc/files/lib/rq-2_3_1/lister_rb.html +0 -182
  1610. data/doc/files/lib/rq-2_3_1/locker_rb.html +0 -183
  1611. data/doc/files/lib/rq-2_3_1/logging_rb.html +0 -186
  1612. data/doc/files/lib/rq-2_3_1/mainhelper_rb.html +0 -183
  1613. data/doc/files/lib/rq-2_3_1/orderedautohash_rb.html +0 -184
  1614. data/doc/files/lib/rq-2_3_1/orderedhash_rb.html +0 -138
  1615. data/doc/files/lib/rq-2_3_1/qdb_rb.html +0 -188
  1616. data/doc/files/lib/rq-2_3_1/querier_rb.html +0 -182
  1617. data/doc/files/lib/rq-2_3_1/refresher_rb.html +0 -175
  1618. data/doc/files/lib/rq-2_3_1/relayer_rb.html +0 -186
  1619. data/doc/files/lib/rq-2_3_1/resubmitter_rb.html +0 -183
  1620. data/doc/files/lib/rq-2_3_1/rotater_rb.html +0 -182
  1621. data/doc/files/lib/rq-2_3_1/sleepcycle_rb.html +0 -175
  1622. data/doc/files/lib/rq-2_3_1/snapshotter_rb.html +0 -182
  1623. data/doc/files/lib/rq-2_3_1/statuslister_rb.html +0 -182
  1624. data/doc/files/lib/rq-2_3_1/submitter_rb.html +0 -183
  1625. data/doc/files/lib/rq-2_3_1/updater_rb.html +0 -182
  1626. data/doc/files/lib/rq-2_3_1/usage_rb.html +0 -182
  1627. data/doc/files/lib/rq-2_3_1/util_rb.html +0 -184
  1628. data/doc/files/lib/rq-2_3_1_rb.html +0 -153
  1629. data/doc/files/lib/rq-2_3_2/backer_rb.html +0 -186
  1630. data/doc/files/lib/rq-2_3_2/configfile_rb.html +0 -186
  1631. data/doc/files/lib/rq-2_3_2/configurator_rb.html +0 -186
  1632. data/doc/files/lib/rq-2_3_2/creator_rb.html +0 -186
  1633. data/doc/files/lib/rq-2_3_2/defaultconfig_txt.html +0 -110
  1634. data/doc/files/lib/rq-2_3_2/deleter_rb.html +0 -186
  1635. data/doc/files/lib/rq-2_3_2/executor_rb.html +0 -186
  1636. data/doc/files/lib/rq-2_3_2/feeder_rb.html +0 -191
  1637. data/doc/files/lib/rq-2_3_2/ioviewer_rb.html +0 -186
  1638. data/doc/files/lib/rq-2_3_2/job_rb.html +0 -189
  1639. data/doc/files/lib/rq-2_3_2/jobqueue_rb.html +0 -192
  1640. data/doc/files/lib/rq-2_3_2/jobrunner_rb.html +0 -188
  1641. data/doc/files/lib/rq-2_3_2/jobrunnerdaemon_rb.html +0 -191
  1642. data/doc/files/lib/rq-2_3_2/lister_rb.html +0 -186
  1643. data/doc/files/lib/rq-2_3_2/locker_rb.html +0 -187
  1644. data/doc/files/lib/rq-2_3_2/logging_rb.html +0 -190
  1645. data/doc/files/lib/rq-2_3_2/mainhelper_rb.html +0 -188
  1646. data/doc/files/lib/rq-2_3_2/orderedautohash_rb.html +0 -188
  1647. data/doc/files/lib/rq-2_3_2/orderedhash_rb.html +0 -138
  1648. data/doc/files/lib/rq-2_3_2/qdb_rb.html +0 -193
  1649. data/doc/files/lib/rq-2_3_2/querier_rb.html +0 -186
  1650. data/doc/files/lib/rq-2_3_2/recoverer_rb.html +0 -186
  1651. data/doc/files/lib/rq-2_3_2/refresher_rb.html +0 -179
  1652. data/doc/files/lib/rq-2_3_2/relayer_rb.html +0 -190
  1653. data/doc/files/lib/rq-2_3_2/resubmitter_rb.html +0 -187
  1654. data/doc/files/lib/rq-2_3_2/rotater_rb.html +0 -186
  1655. data/doc/files/lib/rq-2_3_2/sleepcycle_rb.html +0 -179
  1656. data/doc/files/lib/rq-2_3_2/snapshotter_rb.html +0 -186
  1657. data/doc/files/lib/rq-2_3_2/statuslister_rb.html +0 -186
  1658. data/doc/files/lib/rq-2_3_2/submitter_rb.html +0 -187
  1659. data/doc/files/lib/rq-2_3_2/updater_rb.html +0 -186
  1660. data/doc/files/lib/rq-2_3_2/usage_rb.html +0 -186
  1661. data/doc/files/lib/rq-2_3_2/util_rb.html +0 -188
  1662. data/doc/files/lib/rq-2_3_3/backer_rb.html +0 -186
  1663. data/doc/files/lib/rq-2_3_3/configfile_rb.html +0 -186
  1664. data/doc/files/lib/rq-2_3_3/configurator_rb.html +0 -186
  1665. data/doc/files/lib/rq-2_3_3/creator_rb.html +0 -186
  1666. data/doc/files/lib/rq-2_3_3/defaultconfig_txt.html +0 -110
  1667. data/doc/files/lib/rq-2_3_3/deleter_rb.html +0 -186
  1668. data/doc/files/lib/rq-2_3_3/executor_rb.html +0 -186
  1669. data/doc/files/lib/rq-2_3_3/feeder_rb.html +0 -191
  1670. data/doc/files/lib/rq-2_3_3/ioviewer_rb.html +0 -186
  1671. data/doc/files/lib/rq-2_3_3/job_rb.html +0 -189
  1672. data/doc/files/lib/rq-2_3_3/jobqueue_rb.html +0 -192
  1673. data/doc/files/lib/rq-2_3_3/jobrunner_rb.html +0 -188
  1674. data/doc/files/lib/rq-2_3_3/jobrunnerdaemon_rb.html +0 -191
  1675. data/doc/files/lib/rq-2_3_3/lister_rb.html +0 -186
  1676. data/doc/files/lib/rq-2_3_3/locker_rb.html +0 -187
  1677. data/doc/files/lib/rq-2_3_3/logging_rb.html +0 -190
  1678. data/doc/files/lib/rq-2_3_3/mainhelper_rb.html +0 -188
  1679. data/doc/files/lib/rq-2_3_3/orderedautohash_rb.html +0 -188
  1680. data/doc/files/lib/rq-2_3_3/orderedhash_rb.html +0 -138
  1681. data/doc/files/lib/rq-2_3_3/qdb_rb.html +0 -193
  1682. data/doc/files/lib/rq-2_3_3/querier_rb.html +0 -186
  1683. data/doc/files/lib/rq-2_3_3/recoverer_rb.html +0 -186
  1684. data/doc/files/lib/rq-2_3_3/refresher_rb.html +0 -179
  1685. data/doc/files/lib/rq-2_3_3/relayer_rb.html +0 -190
  1686. data/doc/files/lib/rq-2_3_3/resubmitter_rb.html +0 -187
  1687. data/doc/files/lib/rq-2_3_3/rotater_rb.html +0 -187
  1688. data/doc/files/lib/rq-2_3_3/sleepcycle_rb.html +0 -179
  1689. data/doc/files/lib/rq-2_3_3/snapshotter_rb.html +0 -186
  1690. data/doc/files/lib/rq-2_3_3/statuslister_rb.html +0 -186
  1691. data/doc/files/lib/rq-2_3_3/submitter_rb.html +0 -187
  1692. data/doc/files/lib/rq-2_3_3/updater_rb.html +0 -186
  1693. data/doc/files/lib/rq-2_3_3/usage_rb.html +0 -186
  1694. data/doc/files/lib/rq-2_3_3/util_rb.html +0 -188
  1695. data/doc/files/lib/rq-3_0_0/backer_rb.html +0 -194
  1696. data/doc/files/lib/rq-3_0_0/configfile_rb.html +0 -194
  1697. data/doc/files/lib/rq-3_0_0/configurator_rb.html +0 -194
  1698. data/doc/files/lib/rq-3_0_0/creator_rb.html +0 -194
  1699. data/doc/files/lib/rq-3_0_0/cron_rb.html +0 -194
  1700. data/doc/files/lib/rq-3_0_0/defaultconfig_txt.html +0 -110
  1701. data/doc/files/lib/rq-3_0_0/deleter_rb.html +0 -194
  1702. data/doc/files/lib/rq-3_0_0/executor_rb.html +0 -194
  1703. data/doc/files/lib/rq-3_0_0/feeder_rb.html +0 -199
  1704. data/doc/files/lib/rq-3_0_0/ioviewer_rb.html +0 -194
  1705. data/doc/files/lib/rq-3_0_0/job_rb.html +0 -197
  1706. data/doc/files/lib/rq-3_0_0/jobqueue_rb.html +0 -200
  1707. data/doc/files/lib/rq-3_0_0/jobrunner_rb.html +0 -196
  1708. data/doc/files/lib/rq-3_0_0/jobrunnerdaemon_rb.html +0 -199
  1709. data/doc/files/lib/rq-3_0_0/lister_rb.html +0 -194
  1710. data/doc/files/lib/rq-3_0_0/locker_rb.html +0 -195
  1711. data/doc/files/lib/rq-3_0_0/logging_rb.html +0 -198
  1712. data/doc/files/lib/rq-3_0_0/mainhelper_rb.html +0 -196
  1713. data/doc/files/lib/rq-3_0_0/orderedautohash_rb.html +0 -196
  1714. data/doc/files/lib/rq-3_0_0/orderedhash_rb.html +0 -138
  1715. data/doc/files/lib/rq-3_0_0/qdb_rb.html +0 -201
  1716. data/doc/files/lib/rq-3_0_0/querier_rb.html +0 -194
  1717. data/doc/files/lib/rq-3_0_0/recoverer_rb.html +0 -194
  1718. data/doc/files/lib/rq-3_0_0/refresher_rb.html +0 -187
  1719. data/doc/files/lib/rq-3_0_0/relayer_rb.html +0 -198
  1720. data/doc/files/lib/rq-3_0_0/resource_rb.html +0 -194
  1721. data/doc/files/lib/rq-3_0_0/resourcemanager_rb.html +0 -187
  1722. data/doc/files/lib/rq-3_0_0/resubmitter_rb.html +0 -195
  1723. data/doc/files/lib/rq-3_0_0/rotater_rb.html +0 -195
  1724. data/doc/files/lib/rq-3_0_0/sleepcycle_rb.html +0 -187
  1725. data/doc/files/lib/rq-3_0_0/snapshotter_rb.html +0 -194
  1726. data/doc/files/lib/rq-3_0_0/sqlite_rb.html +0 -160
  1727. data/doc/files/lib/rq-3_0_0/statuslister_rb.html +0 -194
  1728. data/doc/files/lib/rq-3_0_0/submitter_rb.html +0 -195
  1729. data/doc/files/lib/rq-3_0_0/toucher_rb.html +0 -195
  1730. data/doc/files/lib/rq-3_0_0/updater_rb.html +0 -194
  1731. data/doc/files/lib/rq-3_0_0/usage_rb.html +0 -194
  1732. data/doc/files/lib/rq-3_0_0/util_rb.html +0 -196
  1733. data/doc/files/lib/rq_rb.html +0 -244
  1734. data/doc/fr_class_index.html +0 -73
  1735. data/doc/fr_file_index.html +0 -71
  1736. data/doc/fr_method_index.html +0 -323
  1737. data/doc/index.html +0 -24
  1738. data/doc/rdoc-style.css +0 -172
  1739. data/lib/rq-3.1.0.rb +0 -124
  1740. data/lib/rq-3.1.0/creator.rb +0 -46
  1741. data/lib/rq-3.1.0/cron.rb +0 -125
  1742. data/lib/rq-3.1.0/feeder.rb +0 -521
  1743. data/lib/rq-3.1.0/i686-linux/_sqlite.so +0 -0
  1744. data/lib/rq-3.1.0/jobqueue.rb +0 -899
  1745. data/lib/rq-3.1.0/jobrunner.rb +0 -104
  1746. data/lib/rq-3.1.0/local/bin/sqlite +0 -0
  1747. data/lib/rq-3.1.0/local/include/sqlite.h +0 -868
  1748. data/lib/rq-3.1.0/local/lib/libsqlite.a +0 -0
  1749. data/lib/rq-3.1.0/local/lib/libsqlite.la +0 -35
  1750. data/lib/rq-3.1.0/local/lib/libsqlite.so +0 -0
  1751. data/lib/rq-3.1.0/local/lib/libsqlite.so.0 +0 -0
  1752. data/lib/rq-3.1.0/local/lib/libsqlite.so.0.8.6 +0 -0
  1753. data/lib/rq-3.1.0/local/lib/pkgconfig/sqlite.pc +0 -12
  1754. data/lib/rq-3.1.0/mainhelper.rb +0 -184
  1755. data/lib/rq-3.1.0/qdb.rb +0 -733
  1756. data/lib/rq-3.1.0/resubmitter.rb +0 -96
  1757. data/lib/rq-3.1.0/submitter.rb +0 -109
  1758. data/lib/rq-3.1.0/toucher.rb +0 -177
@@ -0,0 +1,58 @@
1
+ module ActiveRecord
2
+ # Allows programmers to programmatically define a schema in a portable
3
+ # DSL. This means you can define tables, indexes, etc. without using SQL
4
+ # directly, so your applications can more easily support multiple
5
+ # databases.
6
+ #
7
+ # Usage:
8
+ #
9
+ # ActiveRecord::Schema.define do
10
+ # create_table :authors do |t|
11
+ # t.column :name, :string, :null => false
12
+ # end
13
+ #
14
+ # add_index :authors, :name, :unique
15
+ #
16
+ # create_table :posts do |t|
17
+ # t.column :author_id, :integer, :null => false
18
+ # t.column :subject, :string
19
+ # t.column :body, :text
20
+ # t.column :private, :boolean, :default => false
21
+ # end
22
+ #
23
+ # add_index :posts, :author_id
24
+ # end
25
+ #
26
+ # ActiveRecord::Schema is only supported by database adapters that also
27
+ # support migrations, the two features being very similar.
28
+ class Schema < Migration
29
+ private_class_method :new
30
+
31
+ # Eval the given block. All methods available to the current connection
32
+ # adapter are available within the block, so you can easily use the
33
+ # database definition DSL to build up your schema (#create_table,
34
+ # #add_index, etc.).
35
+ #
36
+ # The +info+ hash is optional, and if given is used to define metadata
37
+ # about the current schema (like the schema's version):
38
+ #
39
+ # ActiveRecord::Schema.define(:version => 15) do
40
+ # ...
41
+ # end
42
+ def self.define(info={}, &block)
43
+ instance_eval(&block)
44
+
45
+ unless info.empty?
46
+ initialize_schema_information
47
+ cols = columns('schema_info')
48
+
49
+ info = info.map do |k,v|
50
+ v = Base.connection.quote(v, cols.detect { |c| c.name == k.to_s })
51
+ "#{k} = #{v}"
52
+ end
53
+
54
+ Base.connection.update "UPDATE #{Migrator.schema_info_table_name} SET #{info.join(", ")}"
55
+ end
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,149 @@
1
+ require 'stringio'
2
+ require 'bigdecimal'
3
+
4
+ module ActiveRecord
5
+ # This class is used to dump the database schema for some connection to some
6
+ # output format (i.e., ActiveRecord::Schema).
7
+ class SchemaDumper #:nodoc:
8
+ private_class_method :new
9
+
10
+ # A list of tables which should not be dumped to the schema.
11
+ # Acceptable values are strings as well as regexp.
12
+ # This setting is only used if ActiveRecord::Base.schema_format == :ruby
13
+ cattr_accessor :ignore_tables
14
+ @@ignore_tables = []
15
+
16
+ def self.dump(connection=ActiveRecord::Base.connection, stream=STDOUT)
17
+ new(connection).dump(stream)
18
+ stream
19
+ end
20
+
21
+ def dump(stream)
22
+ header(stream)
23
+ tables(stream)
24
+ trailer(stream)
25
+ stream
26
+ end
27
+
28
+ private
29
+
30
+ def initialize(connection)
31
+ @connection = connection
32
+ @types = @connection.native_database_types
33
+ @info = @connection.select_one("SELECT * FROM schema_info") rescue nil
34
+ end
35
+
36
+ def header(stream)
37
+ define_params = @info ? ":version => #{@info['version']}" : ""
38
+
39
+ stream.puts <<HEADER
40
+ # This file is autogenerated. Instead of editing this file, please use the
41
+ # migrations feature of ActiveRecord to incrementally modify your database, and
42
+ # then regenerate this schema definition.
43
+
44
+ ActiveRecord::Schema.define(#{define_params}) do
45
+
46
+ HEADER
47
+ end
48
+
49
+ def trailer(stream)
50
+ stream.puts "end"
51
+ end
52
+
53
+ def tables(stream)
54
+ @connection.tables.sort.each do |tbl|
55
+ next if ["schema_info", ignore_tables].flatten.any? do |ignored|
56
+ case ignored
57
+ when String: tbl == ignored
58
+ when Regexp: tbl =~ ignored
59
+ else
60
+ raise StandardError, 'ActiveRecord::SchemaDumper.ignore_tables accepts an array of String and / or Regexp values.'
61
+ end
62
+ end
63
+ table(tbl, stream)
64
+ end
65
+ end
66
+
67
+ def table(table, stream)
68
+ columns = @connection.columns(table)
69
+ begin
70
+ tbl = StringIO.new
71
+
72
+ if @connection.respond_to?(:pk_and_sequence_for)
73
+ pk, pk_seq = @connection.pk_and_sequence_for(table)
74
+ end
75
+ pk ||= 'id'
76
+
77
+ tbl.print " create_table #{table.inspect}"
78
+ if columns.detect { |c| c.name == pk }
79
+ if pk != 'id'
80
+ tbl.print %Q(, :primary_key => "#{pk}")
81
+ end
82
+ else
83
+ tbl.print ", :id => false"
84
+ end
85
+ tbl.print ", :force => true"
86
+ tbl.puts " do |t|"
87
+
88
+ column_specs = columns.map do |column|
89
+ raise StandardError, "Unknown type '#{column.sql_type}' for column '#{column.name}'" if @types[column.type].nil?
90
+ next if column.name == pk
91
+ spec = {}
92
+ spec[:name] = column.name.inspect
93
+ spec[:type] = column.type.inspect
94
+ spec[:limit] = column.limit.inspect if column.limit != @types[column.type][:limit] && column.type != :decimal
95
+ spec[:precision] = column.precision.inspect if !column.precision.nil?
96
+ spec[:scale] = column.scale.inspect if !column.scale.nil?
97
+ spec[:null] = 'false' if !column.null
98
+ spec[:default] = default_string(column.default) if !column.default.nil?
99
+ (spec.keys - [:name, :type]).each{ |k| spec[k].insert(0, "#{k.inspect} => ")}
100
+ spec
101
+ end.compact
102
+ keys = [:name, :type, :limit, :precision, :scale, :default, :null] & column_specs.map{ |spec| spec.keys }.inject([]){ |a,b| a | b }
103
+ lengths = keys.map{ |key| column_specs.map{ |spec| spec[key] ? spec[key].length + 2 : 0 }.max }
104
+ format_string = lengths.map{ |len| "%-#{len}s" }.join("")
105
+ column_specs.each do |colspec|
106
+ values = keys.zip(lengths).map{ |key, len| colspec.key?(key) ? colspec[key] + ", " : " " * len }
107
+ tbl.print " t.column "
108
+ tbl.print((format_string % values).gsub(/,\s*$/, ''))
109
+ tbl.puts
110
+ end
111
+
112
+ tbl.puts " end"
113
+ tbl.puts
114
+
115
+ indexes(table, tbl)
116
+
117
+ tbl.rewind
118
+ stream.print tbl.read
119
+ rescue => e
120
+ stream.puts "# Could not dump table #{table.inspect} because of following #{e.class}"
121
+ stream.puts "# #{e.message}"
122
+ stream.puts
123
+ end
124
+
125
+ stream
126
+ end
127
+
128
+ def default_string(value)
129
+ case value
130
+ when BigDecimal
131
+ value.to_s
132
+ when Date, DateTime, Time
133
+ "'" + value.to_s(:db) + "'"
134
+ else
135
+ value.inspect
136
+ end
137
+ end
138
+
139
+ def indexes(table, stream)
140
+ indexes = @connection.indexes(table)
141
+ indexes.each do |index|
142
+ stream.print " add_index #{index.table.inspect}, #{index.columns.inspect}, :name => #{index.name.inspect}"
143
+ stream.print ", :unique => true" if index.unique
144
+ stream.puts
145
+ end
146
+ stream.puts unless indexes.empty?
147
+ end
148
+ end
149
+ end
@@ -0,0 +1,51 @@
1
+ module ActiveRecord
2
+ # Active Record automatically timestamps create and update if the table has fields
3
+ # created_at/created_on or updated_at/updated_on.
4
+ #
5
+ # Timestamping can be turned off by setting
6
+ # <tt>ActiveRecord::Base.record_timestamps = false</tt>
7
+ #
8
+ # Keep in mind that, via inheritance, you can turn off timestamps on a per
9
+ # model basis by setting <tt>record_timestamps</tt> to false in the desired
10
+ # models.
11
+ #
12
+ # class Feed < ActiveRecord::Base
13
+ # self.record_timestamps = false
14
+ # # ...
15
+ # end
16
+ #
17
+ # Timestamps are in the local timezone by default but can use UTC by setting
18
+ # <tt>ActiveRecord::Base.default_timezone = :utc</tt>
19
+ module Timestamp
20
+ def self.included(base) #:nodoc:
21
+ super
22
+
23
+ base.alias_method_chain :create, :timestamps
24
+ base.alias_method_chain :update, :timestamps
25
+
26
+ base.cattr_accessor :record_timestamps, :instance_writer => false
27
+ base.record_timestamps = true
28
+ end
29
+
30
+ def create_with_timestamps #:nodoc:
31
+ if record_timestamps
32
+ t = self.class.default_timezone == :utc ? Time.now.utc : Time.now
33
+ write_attribute('created_at', t) if respond_to?(:created_at) && created_at.nil?
34
+ write_attribute('created_on', t) if respond_to?(:created_on) && created_on.nil?
35
+
36
+ write_attribute('updated_at', t) if respond_to?(:updated_at)
37
+ write_attribute('updated_on', t) if respond_to?(:updated_on)
38
+ end
39
+ create_without_timestamps
40
+ end
41
+
42
+ def update_with_timestamps #:nodoc:
43
+ if record_timestamps
44
+ t = self.class.default_timezone == :utc ? Time.now.utc : Time.now
45
+ write_attribute('updated_at', t) if respond_to?(:updated_at)
46
+ write_attribute('updated_on', t) if respond_to?(:updated_on)
47
+ end
48
+ update_without_timestamps
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,136 @@
1
+ require 'active_record/vendor/simple.rb'
2
+ Transaction::Simple.send(:remove_method, :transaction)
3
+ require 'thread'
4
+
5
+ module ActiveRecord
6
+ module Transactions # :nodoc:
7
+ class TransactionError < ActiveRecordError # :nodoc:
8
+ end
9
+
10
+ def self.included(base)
11
+ base.extend(ClassMethods)
12
+
13
+ base.class_eval do
14
+ [:destroy, :save, :save!].each do |method|
15
+ alias_method_chain method, :transactions
16
+ end
17
+ end
18
+ end
19
+
20
+ # Transactions are protective blocks where SQL statements are only permanent if they can all succeed as one atomic action.
21
+ # The classic example is a transfer between two accounts where you can only have a deposit if the withdrawal succeeded and
22
+ # vice versa. Transactions enforce the integrity of the database and guard the data against program errors or database break-downs.
23
+ # So basically you should use transaction blocks whenever you have a number of statements that must be executed together or
24
+ # not at all. Example:
25
+ #
26
+ # transaction do
27
+ # david.withdrawal(100)
28
+ # mary.deposit(100)
29
+ # end
30
+ #
31
+ # This example will only take money from David and give to Mary if neither +withdrawal+ nor +deposit+ raises an exception.
32
+ # Exceptions will force a ROLLBACK that returns the database to the state before the transaction was begun. Be aware, though,
33
+ # that the objects by default will _not_ have their instance data returned to their pre-transactional state.
34
+ #
35
+ # == Transactions are not distributed across database connections
36
+ #
37
+ # A transaction acts on a single database connection. If you have
38
+ # multiple class-specific databases, the transaction will not protect
39
+ # interaction among them. One workaround is to begin a transaction
40
+ # on each class whose models you alter:
41
+ #
42
+ # Student.transaction do
43
+ # Course.transaction do
44
+ # course.enroll(student)
45
+ # student.units += course.units
46
+ # end
47
+ # end
48
+ #
49
+ # This is a poor solution, but full distributed transactions are beyond
50
+ # the scope of Active Record.
51
+ #
52
+ # == Save and destroy are automatically wrapped in a transaction
53
+ #
54
+ # Both Base#save and Base#destroy come wrapped in a transaction that ensures that whatever you do in validations or callbacks
55
+ # will happen under the protected cover of a transaction. So you can use validations to check for values that the transaction
56
+ # depend on or you can raise exceptions in the callbacks to rollback.
57
+ #
58
+ # == Object-level transactions (deprecated)
59
+ #
60
+ # You can enable object-level transactions for Active Record objects, though. You do this by naming each of the Active Records
61
+ # that you want to enable object-level transactions for, like this:
62
+ #
63
+ # Account.transaction(david, mary) do
64
+ # david.withdrawal(100)
65
+ # mary.deposit(100)
66
+ # end
67
+ #
68
+ # If the transaction fails, David and Mary will be returned to their
69
+ # pre-transactional state. No money will have changed hands in neither
70
+ # object nor database.
71
+ #
72
+ # However, useful state such as validation errors are also rolled back,
73
+ # limiting the usefulness of this feature. As such it is deprecated in
74
+ # Rails 1.2 and will be removed in the next release. Install the
75
+ # object_transactions plugin if you wish to continue using it.
76
+ #
77
+ # == Exception handling
78
+ #
79
+ # Also have in mind that exceptions thrown within a transaction block will be propagated (after triggering the ROLLBACK), so you
80
+ # should be ready to catch those in your application code.
81
+ #
82
+ # Tribute: Object-level transactions are implemented by Transaction::Simple by Austin Ziegler.
83
+ module ClassMethods
84
+ def transaction(*objects, &block)
85
+ previous_handler = trap('TERM') { raise TransactionError, "Transaction aborted" }
86
+ increment_open_transactions
87
+
88
+ begin
89
+ unless objects.empty?
90
+ ActiveSupport::Deprecation.warn "Object transactions are deprecated and will be removed from Rails 2.0. See http://www.rubyonrails.org/deprecation for details.", caller
91
+ objects.each { |o| o.extend(Transaction::Simple) }
92
+ objects.each { |o| o.start_transaction }
93
+ end
94
+
95
+ result = connection.transaction(Thread.current['start_db_transaction'], &block)
96
+
97
+ objects.each { |o| o.commit_transaction }
98
+ return result
99
+ rescue Exception => object_transaction_rollback
100
+ objects.each { |o| o.abort_transaction }
101
+ raise
102
+ ensure
103
+ decrement_open_transactions
104
+ trap('TERM', previous_handler)
105
+ end
106
+ end
107
+
108
+ private
109
+ def increment_open_transactions #:nodoc:
110
+ open = Thread.current['open_transactions'] ||= 0
111
+ Thread.current['start_db_transaction'] = open.zero?
112
+ Thread.current['open_transactions'] = open + 1
113
+ end
114
+
115
+ def decrement_open_transactions #:nodoc:
116
+ Thread.current['open_transactions'] -= 1
117
+ end
118
+ end
119
+
120
+ def transaction(*objects, &block)
121
+ self.class.transaction(*objects, &block)
122
+ end
123
+
124
+ def destroy_with_transactions #:nodoc:
125
+ transaction { destroy_without_transactions }
126
+ end
127
+
128
+ def save_with_transactions(perform_validation = true) #:nodoc:
129
+ transaction { save_without_transactions(perform_validation) }
130
+ end
131
+
132
+ def save_with_transactions! #:nodoc:
133
+ transaction { save_without_transactions! }
134
+ end
135
+ end
136
+ end
@@ -0,0 +1,843 @@
1
+ module ActiveRecord
2
+ # Raised by save! and create! when the record is invalid. Use the
3
+ # record method to retrieve the record which did not validate.
4
+ # begin
5
+ # complex_operation_that_calls_save!_internally
6
+ # rescue ActiveRecord::RecordInvalid => invalid
7
+ # puts invalid.record.errors
8
+ # end
9
+ class RecordInvalid < ActiveRecordError #:nodoc:
10
+ attr_reader :record
11
+ def initialize(record)
12
+ @record = record
13
+ super("Validation failed: #{@record.errors.full_messages.join(", ")}")
14
+ end
15
+ end
16
+
17
+ # Active Record validation is reported to and from this object, which is used by Base#save to
18
+ # determine whether the object in a valid state to be saved. See usage example in Validations.
19
+ class Errors
20
+ include Enumerable
21
+
22
+ def initialize(base) # :nodoc:
23
+ @base, @errors = base, {}
24
+ end
25
+
26
+ @@default_error_messages = {
27
+ :inclusion => "is not included in the list",
28
+ :exclusion => "is reserved",
29
+ :invalid => "is invalid",
30
+ :confirmation => "doesn't match confirmation",
31
+ :accepted => "must be accepted",
32
+ :empty => "can't be empty",
33
+ :blank => "can't be blank",
34
+ :too_long => "is too long (maximum is %d characters)",
35
+ :too_short => "is too short (minimum is %d characters)",
36
+ :wrong_length => "is the wrong length (should be %d characters)",
37
+ :taken => "has already been taken",
38
+ :not_a_number => "is not a number"
39
+ }
40
+
41
+ # Holds a hash with all the default error messages, such that they can be replaced by your own copy or localizations.
42
+ cattr_accessor :default_error_messages
43
+
44
+
45
+ # Adds an error to the base object instead of any particular attribute. This is used
46
+ # to report errors that don't tie to any specific attribute, but rather to the object
47
+ # as a whole. These error messages don't get prepended with any field name when iterating
48
+ # with each_full, so they should be complete sentences.
49
+ def add_to_base(msg)
50
+ add(:base, msg)
51
+ end
52
+
53
+ # Adds an error message (+msg+) to the +attribute+, which will be returned on a call to <tt>on(attribute)</tt>
54
+ # for the same attribute and ensure that this error object returns false when asked if <tt>empty?</tt>. More than one
55
+ # error can be added to the same +attribute+ in which case an array will be returned on a call to <tt>on(attribute)</tt>.
56
+ # If no +msg+ is supplied, "invalid" is assumed.
57
+ def add(attribute, msg = @@default_error_messages[:invalid])
58
+ @errors[attribute.to_s] = [] if @errors[attribute.to_s].nil?
59
+ @errors[attribute.to_s] << msg
60
+ end
61
+
62
+ # Will add an error message to each of the attributes in +attributes+ that is empty.
63
+ def add_on_empty(attributes, msg = @@default_error_messages[:empty])
64
+ for attr in [attributes].flatten
65
+ value = @base.respond_to?(attr.to_s) ? @base.send(attr.to_s) : @base[attr.to_s]
66
+ is_empty = value.respond_to?("empty?") ? value.empty? : false
67
+ add(attr, msg) unless !value.nil? && !is_empty
68
+ end
69
+ end
70
+
71
+ # Will add an error message to each of the attributes in +attributes+ that is blank (using Object#blank?).
72
+ def add_on_blank(attributes, msg = @@default_error_messages[:blank])
73
+ for attr in [attributes].flatten
74
+ value = @base.respond_to?(attr.to_s) ? @base.send(attr.to_s) : @base[attr.to_s]
75
+ add(attr, msg) if value.blank?
76
+ end
77
+ end
78
+
79
+ # Will add an error message to each of the attributes in +attributes+ that has a length outside of the passed boundary +range+.
80
+ # If the length is above the boundary, the too_long_msg message will be used. If below, the too_short_msg.
81
+ def add_on_boundary_breaking(attributes, range, too_long_msg = @@default_error_messages[:too_long], too_short_msg = @@default_error_messages[:too_short])
82
+ for attr in [attributes].flatten
83
+ value = @base.respond_to?(attr.to_s) ? @base.send(attr.to_s) : @base[attr.to_s]
84
+ add(attr, too_short_msg % range.begin) if value && value.length < range.begin
85
+ add(attr, too_long_msg % range.end) if value && value.length > range.end
86
+ end
87
+ end
88
+
89
+ alias :add_on_boundry_breaking :add_on_boundary_breaking
90
+ deprecate :add_on_boundary_breaking => :validates_length_of, :add_on_boundry_breaking => :validates_length_of
91
+
92
+ # Returns true if the specified +attribute+ has errors associated with it.
93
+ def invalid?(attribute)
94
+ !@errors[attribute.to_s].nil?
95
+ end
96
+
97
+ # * Returns nil, if no errors are associated with the specified +attribute+.
98
+ # * Returns the error message, if one error is associated with the specified +attribute+.
99
+ # * Returns an array of error messages, if more than one error is associated with the specified +attribute+.
100
+ def on(attribute)
101
+ errors = @errors[attribute.to_s]
102
+ return nil if errors.nil?
103
+ errors.size == 1 ? errors.first : errors
104
+ end
105
+
106
+ alias :[] :on
107
+
108
+ # Returns errors assigned to base object through add_to_base according to the normal rules of on(attribute).
109
+ def on_base
110
+ on(:base)
111
+ end
112
+
113
+ # Yields each attribute and associated message per error added.
114
+ def each
115
+ @errors.each_key { |attr| @errors[attr].each { |msg| yield attr, msg } }
116
+ end
117
+
118
+ # Yields each full error message added. So Person.errors.add("first_name", "can't be empty") will be returned
119
+ # through iteration as "First name can't be empty".
120
+ def each_full
121
+ full_messages.each { |msg| yield msg }
122
+ end
123
+
124
+ # Returns all the full error messages in an array.
125
+ def full_messages
126
+ full_messages = []
127
+
128
+ @errors.each_key do |attr|
129
+ @errors[attr].each do |msg|
130
+ next if msg.nil?
131
+
132
+ if attr == "base"
133
+ full_messages << msg
134
+ else
135
+ full_messages << @base.class.human_attribute_name(attr) + " " + msg
136
+ end
137
+ end
138
+ end
139
+ full_messages
140
+ end
141
+
142
+ # Returns true if no errors have been added.
143
+ def empty?
144
+ @errors.empty?
145
+ end
146
+
147
+ # Removes all the errors that have been added.
148
+ def clear
149
+ @errors = {}
150
+ end
151
+
152
+ # Returns the total number of errors added. Two errors added to the same attribute will be counted as such
153
+ # with this as well.
154
+ def size
155
+ @errors.values.inject(0) { |error_count, attribute| error_count + attribute.size }
156
+ end
157
+
158
+ alias_method :count, :size
159
+ alias_method :length, :size
160
+
161
+ # Return an XML representation of this error object.
162
+ def to_xml(options={})
163
+ options[:root] ||= "errors"
164
+ options[:indent] ||= 2
165
+ options[:builder] ||= Builder::XmlMarkup.new(:indent => options[:indent])
166
+
167
+ options[:builder].instruct! unless options.delete(:skip_instruct)
168
+ options[:builder].errors do |e|
169
+ full_messages.each { |msg| e.error(msg) }
170
+ end
171
+ end
172
+ end
173
+
174
+
175
+ # Active Records implement validation by overwriting Base#validate (or the variations, +validate_on_create+ and
176
+ # +validate_on_update+). Each of these methods can inspect the state of the object, which usually means ensuring
177
+ # that a number of attributes have a certain value (such as not empty, within a given range, matching a certain regular expression).
178
+ #
179
+ # Example:
180
+ #
181
+ # class Person < ActiveRecord::Base
182
+ # protected
183
+ # def validate
184
+ # errors.add_on_empty %w( first_name last_name )
185
+ # errors.add("phone_number", "has invalid format") unless phone_number =~ /[0-9]*/
186
+ # end
187
+ #
188
+ # def validate_on_create # is only run the first time a new object is saved
189
+ # unless valid_discount?(membership_discount)
190
+ # errors.add("membership_discount", "has expired")
191
+ # end
192
+ # end
193
+ #
194
+ # def validate_on_update
195
+ # errors.add_to_base("No changes have occurred") if unchanged_attributes?
196
+ # end
197
+ # end
198
+ #
199
+ # person = Person.new("first_name" => "David", "phone_number" => "what?")
200
+ # person.save # => false (and doesn't do the save)
201
+ # person.errors.empty? # => false
202
+ # person.errors.count # => 2
203
+ # person.errors.on "last_name" # => "can't be empty"
204
+ # person.errors.on "phone_number" # => "has invalid format"
205
+ # person.errors.each_full { |msg| puts msg }
206
+ # # => "Last name can't be empty\n" +
207
+ # "Phone number has invalid format"
208
+ #
209
+ # person.attributes = { "last_name" => "Heinemeier", "phone_number" => "555-555" }
210
+ # person.save # => true (and person is now saved in the database)
211
+ #
212
+ # An +Errors+ object is automatically created for every Active Record.
213
+ #
214
+ # Please do have a look at ActiveRecord::Validations::ClassMethods for a higher level of validations.
215
+ module Validations
216
+ VALIDATIONS = %w( validate validate_on_create validate_on_update )
217
+
218
+ def self.included(base) # :nodoc:
219
+ base.extend ClassMethods
220
+ base.class_eval do
221
+ alias_method_chain :save, :validation
222
+ alias_method_chain :save!, :validation
223
+ alias_method_chain :update_attribute, :validation_skipping
224
+ end
225
+ end
226
+
227
+ # All of the following validations are defined in the class scope of the model that you're interested in validating.
228
+ # They offer a more declarative way of specifying when the model is valid and when it is not. It is recommended to use
229
+ # these over the low-level calls to validate and validate_on_create when possible.
230
+ module ClassMethods
231
+ DEFAULT_VALIDATION_OPTIONS = {
232
+ :on => :save,
233
+ :allow_nil => false,
234
+ :message => nil
235
+ }.freeze
236
+
237
+ ALL_RANGE_OPTIONS = [ :is, :within, :in, :minimum, :maximum ].freeze
238
+
239
+ def validate(*methods, &block)
240
+ methods << block if block_given?
241
+ write_inheritable_set(:validate, methods)
242
+ end
243
+
244
+ def validate_on_create(*methods, &block)
245
+ methods << block if block_given?
246
+ write_inheritable_set(:validate_on_create, methods)
247
+ end
248
+
249
+ def validate_on_update(*methods, &block)
250
+ methods << block if block_given?
251
+ write_inheritable_set(:validate_on_update, methods)
252
+ end
253
+
254
+ def condition_block?(condition)
255
+ condition.respond_to?("call") && (condition.arity == 1 || condition.arity == -1)
256
+ end
257
+
258
+ # Determine from the given condition (whether a block, procedure, method or string)
259
+ # whether or not to validate the record. See #validates_each.
260
+ def evaluate_condition(condition, record)
261
+ case condition
262
+ when Symbol: record.send(condition)
263
+ when String: eval(condition, binding)
264
+ else
265
+ if condition_block?(condition)
266
+ condition.call(record)
267
+ else
268
+ raise(
269
+ ActiveRecordError,
270
+ "Validations need to be either a symbol, string (to be eval'ed), proc/method, or " +
271
+ "class implementing a static validation method"
272
+ )
273
+ end
274
+ end
275
+ end
276
+
277
+ # Validates each attribute against a block.
278
+ #
279
+ # class Person < ActiveRecord::Base
280
+ # validates_each :first_name, :last_name do |record, attr, value|
281
+ # record.errors.add attr, 'starts with z.' if value[0] == ?z
282
+ # end
283
+ # end
284
+ #
285
+ # Options:
286
+ # * <tt>on</tt> - Specifies when this validation is active (default is :save, other options :create, :update)
287
+ # * <tt>allow_nil</tt> - Skip validation if attribute is nil.
288
+ # * <tt>if</tt> - Specifies a method, proc or string to call to determine if the validation should
289
+ # occur (e.g. :if => :allow_validation, or :if => Proc.new { |user| user.signup_step > 2 }). The
290
+ # method, proc or string should return or evaluate to a true or false value.
291
+ def validates_each(*attrs)
292
+ options = attrs.last.is_a?(Hash) ? attrs.pop.symbolize_keys : {}
293
+ attrs = attrs.flatten
294
+
295
+ # Declare the validation.
296
+ send(validation_method(options[:on] || :save)) do |record|
297
+ # Don't validate when there is an :if condition and that condition is false
298
+ unless options[:if] && !evaluate_condition(options[:if], record)
299
+ attrs.each do |attr|
300
+ value = record.send(attr)
301
+ next if value.nil? && options[:allow_nil]
302
+ yield record, attr, value
303
+ end
304
+ end
305
+ end
306
+ end
307
+
308
+ # Encapsulates the pattern of wanting to validate a password or email address field with a confirmation. Example:
309
+ #
310
+ # Model:
311
+ # class Person < ActiveRecord::Base
312
+ # validates_confirmation_of :user_name, :password
313
+ # validates_confirmation_of :email_address, :message => "should match confirmation"
314
+ # end
315
+ #
316
+ # View:
317
+ # <%= password_field "person", "password" %>
318
+ # <%= password_field "person", "password_confirmation" %>
319
+ #
320
+ # The person has to already have a password attribute (a column in the people table), but the password_confirmation is virtual.
321
+ # It exists only as an in-memory variable for validating the password. This check is performed only if password_confirmation
322
+ # is not nil and by default on save.
323
+ #
324
+ # Configuration options:
325
+ # * <tt>message</tt> - A custom error message (default is: "doesn't match confirmation")
326
+ # * <tt>on</tt> - Specifies when this validation is active (default is :save, other options :create, :update)
327
+ # * <tt>if</tt> - Specifies a method, proc or string to call to determine if the validation should
328
+ # occur (e.g. :if => :allow_validation, or :if => Proc.new { |user| user.signup_step > 2 }). The
329
+ # method, proc or string should return or evaluate to a true or false value.
330
+ def validates_confirmation_of(*attr_names)
331
+ configuration = { :message => ActiveRecord::Errors.default_error_messages[:confirmation], :on => :save }
332
+ configuration.update(attr_names.pop) if attr_names.last.is_a?(Hash)
333
+
334
+ attr_accessor *(attr_names.map { |n| "#{n}_confirmation" })
335
+
336
+ validates_each(attr_names, configuration) do |record, attr_name, value|
337
+ record.errors.add(attr_name, configuration[:message]) unless record.send("#{attr_name}_confirmation").nil? or value == record.send("#{attr_name}_confirmation")
338
+ end
339
+ end
340
+
341
+ # Encapsulates the pattern of wanting to validate the acceptance of a terms of service check box (or similar agreement). Example:
342
+ #
343
+ # class Person < ActiveRecord::Base
344
+ # validates_acceptance_of :terms_of_service
345
+ # validates_acceptance_of :eula, :message => "must be abided"
346
+ # end
347
+ #
348
+ # The terms_of_service attribute is entirely virtual. No database column is needed. This check is performed only if
349
+ # terms_of_service is not nil and by default on save.
350
+ #
351
+ # Configuration options:
352
+ # * <tt>message</tt> - A custom error message (default is: "must be accepted")
353
+ # * <tt>on</tt> - Specifies when this validation is active (default is :save, other options :create, :update)
354
+ # * <tt>accept</tt> - Specifies value that is considered accepted. The default value is a string "1", which
355
+ # makes it easy to relate to an HTML checkbox.
356
+ # * <tt>if</tt> - Specifies a method, proc or string to call to determine if the validation should
357
+ # occur (e.g. :if => :allow_validation, or :if => Proc.new { |user| user.signup_step > 2 }). The
358
+ # method, proc or string should return or evaluate to a true or false value.
359
+ def validates_acceptance_of(*attr_names)
360
+ configuration = { :message => ActiveRecord::Errors.default_error_messages[:accepted], :on => :save, :allow_nil => true, :accept => "1" }
361
+ configuration.update(attr_names.pop) if attr_names.last.is_a?(Hash)
362
+
363
+ attr_accessor *attr_names
364
+
365
+ validates_each(attr_names,configuration) do |record, attr_name, value|
366
+ record.errors.add(attr_name, configuration[:message]) unless value == configuration[:accept]
367
+ end
368
+ end
369
+
370
+ # Validates that the specified attributes are not blank (as defined by Object#blank?). Happens by default on save. Example:
371
+ #
372
+ # class Person < ActiveRecord::Base
373
+ # validates_presence_of :first_name
374
+ # end
375
+ #
376
+ # The first_name attribute must be in the object and it cannot be blank.
377
+ #
378
+ # If you want to validate the presence of a boolean field (where the real values are true and false),
379
+ # you will want to use validates_inclusion_of :field_name, :in => [true, false]
380
+ # This is due to the way Object#blank? handles boolean values. false.blank? # => true
381
+ #
382
+ # Configuration options:
383
+ # * <tt>message</tt> - A custom error message (default is: "can't be blank")
384
+ # * <tt>on</tt> - Specifies when this validation is active (default is :save, other options :create, :update)
385
+ # * <tt>if</tt> - Specifies a method, proc or string to call to determine if the validation should
386
+ # occur (e.g. :if => :allow_validation, or :if => Proc.new { |user| user.signup_step > 2 }). The
387
+ # method, proc or string should return or evaluate to a true or false value.
388
+ #
389
+ # === Warning
390
+ # Validate the presence of the foreign key, not the instance variable itself.
391
+ # Do this:
392
+ # validate_presence_of :invoice_id
393
+ #
394
+ # Not this:
395
+ # validate_presence_of :invoice
396
+ #
397
+ # If you validate the presence of the associated object, you will get
398
+ # failures on saves when both the parent object and the child object are
399
+ # new.
400
+ def validates_presence_of(*attr_names)
401
+ configuration = { :message => ActiveRecord::Errors.default_error_messages[:blank], :on => :save }
402
+ configuration.update(attr_names.pop) if attr_names.last.is_a?(Hash)
403
+
404
+ # can't use validates_each here, because it cannot cope with nonexistent attributes,
405
+ # while errors.add_on_empty can
406
+ attr_names.each do |attr_name|
407
+ send(validation_method(configuration[:on])) do |record|
408
+ unless configuration[:if] and not evaluate_condition(configuration[:if], record)
409
+ record.errors.add_on_blank(attr_name,configuration[:message])
410
+ end
411
+ end
412
+ end
413
+ end
414
+
415
+ # Validates that the specified attribute matches the length restrictions supplied. Only one option can be used at a time:
416
+ #
417
+ # class Person < ActiveRecord::Base
418
+ # validates_length_of :first_name, :maximum=>30
419
+ # validates_length_of :last_name, :maximum=>30, :message=>"less than %d if you don't mind"
420
+ # validates_length_of :fax, :in => 7..32, :allow_nil => true
421
+ # validates_length_of :user_name, :within => 6..20, :too_long => "pick a shorter name", :too_short => "pick a longer name"
422
+ # validates_length_of :fav_bra_size, :minimum=>1, :too_short=>"please enter at least %d character"
423
+ # validates_length_of :smurf_leader, :is=>4, :message=>"papa is spelled with %d characters... don't play me."
424
+ # end
425
+ #
426
+ # Configuration options:
427
+ # * <tt>minimum</tt> - The minimum size of the attribute
428
+ # * <tt>maximum</tt> - The maximum size of the attribute
429
+ # * <tt>is</tt> - The exact size of the attribute
430
+ # * <tt>within</tt> - A range specifying the minimum and maximum size of the attribute
431
+ # * <tt>in</tt> - A synonym(or alias) for :within
432
+ # * <tt>allow_nil</tt> - Attribute may be nil; skip validation.
433
+ #
434
+ # * <tt>too_long</tt> - The error message if the attribute goes over the maximum (default is: "is too long (maximum is %d characters)")
435
+ # * <tt>too_short</tt> - The error message if the attribute goes under the minimum (default is: "is too short (min is %d characters)")
436
+ # * <tt>wrong_length</tt> - The error message if using the :is method and the attribute is the wrong size (default is: "is the wrong length (should be %d characters)")
437
+ # * <tt>message</tt> - The error message to use for a :minimum, :maximum, or :is violation. An alias of the appropriate too_long/too_short/wrong_length message
438
+ # * <tt>on</tt> - Specifies when this validation is active (default is :save, other options :create, :update)
439
+ # * <tt>if</tt> - Specifies a method, proc or string to call to determine if the validation should
440
+ # occur (e.g. :if => :allow_validation, or :if => Proc.new { |user| user.signup_step > 2 }). The
441
+ # method, proc or string should return or evaluate to a true or false value.
442
+ def validates_length_of(*attrs)
443
+ # Merge given options with defaults.
444
+ options = {
445
+ :too_long => ActiveRecord::Errors.default_error_messages[:too_long],
446
+ :too_short => ActiveRecord::Errors.default_error_messages[:too_short],
447
+ :wrong_length => ActiveRecord::Errors.default_error_messages[:wrong_length]
448
+ }.merge(DEFAULT_VALIDATION_OPTIONS)
449
+ options.update(attrs.pop.symbolize_keys) if attrs.last.is_a?(Hash)
450
+
451
+ # Ensure that one and only one range option is specified.
452
+ range_options = ALL_RANGE_OPTIONS & options.keys
453
+ case range_options.size
454
+ when 0
455
+ raise ArgumentError, 'Range unspecified. Specify the :within, :maximum, :minimum, or :is option.'
456
+ when 1
457
+ # Valid number of options; do nothing.
458
+ else
459
+ raise ArgumentError, 'Too many range options specified. Choose only one.'
460
+ end
461
+
462
+ # Get range option and value.
463
+ option = range_options.first
464
+ option_value = options[range_options.first]
465
+
466
+ case option
467
+ when :within, :in
468
+ raise ArgumentError, ":#{option} must be a Range" unless option_value.is_a?(Range)
469
+
470
+ too_short = options[:too_short] % option_value.begin
471
+ too_long = options[:too_long] % option_value.end
472
+
473
+ validates_each(attrs, options) do |record, attr, value|
474
+ if value.nil? or value.split(//).size < option_value.begin
475
+ record.errors.add(attr, too_short)
476
+ elsif value.split(//).size > option_value.end
477
+ record.errors.add(attr, too_long)
478
+ end
479
+ end
480
+ when :is, :minimum, :maximum
481
+ raise ArgumentError, ":#{option} must be a nonnegative Integer" unless option_value.is_a?(Integer) and option_value >= 0
482
+
483
+ # Declare different validations per option.
484
+ validity_checks = { :is => "==", :minimum => ">=", :maximum => "<=" }
485
+ message_options = { :is => :wrong_length, :minimum => :too_short, :maximum => :too_long }
486
+
487
+ message = (options[:message] || options[message_options[option]]) % option_value
488
+
489
+ validates_each(attrs, options) do |record, attr, value|
490
+ if value.kind_of?(String)
491
+ record.errors.add(attr, message) unless !value.nil? and value.split(//).size.method(validity_checks[option])[option_value]
492
+ else
493
+ record.errors.add(attr, message) unless !value.nil? and value.size.method(validity_checks[option])[option_value]
494
+ end
495
+ end
496
+ end
497
+ end
498
+
499
+ alias_method :validates_size_of, :validates_length_of
500
+
501
+
502
+ # Validates whether the value of the specified attributes are unique across the system. Useful for making sure that only one user
503
+ # can be named "davidhh".
504
+ #
505
+ # class Person < ActiveRecord::Base
506
+ # validates_uniqueness_of :user_name, :scope => :account_id
507
+ # end
508
+ #
509
+ # It can also validate whether the value of the specified attributes are unique based on multiple scope parameters. For example,
510
+ # making sure that a teacher can only be on the schedule once per semester for a particular class.
511
+ #
512
+ # class TeacherSchedule < ActiveRecord::Base
513
+ # validates_uniqueness_of :teacher_id, :scope => [:semester_id, :class_id]
514
+ # end
515
+ #
516
+ # When the record is created, a check is performed to make sure that no record exists in the database with the given value for the specified
517
+ # attribute (that maps to a column). When the record is updated, the same check is made but disregarding the record itself.
518
+ #
519
+ # Configuration options:
520
+ # * <tt>message</tt> - Specifies a custom error message (default is: "has already been taken")
521
+ # * <tt>scope</tt> - One or more columns by which to limit the scope of the uniquness constraint.
522
+ # * <tt>case_sensitive</tt> - Looks for an exact match. Ignored by non-text columns (true by default).
523
+ # * <tt>allow_nil</tt> - If set to true, skips this validation if the attribute is null (default is: false)
524
+ # * <tt>if</tt> - Specifies a method, proc or string to call to determine if the validation should
525
+ # occur (e.g. :if => :allow_validation, or :if => Proc.new { |user| user.signup_step > 2 }). The
526
+ # method, proc or string should return or evaluate to a true or false value.
527
+
528
+ def validates_uniqueness_of(*attr_names)
529
+ configuration = { :message => ActiveRecord::Errors.default_error_messages[:taken], :case_sensitive => true }
530
+ configuration.update(attr_names.pop) if attr_names.last.is_a?(Hash)
531
+
532
+ validates_each(attr_names,configuration) do |record, attr_name, value|
533
+ if value.nil? || (configuration[:case_sensitive] || !columns_hash[attr_name.to_s].text?)
534
+ condition_sql = "#{record.class.table_name}.#{attr_name} #{attribute_condition(value)}"
535
+ condition_params = [value]
536
+ else
537
+ condition_sql = "LOWER(#{record.class.table_name}.#{attr_name}) #{attribute_condition(value)}"
538
+ condition_params = [value.downcase]
539
+ end
540
+ if scope = configuration[:scope]
541
+ Array(scope).map do |scope_item|
542
+ scope_value = record.send(scope_item)
543
+ condition_sql << " AND #{record.class.table_name}.#{scope_item} #{attribute_condition(scope_value)}"
544
+ condition_params << scope_value
545
+ end
546
+ end
547
+ unless record.new_record?
548
+ condition_sql << " AND #{record.class.table_name}.#{record.class.primary_key} <> ?"
549
+ condition_params << record.send(:id)
550
+ end
551
+ if record.class.find(:first, :conditions => [condition_sql, *condition_params])
552
+ record.errors.add(attr_name, configuration[:message])
553
+ end
554
+ end
555
+ end
556
+
557
+
558
+
559
+ # Validates whether the value of the specified attribute is of the correct form by matching it against the regular expression
560
+ # provided.
561
+ #
562
+ # class Person < ActiveRecord::Base
563
+ # validates_format_of :email, :with => /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i, :on => :create
564
+ # end
565
+ #
566
+ # Note: use \A and \Z to match the start and end of the string, ^ and $ match the start/end of a line.
567
+ #
568
+ # A regular expression must be provided or else an exception will be raised.
569
+ #
570
+ # Configuration options:
571
+ # * <tt>message</tt> - A custom error message (default is: "is invalid")
572
+ # * <tt>with</tt> - The regular expression used to validate the format with (note: must be supplied!)
573
+ # * <tt>on</tt> Specifies when this validation is active (default is :save, other options :create, :update)
574
+ # * <tt>if</tt> - Specifies a method, proc or string to call to determine if the validation should
575
+ # occur (e.g. :if => :allow_validation, or :if => Proc.new { |user| user.signup_step > 2 }). The
576
+ # method, proc or string should return or evaluate to a true or false value.
577
+ def validates_format_of(*attr_names)
578
+ configuration = { :message => ActiveRecord::Errors.default_error_messages[:invalid], :on => :save, :with => nil }
579
+ configuration.update(attr_names.pop) if attr_names.last.is_a?(Hash)
580
+
581
+ raise(ArgumentError, "A regular expression must be supplied as the :with option of the configuration hash") unless configuration[:with].is_a?(Regexp)
582
+
583
+ validates_each(attr_names, configuration) do |record, attr_name, value|
584
+ record.errors.add(attr_name, configuration[:message]) unless value.to_s =~ configuration[:with]
585
+ end
586
+ end
587
+
588
+ # Validates whether the value of the specified attribute is available in a particular enumerable object.
589
+ #
590
+ # class Person < ActiveRecord::Base
591
+ # validates_inclusion_of :gender, :in=>%w( m f ), :message=>"woah! what are you then!??!!"
592
+ # validates_inclusion_of :age, :in=>0..99
593
+ # end
594
+ #
595
+ # Configuration options:
596
+ # * <tt>in</tt> - An enumerable object of available items
597
+ # * <tt>message</tt> - Specifies a customer error message (default is: "is not included in the list")
598
+ # * <tt>allow_nil</tt> - If set to true, skips this validation if the attribute is null (default is: false)
599
+ # * <tt>if</tt> - Specifies a method, proc or string to call to determine if the validation should
600
+ # occur (e.g. :if => :allow_validation, or :if => Proc.new { |user| user.signup_step > 2 }). The
601
+ # method, proc or string should return or evaluate to a true or false value.
602
+ def validates_inclusion_of(*attr_names)
603
+ configuration = { :message => ActiveRecord::Errors.default_error_messages[:inclusion], :on => :save }
604
+ configuration.update(attr_names.pop) if attr_names.last.is_a?(Hash)
605
+
606
+ enum = configuration[:in] || configuration[:within]
607
+
608
+ raise(ArgumentError, "An object with the method include? is required must be supplied as the :in option of the configuration hash") unless enum.respond_to?("include?")
609
+
610
+ validates_each(attr_names, configuration) do |record, attr_name, value|
611
+ record.errors.add(attr_name, configuration[:message]) unless enum.include?(value)
612
+ end
613
+ end
614
+
615
+ # Validates that the value of the specified attribute is not in a particular enumerable object.
616
+ #
617
+ # class Person < ActiveRecord::Base
618
+ # validates_exclusion_of :username, :in => %w( admin superuser ), :message => "You don't belong here"
619
+ # validates_exclusion_of :age, :in => 30..60, :message => "This site is only for under 30 and over 60"
620
+ # end
621
+ #
622
+ # Configuration options:
623
+ # * <tt>in</tt> - An enumerable object of items that the value shouldn't be part of
624
+ # * <tt>message</tt> - Specifies a customer error message (default is: "is reserved")
625
+ # * <tt>allow_nil</tt> - If set to true, skips this validation if the attribute is null (default is: false)
626
+ # * <tt>if</tt> - Specifies a method, proc or string to call to determine if the validation should
627
+ # occur (e.g. :if => :allow_validation, or :if => Proc.new { |user| user.signup_step > 2 }). The
628
+ # method, proc or string should return or evaluate to a true or false value.
629
+ def validates_exclusion_of(*attr_names)
630
+ configuration = { :message => ActiveRecord::Errors.default_error_messages[:exclusion], :on => :save }
631
+ configuration.update(attr_names.pop) if attr_names.last.is_a?(Hash)
632
+
633
+ enum = configuration[:in] || configuration[:within]
634
+
635
+ raise(ArgumentError, "An object with the method include? is required must be supplied as the :in option of the configuration hash") unless enum.respond_to?("include?")
636
+
637
+ validates_each(attr_names, configuration) do |record, attr_name, value|
638
+ record.errors.add(attr_name, configuration[:message]) if enum.include?(value)
639
+ end
640
+ end
641
+
642
+ # Validates whether the associated object or objects are all valid themselves. Works with any kind of association.
643
+ #
644
+ # class Book < ActiveRecord::Base
645
+ # has_many :pages
646
+ # belongs_to :library
647
+ #
648
+ # validates_associated :pages, :library
649
+ # end
650
+ #
651
+ # Warning: If, after the above definition, you then wrote:
652
+ #
653
+ # class Page < ActiveRecord::Base
654
+ # belongs_to :book
655
+ #
656
+ # validates_associated :book
657
+ # end
658
+ #
659
+ # ...this would specify a circular dependency and cause infinite recursion.
660
+ #
661
+ # NOTE: This validation will not fail if the association hasn't been assigned. If you want to ensure that the association
662
+ # is both present and guaranteed to be valid, you also need to use validates_presence_of.
663
+ #
664
+ # Configuration options:
665
+ # * <tt>on</tt> Specifies when this validation is active (default is :save, other options :create, :update)
666
+ # * <tt>if</tt> - Specifies a method, proc or string to call to determine if the validation should
667
+ # occur (e.g. :if => :allow_validation, or :if => Proc.new { |user| user.signup_step > 2 }). The
668
+ # method, proc or string should return or evaluate to a true or false value.
669
+ def validates_associated(*attr_names)
670
+ configuration = { :message => ActiveRecord::Errors.default_error_messages[:invalid], :on => :save }
671
+ configuration.update(attr_names.pop) if attr_names.last.is_a?(Hash)
672
+
673
+ validates_each(attr_names, configuration) do |record, attr_name, value|
674
+ record.errors.add(attr_name, configuration[:message]) unless
675
+ (value.is_a?(Array) ? value : [value]).all? { |r| r.nil? or r.valid? }
676
+ end
677
+ end
678
+
679
+ # Validates whether the value of the specified attribute is numeric by trying to convert it to
680
+ # a float with Kernel.Float (if <tt>integer</tt> is false) or applying it to the regular expression
681
+ # <tt>/\A[\+\-]?\d+\Z/</tt> (if <tt>integer</tt> is set to true).
682
+ #
683
+ # class Person < ActiveRecord::Base
684
+ # validates_numericality_of :value, :on => :create
685
+ # end
686
+ #
687
+ # Configuration options:
688
+ # * <tt>message</tt> - A custom error message (default is: "is not a number")
689
+ # * <tt>on</tt> Specifies when this validation is active (default is :save, other options :create, :update)
690
+ # * <tt>only_integer</tt> Specifies whether the value has to be an integer, e.g. an integral value (default is false)
691
+ # * <tt>allow_nil</tt> Skip validation if attribute is nil (default is false). Notice that for fixnum and float columns empty strings are converted to nil
692
+ # * <tt>if</tt> - Specifies a method, proc or string to call to determine if the validation should
693
+ # occur (e.g. :if => :allow_validation, or :if => Proc.new { |user| user.signup_step > 2 }). The
694
+ # method, proc or string should return or evaluate to a true or false value.
695
+ def validates_numericality_of(*attr_names)
696
+ configuration = { :message => ActiveRecord::Errors.default_error_messages[:not_a_number], :on => :save,
697
+ :only_integer => false, :allow_nil => false }
698
+ configuration.update(attr_names.pop) if attr_names.last.is_a?(Hash)
699
+
700
+ if configuration[:only_integer]
701
+ validates_each(attr_names,configuration) do |record, attr_name,value|
702
+ record.errors.add(attr_name, configuration[:message]) unless record.send("#{attr_name}_before_type_cast").to_s =~ /\A[+-]?\d+\Z/
703
+ end
704
+ else
705
+ validates_each(attr_names,configuration) do |record, attr_name,value|
706
+ next if configuration[:allow_nil] and record.send("#{attr_name}_before_type_cast").nil?
707
+ begin
708
+ Kernel.Float(record.send("#{attr_name}_before_type_cast").to_s)
709
+ rescue ArgumentError, TypeError
710
+ record.errors.add(attr_name, configuration[:message])
711
+ end
712
+ end
713
+ end
714
+ end
715
+
716
+
717
+ # Creates an object just like Base.create but calls save! instead of save
718
+ # so an exception is raised if the record is invalid.
719
+ def create!(attributes = nil)
720
+ if attributes.is_a?(Array)
721
+ attributes.collect { |attr| create!(attr) }
722
+ else
723
+ attributes ||= {}
724
+ attributes.reverse_merge!(scope(:create)) if scoped?(:create)
725
+
726
+ object = new(attributes)
727
+ object.save!
728
+ object
729
+ end
730
+ end
731
+
732
+
733
+ private
734
+ def write_inheritable_set(key, methods)
735
+ existing_methods = read_inheritable_attribute(key) || []
736
+ write_inheritable_attribute(key, methods | existing_methods)
737
+ end
738
+
739
+ def validation_method(on)
740
+ case on
741
+ when :save then :validate
742
+ when :create then :validate_on_create
743
+ when :update then :validate_on_update
744
+ end
745
+ end
746
+ end
747
+
748
+ # The validation process on save can be skipped by passing false. The regular Base#save method is
749
+ # replaced with this when the validations module is mixed in, which it is by default.
750
+ def save_with_validation(perform_validation = true)
751
+ if perform_validation && valid? || !perform_validation
752
+ save_without_validation
753
+ else
754
+ false
755
+ end
756
+ end
757
+
758
+ # Attempts to save the record just like Base#save but will raise a RecordInvalid exception instead of returning false
759
+ # if the record is not valid.
760
+ def save_with_validation!
761
+ if valid?
762
+ save_without_validation!
763
+ else
764
+ raise RecordInvalid.new(self)
765
+ end
766
+ end
767
+
768
+ # Updates a single attribute and saves the record without going through the normal validation procedure.
769
+ # This is especially useful for boolean flags on existing records. The regular +update_attribute+ method
770
+ # in Base is replaced with this when the validations module is mixed in, which it is by default.
771
+ def update_attribute_with_validation_skipping(name, value)
772
+ send(name.to_s + '=', value)
773
+ save(false)
774
+ end
775
+
776
+ # Runs validate and validate_on_create or validate_on_update and returns true if no errors were added otherwise false.
777
+ def valid?
778
+ errors.clear
779
+
780
+ run_validations(:validate)
781
+ validate
782
+
783
+ if new_record?
784
+ run_validations(:validate_on_create)
785
+ validate_on_create
786
+ else
787
+ run_validations(:validate_on_update)
788
+ validate_on_update
789
+ end
790
+
791
+ errors.empty?
792
+ end
793
+
794
+ # Returns the Errors object that holds all information about attribute error messages.
795
+ def errors
796
+ @errors ||= Errors.new(self)
797
+ end
798
+
799
+ protected
800
+ # Overwrite this method for validation checks on all saves and use Errors.add(field, msg) for invalid attributes.
801
+ def validate #:doc:
802
+ end
803
+
804
+ # Overwrite this method for validation checks used only on creation.
805
+ def validate_on_create #:doc:
806
+ end
807
+
808
+ # Overwrite this method for validation checks used only on updates.
809
+ def validate_on_update # :doc:
810
+ end
811
+
812
+ private
813
+ def run_validations(validation_method)
814
+ validations = self.class.read_inheritable_attribute(validation_method.to_sym)
815
+ if validations.nil? then return end
816
+ validations.each do |validation|
817
+ if validation.is_a?(Symbol)
818
+ self.send(validation)
819
+ elsif validation.is_a?(String)
820
+ eval(validation, binding)
821
+ elsif validation_block?(validation)
822
+ validation.call(self)
823
+ elsif validation_class?(validation, validation_method)
824
+ validation.send(validation_method, self)
825
+ else
826
+ raise(
827
+ ActiveRecordError,
828
+ "Validations need to be either a symbol, string (to be eval'ed), proc/method, or " +
829
+ "class implementing a static validation method"
830
+ )
831
+ end
832
+ end
833
+ end
834
+
835
+ def validation_block?(validation)
836
+ validation.respond_to?("call") && (validation.arity == 1 || validation.arity == -1)
837
+ end
838
+
839
+ def validation_class?(validation, validation_method)
840
+ validation.respond_to?(validation_method)
841
+ end
842
+ end
843
+ end