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,1801 @@
1
+ require File.dirname(__FILE__) + '/../abstract_unit'
2
+ require 'test/unit'
3
+ require File.dirname(__FILE__) + '/fake_controllers'
4
+ require 'action_controller/routing'
5
+
6
+ RunTimeTests = ARGV.include? 'time'
7
+ ROUTING = ActionController::Routing
8
+
9
+ class ROUTING::RouteBuilder
10
+ attr_reader :warn_output
11
+
12
+ def warn(msg)
13
+ (@warn_output ||= []) << msg
14
+ end
15
+ end
16
+
17
+ class LegacyRouteSetTests < Test::Unit::TestCase
18
+ attr_reader :rs
19
+ def setup
20
+ @rs = ::ActionController::Routing::RouteSet.new
21
+ @rs.draw {|m| m.connect ':controller/:action/:id' }
22
+ ActionController::Routing.use_controllers! %w(content admin/user admin/news_feed)
23
+ end
24
+
25
+ def test_default_setup
26
+ assert_equal({:controller => "content", :action => 'index'}, rs.recognize_path("/content"))
27
+ assert_equal({:controller => "content", :action => 'list'}, rs.recognize_path("/content/list"))
28
+ assert_equal({:controller => "content", :action => 'show', :id => '10'}, rs.recognize_path("/content/show/10"))
29
+
30
+ assert_equal({:controller => "admin/user", :action => 'show', :id => '10'}, rs.recognize_path("/admin/user/show/10"))
31
+
32
+ assert_equal '/admin/user/show/10', rs.generate(:controller => 'admin/user', :action => 'show', :id => 10)
33
+
34
+ assert_equal '/admin/user/show', rs.generate({:action => 'show'}, {:controller => 'admin/user', :action => 'list', :id => '10'})
35
+ assert_equal '/admin/user/list/10', rs.generate({}, {:controller => 'admin/user', :action => 'list', :id => '10'})
36
+
37
+ assert_equal '/admin/stuff', rs.generate({:controller => 'stuff'}, {:controller => 'admin/user', :action => 'list', :id => '10'})
38
+ assert_equal '/stuff', rs.generate({:controller => '/stuff'}, {:controller => 'admin/user', :action => 'list', :id => '10'})
39
+ end
40
+
41
+ def test_ignores_leading_slash
42
+ @rs.draw {|m| m.connect '/:controller/:action/:id'}
43
+ test_default_setup
44
+ end
45
+
46
+ def test_time_recognition
47
+ n = 10000
48
+ if RunTimeTests
49
+ GC.start
50
+ rectime = Benchmark.realtime do
51
+ n.times do
52
+ rs.recognize_path("content")
53
+ rs.recognize_path("content/list")
54
+ rs.recognize_path("content/show/10")
55
+ rs.recognize_path("admin/user")
56
+ rs.recognize_path("admin/user/list")
57
+ rs.recognize_path("admin/user/show/10")
58
+ end
59
+ end
60
+ puts "\n\nRecognition (RouteSet):"
61
+ per_url = rectime / (n * 6)
62
+ puts "#{per_url * 1000} ms/url"
63
+ puts "#{1 / per_url} url/s\n\n"
64
+ end
65
+ end
66
+ def test_time_generation
67
+ n = 5000
68
+ if RunTimeTests
69
+ GC.start
70
+ pairs = [
71
+ [{:controller => 'content', :action => 'index'}, {:controller => 'content', :action => 'show'}],
72
+ [{:controller => 'content'}, {:controller => 'content', :action => 'index'}],
73
+ [{:controller => 'content', :action => 'list'}, {:controller => 'content', :action => 'index'}],
74
+ [{:controller => 'content', :action => 'show', :id => '10'}, {:controller => 'content', :action => 'list'}],
75
+ [{:controller => 'admin/user', :action => 'index'}, {:controller => 'admin/user', :action => 'show'}],
76
+ [{:controller => 'admin/user'}, {:controller => 'admin/user', :action => 'index'}],
77
+ [{:controller => 'admin/user', :action => 'list'}, {:controller => 'admin/user', :action => 'index'}],
78
+ [{:controller => 'admin/user', :action => 'show', :id => '10'}, {:controller => 'admin/user', :action => 'list'}],
79
+ ]
80
+ p = nil
81
+ gentime = Benchmark.realtime do
82
+ n.times do
83
+ pairs.each {|(a, b)| rs.generate(a, b)}
84
+ end
85
+ end
86
+
87
+ puts "\n\nGeneration (RouteSet): (#{(n * 8)} urls)"
88
+ per_url = gentime / (n * 8)
89
+ puts "#{per_url * 1000} ms/url"
90
+ puts "#{1 / per_url} url/s\n\n"
91
+ end
92
+ end
93
+
94
+ def test_route_with_colon_first
95
+ rs.draw do |map|
96
+ map.connect '/:controller/:action/:id', :action => 'index', :id => nil
97
+ map.connect ':url', :controller => 'tiny_url', :action => 'translate'
98
+ end
99
+ end
100
+
101
+ def test_route_with_regexp_for_controller
102
+ rs.draw do |map|
103
+ map.connect ':controller/:admintoken/:action/:id', :controller => /admin\/.+/
104
+ map.connect ':controller/:action/:id'
105
+ end
106
+ assert_equal({:controller => "admin/user", :admintoken => "foo", :action => "index"},
107
+ rs.recognize_path("/admin/user/foo"))
108
+ assert_equal({:controller => "content", :action => "foo"}, rs.recognize_path("/content/foo"))
109
+ assert_equal '/admin/user/foo', rs.generate(:controller => "admin/user", :admintoken => "foo", :action => "index")
110
+ assert_equal '/content/foo', rs.generate(:controller => "content", :action => "foo")
111
+ end
112
+
113
+ def test_route_with_regexp_and_dot
114
+ rs.draw do |map|
115
+ map.connect ':controller/:action/:file',
116
+ :controller => /admin|user/,
117
+ :action => /upload|download/,
118
+ :defaults => {:file => nil},
119
+ :requirements => {:file => %r{[^/]+(\.[^/]+)?}}
120
+ end
121
+ # Without a file extension
122
+ assert_equal '/user/download/file',
123
+ rs.generate(:controller => "user", :action => "download", :file => "file")
124
+ assert_equal(
125
+ {:controller => "user", :action => "download", :file => "file"},
126
+ rs.recognize_path("/user/download/file"))
127
+
128
+ # Now, let's try a file with an extension, really a dot (.)
129
+ assert_equal '/user/download/file.jpg',
130
+ rs.generate(
131
+ :controller => "user", :action => "download", :file => "file.jpg")
132
+ assert_equal(
133
+ {:controller => "user", :action => "download", :file => "file.jpg"},
134
+ rs.recognize_path("/user/download/file.jpg"))
135
+ end
136
+
137
+ def test_basic_named_route
138
+ rs.add_named_route :home, '', :controller => 'content', :action => 'list'
139
+ x = setup_for_named_route.new
140
+ assert_equal({:controller => 'content', :action => 'list', :use_route => :home, :only_path => false},
141
+ x.send(:home_url))
142
+ end
143
+
144
+ def test_named_route_with_option
145
+ rs.add_named_route :page, 'page/:title', :controller => 'content', :action => 'show_page'
146
+ x = setup_for_named_route.new
147
+ assert_equal({:controller => 'content', :action => 'show_page', :title => 'new stuff', :use_route => :page, :only_path => false},
148
+ x.send(:page_url, :title => 'new stuff'))
149
+ end
150
+
151
+ def test_named_route_with_default
152
+ rs.add_named_route :page, 'page/:title', :controller => 'content', :action => 'show_page', :title => 'AboutPage'
153
+ x = setup_for_named_route.new
154
+ assert_equal({:controller => 'content', :action => 'show_page', :title => 'AboutPage', :use_route => :page, :only_path => false},
155
+ x.send(:page_url))
156
+ assert_equal({:controller => 'content', :action => 'show_page', :title => 'AboutRails', :use_route => :page, :only_path => false},
157
+ x.send(:page_url, :title => "AboutRails"))
158
+
159
+ end
160
+
161
+ def test_named_route_with_nested_controller
162
+ rs.add_named_route :users, 'admin/user', :controller => '/admin/user', :action => 'index'
163
+ x = setup_for_named_route.new
164
+ assert_equal({:controller => '/admin/user', :action => 'index', :use_route => :users, :only_path => false},
165
+ x.send(:users_url))
166
+ end
167
+
168
+ def setup_for_named_route
169
+ x = Class.new
170
+ x.send(:define_method, :url_for) {|x| x}
171
+ rs.named_routes.install(x)
172
+ x
173
+ end
174
+
175
+ def test_named_route_without_hash
176
+ rs.draw do |map|
177
+ map.normal ':controller/:action/:id'
178
+ end
179
+ end
180
+
181
+ def test_named_route_with_regexps
182
+ rs.draw do |map|
183
+ map.article 'page/:year/:month/:day/:title', :controller => 'page', :action => 'show',
184
+ :year => /\d+/, :month => /\d+/, :day => /\d+/
185
+ map.connect ':controller/:action/:id'
186
+ end
187
+ x = setup_for_named_route.new
188
+ assert_equal(
189
+ {:controller => 'page', :action => 'show', :title => 'hi', :use_route => :article, :only_path => false},
190
+ x.send(:article_url, :title => 'hi')
191
+ )
192
+ assert_equal(
193
+ {:controller => 'page', :action => 'show', :title => 'hi', :day => 10, :year => 2005, :month => 6, :use_route => :article, :only_path => false},
194
+ x.send(:article_url, :title => 'hi', :day => 10, :year => 2005, :month => 6)
195
+ )
196
+ end
197
+
198
+ def test_changing_controller
199
+ assert_equal '/admin/stuff/show/10', rs.generate(
200
+ {:controller => 'stuff', :action => 'show', :id => 10},
201
+ {:controller => 'admin/user', :action => 'index'}
202
+ )
203
+ end
204
+
205
+ def test_paths_escaped
206
+ rs.draw do |map|
207
+ map.path 'file/*path', :controller => 'content', :action => 'show_file'
208
+ map.connect ':controller/:action/:id'
209
+ end
210
+ results = rs.recognize_path "/file/hello+world/how+are+you%3F"
211
+ assert results, "Recognition should have succeeded"
212
+ assert_equal ['hello world', 'how are you?'], results[:path]
213
+
214
+ results = rs.recognize_path "/file"
215
+ assert results, "Recognition should have succeeded"
216
+ assert_equal [], results[:path]
217
+ end
218
+
219
+ def test_non_controllers_cannot_be_matched
220
+ rs.draw do |map|
221
+ map.connect ':controller/:action/:id'
222
+ end
223
+ assert_raises(ActionController::RoutingError) { rs.recognize_path("/not_a/show/10") }
224
+ end
225
+
226
+ def test_paths_do_not_accept_defaults
227
+ assert_raises(ActionController::RoutingError) do
228
+ rs.draw do |map|
229
+ map.path 'file/*path', :controller => 'content', :action => 'show_file', :path => %w(fake default)
230
+ map.connect ':controller/:action/:id'
231
+ end
232
+ end
233
+
234
+ rs.draw do |map|
235
+ map.path 'file/*path', :controller => 'content', :action => 'show_file', :path => []
236
+ map.connect ':controller/:action/:id'
237
+ end
238
+ end
239
+
240
+ def test_should_list_options_diff_when_routing_requirements_dont_match
241
+ rs.draw do |map|
242
+ map.post 'post/:id', :controller=> 'post', :action=> 'show', :requirements => {:id => /\d+/}
243
+ end
244
+ exception = assert_raise(ActionController::RoutingError) { rs.generate(:controller => 'post', :action => 'show', :bad_param => "foo", :use_route => "post") }
245
+ assert_match /^post_url failed to generate/, exception.message
246
+ from_match = exception.message.match(/from \{[^\}]+\}/).to_s
247
+ assert_match /:bad_param=>"foo"/, from_match
248
+ assert_match /:action=>"show"/, from_match
249
+ assert_match /:controller=>"post"/, from_match
250
+
251
+ expected_match = exception.message.match(/expected: \{[^\}]+\}/).to_s
252
+ assert_no_match /:bad_param=>"foo"/, expected_match
253
+ assert_match /:action=>"show"/, expected_match
254
+ assert_match /:controller=>"post"/, expected_match
255
+
256
+ diff_match = exception.message.match(/diff: \{[^\}]+\}/).to_s
257
+ assert_match /:bad_param=>"foo"/, diff_match
258
+ assert_no_match /:action=>"show"/, diff_match
259
+ assert_no_match /:controller=>"post"/, diff_match
260
+ end
261
+
262
+ # this specifies the case where your formerly would get a very confusing error message with an empty diff
263
+ def test_should_have_better_error_message_when_options_diff_is_empty
264
+ rs.draw do |map|
265
+ map.content '/content/:query', :controller => 'content', :action => 'show'
266
+ end
267
+ exception = assert_raise(ActionController::RoutingError) { rs.generate(:controller => 'content', :action => 'show', :use_route => "content") }
268
+ expected_message = %[content_url failed to generate from {:action=>"show", :controller=>"content"} - you may have ambiguous routes, or you may need to supply additional parameters for this route. content_url has the following required parameters: ["content", :query] - are they all satisifed?]
269
+ assert_equal expected_message, exception.message
270
+ end
271
+
272
+ def test_dynamic_path_allowed
273
+ rs.draw do |map|
274
+ map.connect '*path', :controller => 'content', :action => 'show_file'
275
+ end
276
+
277
+ assert_equal '/pages/boo', rs.generate(:controller => 'content', :action => 'show_file', :path => %w(pages boo))
278
+ end
279
+
280
+ def test_dynamic_recall_paths_allowed
281
+ rs.draw do |map|
282
+ map.connect '*path', :controller => 'content', :action => 'show_file'
283
+ end
284
+
285
+ recall_path = ActionController::Routing::PathSegment::Result.new(%w(pages boo))
286
+ assert_equal '/pages/boo', rs.generate({}, :controller => 'content', :action => 'show_file', :path => recall_path)
287
+ end
288
+
289
+ def test_backwards
290
+ rs.draw do |map|
291
+ map.connect 'page/:id/:action', :controller => 'pages', :action => 'show'
292
+ map.connect ':controller/:action/:id'
293
+ end
294
+
295
+ assert_equal '/page/20', rs.generate({:id => 20}, {:controller => 'pages', :action => 'show'})
296
+ assert_equal '/page/20', rs.generate(:controller => 'pages', :id => 20, :action => 'show')
297
+ assert_equal '/pages/boo', rs.generate(:controller => 'pages', :action => 'boo')
298
+ end
299
+
300
+ def test_route_with_fixnum_default
301
+ rs.draw do |map|
302
+ map.connect 'page/:id', :controller => 'content', :action => 'show_page', :id => 1
303
+ map.connect ':controller/:action/:id'
304
+ end
305
+
306
+ assert_equal '/page', rs.generate(:controller => 'content', :action => 'show_page')
307
+ assert_equal '/page', rs.generate(:controller => 'content', :action => 'show_page', :id => 1)
308
+ assert_equal '/page', rs.generate(:controller => 'content', :action => 'show_page', :id => '1')
309
+ assert_equal '/page/10', rs.generate(:controller => 'content', :action => 'show_page', :id => 10)
310
+
311
+ assert_equal({:controller => "content", :action => 'show_page', :id => '1'}, rs.recognize_path("/page"))
312
+ assert_equal({:controller => "content", :action => 'show_page', :id => '1'}, rs.recognize_path("/page/1"))
313
+ assert_equal({:controller => "content", :action => 'show_page', :id => '10'}, rs.recognize_path("/page/10"))
314
+ end
315
+
316
+ # For newer revision
317
+ def test_route_with_text_default
318
+ rs.draw do |map|
319
+ map.connect 'page/:id', :controller => 'content', :action => 'show_page', :id => 1
320
+ map.connect ':controller/:action/:id'
321
+ end
322
+
323
+ assert_equal '/page/foo', rs.generate(:controller => 'content', :action => 'show_page', :id => 'foo')
324
+ assert_equal({:controller => "content", :action => 'show_page', :id => 'foo'}, rs.recognize_path("/page/foo"))
325
+
326
+ token = "\321\202\320\265\320\272\321\201\321\202" # 'text' in russian
327
+ escaped_token = CGI::escape(token)
328
+
329
+ assert_equal '/page/' + escaped_token, rs.generate(:controller => 'content', :action => 'show_page', :id => token)
330
+ assert_equal({:controller => "content", :action => 'show_page', :id => token}, rs.recognize_path("/page/#{escaped_token}"))
331
+ end
332
+
333
+ def test_action_expiry
334
+ assert_equal '/content', rs.generate({:controller => 'content'}, {:controller => 'content', :action => 'show'})
335
+ end
336
+
337
+ def test_recognition_with_uppercase_controller_name
338
+ assert_equal({:controller => "content", :action => 'index'}, rs.recognize_path("/Content"))
339
+ assert_equal({:controller => "content", :action => 'list'}, rs.recognize_path("/ConTent/list"))
340
+ assert_equal({:controller => "content", :action => 'show', :id => '10'}, rs.recognize_path("/CONTENT/show/10"))
341
+
342
+ # these used to work, before the routes rewrite, but support for this was pulled in the new version...
343
+ #assert_equal({'controller' => "admin/news_feed", 'action' => 'index'}, rs.recognize_path("Admin/NewsFeed"))
344
+ #assert_equal({'controller' => "admin/news_feed", 'action' => 'index'}, rs.recognize_path("Admin/News_Feed"))
345
+ end
346
+
347
+ def test_requirement_should_prevent_optional_id
348
+ rs.draw do |map|
349
+ map.post 'post/:id', :controller=> 'post', :action=> 'show', :requirements => {:id => /\d+/}
350
+ end
351
+
352
+ assert_equal '/post/10', rs.generate(:controller => 'post', :action => 'show', :id => 10)
353
+
354
+ assert_raises ActionController::RoutingError do
355
+ rs.generate(:controller => 'post', :action => 'show')
356
+ end
357
+ end
358
+
359
+ def test_both_requirement_and_optional
360
+ rs.draw do |map|
361
+ map.blog('test/:year', :controller => 'post', :action => 'show',
362
+ :defaults => { :year => nil },
363
+ :requirements => { :year => /\d{4}/ }
364
+ )
365
+ map.connect ':controller/:action/:id'
366
+ end
367
+
368
+ assert_equal '/test', rs.generate(:controller => 'post', :action => 'show')
369
+ assert_equal '/test', rs.generate(:controller => 'post', :action => 'show', :year => nil)
370
+
371
+ x = setup_for_named_route.new
372
+ assert_equal({:controller => 'post', :action => 'show', :use_route => :blog, :only_path => false},
373
+ x.send(:blog_url))
374
+ end
375
+
376
+ def test_set_to_nil_forgets
377
+ rs.draw do |map|
378
+ map.connect 'pages/:year/:month/:day', :controller => 'content', :action => 'list_pages', :month => nil, :day => nil
379
+ map.connect ':controller/:action/:id'
380
+ end
381
+
382
+ assert_equal '/pages/2005',
383
+ rs.generate(:controller => 'content', :action => 'list_pages', :year => 2005)
384
+ assert_equal '/pages/2005/6',
385
+ rs.generate(:controller => 'content', :action => 'list_pages', :year => 2005, :month => 6)
386
+ assert_equal '/pages/2005/6/12',
387
+ rs.generate(:controller => 'content', :action => 'list_pages', :year => 2005, :month => 6, :day => 12)
388
+
389
+ assert_equal '/pages/2005/6/4',
390
+ rs.generate({:day => 4}, {:controller => 'content', :action => 'list_pages', :year => '2005', :month => '6', :day => '12'})
391
+
392
+ assert_equal '/pages/2005/6',
393
+ rs.generate({:day => nil}, {:controller => 'content', :action => 'list_pages', :year => '2005', :month => '6', :day => '12'})
394
+
395
+ assert_equal '/pages/2005',
396
+ rs.generate({:day => nil, :month => nil}, {:controller => 'content', :action => 'list_pages', :year => '2005', :month => '6', :day => '12'})
397
+ end
398
+
399
+ def test_url_with_no_action_specified
400
+ rs.draw do |map|
401
+ map.connect '', :controller => 'content'
402
+ map.connect ':controller/:action/:id'
403
+ end
404
+
405
+ assert_equal '/', rs.generate(:controller => 'content', :action => 'index')
406
+ assert_equal '/', rs.generate(:controller => 'content')
407
+ end
408
+
409
+ def test_named_url_with_no_action_specified
410
+ rs.draw do |map|
411
+ map.home '', :controller => 'content'
412
+ map.connect ':controller/:action/:id'
413
+ end
414
+
415
+ assert_equal '/', rs.generate(:controller => 'content', :action => 'index')
416
+ assert_equal '/', rs.generate(:controller => 'content')
417
+
418
+ x = setup_for_named_route.new
419
+ assert_equal({:controller => 'content', :action => 'index', :use_route => :home, :only_path => false},
420
+ x.send(:home_url))
421
+ end
422
+
423
+ def test_url_generated_when_forgetting_action
424
+ [{:controller => 'content', :action => 'index'}, {:controller => 'content'}].each do |hash|
425
+ rs.draw do |map|
426
+ map.home '', hash
427
+ map.connect ':controller/:action/:id'
428
+ end
429
+ assert_equal '/', rs.generate({:action => nil}, {:controller => 'content', :action => 'hello'})
430
+ assert_equal '/', rs.generate({:controller => 'content'})
431
+ assert_equal '/content/hi', rs.generate({:controller => 'content', :action => 'hi'})
432
+ end
433
+ end
434
+
435
+ def test_named_route_method
436
+ rs.draw do |map|
437
+ map.categories 'categories', :controller => 'content', :action => 'categories'
438
+ map.connect ':controller/:action/:id'
439
+ end
440
+
441
+ assert_equal '/categories', rs.generate(:controller => 'content', :action => 'categories')
442
+ assert_equal '/content/hi', rs.generate({:controller => 'content', :action => 'hi'})
443
+ end
444
+
445
+ def test_named_routes_array
446
+ test_named_route_method
447
+ assert_equal [:categories], rs.named_routes.names
448
+ end
449
+
450
+ def test_nil_defaults
451
+ rs.draw do |map|
452
+ map.connect 'journal',
453
+ :controller => 'content',
454
+ :action => 'list_journal',
455
+ :date => nil, :user_id => nil
456
+ map.connect ':controller/:action/:id'
457
+ end
458
+
459
+ assert_equal '/journal', rs.generate(:controller => 'content', :action => 'list_journal', :date => nil, :user_id => nil)
460
+ end
461
+
462
+ def setup_request_method_routes_for(method)
463
+ @request = ActionController::TestRequest.new
464
+ @request.env["REQUEST_METHOD"] = method
465
+ @request.request_uri = "/match"
466
+
467
+ rs.draw do |r|
468
+ r.connect '/match', :controller => 'books', :action => 'get', :conditions => { :method => :get }
469
+ r.connect '/match', :controller => 'books', :action => 'post', :conditions => { :method => :post }
470
+ r.connect '/match', :controller => 'books', :action => 'put', :conditions => { :method => :put }
471
+ r.connect '/match', :controller => 'books', :action => 'delete', :conditions => { :method => :delete }
472
+ end
473
+ end
474
+
475
+ %w(GET POST PUT DELETE).each do |request_method|
476
+ define_method("test_request_method_recognized_with_#{request_method}") do
477
+ begin
478
+ Object.const_set(:BooksController, Class.new(ActionController::Base))
479
+
480
+ setup_request_method_routes_for(request_method)
481
+
482
+ assert_nothing_raised { rs.recognize(@request) }
483
+ assert_equal request_method.downcase, @request.path_parameters[:action]
484
+ ensure
485
+ Object.send(:remove_const, :BooksController) rescue nil
486
+ end
487
+ end
488
+ end
489
+
490
+ def test_subpath_recognized
491
+ Object.const_set(:SubpathBooksController, Class.new(ActionController::Base))
492
+
493
+ rs.draw do |r|
494
+ r.connect '/books/:id;edit', :controller => 'subpath_books', :action => 'edit'
495
+ r.connect '/items/:id;:action', :controller => 'subpath_books'
496
+ r.connect '/posts/new;:action', :controller => 'subpath_books'
497
+ r.connect '/posts/:id', :controller => 'subpath_books', :action => "show"
498
+ end
499
+
500
+ hash = rs.recognize_path "/books/17;edit"
501
+ assert_not_nil hash
502
+ assert_equal %w(subpath_books 17 edit), [hash[:controller], hash[:id], hash[:action]]
503
+
504
+ hash = rs.recognize_path "/items/3;complete"
505
+ assert_not_nil hash
506
+ assert_equal %w(subpath_books 3 complete), [hash[:controller], hash[:id], hash[:action]]
507
+
508
+ hash = rs.recognize_path "/posts/new;preview"
509
+ assert_not_nil hash
510
+ assert_equal %w(subpath_books preview), [hash[:controller], hash[:action]]
511
+
512
+ hash = rs.recognize_path "/posts/7"
513
+ assert_not_nil hash
514
+ assert_equal %w(subpath_books show 7), [hash[:controller], hash[:action], hash[:id]]
515
+ ensure
516
+ Object.send(:remove_const, :SubpathBooksController) rescue nil
517
+ end
518
+
519
+ def test_subpath_generated
520
+ Object.const_set(:SubpathBooksController, Class.new(ActionController::Base))
521
+
522
+ rs.draw do |r|
523
+ r.connect '/books/:id;edit', :controller => 'subpath_books', :action => 'edit'
524
+ r.connect '/items/:id;:action', :controller => 'subpath_books'
525
+ r.connect '/posts/new;:action', :controller => 'subpath_books'
526
+ end
527
+
528
+ assert_equal "/books/7;edit", rs.generate(:controller => "subpath_books", :id => 7, :action => "edit")
529
+ assert_equal "/items/15;complete", rs.generate(:controller => "subpath_books", :id => 15, :action => "complete")
530
+ assert_equal "/posts/new;preview", rs.generate(:controller => "subpath_books", :action => "preview")
531
+ ensure
532
+ Object.send(:remove_const, :SubpathBooksController) rescue nil
533
+ end
534
+ end
535
+
536
+ class SegmentTest < Test::Unit::TestCase
537
+
538
+ def test_first_segment_should_interpolate_for_structure
539
+ s = ROUTING::Segment.new
540
+ def s.interpolation_statement(array) 'hello' end
541
+ assert_equal 'hello', s.continue_string_structure([])
542
+ end
543
+
544
+ def test_interpolation_statement
545
+ s = ROUTING::StaticSegment.new
546
+ s.value = "Hello"
547
+ assert_equal "Hello", eval(s.interpolation_statement([]))
548
+ assert_equal "HelloHello", eval(s.interpolation_statement([s]))
549
+
550
+ s2 = ROUTING::StaticSegment.new
551
+ s2.value = "-"
552
+ assert_equal "Hello-Hello", eval(s.interpolation_statement([s, s2]))
553
+
554
+ s3 = ROUTING::StaticSegment.new
555
+ s3.value = "World"
556
+ assert_equal "Hello-World", eval(s3.interpolation_statement([s, s2]))
557
+ end
558
+
559
+ end
560
+
561
+ class StaticSegmentTest < Test::Unit::TestCase
562
+
563
+ def test_interpolation_chunk_should_respect_raw
564
+ s = ROUTING::StaticSegment.new
565
+ s.value = 'Hello/World'
566
+ assert ! s.raw?
567
+ assert_equal 'Hello/World', CGI.unescape(s.interpolation_chunk)
568
+
569
+ s.raw = true
570
+ assert s.raw?
571
+ assert_equal 'Hello/World', s.interpolation_chunk
572
+ end
573
+
574
+ def test_regexp_chunk_should_escape_specials
575
+ s = ROUTING::StaticSegment.new
576
+
577
+ s.value = 'Hello*World'
578
+ assert_equal 'Hello\*World', s.regexp_chunk
579
+
580
+ s.value = 'HelloWorld'
581
+ assert_equal 'HelloWorld', s.regexp_chunk
582
+ end
583
+
584
+ def test_regexp_chunk_should_add_question_mark_for_optionals
585
+ s = ROUTING::StaticSegment.new
586
+ s.value = "/"
587
+ s.is_optional = true
588
+ assert_equal "/?", s.regexp_chunk
589
+
590
+ s.value = "hello"
591
+ assert_equal "(?:hello)?", s.regexp_chunk
592
+ end
593
+
594
+ end
595
+
596
+ class DynamicSegmentTest < Test::Unit::TestCase
597
+
598
+ def segment
599
+ unless @segment
600
+ @segment = ROUTING::DynamicSegment.new
601
+ @segment.key = :a
602
+ end
603
+ @segment
604
+ end
605
+
606
+ def test_extract_value
607
+ s = ROUTING::DynamicSegment.new
608
+ s.key = :a
609
+
610
+ hash = {:a => '10', :b => '20'}
611
+ assert_equal '10', eval(s.extract_value)
612
+
613
+ hash = {:b => '20'}
614
+ assert_equal nil, eval(s.extract_value)
615
+
616
+ s.default = '20'
617
+ assert_equal '20', eval(s.extract_value)
618
+ end
619
+
620
+ def test_default_local_name
621
+ assert_equal 'a_value', segment.local_name,
622
+ "Unexpected name -- all value_check tests will fail!"
623
+ end
624
+
625
+ def test_presence_value_check
626
+ a_value = 10
627
+ assert eval(segment.value_check)
628
+ end
629
+
630
+ def test_regexp_value_check_rejects_nil
631
+ segment.regexp = /\d+/
632
+ a_value = nil
633
+ assert ! eval(segment.value_check)
634
+ end
635
+
636
+ def test_optional_regexp_value_check_should_accept_nil
637
+ segment.regexp = /\d+/
638
+ segment.is_optional = true
639
+ a_value = nil
640
+ assert eval(segment.value_check)
641
+ end
642
+
643
+ def test_regexp_value_check_rejects_no_match
644
+ segment.regexp = /\d+/
645
+
646
+ a_value = "Hello20World"
647
+ assert ! eval(segment.value_check)
648
+
649
+ a_value = "20Hi"
650
+ assert ! eval(segment.value_check)
651
+ end
652
+
653
+ def test_regexp_value_check_accepts_match
654
+ segment.regexp = /\d+/
655
+
656
+ a_value = "30"
657
+ assert eval(segment.value_check)
658
+ end
659
+
660
+ def test_value_check_fails_on_nil
661
+ a_value = nil
662
+ assert ! eval(segment.value_check)
663
+ end
664
+
665
+ def test_optional_value_needs_no_check
666
+ segment.is_optional = true
667
+ a_value = nil
668
+ assert_equal nil, segment.value_check
669
+ end
670
+
671
+ def test_regexp_value_check_should_accept_match_with_default
672
+ segment.regexp = /\d+/
673
+ segment.default = '200'
674
+
675
+ a_value = '100'
676
+ assert eval(segment.value_check)
677
+ end
678
+
679
+ def test_expiry_should_not_trigger_once_expired
680
+ expired = true
681
+ hash = merged = {:a => 2, :b => 3}
682
+ options = {:b => 3}
683
+ expire_on = Hash.new { raise 'No!!!' }
684
+
685
+ eval(segment.expiry_statement)
686
+ rescue RuntimeError
687
+ flunk "Expiry check should not have occured!"
688
+ end
689
+
690
+ def test_expiry_should_occur_according_to_expire_on
691
+ expired = false
692
+ hash = merged = {:a => 2, :b => 3}
693
+ options = {:b => 3}
694
+
695
+ expire_on = {:b => true, :a => false}
696
+ eval(segment.expiry_statement)
697
+ assert !expired
698
+ assert_equal({:a => 2, :b => 3}, hash)
699
+
700
+ expire_on = {:b => true, :a => true}
701
+ eval(segment.expiry_statement)
702
+ assert expired
703
+ assert_equal({:b => 3}, hash)
704
+ end
705
+
706
+ def test_extraction_code_should_return_on_nil
707
+ hash = merged = {:b => 3}
708
+ options = {:b => 3}
709
+ a_value = nil
710
+
711
+ # Local jump because of return inside eval.
712
+ assert_raises(LocalJumpError) { eval(segment.extraction_code) }
713
+ end
714
+
715
+ def test_extraction_code_should_return_on_mismatch
716
+ segment.regexp = /\d+/
717
+ hash = merged = {:a => 'Hi', :b => '3'}
718
+ options = {:b => '3'}
719
+ a_value = nil
720
+
721
+ # Local jump because of return inside eval.
722
+ assert_raises(LocalJumpError) { eval(segment.extraction_code) }
723
+ end
724
+
725
+ def test_extraction_code_should_accept_value_and_set_local
726
+ hash = merged = {:a => 'Hi', :b => '3'}
727
+ options = {:b => '3'}
728
+ a_value = nil
729
+ expired = true
730
+
731
+ eval(segment.extraction_code)
732
+ assert_equal 'Hi', a_value
733
+ end
734
+
735
+ def test_extraction_should_work_without_value_check
736
+ segment.default = 'hi'
737
+ hash = merged = {:b => '3'}
738
+ options = {:b => '3'}
739
+ a_value = nil
740
+ expired = true
741
+
742
+ eval(segment.extraction_code)
743
+ assert_equal 'hi', a_value
744
+ end
745
+
746
+ def test_extraction_code_should_perform_expiry
747
+ expired = false
748
+ hash = merged = {:a => 'Hi', :b => '3'}
749
+ options = {:b => '3'}
750
+ expire_on = {:a => true}
751
+ a_value = nil
752
+
753
+ eval(segment.extraction_code)
754
+ assert_equal 'Hi', a_value
755
+ assert expired
756
+ assert_equal options, hash
757
+ end
758
+
759
+ def test_interpolation_chunk_should_replace_value
760
+ a_value = 'Hi'
761
+ assert_equal a_value, eval(%("#{segment.interpolation_chunk}"))
762
+ end
763
+
764
+ def test_value_regexp_should_be_nil_without_regexp
765
+ assert_equal nil, segment.value_regexp
766
+ end
767
+
768
+ def test_value_regexp_should_match_exacly
769
+ segment.regexp = /\d+/
770
+ assert_no_match segment.value_regexp, "Hello 10 World"
771
+ assert_no_match segment.value_regexp, "Hello 10"
772
+ assert_no_match segment.value_regexp, "10 World"
773
+ assert_match segment.value_regexp, "10"
774
+ end
775
+
776
+ def test_regexp_chunk_should_return_string
777
+ segment.regexp = /\d+/
778
+ assert_kind_of String, segment.regexp_chunk
779
+ end
780
+
781
+ end
782
+
783
+ class ControllerSegmentTest < Test::Unit::TestCase
784
+
785
+ def test_regexp_should_only_match_possible_controllers
786
+ ActionController::Routing.with_controllers %w(admin/accounts admin/users account pages) do
787
+ cs = ROUTING::ControllerSegment.new :controller
788
+ regexp = %r{\A#{cs.regexp_chunk}\Z}
789
+
790
+ ActionController::Routing.possible_controllers.each do |name|
791
+ assert_match regexp, name
792
+ assert_no_match regexp, "#{name}_fake"
793
+
794
+ match = regexp.match name
795
+ assert_equal name, match[1]
796
+ end
797
+ end
798
+ end
799
+
800
+ end
801
+
802
+ class RouteTest < Test::Unit::TestCase
803
+
804
+ def setup
805
+ @route = ROUTING::Route.new
806
+ end
807
+
808
+ def slash_segment(is_optional = false)
809
+ returning ROUTING::DividerSegment.new('/') do |s|
810
+ s.is_optional = is_optional
811
+ end
812
+ end
813
+
814
+ def default_route
815
+ unless @default_route
816
+ @default_route = ROUTING::Route.new
817
+
818
+ @default_route.segments << (s = ROUTING::StaticSegment.new)
819
+ s.value = '/'
820
+ s.raw = true
821
+
822
+ @default_route.segments << (s = ROUTING::DynamicSegment.new)
823
+ s.key = :controller
824
+
825
+ @default_route.segments << slash_segment(:optional)
826
+ @default_route.segments << (s = ROUTING::DynamicSegment.new)
827
+ s.key = :action
828
+ s.default = 'index'
829
+ s.is_optional = true
830
+
831
+ @default_route.segments << slash_segment(:optional)
832
+ @default_route.segments << (s = ROUTING::DynamicSegment.new)
833
+ s.key = :id
834
+ s.is_optional = true
835
+
836
+ @default_route.segments << slash_segment(:optional)
837
+ end
838
+ @default_route
839
+ end
840
+
841
+ def test_default_route_recognition
842
+ expected = {:controller => 'accounts', :action => 'show', :id => '10'}
843
+ assert_equal expected, default_route.recognize('/accounts/show/10')
844
+ assert_equal expected, default_route.recognize('/accounts/show/10/')
845
+
846
+ expected[:id] = 'jamis'
847
+ assert_equal expected, default_route.recognize('/accounts/show/jamis/')
848
+
849
+ expected.delete :id
850
+ assert_equal expected, default_route.recognize('/accounts/show')
851
+ assert_equal expected, default_route.recognize('/accounts/show/')
852
+
853
+ expected[:action] = 'index'
854
+ assert_equal expected, default_route.recognize('/accounts/')
855
+ assert_equal expected, default_route.recognize('/accounts')
856
+
857
+ assert_equal nil, default_route.recognize('/')
858
+ assert_equal nil, default_route.recognize('/accounts/how/goood/it/is/to/be/free')
859
+ end
860
+
861
+ def test_default_route_should_omit_default_action
862
+ o = {:controller => 'accounts', :action => 'index'}
863
+ assert_equal '/accounts', default_route.generate(o, o, {})
864
+ end
865
+
866
+ def test_default_route_should_include_default_action_when_id_present
867
+ o = {:controller => 'accounts', :action => 'index', :id => '20'}
868
+ assert_equal '/accounts/index/20', default_route.generate(o, o, {})
869
+ end
870
+
871
+ def test_default_route_should_work_with_action_but_no_id
872
+ o = {:controller => 'accounts', :action => 'list_all'}
873
+ assert_equal '/accounts/list_all', default_route.generate(o, o, {})
874
+ end
875
+
876
+ def test_parameter_shell
877
+ page_url = ROUTING::Route.new
878
+ page_url.requirements = {:controller => 'pages', :action => 'show', :id => /\d+/}
879
+ assert_equal({:controller => 'pages', :action => 'show'}, page_url.parameter_shell)
880
+ end
881
+
882
+ def test_defaults
883
+ route = ROUTING::RouteBuilder.new.build '/users/:id.:format', :controller => "users", :action => "show", :format => "html"
884
+ assert_equal(
885
+ { :controller => "users", :action => "show", :format => "html" },
886
+ route.defaults)
887
+ end
888
+
889
+ def test_builder_complains_without_controller
890
+ assert_raises(ArgumentError) do
891
+ ROUTING::RouteBuilder.new.build '/contact', :contoller => "contact", :action => "index"
892
+ end
893
+ end
894
+
895
+ def test_significant_keys_for_default_route
896
+ keys = default_route.significant_keys.sort_by {|k| k.to_s }
897
+ assert_equal [:action, :controller, :id], keys
898
+ end
899
+
900
+ def test_significant_keys
901
+ user_url = ROUTING::Route.new
902
+ user_url.segments << (s = ROUTING::StaticSegment.new)
903
+ s.value = '/'
904
+ s.raw = true
905
+
906
+ user_url.segments << (s = ROUTING::StaticSegment.new)
907
+ s.value = 'user'
908
+
909
+ user_url.segments << (s = ROUTING::StaticSegment.new)
910
+ s.value = '/'
911
+ s.raw = true
912
+ s.is_optional = true
913
+
914
+ user_url.segments << (s = ROUTING::DynamicSegment.new)
915
+ s.key = :user
916
+
917
+ user_url.segments << (s = ROUTING::StaticSegment.new)
918
+ s.value = '/'
919
+ s.raw = true
920
+ s.is_optional = true
921
+
922
+ user_url.requirements = {:controller => 'users', :action => 'show'}
923
+
924
+ keys = user_url.significant_keys.sort_by { |k| k.to_s }
925
+ assert_equal [:action, :controller, :user], keys
926
+ end
927
+
928
+ def test_build_empty_query_string
929
+ assert_equal '', @route.build_query_string({})
930
+ end
931
+
932
+ def test_build_query_string_with_nil_value
933
+ assert_equal '', @route.build_query_string({:x => nil})
934
+ end
935
+
936
+ def test_simple_build_query_string
937
+ assert_equal '?x=1&y=2', order_query_string(@route.build_query_string(:x => '1', :y => '2'))
938
+ end
939
+
940
+ def test_convert_ints_build_query_string
941
+ assert_equal '?x=1&y=2', order_query_string(@route.build_query_string(:x => 1, :y => 2))
942
+ end
943
+
944
+ def test_escape_spaces_build_query_string
945
+ assert_equal '?x=hello+world&y=goodbye+world', order_query_string(@route.build_query_string(:x => 'hello world', :y => 'goodbye world'))
946
+ end
947
+
948
+ def test_expand_array_build_query_string
949
+ assert_equal '?x[]=1&x[]=2', order_query_string(@route.build_query_string(:x => [1, 2]))
950
+ end
951
+
952
+ def test_escape_spaces_build_query_string_selected_keys
953
+ assert_equal '?x=hello+world', order_query_string(@route.build_query_string({:x => 'hello world', :y => 'goodbye world'}, [:x]))
954
+ end
955
+
956
+ private
957
+ def order_query_string(qs)
958
+ '?' + qs[1..-1].split('&').sort.join('&')
959
+ end
960
+ end
961
+
962
+ class RouteBuilderTest < Test::Unit::TestCase
963
+
964
+ def builder
965
+ @builder ||= ROUTING::RouteBuilder.new
966
+ end
967
+
968
+ def build(path, options)
969
+ builder.build(path, options)
970
+ end
971
+
972
+ def test_options_should_not_be_modified
973
+ requirements1 = { :id => /\w+/, :controller => /(?:[a-z](?:-?[a-z]+)*)/ }
974
+ requirements2 = requirements1.dup
975
+
976
+ assert_equal requirements1, requirements2
977
+
978
+ with_options(:controller => 'folder',
979
+ :requirements => requirements2) do |m|
980
+ m.build 'folders/new', :action => 'new'
981
+ end
982
+
983
+ assert_equal requirements1, requirements2
984
+ end
985
+
986
+ def test_segment_for_static
987
+ segment, rest = builder.segment_for 'ulysses'
988
+ assert_equal '', rest
989
+ assert_kind_of ROUTING::StaticSegment, segment
990
+ assert_equal 'ulysses', segment.value
991
+ end
992
+
993
+ def test_segment_for_action
994
+ segment, rest = builder.segment_for ':action'
995
+ assert_equal '', rest
996
+ assert_kind_of ROUTING::DynamicSegment, segment
997
+ assert_equal :action, segment.key
998
+ assert_equal 'index', segment.default
999
+ end
1000
+
1001
+ def test_segment_for_dynamic
1002
+ segment, rest = builder.segment_for ':login'
1003
+ assert_equal '', rest
1004
+ assert_kind_of ROUTING::DynamicSegment, segment
1005
+ assert_equal :login, segment.key
1006
+ assert_equal nil, segment.default
1007
+ assert ! segment.optional?
1008
+ end
1009
+
1010
+ def test_segment_for_with_rest
1011
+ segment, rest = builder.segment_for ':login/:action'
1012
+ assert_equal :login, segment.key
1013
+ assert_equal '/:action', rest
1014
+ segment, rest = builder.segment_for rest
1015
+ assert_equal '/', segment.value
1016
+ assert_equal ':action', rest
1017
+ segment, rest = builder.segment_for rest
1018
+ assert_equal :action, segment.key
1019
+ assert_equal '', rest
1020
+ end
1021
+
1022
+ def test_segments_for
1023
+ segments = builder.segments_for_route_path '/:controller/:action/:id'
1024
+
1025
+ assert_kind_of ROUTING::DividerSegment, segments[0]
1026
+ assert_equal '/', segments[2].value
1027
+
1028
+ assert_kind_of ROUTING::DynamicSegment, segments[1]
1029
+ assert_equal :controller, segments[1].key
1030
+
1031
+ assert_kind_of ROUTING::DividerSegment, segments[2]
1032
+ assert_equal '/', segments[2].value
1033
+
1034
+ assert_kind_of ROUTING::DynamicSegment, segments[3]
1035
+ assert_equal :action, segments[3].key
1036
+
1037
+ assert_kind_of ROUTING::DividerSegment, segments[4]
1038
+ assert_equal '/', segments[4].value
1039
+
1040
+ assert_kind_of ROUTING::DynamicSegment, segments[5]
1041
+ assert_equal :id, segments[5].key
1042
+ end
1043
+
1044
+ def test_segment_for_action
1045
+ s, r = builder.segment_for(':action/something/else')
1046
+ assert_equal '/something/else', r
1047
+ assert_equal :action, s.key
1048
+ end
1049
+
1050
+ def test_action_default_should_not_trigger_on_prefix
1051
+ s, r = builder.segment_for ':action_name/something/else'
1052
+ assert_equal '/something/else', r
1053
+ assert_equal :action_name, s.key
1054
+ assert_equal nil, s.default
1055
+ end
1056
+
1057
+ def test_divide_route_options
1058
+ segments = builder.segments_for_route_path '/cars/:action/:person/:car/'
1059
+ defaults, requirements = builder.divide_route_options(segments,
1060
+ :action => 'buy', :person => /\w+/, :car => /\w+/,
1061
+ :defaults => {:person => nil, :car => nil}
1062
+ )
1063
+
1064
+ assert_equal({:action => 'buy', :person => nil, :car => nil}, defaults)
1065
+ assert_equal({:person => /\w+/, :car => /\w+/}, requirements)
1066
+ end
1067
+
1068
+ def test_assign_route_options
1069
+ segments = builder.segments_for_route_path '/cars/:action/:person/:car/'
1070
+ defaults = {:action => 'buy', :person => nil, :car => nil}
1071
+ requirements = {:person => /\w+/, :car => /\w+/}
1072
+
1073
+ route_requirements = builder.assign_route_options(segments, defaults, requirements)
1074
+ assert_equal({}, route_requirements)
1075
+
1076
+ assert_equal :action, segments[3].key
1077
+ assert_equal 'buy', segments[3].default
1078
+
1079
+ assert_equal :person, segments[5].key
1080
+ assert_equal %r/\w+/, segments[5].regexp
1081
+ assert segments[5].optional?
1082
+
1083
+ assert_equal :car, segments[7].key
1084
+ assert_equal %r/\w+/, segments[7].regexp
1085
+ assert segments[7].optional?
1086
+ end
1087
+
1088
+ def test_assign_route_options_with_anchor_chars
1089
+ segments = builder.segments_for_route_path '/cars/:action/:person/:car/'
1090
+ defaults = {:action => 'buy', :person => nil, :car => nil}
1091
+ requirements = {:person => /\w+/, :car => /^\w+$/}
1092
+
1093
+ assert_raises ArgumentError do
1094
+ route_requirements = builder.assign_route_options(segments, defaults, requirements)
1095
+ end
1096
+
1097
+ requirements[:car] = /[^\/]+/
1098
+ route_requirements = builder.assign_route_options(segments, defaults, requirements)
1099
+ end
1100
+
1101
+
1102
+ def test_optional_segments_preceding_required_segments
1103
+ segments = builder.segments_for_route_path '/cars/:action/:person/:car/'
1104
+ defaults = {:action => 'buy', :person => nil, :car => "model-t"}
1105
+ assert builder.assign_route_options(segments, defaults, {}).empty?
1106
+
1107
+ 0.upto(1) { |i| assert !segments[i].optional?, "segment #{i} is optional and it shouldn't be" }
1108
+ assert segments[2].optional?
1109
+
1110
+ assert_equal nil, builder.warn_output # should only warn on the :person segment
1111
+ end
1112
+
1113
+ def test_segmentation_of_semicolon_path
1114
+ segments = builder.segments_for_route_path '/books/:id;:action'
1115
+ defaults = { :action => 'show' }
1116
+ assert builder.assign_route_options(segments, defaults, {}).empty?
1117
+ segments.each do |segment|
1118
+ assert ! segment.optional? || segment.key == :action
1119
+ end
1120
+ end
1121
+
1122
+ def test_segmentation_of_dot_path
1123
+ segments = builder.segments_for_route_path '/books/:action.rss'
1124
+ assert builder.assign_route_options(segments, {}, {}).empty?
1125
+ assert_equal 6, segments.length # "/", "books", "/", ":action", ".", "rss"
1126
+ assert !segments.any? { |seg| seg.optional? }
1127
+ end
1128
+
1129
+ def test_segmentation_of_dynamic_dot_path
1130
+ segments = builder.segments_for_route_path '/books/:action.:format'
1131
+ assert builder.assign_route_options(segments, {}, {}).empty?
1132
+ assert_equal 6, segments.length # "/", "books", "/", ":action", ".", ":format"
1133
+ assert !segments.any? { |seg| seg.optional? }
1134
+ assert_kind_of ROUTING::DynamicSegment, segments.last
1135
+ end
1136
+
1137
+ def test_assignment_of_default_options
1138
+ segments = builder.segments_for_route_path '/:controller/:action/:id/'
1139
+ action, id = segments[-4], segments[-2]
1140
+
1141
+ assert_equal :action, action.key
1142
+ assert_equal :id, id.key
1143
+ assert ! action.optional?
1144
+ assert ! id.optional?
1145
+
1146
+ builder.assign_default_route_options(segments)
1147
+
1148
+ assert_equal 'index', action.default
1149
+ assert action.optional?
1150
+ assert id.optional?
1151
+ end
1152
+
1153
+ def test_assignment_of_default_options_respects_existing_defaults
1154
+ segments = builder.segments_for_route_path '/:controller/:action/:id/'
1155
+ action, id = segments[-4], segments[-2]
1156
+
1157
+ assert_equal :action, action.key
1158
+ assert_equal :id, id.key
1159
+ action.default = 'show'
1160
+ action.is_optional = true
1161
+
1162
+ id.default = 'Welcome'
1163
+ id.is_optional = true
1164
+
1165
+ builder.assign_default_route_options(segments)
1166
+
1167
+ assert_equal 'show', action.default
1168
+ assert action.optional?
1169
+ assert_equal 'Welcome', id.default
1170
+ assert id.optional?
1171
+ end
1172
+
1173
+ def test_assignment_of_default_options_respects_regexps
1174
+ segments = builder.segments_for_route_path '/:controller/:action/:id/'
1175
+ action = segments[-4]
1176
+
1177
+ assert_equal :action, action.key
1178
+ action.regexp = /show|in/ # Use 'in' to check partial matches
1179
+
1180
+ builder.assign_default_route_options(segments)
1181
+
1182
+ assert_equal nil, action.default
1183
+ assert ! action.optional?
1184
+ end
1185
+
1186
+ def test_assignment_of_is_optional_when_default
1187
+ segments = builder.segments_for_route_path '/books/:action.rss'
1188
+ assert_equal segments[3].key, :action
1189
+ segments[3].default = 'changes'
1190
+ builder.ensure_required_segments(segments)
1191
+ assert ! segments[3].optional?
1192
+ end
1193
+
1194
+ def test_is_optional_is_assigned_to_default_segments
1195
+ segments = builder.segments_for_route_path '/books/:action'
1196
+ builder.assign_route_options(segments, {:action => 'index'}, {})
1197
+
1198
+ assert_equal segments[3].key, :action
1199
+ assert segments[3].optional?
1200
+ assert_kind_of ROUTING::DividerSegment, segments[2]
1201
+ assert segments[2].optional?
1202
+ end
1203
+
1204
+ # XXX is optional not being set right?
1205
+ # /blah/:defaulted_segment <-- is the second slash optional? it should be.
1206
+
1207
+ def test_route_build
1208
+ ActionController::Routing.with_controllers %w(users pages) do
1209
+ r = builder.build '/:controller/:action/:id/', :action => nil
1210
+
1211
+ [0, 2, 4].each do |i|
1212
+ assert_kind_of ROUTING::DividerSegment, r.segments[i]
1213
+ assert_equal '/', r.segments[i].value
1214
+ assert r.segments[i].optional? if i > 1
1215
+ end
1216
+
1217
+ assert_kind_of ROUTING::DynamicSegment, r.segments[1]
1218
+ assert_equal :controller, r.segments[1].key
1219
+ assert_equal nil, r.segments[1].default
1220
+
1221
+ assert_kind_of ROUTING::DynamicSegment, r.segments[3]
1222
+ assert_equal :action, r.segments[3].key
1223
+ assert_equal 'index', r.segments[3].default
1224
+
1225
+ assert_kind_of ROUTING::DynamicSegment, r.segments[5]
1226
+ assert_equal :id, r.segments[5].key
1227
+ assert r.segments[5].optional?
1228
+ end
1229
+ end
1230
+
1231
+ def test_slashes_are_implied
1232
+ routes = [
1233
+ builder.build('/:controller/:action/:id/', :action => nil),
1234
+ builder.build('/:controller/:action/:id', :action => nil),
1235
+ builder.build(':controller/:action/:id', :action => nil),
1236
+ builder.build('/:controller/:action/:id/', :action => nil)
1237
+ ]
1238
+ expected = routes.first.segments.length
1239
+ routes.each_with_index do |route, i|
1240
+ found = route.segments.length
1241
+ assert_equal expected, found, "Route #{i + 1} has #{found} segments, expected #{expected}"
1242
+ end
1243
+ end
1244
+
1245
+ end
1246
+
1247
+ class RouteSetTest < Test::Unit::TestCase
1248
+ class MockController
1249
+ attr_accessor :routes
1250
+
1251
+ def initialize(routes)
1252
+ self.routes = routes
1253
+ end
1254
+
1255
+ def url_for(options)
1256
+ only_path = options.delete(:only_path)
1257
+ path = routes.generate(options)
1258
+ only_path ? path : "http://named.route.test#{path}"
1259
+ end
1260
+ end
1261
+
1262
+ class MockRequest
1263
+ attr_accessor :path, :path_parameters, :host, :subdomains, :domain, :method
1264
+
1265
+ def initialize(values={})
1266
+ values.each { |key, value| send("#{key}=", value) }
1267
+ if values[:host]
1268
+ subdomain, self.domain = values[:host].split(/\./, 2)
1269
+ self.subdomains = [subdomain]
1270
+ end
1271
+ end
1272
+ end
1273
+
1274
+ def set
1275
+ @set ||= ROUTING::RouteSet.new
1276
+ end
1277
+
1278
+ def request
1279
+ @request ||= MockRequest.new(:host => "named.routes.test", :method => :get)
1280
+ end
1281
+
1282
+ def test_generate_extras
1283
+ set.draw { |m| m.connect ':controller/:action/:id' }
1284
+ path, extras = set.generate_extras(:controller => "foo", :action => "bar", :id => 15, :this => "hello", :that => "world")
1285
+ assert_equal "/foo/bar/15", path
1286
+ assert_equal %w(that this), extras.map(&:to_s).sort
1287
+ end
1288
+
1289
+ def test_extra_keys
1290
+ set.draw { |m| m.connect ':controller/:action/:id' }
1291
+ extras = set.extra_keys(:controller => "foo", :action => "bar", :id => 15, :this => "hello", :that => "world")
1292
+ assert_equal %w(that this), extras.map(&:to_s).sort
1293
+ end
1294
+
1295
+ def test_generate_extras_not_first
1296
+ set.draw do |map|
1297
+ map.connect ':controller/:action/:id.:format'
1298
+ map.connect ':controller/:action/:id'
1299
+ end
1300
+ path, extras = set.generate_extras(:controller => "foo", :action => "bar", :id => 15, :this => "hello", :that => "world")
1301
+ assert_equal "/foo/bar/15", path
1302
+ assert_equal %w(that this), extras.map(&:to_s).sort
1303
+ end
1304
+
1305
+ def test_generate_not_first
1306
+ set.draw do |map|
1307
+ map.connect ':controller/:action/:id.:format'
1308
+ map.connect ':controller/:action/:id'
1309
+ end
1310
+ assert_equal "/foo/bar/15?this=hello", set.generate(:controller => "foo", :action => "bar", :id => 15, :this => "hello")
1311
+ end
1312
+
1313
+ def test_extra_keys_not_first
1314
+ set.draw do |map|
1315
+ map.connect ':controller/:action/:id.:format'
1316
+ map.connect ':controller/:action/:id'
1317
+ end
1318
+ extras = set.extra_keys(:controller => "foo", :action => "bar", :id => 15, :this => "hello", :that => "world")
1319
+ assert_equal %w(that this), extras.map(&:to_s).sort
1320
+ end
1321
+
1322
+ def test_draw
1323
+ assert_equal 0, set.routes.size
1324
+ set.draw do |map|
1325
+ map.connect '/hello/world', :controller => 'a', :action => 'b'
1326
+ end
1327
+ assert_equal 1, set.routes.size
1328
+ end
1329
+
1330
+ def test_named_draw
1331
+ assert_equal 0, set.routes.size
1332
+ set.draw do |map|
1333
+ map.hello '/hello/world', :controller => 'a', :action => 'b'
1334
+ end
1335
+ assert_equal 1, set.routes.size
1336
+ assert_equal set.routes.first, set.named_routes[:hello]
1337
+ end
1338
+
1339
+ def test_later_named_routes_take_precedence
1340
+ set.draw do |map|
1341
+ map.hello '/hello/world', :controller => 'a', :action => 'b'
1342
+ map.hello '/hello', :controller => 'a', :action => 'b'
1343
+ end
1344
+ assert_equal set.routes.last, set.named_routes[:hello]
1345
+ end
1346
+
1347
+ def setup_named_route_test
1348
+ set.draw do |map|
1349
+ map.show '/people/:id', :controller => 'people', :action => 'show'
1350
+ map.index '/people', :controller => 'people', :action => 'index'
1351
+ map.multi '/people/go/:foo/:bar/joe/:id', :controller => 'people', :action => 'multi'
1352
+ map.users '/admin/users', :controller => 'admin/users', :action => 'index'
1353
+ end
1354
+
1355
+ klass = Class.new(MockController)
1356
+ set.named_routes.install(klass)
1357
+ klass.new(set)
1358
+ end
1359
+
1360
+ def test_named_route_hash_access_method
1361
+ controller = setup_named_route_test
1362
+
1363
+ assert_equal(
1364
+ { :controller => 'people', :action => 'show', :id => 5, :use_route => :show, :only_path => false },
1365
+ controller.send(:hash_for_show_url, :id => 5))
1366
+
1367
+ assert_equal(
1368
+ { :controller => 'people', :action => 'index', :use_route => :index, :only_path => false },
1369
+ controller.send(:hash_for_index_url))
1370
+
1371
+ assert_equal(
1372
+ { :controller => 'people', :action => 'show', :id => 5, :use_route => :show, :only_path => true },
1373
+ controller.send(:hash_for_show_path, :id => 5)
1374
+ )
1375
+ end
1376
+
1377
+ def test_named_route_url_method
1378
+ controller = setup_named_route_test
1379
+
1380
+ assert_equal "http://named.route.test/people/5", controller.send(:show_url, :id => 5)
1381
+ assert_equal "/people/5", controller.send(:show_path, :id => 5)
1382
+
1383
+ assert_equal "http://named.route.test/people", controller.send(:index_url)
1384
+ assert_equal "/people", controller.send(:index_path)
1385
+
1386
+ assert_equal "http://named.route.test/admin/users", controller.send(:users_url)
1387
+ assert_equal '/admin/users', controller.send(:users_path)
1388
+ assert_equal '/admin/users', set.generate(controller.send(:hash_for_users_url), {:controller => 'users', :action => 'index'})
1389
+ end
1390
+
1391
+ def test_namd_route_url_method_with_ordered_parameters
1392
+ controller = setup_named_route_test
1393
+ assert_equal "http://named.route.test/people/go/7/hello/joe/5",
1394
+ controller.send(:multi_url, 7, "hello", 5)
1395
+ end
1396
+
1397
+ def test_draw_default_route
1398
+ ActionController::Routing.with_controllers(['users']) do
1399
+ set.draw do |map|
1400
+ map.connect '/:controller/:action/:id'
1401
+ end
1402
+
1403
+ assert_equal 1, set.routes.size
1404
+ route = set.routes.first
1405
+
1406
+ assert route.segments.last.optional?
1407
+
1408
+ assert_equal '/users/show/10', set.generate(:controller => 'users', :action => 'show', :id => 10)
1409
+ assert_equal '/users/index/10', set.generate(:controller => 'users', :id => 10)
1410
+
1411
+ assert_equal({:controller => 'users', :action => 'index', :id => '10'}, set.recognize_path('/users/index/10'))
1412
+ assert_equal({:controller => 'users', :action => 'index', :id => '10'}, set.recognize_path('/users/index/10/'))
1413
+ end
1414
+ end
1415
+
1416
+ def test_draw_default_route_with_default_controller
1417
+ ActionController::Routing.with_controllers(['users']) do
1418
+ set.draw do |map|
1419
+ map.connect '/:controller/:action/:id', :controller => 'users'
1420
+ end
1421
+ assert_equal({:controller => 'users', :action => 'index'}, set.recognize_path('/'))
1422
+ end
1423
+ end
1424
+
1425
+ def test_route_with_parameter_shell
1426
+ ActionController::Routing.with_controllers(['users', 'pages']) do
1427
+ set.draw do |map|
1428
+ map.connect 'page/:id', :controller => 'pages', :action => 'show', :id => /\d+/
1429
+ map.connect '/:controller/:action/:id'
1430
+ end
1431
+
1432
+ assert_equal({:controller => 'pages', :action => 'index'}, set.recognize_path('/pages'))
1433
+ assert_equal({:controller => 'pages', :action => 'index'}, set.recognize_path('/pages/index'))
1434
+ assert_equal({:controller => 'pages', :action => 'list'}, set.recognize_path('/pages/list'))
1435
+
1436
+ assert_equal({:controller => 'pages', :action => 'show', :id => '10'}, set.recognize_path('/pages/show/10'))
1437
+ assert_equal({:controller => 'pages', :action => 'show', :id => '10'}, set.recognize_path('/page/10'))
1438
+ end
1439
+ end
1440
+
1441
+ def test_route_requirements_with_anchor_chars_are_invalid
1442
+ assert_raises ArgumentError do
1443
+ set.draw do |map|
1444
+ map.connect 'page/:id', :controller => 'pages', :action => 'show', :id => /^\d+/
1445
+ end
1446
+ end
1447
+ assert_raises ArgumentError do
1448
+ set.draw do |map|
1449
+ map.connect 'page/:id', :controller => 'pages', :action => 'show', :id => /\A\d+/
1450
+ end
1451
+ end
1452
+ assert_raises ArgumentError do
1453
+ set.draw do |map|
1454
+ map.connect 'page/:id', :controller => 'pages', :action => 'show', :id => /\d+$/
1455
+ end
1456
+ end
1457
+ assert_raises ArgumentError do
1458
+ set.draw do |map|
1459
+ map.connect 'page/:id', :controller => 'pages', :action => 'show', :id => /\d+\Z/
1460
+ end
1461
+ end
1462
+ assert_raises ArgumentError do
1463
+ set.draw do |map|
1464
+ map.connect 'page/:id', :controller => 'pages', :action => 'show', :id => /\d+\z/
1465
+ end
1466
+ end
1467
+ assert_nothing_raised do
1468
+ set.draw do |map|
1469
+ map.connect 'page/:id', :controller => 'pages', :action => 'show', :id => /\d+/, :name => /^(david|jamis)/
1470
+ end
1471
+ assert_raises ActionController::RoutingError do
1472
+ set.generate :controller => 'pages', :action => 'show', :id => 10
1473
+ end
1474
+ end
1475
+ end
1476
+
1477
+ def test_non_path_route_requirements_match_all
1478
+ set.draw do |map|
1479
+ map.connect 'page/37s', :controller => 'pages', :action => 'show', :name => /(jamis|david)/
1480
+ end
1481
+ assert_equal '/page/37s', set.generate(:controller => 'pages', :action => 'show', :name => 'jamis')
1482
+ assert_raises ActionController::RoutingError do
1483
+ set.generate(:controller => 'pages', :action => 'show', :name => 'not_jamis')
1484
+ end
1485
+ assert_raises ActionController::RoutingError do
1486
+ set.generate(:controller => 'pages', :action => 'show', :name => 'nor_jamis_and_david')
1487
+ end
1488
+ end
1489
+
1490
+ def test_recognize_with_encoded_id_and_regex
1491
+ set.draw do |map|
1492
+ map.connect 'page/:id', :controller => 'pages', :action => 'show', :id => /[a-zA-Z0-9 ]+/
1493
+ end
1494
+
1495
+ assert_equal({:controller => 'pages', :action => 'show', :id => '10'}, set.recognize_path('/page/10'))
1496
+ assert_equal({:controller => 'pages', :action => 'show', :id => 'hello world'}, set.recognize_path('/page/hello+world'))
1497
+ end
1498
+
1499
+ def test_recognize_with_conditions
1500
+ Object.const_set(:PeopleController, Class.new)
1501
+
1502
+ set.draw do |map|
1503
+ map.with_options(:controller => "people") do |people|
1504
+ people.people "/people", :action => "index", :conditions => { :method => :get }
1505
+ people.connect "/people", :action => "create", :conditions => { :method => :post }
1506
+ people.person "/people/:id", :action => "show", :conditions => { :method => :get }
1507
+ people.connect "/people/:id", :action => "update", :conditions => { :method => :put }
1508
+ people.connect "/people/:id", :action => "destroy", :conditions => { :method => :delete }
1509
+ end
1510
+ end
1511
+
1512
+ request.path = "/people"
1513
+ request.method = :get
1514
+ assert_nothing_raised { set.recognize(request) }
1515
+ assert_equal("index", request.path_parameters[:action])
1516
+
1517
+ request.method = :post
1518
+ assert_nothing_raised { set.recognize(request) }
1519
+ assert_equal("create", request.path_parameters[:action])
1520
+
1521
+ request.method = :put
1522
+ assert_nothing_raised { set.recognize(request) }
1523
+ assert_equal("update", request.path_parameters[:action])
1524
+
1525
+ request.method = :update
1526
+ assert_raises(ActionController::RoutingError) { set.recognize(request) }
1527
+
1528
+ request.path = "/people/5"
1529
+ request.method = :get
1530
+ assert_nothing_raised { set.recognize(request) }
1531
+ assert_equal("show", request.path_parameters[:action])
1532
+ assert_equal("5", request.path_parameters[:id])
1533
+
1534
+ request.method = :put
1535
+ assert_nothing_raised { set.recognize(request) }
1536
+ assert_equal("update", request.path_parameters[:action])
1537
+ assert_equal("5", request.path_parameters[:id])
1538
+
1539
+ request.method = :delete
1540
+ assert_nothing_raised { set.recognize(request) }
1541
+ assert_equal("destroy", request.path_parameters[:action])
1542
+ assert_equal("5", request.path_parameters[:id])
1543
+
1544
+ request.method = :post
1545
+ assert_raises(ActionController::RoutingError) { set.recognize(request) }
1546
+
1547
+ ensure
1548
+ Object.send(:remove_const, :PeopleController)
1549
+ end
1550
+
1551
+ def test_typo_recognition
1552
+ Object.const_set(:ArticlesController, Class.new)
1553
+
1554
+ set.draw do |map|
1555
+ map.connect 'articles/:year/:month/:day/:title',
1556
+ :controller => 'articles', :action => 'permalink',
1557
+ :year => /\d{4}/, :day => /\d{1,2}/, :month => /\d{1,2}/
1558
+ end
1559
+
1560
+ request.path = "/articles/2005/11/05/a-very-interesting-article"
1561
+ request.method = :get
1562
+ assert_nothing_raised { set.recognize(request) }
1563
+ assert_equal("permalink", request.path_parameters[:action])
1564
+ assert_equal("2005", request.path_parameters[:year])
1565
+ assert_equal("11", request.path_parameters[:month])
1566
+ assert_equal("05", request.path_parameters[:day])
1567
+ assert_equal("a-very-interesting-article", request.path_parameters[:title])
1568
+
1569
+ ensure
1570
+ Object.send(:remove_const, :ArticlesController)
1571
+ end
1572
+
1573
+ def test_routing_traversal_does_not_load_extra_classes
1574
+ assert !Object.const_defined?("Profiler__"), "Profiler should not be loaded"
1575
+ set.draw do |map|
1576
+ map.connect '/profile', :controller => 'profile'
1577
+ end
1578
+
1579
+ request.path = '/profile'
1580
+
1581
+ set.recognize(request) rescue nil
1582
+
1583
+ assert !Object.const_defined?("Profiler__"), "Profiler should not be loaded"
1584
+ end
1585
+
1586
+ def test_recognize_with_conditions_and_format
1587
+ Object.const_set(:PeopleController, Class.new)
1588
+
1589
+ set.draw do |map|
1590
+ map.with_options(:controller => "people") do |people|
1591
+ people.person "/people/:id", :action => "show", :conditions => { :method => :get }
1592
+ people.connect "/people/:id", :action => "update", :conditions => { :method => :put }
1593
+ people.connect "/people/:id.:_format", :action => "show", :conditions => { :method => :get }
1594
+ end
1595
+ end
1596
+
1597
+ request.path = "/people/5"
1598
+ request.method = :get
1599
+ assert_nothing_raised { set.recognize(request) }
1600
+ assert_equal("show", request.path_parameters[:action])
1601
+ assert_equal("5", request.path_parameters[:id])
1602
+
1603
+ request.method = :put
1604
+ assert_nothing_raised { set.recognize(request) }
1605
+ assert_equal("update", request.path_parameters[:action])
1606
+
1607
+ request.path = "/people/5.png"
1608
+ request.method = :get
1609
+ assert_nothing_raised { set.recognize(request) }
1610
+ assert_equal("show", request.path_parameters[:action])
1611
+ assert_equal("5", request.path_parameters[:id])
1612
+ assert_equal("png", request.path_parameters[:_format])
1613
+ ensure
1614
+ Object.send(:remove_const, :PeopleController)
1615
+ end
1616
+
1617
+ def test_deprecation_warning_for_root_route
1618
+ Object.const_set(:PeopleController, Class.new)
1619
+
1620
+ set.draw do |map|
1621
+ assert_deprecated do
1622
+ map.root('', :controller => "people")
1623
+ end
1624
+ end
1625
+ ensure
1626
+ Object.send(:remove_const, :PeopleController)
1627
+ end
1628
+
1629
+ def test_generate_with_default_action
1630
+ set.draw do |map|
1631
+ map.connect "/people", :controller => "people"
1632
+ map.connect "/people/list", :controller => "people", :action => "list"
1633
+ end
1634
+
1635
+ url = set.generate(:controller => "people", :action => "list")
1636
+ assert_equal "/people/list", url
1637
+ end
1638
+
1639
+ def test_generate_finds_best_fit
1640
+ set.draw do |map|
1641
+ map.connect "/people", :controller => "people", :action => "index"
1642
+ map.connect "/ws/people", :controller => "people", :action => "index", :ws => true
1643
+ end
1644
+
1645
+ url = set.generate(:controller => "people", :action => "index", :ws => true)
1646
+ assert_equal "/ws/people", url
1647
+ end
1648
+
1649
+ def test_generate_changes_controller_module
1650
+ set.draw { |map| map.connect ':controller/:action/:id' }
1651
+ current = { :controller => "bling/bloop", :action => "bap", :id => 9 }
1652
+ url = set.generate({:controller => "foo/bar", :action => "baz", :id => 7}, current)
1653
+ assert_equal "/foo/bar/baz/7", url
1654
+ end
1655
+
1656
+ def test_id_is_not_impossibly_sticky
1657
+ set.draw do |map|
1658
+ map.connect 'foo/:number', :controller => "people", :action => "index"
1659
+ map.connect ':controller/:action/:id'
1660
+ end
1661
+
1662
+ url = set.generate({:controller => "people", :action => "index", :number => 3},
1663
+ {:controller => "people", :action => "index", :id => "21"})
1664
+ assert_equal "/foo/3", url
1665
+ end
1666
+
1667
+ def test_id_is_sticky_when_it_ought_to_be
1668
+ set.draw do |map|
1669
+ map.connect ':controller/:id/:action'
1670
+ end
1671
+
1672
+ url = set.generate({:action => "destroy"}, {:controller => "people", :action => "show", :id => "7"})
1673
+ assert_equal "/people/7/destroy", url
1674
+ end
1675
+
1676
+ def test_use_static_path_when_possible
1677
+ set.draw do |map|
1678
+ map.connect 'about', :controller => "welcome", :action => "about"
1679
+ map.connect ':controller/:action/:id'
1680
+ end
1681
+
1682
+ url = set.generate({:controller => "welcome", :action => "about"},
1683
+ {:controller => "welcome", :action => "get", :id => "7"})
1684
+ assert_equal "/about", url
1685
+ end
1686
+
1687
+ def test_generate
1688
+ set.draw { |map| map.connect ':controller/:action/:id' }
1689
+
1690
+ args = { :controller => "foo", :action => "bar", :id => "7", :x => "y" }
1691
+ assert_equal "/foo/bar/7?x=y", set.generate(args)
1692
+ assert_equal ["/foo/bar/7", [:x]], set.generate_extras(args)
1693
+ assert_equal [:x], set.extra_keys(args)
1694
+ end
1695
+
1696
+ def test_named_routes_are_never_relative_to_modules
1697
+ set.draw do |map|
1698
+ map.connect "/connection/manage/:action", :controller => 'connection/manage'
1699
+ map.connect "/connection/connection", :controller => "connection/connection"
1700
+ map.family_connection "/connection", :controller => "connection"
1701
+ end
1702
+
1703
+ url = set.generate({:controller => "connection"}, {:controller => 'connection/manage'})
1704
+ assert_equal "/connection/connection", url
1705
+
1706
+ url = set.generate({:use_route => :family_connection, :controller => "connection"}, {:controller => 'connection/manage'})
1707
+ assert_equal "/connection", url
1708
+ end
1709
+
1710
+ def test_action_left_off_when_id_is_recalled
1711
+ set.draw do |map|
1712
+ map.connect ':controller/:action/:id'
1713
+ end
1714
+ assert_equal '/post', set.generate(
1715
+ {:controller => 'post', :action => 'index'},
1716
+ {:controller => 'post', :action => 'show', :id => '10'}
1717
+ )
1718
+ end
1719
+
1720
+ def test_query_params_will_be_shown_when_recalled
1721
+ set.draw do |map|
1722
+ map.connect 'show_post/:parameter', :controller => 'post', :action => 'show'
1723
+ map.connect ':controller/:action/:id'
1724
+ end
1725
+ assert_equal '/post/edit?parameter=1', set.generate(
1726
+ {:action => 'edit', :parameter => 1},
1727
+ {:controller => 'post', :action => 'show', :parameter => 1}
1728
+ )
1729
+ end
1730
+
1731
+ end
1732
+
1733
+ class RoutingTest < Test::Unit::TestCase
1734
+
1735
+ def test_possible_controllers
1736
+ true_controller_paths = ActionController::Routing.controller_paths
1737
+
1738
+ ActionController::Routing.use_controllers! nil
1739
+
1740
+ silence_warnings do
1741
+ Object.send(:const_set, :RAILS_ROOT, File.dirname(__FILE__) + '/controller_fixtures')
1742
+ end
1743
+
1744
+ ActionController::Routing.controller_paths = [
1745
+ RAILS_ROOT, RAILS_ROOT + '/app/controllers', RAILS_ROOT + '/vendor/plugins/bad_plugin/lib'
1746
+ ]
1747
+
1748
+ assert_equal ["admin/user", "plugin", "user"], ActionController::Routing.possible_controllers.sort
1749
+ ensure
1750
+ if true_controller_paths
1751
+ ActionController::Routing.controller_paths = true_controller_paths
1752
+ end
1753
+ ActionController::Routing.use_controllers! nil
1754
+ Object.send(:remove_const, :RAILS_ROOT) rescue nil
1755
+ end
1756
+
1757
+ def test_possible_controllers_are_reset_on_each_load
1758
+ true_possible_controllers = ActionController::Routing.possible_controllers
1759
+ true_controller_paths = ActionController::Routing.controller_paths
1760
+
1761
+ ActionController::Routing.use_controllers! nil
1762
+ root = File.dirname(__FILE__) + '/controller_fixtures'
1763
+
1764
+ ActionController::Routing.controller_paths = []
1765
+ assert_equal [], ActionController::Routing.possible_controllers
1766
+
1767
+ ActionController::Routing::Routes.load!
1768
+ ActionController::Routing.controller_paths = [
1769
+ root, root + '/app/controllers', root + '/vendor/plugins/bad_plugin/lib'
1770
+ ]
1771
+
1772
+ assert_equal ["admin/user", "plugin", "user"], ActionController::Routing.possible_controllers.sort
1773
+ ensure
1774
+ ActionController::Routing.controller_paths = true_controller_paths
1775
+ ActionController::Routing.use_controllers! true_possible_controllers
1776
+ Object.send(:remove_const, :RAILS_ROOT) rescue nil
1777
+
1778
+ ActionController::Routing::Routes.clear!
1779
+ ActionController::Routing::Routes.load_routes!
1780
+ end
1781
+
1782
+ def test_with_controllers
1783
+ c = %w(admin/accounts admin/users account pages)
1784
+ ActionController::Routing.with_controllers c do
1785
+ assert_equal c, ActionController::Routing.possible_controllers
1786
+ end
1787
+ end
1788
+
1789
+ def test_normalize_unix_paths
1790
+ load_paths = %w(. config/../app/controllers config/../app//helpers script/../config/../vendor/rails/actionpack/lib vendor/rails/railties/builtin/rails_info app/models lib script/../config/../foo/bar/../../app/models)
1791
+ paths = ActionController::Routing.normalize_paths(load_paths)
1792
+ assert_equal %w(vendor/rails/railties/builtin/rails_info vendor/rails/actionpack/lib app/controllers app/helpers app/models lib .), paths
1793
+ end
1794
+
1795
+ def test_normalize_windows_paths
1796
+ load_paths = %w(. config\\..\\app\\controllers config\\..\\app\\\\helpers script\\..\\config\\..\\vendor\\rails\\actionpack\\lib vendor\\rails\\railties\\builtin\\rails_info app\\models lib script\\..\\config\\..\\foo\\bar\\..\\..\\app\\models)
1797
+ paths = ActionController::Routing.normalize_paths(load_paths)
1798
+ assert_equal %w(vendor\\rails\\railties\\builtin\\rails_info vendor\\rails\\actionpack\\lib app\\controllers app\\helpers app\\models lib .), paths
1799
+ end
1800
+
1801
+ end