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,72 @@
1
+ require 'test/unit'
2
+ require File.dirname(__FILE__) + '/../../lib/action_view/helpers/benchmark_helper'
3
+
4
+ class BenchmarkHelperTest < Test::Unit::TestCase
5
+ include ActionView::Helpers::BenchmarkHelper
6
+
7
+ class MockLogger
8
+ attr_reader :logged
9
+
10
+ def initialize
11
+ @logged = []
12
+ end
13
+
14
+ def method_missing(method, *args)
15
+ @logged << [method, args]
16
+ end
17
+ end
18
+
19
+ def setup
20
+ @logger = MockLogger.new
21
+ end
22
+
23
+ def test_without_logger_or_block
24
+ @logger = nil
25
+ assert_nothing_raised { benchmark }
26
+ end
27
+
28
+ def test_without_block
29
+ assert_raise(LocalJumpError) { benchmark }
30
+ assert @logger.logged.empty?
31
+ end
32
+
33
+ def test_without_logger
34
+ @logger = nil
35
+ i_was_run = false
36
+ benchmark { i_was_run = true }
37
+ assert !i_was_run
38
+ end
39
+
40
+ def test_defaults
41
+ i_was_run = false
42
+ benchmark { i_was_run = true }
43
+ assert i_was_run
44
+ assert 1, @logger.logged.size
45
+ assert_last_logged
46
+ end
47
+
48
+ def test_with_message
49
+ i_was_run = false
50
+ benchmark('test_run') { i_was_run = true }
51
+ assert i_was_run
52
+ assert 1, @logger.logged.size
53
+ assert_last_logged 'test_run'
54
+ end
55
+
56
+ def test_with_message_and_level
57
+ i_was_run = false
58
+ benchmark('debug_run', :debug) { i_was_run = true }
59
+ assert i_was_run
60
+ assert 1, @logger.logged.size
61
+ assert_last_logged 'debug_run', :debug
62
+ end
63
+
64
+ private
65
+ def assert_last_logged(message = 'Benchmarking', level = :info)
66
+ last = @logger.logged.last
67
+ assert 2, last.size
68
+ assert_equal level, last.first
69
+ assert 1, last[1].size
70
+ assert last[1][0] =~ /^#{message} \(.*\)$/
71
+ end
72
+ end
@@ -0,0 +1,135 @@
1
+ require 'test/unit'
2
+ require File.dirname(__FILE__) + '/../../lib/action_view/helpers/date_helper'
3
+ require File.dirname(__FILE__) + '/../../lib/action_view/compiled_templates'
4
+ require File.dirname(__FILE__) + "/../abstract_unit"
5
+
6
+ class CompiledTemplateTests < Test::Unit::TestCase
7
+
8
+ def setup
9
+ @ct = ActionView::CompiledTemplates.new
10
+ @v = Class.new
11
+ @v.send :include, @ct
12
+ @a = './test_compile_template_a.rhtml'
13
+ @b = './test_compile_template_b.rhtml'
14
+ @s = './test_compile_template_link.rhtml'
15
+ end
16
+ def teardown
17
+ [@a, @b, @s].each do |f|
18
+ `rm #{f}` if File.exist?(f) || File.symlink?(f)
19
+ end
20
+ end
21
+ attr_reader :ct, :v
22
+
23
+ def test_name_allocation
24
+ hi_world = ct.method_names['hi world']
25
+ hi_sexy = ct.method_names['hi sexy']
26
+ wish_upon_a_star = ct.method_names['I love seeing decent error messages']
27
+
28
+ assert_equal hi_world, ct.method_names['hi world']
29
+ assert_equal hi_sexy, ct.method_names['hi sexy']
30
+ assert_equal wish_upon_a_star, ct.method_names['I love seeing decent error messages']
31
+ assert_equal 3, [hi_world, hi_sexy, wish_upon_a_star].uniq.length
32
+ end
33
+
34
+ def test_wrap_source
35
+ assert_equal(
36
+ "def aliased_assignment(value)\nself.value = value\nend",
37
+ @ct.wrap_source(:aliased_assignment, [:value], 'self.value = value')
38
+ )
39
+
40
+ assert_equal(
41
+ "def simple()\nnil\nend",
42
+ @ct.wrap_source(:simple, [], 'nil')
43
+ )
44
+ end
45
+
46
+ def test_compile_source_single_method
47
+ selector = ct.compile_source('doubling method', [:a], 'a + a')
48
+ assert_equal 2, @v.new.send(selector, 1)
49
+ assert_equal 4, @v.new.send(selector, 2)
50
+ assert_equal -4, @v.new.send(selector, -2)
51
+ assert_equal 0, @v.new.send(selector, 0)
52
+ selector
53
+ end
54
+
55
+ def test_compile_source_two_method
56
+ sel1 = test_compile_source_single_method # compile the method in the other test
57
+ sel2 = ct.compile_source('doubling method', [:a, :b], 'a + b + a + b')
58
+ assert_not_equal sel1, sel2
59
+
60
+ assert_equal 2, @v.new.send(sel1, 1)
61
+ assert_equal 4, @v.new.send(sel1, 2)
62
+
63
+ assert_equal 6, @v.new.send(sel2, 1, 2)
64
+ assert_equal 32, @v.new.send(sel2, 15, 1)
65
+ end
66
+
67
+ def test_mtime
68
+ t1 = Time.now
69
+ test_compile_source_single_method
70
+ assert (t1..Time.now).include?(ct.mtime('doubling method', [:a]))
71
+ end
72
+
73
+ def test_compile_time
74
+ `echo '#{@a}' > #{@a}; echo '#{@b}' > #{@b}; ln -s #{@a} #{@s}`
75
+
76
+ v = ActionView::Base.new
77
+ v.base_path = '.'
78
+ v.cache_template_loading = false;
79
+
80
+ sleep 1
81
+ t = Time.now
82
+ v.compile_and_render_template(:rhtml, '', @a)
83
+ v.compile_and_render_template(:rhtml, '', @b)
84
+ v.compile_and_render_template(:rhtml, '', @s)
85
+ a_n = v.method_names[@a]
86
+ b_n = v.method_names[@b]
87
+ s_n = v.method_names[@s]
88
+ # all of the files have changed since last compile
89
+ assert v.compile_time[a_n] > t
90
+ assert v.compile_time[b_n] > t
91
+ assert v.compile_time[s_n] > t
92
+
93
+ sleep 1
94
+ t = Time.now
95
+ v.compile_and_render_template(:rhtml, '', @a)
96
+ v.compile_and_render_template(:rhtml, '', @b)
97
+ v.compile_and_render_template(:rhtml, '', @s)
98
+ # none of the files have changed since last compile
99
+ assert v.compile_time[a_n] < t
100
+ assert v.compile_time[b_n] < t
101
+ assert v.compile_time[s_n] < t
102
+
103
+ `rm #{@s}; ln -s #{@b} #{@s}`
104
+ v.compile_and_render_template(:rhtml, '', @a)
105
+ v.compile_and_render_template(:rhtml, '', @b)
106
+ v.compile_and_render_template(:rhtml, '', @s)
107
+ # the symlink has changed since last compile
108
+ assert v.compile_time[a_n] < t
109
+ assert v.compile_time[b_n] < t
110
+ assert v.compile_time[s_n] > t
111
+
112
+ sleep 1
113
+ `touch #{@b}`
114
+ t = Time.now
115
+ v.compile_and_render_template(:rhtml, '', @a)
116
+ v.compile_and_render_template(:rhtml, '', @b)
117
+ v.compile_and_render_template(:rhtml, '', @s)
118
+ # the file at the end of the symlink has changed since last compile
119
+ # both the symlink and the file at the end of it should be recompiled
120
+ assert v.compile_time[a_n] < t
121
+ assert v.compile_time[b_n] > t
122
+ assert v.compile_time[s_n] > t
123
+ end
124
+ end
125
+
126
+ module ActionView
127
+ class Base
128
+ def compile_time
129
+ @@compile_time
130
+ end
131
+ def method_names
132
+ @@method_names
133
+ end
134
+ end
135
+ end
@@ -0,0 +1,1322 @@
1
+ require 'test/unit'
2
+ require File.dirname(__FILE__) + "/../abstract_unit"
3
+
4
+ class DateHelperTest < Test::Unit::TestCase
5
+ include ActionView::Helpers::DateHelper
6
+ include ActionView::Helpers::FormHelper
7
+
8
+ silence_warnings do
9
+ Post = Struct.new("Post", :id, :written_on, :updated_at)
10
+ Post.class_eval do
11
+ def id
12
+ 123
13
+ end
14
+ def id_before_type_cast
15
+ 123
16
+ end
17
+ end
18
+ end
19
+
20
+ def test_distance_in_words
21
+ from = Time.mktime(2004, 3, 6, 21, 45, 0)
22
+
23
+ # 0..1 with include_seconds
24
+ assert_equal "less than 5 seconds", distance_of_time_in_words(from, from + 0.seconds, true)
25
+ assert_equal "less than 5 seconds", distance_of_time_in_words(from, from + 4.seconds, true)
26
+ assert_equal "less than 10 seconds", distance_of_time_in_words(from, from + 5.seconds, true)
27
+ assert_equal "less than 10 seconds", distance_of_time_in_words(from, from + 9.seconds, true)
28
+ assert_equal "less than 20 seconds", distance_of_time_in_words(from, from + 10.seconds, true)
29
+ assert_equal "less than 20 seconds", distance_of_time_in_words(from, from + 19.seconds, true)
30
+ assert_equal "half a minute", distance_of_time_in_words(from, from + 20.seconds, true)
31
+ assert_equal "half a minute", distance_of_time_in_words(from, from + 39.seconds, true)
32
+ assert_equal "less than a minute", distance_of_time_in_words(from, from + 40.seconds, true)
33
+ assert_equal "less than a minute", distance_of_time_in_words(from, from + 59.seconds, true)
34
+ assert_equal "1 minute", distance_of_time_in_words(from, from + 60.seconds, true)
35
+ assert_equal "1 minute", distance_of_time_in_words(from, from + 89.seconds, true)
36
+
37
+ # First case 0..1
38
+ assert_equal "less than a minute", distance_of_time_in_words(from, from + 0.seconds)
39
+ assert_equal "less than a minute", distance_of_time_in_words(from, from + 29.seconds)
40
+ assert_equal "1 minute", distance_of_time_in_words(from, from + 30.seconds)
41
+ assert_equal "1 minute", distance_of_time_in_words(from, from + 1.minutes + 29.seconds)
42
+
43
+ # 2..44
44
+ assert_equal "2 minutes", distance_of_time_in_words(from, from + 1.minutes + 30.seconds)
45
+ assert_equal "44 minutes", distance_of_time_in_words(from, from + 44.minutes + 29.seconds)
46
+
47
+ # 45..89
48
+ assert_equal "about 1 hour", distance_of_time_in_words(from, from + 44.minutes + 30.seconds)
49
+ assert_equal "about 1 hour", distance_of_time_in_words(from, from + 89.minutes + 29.seconds)
50
+
51
+ # 90..1439
52
+ assert_equal "about 2 hours", distance_of_time_in_words(from, from + 89.minutes + 30.seconds)
53
+ assert_equal "about 24 hours", distance_of_time_in_words(from, from + 23.hours + 59.minutes + 29.seconds)
54
+
55
+ # 1440..2879
56
+ assert_equal "1 day", distance_of_time_in_words(from, from + 23.hours + 59.minutes + 30.seconds)
57
+ assert_equal "1 day", distance_of_time_in_words(from, from + 47.hours + 59.minutes + 29.seconds)
58
+
59
+ # 2880..43199
60
+ assert_equal "2 days", distance_of_time_in_words(from, from + 47.hours + 59.minutes + 30.seconds)
61
+ assert_equal "29 days", distance_of_time_in_words(from, from + 29.days + 23.hours + 59.minutes + 29.seconds)
62
+
63
+ # 43200..86399
64
+ assert_equal "about 1 month", distance_of_time_in_words(from, from + 29.days + 23.hours + 59.minutes + 30.seconds)
65
+ assert_equal "about 1 month", distance_of_time_in_words(from, from + 59.days + 23.hours + 59.minutes + 29.seconds)
66
+
67
+ # 86400..525959
68
+ assert_equal "2 months", distance_of_time_in_words(from, from + 59.days + 23.hours + 59.minutes + 30.seconds)
69
+ assert_equal "12 months", distance_of_time_in_words(from, from + 1.years - 31.seconds)
70
+
71
+ # 525960..1051919
72
+ assert_equal "about 1 year", distance_of_time_in_words(from, from + 1.years - 30.seconds)
73
+ assert_equal "about 1 year", distance_of_time_in_words(from, from + 2.years - 31.seconds)
74
+
75
+ # > 1051920
76
+ assert_equal "over 2 years", distance_of_time_in_words(from, from + 2.years - 30.seconds)
77
+ assert_equal "over 10 years", distance_of_time_in_words(from, from + 10.years)
78
+
79
+ # test to < from
80
+ assert_equal "about 4 hours", distance_of_time_in_words(from + 4.hours, from)
81
+ assert_equal "less than 20 seconds", distance_of_time_in_words(from + 19.seconds, from, true)
82
+
83
+ # test with integers
84
+ assert_equal "less than a minute", distance_of_time_in_words(59)
85
+ assert_equal "about 1 hour", distance_of_time_in_words(60*60)
86
+ assert_equal "less than a minute", distance_of_time_in_words(0, 59)
87
+ assert_equal "about 1 hour", distance_of_time_in_words(60*60, 0)
88
+ end
89
+
90
+ def test_distance_in_words_with_dates
91
+ start_date = Date.new 1975, 1, 31
92
+ end_date = Date.new 1977, 1, 31
93
+ assert_equal("over 2 years", distance_of_time_in_words(start_date, end_date))
94
+ end
95
+
96
+ def test_time_ago_in_words
97
+ t = Time.now - 1.years
98
+ assert_equal "about 1 year", time_ago_in_words(t)
99
+ end
100
+
101
+ def test_select_day
102
+ expected = %(<select id="date_day" name="date[day]">\n)
103
+ expected << %(<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16" selected="selected">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
104
+ expected << "</select>\n"
105
+
106
+ assert_equal expected, select_day(Time.mktime(2003, 8, 16))
107
+ assert_equal expected, select_day(16)
108
+ end
109
+
110
+ def test_select_day_with_blank
111
+ expected = %(<select id="date_day" name="date[day]">\n)
112
+ expected << %(<option value=""></option>\n<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16" selected="selected">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
113
+ expected << "</select>\n"
114
+
115
+ assert_equal expected, select_day(Time.mktime(2003, 8, 16), :include_blank => true)
116
+ assert_equal expected, select_day(16, :include_blank => true)
117
+ end
118
+
119
+ def test_select_day_nil_with_blank
120
+ expected = %(<select id="date_day" name="date[day]">\n)
121
+ expected << %(<option value=""></option>\n<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
122
+ expected << "</select>\n"
123
+
124
+ assert_equal expected, select_day(nil, :include_blank => true)
125
+ end
126
+
127
+ def test_select_month
128
+ expected = %(<select id="date_month" name="date[month]">\n)
129
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8" selected="selected">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
130
+ expected << "</select>\n"
131
+
132
+ assert_equal expected, select_month(Time.mktime(2003, 8, 16))
133
+ assert_equal expected, select_month(8)
134
+ end
135
+
136
+ def test_select_month_with_disabled
137
+ expected = %(<select id="date_month" name="date[month]" disabled="disabled">\n)
138
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8" selected="selected">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
139
+ expected << "</select>\n"
140
+
141
+ assert_equal expected, select_month(Time.mktime(2003, 8, 16), :disabled => true)
142
+ assert_equal expected, select_month(8, :disabled => true)
143
+ end
144
+
145
+ def test_select_month_with_field_name_override
146
+ expected = %(<select id="date_mois" name="date[mois]">\n)
147
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8" selected="selected">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
148
+ expected << "</select>\n"
149
+
150
+ assert_equal expected, select_month(Time.mktime(2003, 8, 16), :field_name => 'mois')
151
+ assert_equal expected, select_month(8, :field_name => 'mois')
152
+ end
153
+
154
+ def test_select_month_with_blank
155
+ expected = %(<select id="date_month" name="date[month]">\n)
156
+ expected << %(<option value=""></option>\n<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8" selected="selected">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
157
+ expected << "</select>\n"
158
+
159
+ assert_equal expected, select_month(Time.mktime(2003, 8, 16), :include_blank => true)
160
+ assert_equal expected, select_month(8, :include_blank => true)
161
+ end
162
+
163
+ def test_select_month_nil_with_blank
164
+ expected = %(<select id="date_month" name="date[month]">\n)
165
+ expected << %(<option value=""></option>\n<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
166
+ expected << "</select>\n"
167
+
168
+ assert_equal expected, select_month(nil, :include_blank => true)
169
+ end
170
+
171
+ def test_select_month_with_numbers
172
+ expected = %(<select id="date_month" name="date[month]">\n)
173
+ expected << %(<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8" selected="selected">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n)
174
+ expected << "</select>\n"
175
+
176
+ assert_equal expected, select_month(Time.mktime(2003, 8, 16), :use_month_numbers => true)
177
+ assert_equal expected, select_month(8, :use_month_numbers => true)
178
+ end
179
+
180
+ def test_select_month_with_numbers_and_names
181
+ expected = %(<select id="date_month" name="date[month]">\n)
182
+ expected << %(<option value="1">1 - January</option>\n<option value="2">2 - February</option>\n<option value="3">3 - March</option>\n<option value="4">4 - April</option>\n<option value="5">5 - May</option>\n<option value="6">6 - June</option>\n<option value="7">7 - July</option>\n<option value="8" selected="selected">8 - August</option>\n<option value="9">9 - September</option>\n<option value="10">10 - October</option>\n<option value="11">11 - November</option>\n<option value="12">12 - December</option>\n)
183
+ expected << "</select>\n"
184
+
185
+ assert_equal expected, select_month(Time.mktime(2003, 8, 16), :add_month_numbers => true)
186
+ assert_equal expected, select_month(8, :add_month_numbers => true)
187
+ end
188
+
189
+ def test_select_month_with_numbers_and_names_with_abbv
190
+ expected = %(<select id="date_month" name="date[month]">\n)
191
+ expected << %(<option value="1">1 - Jan</option>\n<option value="2">2 - Feb</option>\n<option value="3">3 - Mar</option>\n<option value="4">4 - Apr</option>\n<option value="5">5 - May</option>\n<option value="6">6 - Jun</option>\n<option value="7">7 - Jul</option>\n<option value="8" selected="selected">8 - Aug</option>\n<option value="9">9 - Sep</option>\n<option value="10">10 - Oct</option>\n<option value="11">11 - Nov</option>\n<option value="12">12 - Dec</option>\n)
192
+ expected << "</select>\n"
193
+
194
+ assert_equal expected, select_month(Time.mktime(2003, 8, 16), :add_month_numbers => true, :use_short_month => true)
195
+ assert_equal expected, select_month(8, :add_month_numbers => true, :use_short_month => true)
196
+ end
197
+
198
+ def test_select_month_with_abbv
199
+ expected = %(<select id="date_month" name="date[month]">\n)
200
+ expected << %(<option value="1">Jan</option>\n<option value="2">Feb</option>\n<option value="3">Mar</option>\n<option value="4">Apr</option>\n<option value="5">May</option>\n<option value="6">Jun</option>\n<option value="7">Jul</option>\n<option value="8" selected="selected">Aug</option>\n<option value="9">Sep</option>\n<option value="10">Oct</option>\n<option value="11">Nov</option>\n<option value="12">Dec</option>\n)
201
+ expected << "</select>\n"
202
+
203
+ assert_equal expected, select_month(Time.mktime(2003, 8, 16), :use_short_month => true)
204
+ assert_equal expected, select_month(8, :use_short_month => true)
205
+ end
206
+
207
+ def test_select_month_with_custom_names
208
+ month_names = %w(nil Januar Februar Marts April Maj Juni Juli August September Oktober November December)
209
+
210
+ expected = %(<select id="date_month" name="date[month]">\n)
211
+ 1.upto(12) { |month| expected << %(<option value="#{month}"#{' selected="selected"' if month == 8}>#{month_names[month]}</option>\n) }
212
+ expected << "</select>\n"
213
+
214
+ assert_equal expected, select_month(Time.mktime(2003, 8, 16), :use_month_names => month_names)
215
+ assert_equal expected, select_month(8, :use_month_names => month_names)
216
+ end
217
+
218
+ def test_select_month_with_zero_indexed_custom_names
219
+ month_names = %w(Januar Februar Marts April Maj Juni Juli August September Oktober November December)
220
+
221
+ expected = %(<select id="date_month" name="date[month]">\n)
222
+ 1.upto(12) { |month| expected << %(<option value="#{month}"#{' selected="selected"' if month == 8}>#{month_names[month-1]}</option>\n) }
223
+ expected << "</select>\n"
224
+
225
+ assert_equal expected, select_month(Time.mktime(2003, 8, 16), :use_month_names => month_names)
226
+ assert_equal expected, select_month(8, :use_month_names => month_names)
227
+ end
228
+
229
+ def test_select_year
230
+ expected = %(<select id="date_year" name="date[year]">\n)
231
+ expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
232
+ expected << "</select>\n"
233
+
234
+ assert_equal expected, select_year(Time.mktime(2003, 8, 16), :start_year => 2003, :end_year => 2005)
235
+ assert_equal expected, select_year(2003, :start_year => 2003, :end_year => 2005)
236
+ end
237
+
238
+ def test_select_year_with_disabled
239
+ expected = %(<select id="date_year" name="date[year]" disabled="disabled">\n)
240
+ expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
241
+ expected << "</select>\n"
242
+
243
+ assert_equal expected, select_year(Time.mktime(2003, 8, 16), :disabled => true, :start_year => 2003, :end_year => 2005)
244
+ assert_equal expected, select_year(2003, :disabled => true, :start_year => 2003, :end_year => 2005)
245
+ end
246
+
247
+ def test_select_year_with_field_name_override
248
+ expected = %(<select id="date_annee" name="date[annee]">\n)
249
+ expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
250
+ expected << "</select>\n"
251
+
252
+ assert_equal expected, select_year(Time.mktime(2003, 8, 16), :start_year => 2003, :end_year => 2005, :field_name => 'annee')
253
+ assert_equal expected, select_year(2003, :start_year => 2003, :end_year => 2005, :field_name => 'annee')
254
+ end
255
+
256
+ def test_select_year_with_type_discarding
257
+ expected = %(<select id="date_year" name="date_year">\n)
258
+ expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
259
+ expected << "</select>\n"
260
+
261
+ assert_equal expected, select_year(
262
+ Time.mktime(2003, 8, 16), :prefix => "date_year", :discard_type => true, :start_year => 2003, :end_year => 2005)
263
+ assert_equal expected, select_year(
264
+ 2003, :prefix => "date_year", :discard_type => true, :start_year => 2003, :end_year => 2005)
265
+ end
266
+
267
+ def test_select_year_descending
268
+ expected = %(<select id="date_year" name="date[year]">\n)
269
+ expected << %(<option value="2005" selected="selected">2005</option>\n<option value="2004">2004</option>\n<option value="2003">2003</option>\n)
270
+ expected << "</select>\n"
271
+
272
+ assert_equal expected, select_year(Time.mktime(2005, 8, 16), :start_year => 2005, :end_year => 2003)
273
+ assert_equal expected, select_year(2005, :start_year => 2005, :end_year => 2003)
274
+ end
275
+
276
+ def test_select_hour
277
+ expected = %(<select id="date_hour" name="date[hour]">\n)
278
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08" selected="selected">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n)
279
+ expected << "</select>\n"
280
+
281
+ assert_equal expected, select_hour(Time.mktime(2003, 8, 16, 8, 4, 18))
282
+ end
283
+
284
+ def test_select_hour_with_disabled
285
+ expected = %(<select id="date_hour" name="date[hour]" disabled="disabled">\n)
286
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08" selected="selected">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n)
287
+ expected << "</select>\n"
288
+
289
+ assert_equal expected, select_hour(Time.mktime(2003, 8, 16, 8, 4, 18), :disabled => true)
290
+ end
291
+
292
+ def test_select_hour_with_field_name_override
293
+ expected = %(<select id="date_heure" name="date[heure]">\n)
294
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08" selected="selected">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n)
295
+ expected << "</select>\n"
296
+
297
+ assert_equal expected, select_hour(Time.mktime(2003, 8, 16, 8, 4, 18), :field_name => 'heure')
298
+ end
299
+
300
+ def test_select_hour_with_blank
301
+ expected = %(<select id="date_hour" name="date[hour]">\n)
302
+ expected << %(<option value=""></option>\n<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08" selected="selected">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n)
303
+ expected << "</select>\n"
304
+
305
+ assert_equal expected, select_hour(Time.mktime(2003, 8, 16, 8, 4, 18), :include_blank => true)
306
+ end
307
+
308
+ def test_select_hour_nil_with_blank
309
+ expected = %(<select id="date_hour" name="date[hour]">\n)
310
+ expected << %(<option value=""></option>\n<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n)
311
+ expected << "</select>\n"
312
+
313
+ assert_equal expected, select_hour(nil, :include_blank => true)
314
+ end
315
+
316
+ def test_select_minute
317
+ expected = %(<select id="date_minute" name="date[minute]">\n)
318
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04" selected="selected">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
319
+ expected << "</select>\n"
320
+
321
+ assert_equal expected, select_minute(Time.mktime(2003, 8, 16, 8, 4, 18))
322
+ end
323
+
324
+ def test_select_minute_with_disabled
325
+ expected = %(<select id="date_minute" name="date[minute]" disabled="disabled">\n)
326
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04" selected="selected">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
327
+ expected << "</select>\n"
328
+
329
+ assert_equal expected, select_minute(Time.mktime(2003, 8, 16, 8, 4, 18), :disabled => true)
330
+ end
331
+
332
+ def test_select_minute_with_field_name_override
333
+ expected = %(<select id="date_minuto" name="date[minuto]">\n)
334
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04" selected="selected">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
335
+ expected << "</select>\n"
336
+
337
+ assert_equal expected, select_minute(Time.mktime(2003, 8, 16, 8, 4, 18), :field_name => 'minuto')
338
+ end
339
+
340
+ def test_select_minute_with_blank
341
+ expected = %(<select id="date_minute" name="date[minute]">\n)
342
+ expected << %(<option value=""></option>\n<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04" selected="selected">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
343
+ expected << "</select>\n"
344
+
345
+ assert_equal expected, select_minute(Time.mktime(2003, 8, 16, 8, 4, 18), :include_blank => true)
346
+ end
347
+
348
+ def test_select_minute_with_blank_and_step
349
+ expected = %(<select id="date_minute" name="date[minute]">\n)
350
+ expected << %(<option value=""></option>\n<option value="00">00</option>\n<option value="15">15</option>\n<option value="30">30</option>\n<option value="45">45</option>\n)
351
+ expected << "</select>\n"
352
+
353
+ assert_equal expected, select_minute(Time.mktime(2003, 8, 16, 8, 4, 18), { :include_blank => true , :minute_step => 15 })
354
+ end
355
+
356
+ def test_select_minute_nil_with_blank
357
+ expected = %(<select id="date_minute" name="date[minute]">\n)
358
+ expected << %(<option value=""></option>\n<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
359
+ expected << "</select>\n"
360
+
361
+ assert_equal expected, select_minute(nil, :include_blank => true)
362
+ end
363
+
364
+ def test_select_minute_nil_with_blank_and_step
365
+ expected = %(<select id="date_minute" name="date[minute]">\n)
366
+ expected << %(<option value=""></option>\n<option value="00">00</option>\n<option value="15">15</option>\n<option value="30">30</option>\n<option value="45">45</option>\n)
367
+ expected << "</select>\n"
368
+
369
+ assert_equal expected, select_minute(nil, { :include_blank => true , :minute_step => 15 })
370
+ end
371
+
372
+ def test_select_second
373
+ expected = %(<select id="date_second" name="date[second]">\n)
374
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18" selected="selected">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
375
+ expected << "</select>\n"
376
+
377
+ assert_equal expected, select_second(Time.mktime(2003, 8, 16, 8, 4, 18))
378
+ end
379
+
380
+ def test_select_second_with_disabled
381
+ expected = %(<select id="date_second" name="date[second]" disabled="disabled">\n)
382
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18" selected="selected">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
383
+ expected << "</select>\n"
384
+
385
+ assert_equal expected, select_second(Time.mktime(2003, 8, 16, 8, 4, 18), :disabled => true)
386
+ end
387
+
388
+ def test_select_second_with_field_name_override
389
+ expected = %(<select id="date_segundo" name="date[segundo]">\n)
390
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18" selected="selected">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
391
+ expected << "</select>\n"
392
+
393
+ assert_equal expected, select_second(Time.mktime(2003, 8, 16, 8, 4, 18), :field_name => 'segundo')
394
+ end
395
+
396
+ def test_select_second_with_blank
397
+ expected = %(<select id="date_second" name="date[second]">\n)
398
+ expected << %(<option value=""></option>\n<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18" selected="selected">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
399
+ expected << "</select>\n"
400
+
401
+ assert_equal expected, select_second(Time.mktime(2003, 8, 16, 8, 4, 18), :include_blank => true)
402
+ end
403
+
404
+ def test_select_second_nil_with_blank
405
+ expected = %(<select id="date_second" name="date[second]">\n)
406
+ expected << %(<option value=""></option>\n<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
407
+ expected << "</select>\n"
408
+
409
+ assert_equal expected, select_second(nil, :include_blank => true)
410
+ end
411
+
412
+ def test_select_date
413
+ expected = %(<select id="date_first_year" name="date[first][year]">\n)
414
+ expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
415
+ expected << "</select>\n"
416
+
417
+ expected << %(<select id="date_first_month" name="date[first][month]">\n)
418
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8" selected="selected">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
419
+ expected << "</select>\n"
420
+
421
+ expected << %(<select id="date_first_day" name="date[first][day]">\n)
422
+ expected << %(<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16" selected="selected">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
423
+ expected << "</select>\n"
424
+
425
+ assert_equal expected, select_date(Time.mktime(2003, 8, 16), :start_year => 2003, :end_year => 2005, :prefix => "date[first]")
426
+ end
427
+
428
+ def test_select_date_with_order
429
+ expected = %(<select id="date_first_month" name="date[first][month]">\n)
430
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8" selected="selected">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
431
+ expected << "</select>\n"
432
+
433
+ expected << %(<select id="date_first_day" name="date[first][day]">\n)
434
+ expected << %(<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16" selected="selected">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
435
+ expected << "</select>\n"
436
+
437
+ expected << %(<select id="date_first_year" name="date[first][year]">\n)
438
+ expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
439
+ expected << "</select>\n"
440
+
441
+ assert_equal expected, select_date(Time.mktime(2003, 8, 16), :start_year => 2003, :end_year => 2005, :prefix => "date[first]", :order => [:month, :day, :year])
442
+ end
443
+
444
+ def test_select_date_with_incomplete_order
445
+ expected = %(<select id="date_first_day" name="date[first][day]">\n)
446
+ expected << %(<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16" selected="selected">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
447
+ expected << "</select>\n"
448
+
449
+ expected << %(<select id="date_first_year" name="date[first][year]">\n)
450
+ expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
451
+ expected << "</select>\n"
452
+
453
+ expected << %(<select id="date_first_month" name="date[first][month]">\n)
454
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8" selected="selected">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
455
+ expected << "</select>\n"
456
+
457
+ assert_equal expected, select_date(Time.mktime(2003, 8, 16), :start_year => 2003, :end_year => 2005, :prefix => "date[first]", :order => [:day])
458
+ end
459
+
460
+ def test_select_date_with_disabled
461
+ expected = %(<select id="date_first_year" name="date[first][year]" disabled="disabled">\n)
462
+ expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
463
+ expected << "</select>\n"
464
+
465
+ expected << %(<select id="date_first_month" name="date[first][month]" disabled="disabled">\n)
466
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8" selected="selected">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
467
+ expected << "</select>\n"
468
+
469
+ expected << %(<select id="date_first_day" name="date[first][day]" disabled="disabled">\n)
470
+ expected << %(<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16" selected="selected">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
471
+ expected << "</select>\n"
472
+
473
+ assert_equal expected, select_date(Time.mktime(2003, 8, 16), :start_year => 2003, :end_year => 2005, :prefix => "date[first]", :disabled => true)
474
+ end
475
+
476
+ def test_select_date_with_no_start_year
477
+ expected = %(<select id="date_first_year" name="date[first][year]">\n)
478
+ (Date.today.year-5).upto(Date.today.year+1) do |y|
479
+ if y == Date.today.year
480
+ expected << %(<option value="#{y}" selected="selected">#{y}</option>\n)
481
+ else
482
+ expected << %(<option value="#{y}">#{y}</option>\n)
483
+ end
484
+ end
485
+ expected << "</select>\n"
486
+
487
+ expected << %(<select id="date_first_month" name="date[first][month]">\n)
488
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8" selected="selected">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
489
+ expected << "</select>\n"
490
+
491
+ expected << %(<select id="date_first_day" name="date[first][day]">\n)
492
+ expected << %(<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16" selected="selected">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
493
+ expected << "</select>\n"
494
+
495
+ assert_equal expected, select_date(
496
+ Time.mktime(Date.today.year, 8, 16), :end_year => Date.today.year+1, :prefix => "date[first]"
497
+ )
498
+ end
499
+
500
+ def test_select_date_with_no_end_year
501
+ expected = %(<select id="date_first_year" name="date[first][year]">\n)
502
+ 2003.upto(2008) do |y|
503
+ if y == 2003
504
+ expected << %(<option value="#{y}" selected="selected">#{y}</option>\n)
505
+ else
506
+ expected << %(<option value="#{y}">#{y}</option>\n)
507
+ end
508
+ end
509
+ expected << "</select>\n"
510
+
511
+ expected << %(<select id="date_first_month" name="date[first][month]">\n)
512
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8" selected="selected">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
513
+ expected << "</select>\n"
514
+
515
+ expected << %(<select id="date_first_day" name="date[first][day]">\n)
516
+ expected << %(<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16" selected="selected">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
517
+ expected << "</select>\n"
518
+
519
+ assert_equal expected, select_date(
520
+ Time.mktime(2003, 8, 16), :start_year => 2003, :prefix => "date[first]"
521
+ )
522
+ end
523
+
524
+ def test_select_date_with_no_start_or_end_year
525
+ expected = %(<select id="date_first_year" name="date[first][year]">\n)
526
+ (Date.today.year-5).upto(Date.today.year+5) do |y|
527
+ if y == Date.today.year
528
+ expected << %(<option value="#{y}" selected="selected">#{y}</option>\n)
529
+ else
530
+ expected << %(<option value="#{y}">#{y}</option>\n)
531
+ end
532
+ end
533
+ expected << "</select>\n"
534
+
535
+ expected << %(<select id="date_first_month" name="date[first][month]">\n)
536
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8" selected="selected">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
537
+ expected << "</select>\n"
538
+
539
+ expected << %(<select id="date_first_day" name="date[first][day]">\n)
540
+ expected << %(<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16" selected="selected">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
541
+ expected << "</select>\n"
542
+
543
+ assert_equal expected, select_date(
544
+ Time.mktime(Date.today.year, 8, 16), :prefix => "date[first]"
545
+ )
546
+ end
547
+
548
+ def test_select_date_with_zero_value
549
+ expected = %(<select id="date_first_year" name="date[first][year]">\n)
550
+ expected << %(<option value="2003">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
551
+ expected << "</select>\n"
552
+
553
+ expected << %(<select id="date_first_month" name="date[first][month]">\n)
554
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
555
+ expected << "</select>\n"
556
+
557
+ expected << %(<select id="date_first_day" name="date[first][day]">\n)
558
+ expected << %(<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
559
+ expected << "</select>\n"
560
+
561
+ assert_equal expected, select_date(0, :start_year => 2003, :end_year => 2005, :prefix => "date[first]")
562
+ end
563
+
564
+ def test_select_date_with_zero_value_and_no_start_year
565
+ expected = %(<select id="date_first_year" name="date[first][year]">\n)
566
+ (Date.today.year-5).upto(Date.today.year+1) { |y| expected << %(<option value="#{y}">#{y}</option>\n) }
567
+ expected << "</select>\n"
568
+
569
+ expected << %(<select id="date_first_month" name="date[first][month]">\n)
570
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
571
+ expected << "</select>\n"
572
+
573
+ expected << %(<select id="date_first_day" name="date[first][day]">\n)
574
+ expected << %(<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
575
+ expected << "</select>\n"
576
+
577
+ assert_equal expected, select_date(0, :end_year => Date.today.year+1, :prefix => "date[first]")
578
+ end
579
+
580
+ def test_select_date_with_zero_value_and_no_end_year
581
+ expected = %(<select id="date_first_year" name="date[first][year]">\n)
582
+ last_year = Time.now.year + 5
583
+ 2003.upto(last_year) { |y| expected << %(<option value="#{y}">#{y}</option>\n) }
584
+ expected << "</select>\n"
585
+
586
+ expected << %(<select id="date_first_month" name="date[first][month]">\n)
587
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
588
+ expected << "</select>\n"
589
+
590
+ expected << %(<select id="date_first_day" name="date[first][day]">\n)
591
+ expected << %(<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
592
+ expected << "</select>\n"
593
+
594
+ assert_equal expected, select_date(0, :start_year => 2003, :prefix => "date[first]")
595
+ end
596
+
597
+ def test_select_date_with_zero_value_and_no_start_and_end_year
598
+ expected = %(<select id="date_first_year" name="date[first][year]">\n)
599
+ (Date.today.year-5).upto(Date.today.year+5) { |y| expected << %(<option value="#{y}">#{y}</option>\n) }
600
+ expected << "</select>\n"
601
+
602
+ expected << %(<select id="date_first_month" name="date[first][month]">\n)
603
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
604
+ expected << "</select>\n"
605
+
606
+ expected << %(<select id="date_first_day" name="date[first][day]">\n)
607
+ expected << %(<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
608
+ expected << "</select>\n"
609
+
610
+ assert_equal expected, select_date(0, :prefix => "date[first]")
611
+ end
612
+
613
+ def test_select_date_with_nil_value_and_no_start_and_end_year
614
+ expected = %(<select id="date_first_year" name="date[first][year]">\n)
615
+ (Date.today.year-5).upto(Date.today.year+5) { |y| expected << %(<option value="#{y}">#{y}</option>\n) }
616
+ expected << "</select>\n"
617
+
618
+ expected << %(<select id="date_first_month" name="date[first][month]">\n)
619
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
620
+ expected << "</select>\n"
621
+
622
+ expected << %(<select id="date_first_day" name="date[first][day]">\n)
623
+ expected << %(<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
624
+ expected << "</select>\n"
625
+
626
+ assert_equal expected, select_date(nil, :prefix => "date[first]")
627
+ end
628
+
629
+ def test_select_datetime
630
+ expected = %(<select id="date_first_year" name="date[first][year]">\n)
631
+ expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
632
+ expected << "</select>\n"
633
+
634
+ expected << %(<select id="date_first_month" name="date[first][month]">\n)
635
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8" selected="selected">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
636
+ expected << "</select>\n"
637
+
638
+ expected << %(<select id="date_first_day" name="date[first][day]">\n)
639
+ expected << %(<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16" selected="selected">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
640
+ expected << "</select>\n"
641
+
642
+ expected << %(<select id="date_first_hour" name="date[first][hour]">\n)
643
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08" selected="selected">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n)
644
+ expected << "</select>\n"
645
+
646
+ expected << %(<select id="date_first_minute" name="date[first][minute]">\n)
647
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04" selected="selected">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
648
+ expected << "</select>\n"
649
+
650
+ assert_equal expected, select_datetime(Time.mktime(2003, 8, 16, 8, 4, 18), :start_year => 2003, :end_year => 2005, :prefix => "date[first]")
651
+ end
652
+
653
+ def test_select_datetime_with_separators
654
+ expected = %(<select id="date_first_year" name="date[first][year]">\n)
655
+ expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
656
+ expected << "</select>\n"
657
+
658
+ expected << %(<select id="date_first_month" name="date[first][month]">\n)
659
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8" selected="selected">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
660
+ expected << "</select>\n"
661
+
662
+ expected << %(<select id="date_first_day" name="date[first][day]">\n)
663
+ expected << %(<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16" selected="selected">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
664
+ expected << "</select>\n"
665
+
666
+ expected << " &mdash; "
667
+
668
+ expected << %(<select id="date_first_hour" name="date[first][hour]">\n)
669
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08" selected="selected">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n)
670
+ expected << "</select>\n"
671
+
672
+ expected << " : "
673
+
674
+ expected << %(<select id="date_first_minute" name="date[first][minute]">\n)
675
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04" selected="selected">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
676
+ expected << "</select>\n"
677
+
678
+ assert_equal expected, select_datetime(Time.mktime(2003, 8, 16, 8, 4, 18), :start_year => 2003, :end_year => 2005, :prefix => "date[first]", :datetime_separator => ' &mdash; ', :time_separator => ' : ')
679
+ end
680
+
681
+ def test_select_datetime_with_nil_value_and_no_start_and_end_year
682
+ expected = %(<select id="date_first_year" name="date[first][year]">\n)
683
+ (Date.today.year-5).upto(Date.today.year+5) { |y| expected << %(<option value="#{y}">#{y}</option>\n) }
684
+ expected << "</select>\n"
685
+
686
+ expected << %(<select id="date_first_month" name="date[first][month]">\n)
687
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
688
+ expected << "</select>\n"
689
+
690
+ expected << %(<select id="date_first_day" name="date[first][day]">\n)
691
+ expected << %(<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
692
+ expected << "</select>\n"
693
+
694
+ expected << %(<select id="date_first_hour" name="date[first][hour]">\n)
695
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n)
696
+ expected << "</select>\n"
697
+
698
+ expected << %(<select id="date_first_minute" name="date[first][minute]">\n)
699
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
700
+ expected << "</select>\n"
701
+
702
+ assert_equal expected, select_datetime(nil, :prefix => "date[first]")
703
+ end
704
+
705
+ def test_select_time
706
+ expected = %(<select id="date_hour" name="date[hour]">\n)
707
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08" selected="selected">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n)
708
+ expected << "</select>\n"
709
+
710
+ expected << %(<select id="date_minute" name="date[minute]">\n)
711
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04" selected="selected">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
712
+ expected << "</select>\n"
713
+
714
+ assert_equal expected, select_time(Time.mktime(2003, 8, 16, 8, 4, 18))
715
+ assert_equal expected, select_time(Time.mktime(2003, 8, 16, 8, 4, 18), :include_seconds => false)
716
+ end
717
+
718
+ def test_select_time_with_separator
719
+ expected = %(<select id="date_hour" name="date[hour]">\n)
720
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08" selected="selected">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n)
721
+ expected << "</select>\n"
722
+
723
+ expected << " : "
724
+
725
+ expected << %(<select id="date_minute" name="date[minute]">\n)
726
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04" selected="selected">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
727
+ expected << "</select>\n"
728
+
729
+ assert_equal expected, select_time(Time.mktime(2003, 8, 16, 8, 4, 18), :time_separator => ' : ')
730
+ assert_equal expected, select_time(Time.mktime(2003, 8, 16, 8, 4, 18), :time_separator => ' : ', :include_seconds => false)
731
+ end
732
+
733
+ def test_select_time_with_seconds
734
+ expected = %(<select id="date_hour" name="date[hour]">\n)
735
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08" selected="selected">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n)
736
+ expected << "</select>\n"
737
+
738
+ expected << %(<select id="date_minute" name="date[minute]">\n)
739
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04" selected="selected">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
740
+ expected << "</select>\n"
741
+
742
+ expected << %(<select id="date_second" name="date[second]">\n)
743
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18" selected="selected">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
744
+ expected << "</select>\n"
745
+
746
+ assert_equal expected, select_time(Time.mktime(2003, 8, 16, 8, 4, 18), :include_seconds => true)
747
+ end
748
+
749
+ def test_select_time_with_seconds_and_separator
750
+ expected = %(<select id="date_hour" name="date[hour]">\n)
751
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08" selected="selected">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n)
752
+ expected << "</select>\n"
753
+
754
+ expected << " : "
755
+
756
+ expected << %(<select id="date_minute" name="date[minute]">\n)
757
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04" selected="selected">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
758
+ expected << "</select>\n"
759
+
760
+ expected << " : "
761
+
762
+ expected << %(<select id="date_second" name="date[second]">\n)
763
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18" selected="selected">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
764
+ expected << "</select>\n"
765
+
766
+ assert_equal expected, select_time(Time.mktime(2003, 8, 16, 8, 4, 18), :include_seconds => true, :time_separator => ' : ')
767
+ end
768
+
769
+ def test_date_select
770
+ @post = Post.new
771
+ @post.written_on = Date.new(2004, 6, 15)
772
+
773
+ expected = %{<select id="post_written_on_1i" name="post[written_on(1i)]">\n}
774
+ expected << %{<option value="1999">1999</option>\n<option value="2000">2000</option>\n<option value="2001">2001</option>\n<option value="2002">2002</option>\n<option value="2003">2003</option>\n<option value="2004" selected="selected">2004</option>\n<option value="2005">2005</option>\n<option value="2006">2006</option>\n<option value="2007">2007</option>\n<option value="2008">2008</option>\n<option value="2009">2009</option>\n}
775
+ expected << "</select>\n"
776
+
777
+ expected << %{<select id="post_written_on_2i" name="post[written_on(2i)]">\n}
778
+ expected << %{<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6" selected="selected">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n}
779
+ expected << "</select>\n"
780
+
781
+ expected << %{<select id="post_written_on_3i" name="post[written_on(3i)]">\n}
782
+ expected << %{<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15" selected="selected">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n}
783
+
784
+ expected << "</select>\n"
785
+
786
+ assert_equal expected, date_select("post", "written_on")
787
+ end
788
+
789
+ def test_date_select_within_fields_for
790
+ @post = Post.new
791
+ @post.written_on = Date.new(2004, 6, 15)
792
+
793
+ _erbout = ''
794
+
795
+ fields_for :post, @post do |f|
796
+ _erbout.concat f.date_select(:written_on)
797
+ end
798
+
799
+ expected = "<select id='post_written_on_1i' name='post[written_on(1i)]'>\n<option value='1999'>1999</option>\n<option value='2000'>2000</option>\n<option value='2001'>2001</option>\n<option value='2002'>2002</option>\n<option value='2003'>2003</option>\n<option selected='selected' value='2004'>2004</option>\n<option value='2005'>2005</option>\n<option value='2006'>2006</option>\n<option value='2007'>2007</option>\n<option value='2008'>2008</option>\n<option value='2009'>2009</option>\n</select>\n"
800
+ expected << "<select id='post_written_on_2i' name='post[written_on(2i)]'>\n<option value='1'>January</option>\n<option value='2'>February</option>\n<option value='3'>March</option>\n<option value='4'>April</option>\n<option value='5'>May</option>\n<option selected='selected' value='6'>June</option>\n<option value='7'>July</option>\n<option value='8'>August</option>\n<option value='9'>September</option>\n<option value='10'>October</option>\n<option value='11'>November</option>\n<option value='12'>December</option>\n</select>\n"
801
+ expected << "<select id='post_written_on_3i' name='post[written_on(3i)]'>\n<option value='1'>1</option>\n<option value='2'>2</option>\n<option value='3'>3</option>\n<option value='4'>4</option>\n<option value='5'>5</option>\n<option value='6'>6</option>\n<option value='7'>7</option>\n<option value='8'>8</option>\n<option value='9'>9</option>\n<option value='10'>10</option>\n<option value='11'>11</option>\n<option value='12'>12</option>\n<option value='13'>13</option>\n<option value='14'>14</option>\n<option selected='selected' value='15'>15</option>\n<option value='16'>16</option>\n<option value='17'>17</option>\n<option value='18'>18</option>\n<option value='19'>19</option>\n<option value='20'>20</option>\n<option value='21'>21</option>\n<option value='22'>22</option>\n<option value='23'>23</option>\n<option value='24'>24</option>\n<option value='25'>25</option>\n<option value='26'>26</option>\n<option value='27'>27</option>\n<option value='28'>28</option>\n<option value='29'>29</option>\n<option value='30'>30</option>\n<option value='31'>31</option>\n</select>\n"
802
+
803
+ assert_dom_equal(expected, _erbout)
804
+ end
805
+
806
+ def test_date_select_with_index
807
+ @post = Post.new
808
+ @post.written_on = Date.new(2004, 6, 15)
809
+ id = 456
810
+
811
+ expected = %{<select id="post_456_written_on_1i" name="post[#{id}][written_on(1i)]">\n}
812
+ expected << %{<option value="1999">1999</option>\n<option value="2000">2000</option>\n<option value="2001">2001</option>\n<option value="2002">2002</option>\n<option value="2003">2003</option>\n<option value="2004" selected="selected">2004</option>\n<option value="2005">2005</option>\n<option value="2006">2006</option>\n<option value="2007">2007</option>\n<option value="2008">2008</option>\n<option value="2009">2009</option>\n}
813
+ expected << "</select>\n"
814
+
815
+ expected << %{<select id="post_456_written_on_2i" name="post[#{id}][written_on(2i)]">\n}
816
+ expected << %{<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6" selected="selected">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n}
817
+ expected << "</select>\n"
818
+
819
+ expected << %{<select id="post_456_written_on_3i" name="post[#{id}][written_on(3i)]">\n}
820
+ expected << %{<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15" selected="selected">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n}
821
+
822
+ expected << "</select>\n"
823
+
824
+ assert_equal expected, date_select("post", "written_on", :index => id)
825
+ end
826
+
827
+ def test_date_select_with_auto_index
828
+ @post = Post.new
829
+ @post.written_on = Date.new(2004, 6, 15)
830
+ id = 123
831
+
832
+ expected = %{<select id="post_123_written_on_1i" name="post[#{id}][written_on(1i)]">\n}
833
+ expected << %{<option value="1999">1999</option>\n<option value="2000">2000</option>\n<option value="2001">2001</option>\n<option value="2002">2002</option>\n<option value="2003">2003</option>\n<option value="2004" selected="selected">2004</option>\n<option value="2005">2005</option>\n<option value="2006">2006</option>\n<option value="2007">2007</option>\n<option value="2008">2008</option>\n<option value="2009">2009</option>\n}
834
+ expected << "</select>\n"
835
+
836
+ expected << %{<select id="post_123_written_on_2i" name="post[#{id}][written_on(2i)]">\n}
837
+ expected << %{<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6" selected="selected">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n}
838
+ expected << "</select>\n"
839
+
840
+ expected << %{<select id="post_123_written_on_3i" name="post[#{id}][written_on(3i)]">\n}
841
+ expected << %{<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15" selected="selected">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n}
842
+ expected << "</select>\n"
843
+
844
+ assert_equal expected, date_select("post[]", "written_on")
845
+ end
846
+
847
+ def test_date_select_with_different_order
848
+ @post = Post.new
849
+ @post.written_on = Date.new(2004, 6, 15)
850
+
851
+ expected = %{<select id="post_written_on_3i" name="post[written_on(3i)]">\n}
852
+ 1.upto(31) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 15}>#{i}</option>\n) }
853
+ expected << "</select>\n"
854
+
855
+ expected << %{<select id="post_written_on_2i" name="post[written_on(2i)]">\n}
856
+ 1.upto(12) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 6}>#{Date::MONTHNAMES[i]}</option>\n) }
857
+ expected << "</select>\n"
858
+
859
+ expected << %{<select id="post_written_on_1i" name="post[written_on(1i)]">\n}
860
+ 1999.upto(2009) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 2004}>#{i}</option>\n) }
861
+ expected << "</select>\n"
862
+
863
+ assert_equal expected, date_select("post", "written_on", :order => [:day, :month, :year])
864
+ end
865
+
866
+ def test_date_select_with_nil
867
+ @post = Post.new
868
+
869
+ start_year = Time.now.year-5
870
+ end_year = Time.now.year+5
871
+ expected = %{<select id="post_written_on_1i" name="post[written_on(1i)]">\n}
872
+ start_year.upto(end_year) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == Time.now.year}>#{i}</option>\n) }
873
+ expected << "</select>\n"
874
+
875
+ expected << %{<select id="post_written_on_2i" name="post[written_on(2i)]">\n}
876
+ 1.upto(12) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == Time.now.month}>#{Date::MONTHNAMES[i]}</option>\n) }
877
+ expected << "</select>\n"
878
+
879
+ expected << %{<select id="post_written_on_3i" name="post[written_on(3i)]">\n}
880
+ 1.upto(31) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == Time.now.day}>#{i}</option>\n) }
881
+ expected << "</select>\n"
882
+
883
+ assert_equal expected, date_select("post", "written_on")
884
+ end
885
+
886
+ def test_date_select_with_nil_and_blank
887
+ @post = Post.new
888
+
889
+ start_year = Time.now.year-5
890
+ end_year = Time.now.year+5
891
+ expected = %{<select id="post_written_on_1i" name="post[written_on(1i)]">\n}
892
+ expected << "<option value=\"\"></option>\n"
893
+ start_year.upto(end_year) { |i| expected << %(<option value="#{i}">#{i}</option>\n) }
894
+ expected << "</select>\n"
895
+
896
+ expected << %{<select id="post_written_on_2i" name="post[written_on(2i)]">\n}
897
+ expected << "<option value=\"\"></option>\n"
898
+ 1.upto(12) { |i| expected << %(<option value="#{i}">#{Date::MONTHNAMES[i]}</option>\n) }
899
+ expected << "</select>\n"
900
+
901
+ expected << %{<select id="post_written_on_3i" name="post[written_on(3i)]">\n}
902
+ expected << "<option value=\"\"></option>\n"
903
+ 1.upto(31) { |i| expected << %(<option value="#{i}">#{i}</option>\n) }
904
+ expected << "</select>\n"
905
+
906
+ assert_equal expected, date_select("post", "written_on", :include_blank => true)
907
+ end
908
+
909
+ def test_date_select_cant_override_discard_hour
910
+ @post = Post.new
911
+ @post.written_on = Date.new(2004, 6, 15)
912
+
913
+ expected = %{<select id="post_written_on_1i" name="post[written_on(1i)]">\n}
914
+ expected << %{<option value="1999">1999</option>\n<option value="2000">2000</option>\n<option value="2001">2001</option>\n<option value="2002">2002</option>\n<option value="2003">2003</option>\n<option value="2004" selected="selected">2004</option>\n<option value="2005">2005</option>\n<option value="2006">2006</option>\n<option value="2007">2007</option>\n<option value="2008">2008</option>\n<option value="2009">2009</option>\n}
915
+ expected << "</select>\n"
916
+
917
+ expected << %{<select id="post_written_on_2i" name="post[written_on(2i)]">\n}
918
+ expected << %{<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6" selected="selected">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n}
919
+ expected << "</select>\n"
920
+
921
+ expected << %{<select id="post_written_on_3i" name="post[written_on(3i)]">\n}
922
+ expected << %{<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15" selected="selected">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n}
923
+ expected << "</select>\n"
924
+
925
+ assert_equal expected, date_select("post", "written_on", :discard_hour => false)
926
+ end
927
+
928
+ def test_time_select
929
+ @post = Post.new
930
+ @post.written_on = Time.local(2004, 6, 15, 15, 16, 35)
931
+
932
+ expected = %{<input type="hidden" id="post_written_on_1i" name="post[written_on(1i)]" value="2004" />\n}
933
+ expected << %{<input type="hidden" id="post_written_on_2i" name="post[written_on(2i)]" value="6" />\n}
934
+ expected << %{<input type="hidden" id="post_written_on_3i" name="post[written_on(3i)]" value="15" />\n}
935
+
936
+ expected << %(<select id="post_written_on_4i" name="post[written_on(4i)]">\n)
937
+ 0.upto(23) { |i| expected << %(<option value="#{leading_zero_on_single_digits(i)}"#{' selected="selected"' if i == 15}>#{leading_zero_on_single_digits(i)}</option>\n) }
938
+ expected << "</select>\n"
939
+ expected << " : "
940
+ expected << %(<select id="post_written_on_5i" name="post[written_on(5i)]">\n)
941
+ 0.upto(59) { |i| expected << %(<option value="#{leading_zero_on_single_digits(i)}"#{' selected="selected"' if i == 16}>#{leading_zero_on_single_digits(i)}</option>\n) }
942
+ expected << "</select>\n"
943
+
944
+ assert_equal expected, time_select("post", "written_on")
945
+ end
946
+
947
+ def test_time_select_with_seconds
948
+ @post = Post.new
949
+ @post.written_on = Time.local(2004, 6, 15, 15, 16, 35)
950
+
951
+ expected = %{<input type="hidden" id="post_written_on_1i" name="post[written_on(1i)]" value="2004" />\n}
952
+ expected << %{<input type="hidden" id="post_written_on_2i" name="post[written_on(2i)]" value="6" />\n}
953
+ expected << %{<input type="hidden" id="post_written_on_3i" name="post[written_on(3i)]" value="15" />\n}
954
+
955
+ expected << %(<select id="post_written_on_4i" name="post[written_on(4i)]">\n)
956
+ 0.upto(23) { |i| expected << %(<option value="#{leading_zero_on_single_digits(i)}"#{' selected="selected"' if i == 15}>#{leading_zero_on_single_digits(i)}</option>\n) }
957
+ expected << "</select>\n"
958
+ expected << " : "
959
+ expected << %(<select id="post_written_on_5i" name="post[written_on(5i)]">\n)
960
+ 0.upto(59) { |i| expected << %(<option value="#{leading_zero_on_single_digits(i)}"#{' selected="selected"' if i == 16}>#{leading_zero_on_single_digits(i)}</option>\n) }
961
+ expected << "</select>\n"
962
+ expected << " : "
963
+ expected << %(<select id="post_written_on_6i" name="post[written_on(6i)]">\n)
964
+ 0.upto(59) { |i| expected << %(<option value="#{leading_zero_on_single_digits(i)}"#{' selected="selected"' if i == 35}>#{leading_zero_on_single_digits(i)}</option>\n) }
965
+ expected << "</select>\n"
966
+
967
+ assert_equal expected, time_select("post", "written_on", :include_seconds => true)
968
+ end
969
+
970
+ def test_datetime_select
971
+ @post = Post.new
972
+ @post.updated_at = Time.local(2004, 6, 15, 16, 35)
973
+
974
+ expected = %{<select id="post_updated_at_1i" name="post[updated_at(1i)]">\n}
975
+ expected << %{<option value="1999">1999</option>\n<option value="2000">2000</option>\n<option value="2001">2001</option>\n<option value="2002">2002</option>\n<option value="2003">2003</option>\n<option value="2004" selected="selected">2004</option>\n<option value="2005">2005</option>\n<option value="2006">2006</option>\n<option value="2007">2007</option>\n<option value="2008">2008</option>\n<option value="2009">2009</option>\n}
976
+ expected << "</select>\n"
977
+
978
+ expected << %{<select id="post_updated_at_2i" name="post[updated_at(2i)]">\n}
979
+ expected << %{<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6" selected="selected">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n}
980
+ expected << "</select>\n"
981
+
982
+ expected << %{<select id="post_updated_at_3i" name="post[updated_at(3i)]">\n}
983
+ expected << %{<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15" selected="selected">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n}
984
+ expected << "</select>\n"
985
+
986
+ expected << " &mdash; "
987
+
988
+ expected << %{<select id="post_updated_at_4i" name="post[updated_at(4i)]">\n}
989
+ expected << %{<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16" selected="selected">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n}
990
+ expected << "</select>\n"
991
+ expected << " : "
992
+ expected << %{<select id="post_updated_at_5i" name="post[updated_at(5i)]">\n}
993
+ expected << %{<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35" selected="selected">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n}
994
+ expected << "</select>\n"
995
+
996
+ assert_equal expected, datetime_select("post", "updated_at")
997
+ end
998
+
999
+ def test_datetime_select_within_fields_for
1000
+ @post = Post.new
1001
+ @post.updated_at = Time.local(2004, 6, 15, 16, 35)
1002
+
1003
+ _erbout = ''
1004
+
1005
+ fields_for :post, @post do |f|
1006
+ _erbout.concat f.datetime_select(:updated_at)
1007
+ end
1008
+
1009
+ expected = "<select id='post_updated_at_1i' name='post[updated_at(1i)]'>\n<option value='1999'>1999</option>\n<option value='2000'>2000</option>\n<option value='2001'>2001</option>\n<option value='2002'>2002</option>\n<option value='2003'>2003</option>\n<option selected='selected' value='2004'>2004</option>\n<option value='2005'>2005</option>\n<option value='2006'>2006</option>\n<option value='2007'>2007</option>\n<option value='2008'>2008</option>\n<option value='2009'>2009</option>\n</select>\n"
1010
+ expected << "<select id='post_updated_at_2i' name='post[updated_at(2i)]'>\n<option value='1'>January</option>\n<option value='2'>February</option>\n<option value='3'>March</option>\n<option value='4'>April</option>\n<option value='5'>May</option>\n<option selected='selected' value='6'>June</option>\n<option value='7'>July</option>\n<option value='8'>August</option>\n<option value='9'>September</option>\n<option value='10'>October</option>\n<option value='11'>November</option>\n<option value='12'>December</option>\n</select>\n"
1011
+ expected << "<select id='post_updated_at_3i' name='post[updated_at(3i)]'>\n<option value='1'>1</option>\n<option value='2'>2</option>\n<option value='3'>3</option>\n<option value='4'>4</option>\n<option value='5'>5</option>\n<option value='6'>6</option>\n<option value='7'>7</option>\n<option value='8'>8</option>\n<option value='9'>9</option>\n<option value='10'>10</option>\n<option value='11'>11</option>\n<option value='12'>12</option>\n<option value='13'>13</option>\n<option value='14'>14</option>\n<option selected='selected' value='15'>15</option>\n<option value='16'>16</option>\n<option value='17'>17</option>\n<option value='18'>18</option>\n<option value='19'>19</option>\n<option value='20'>20</option>\n<option value='21'>21</option>\n<option value='22'>22</option>\n<option value='23'>23</option>\n<option value='24'>24</option>\n<option value='25'>25</option>\n<option value='26'>26</option>\n<option value='27'>27</option>\n<option value='28'>28</option>\n<option value='29'>29</option>\n<option value='30'>30</option>\n<option value='31'>31</option>\n</select>\n"
1012
+ expected << " &mdash; <select id='post_updated_at_4i' name='post[updated_at(4i)]'>\n<option value='00'>00</option>\n<option value='01'>01</option>\n<option value='02'>02</option>\n<option value='03'>03</option>\n<option value='04'>04</option>\n<option value='05'>05</option>\n<option value='06'>06</option>\n<option value='07'>07</option>\n<option value='08'>08</option>\n<option value='09'>09</option>\n<option value='10'>10</option>\n<option value='11'>11</option>\n<option value='12'>12</option>\n<option value='13'>13</option>\n<option value='14'>14</option>\n<option value='15'>15</option>\n<option selected='selected' value='16'>16</option>\n<option value='17'>17</option>\n<option value='18'>18</option>\n<option value='19'>19</option>\n<option value='20'>20</option>\n<option value='21'>21</option>\n<option value='22'>22</option>\n<option value='23'>23</option>\n</select>\n"
1013
+ expected << " : <select id='post_updated_at_5i' name='post[updated_at(5i)]'>\n<option value='00'>00</option>\n<option value='01'>01</option>\n<option value='02'>02</option>\n<option value='03'>03</option>\n<option value='04'>04</option>\n<option value='05'>05</option>\n<option value='06'>06</option>\n<option value='07'>07</option>\n<option value='08'>08</option>\n<option value='09'>09</option>\n<option value='10'>10</option>\n<option value='11'>11</option>\n<option value='12'>12</option>\n<option value='13'>13</option>\n<option value='14'>14</option>\n<option value='15'>15</option>\n<option value='16'>16</option>\n<option value='17'>17</option>\n<option value='18'>18</option>\n<option value='19'>19</option>\n<option value='20'>20</option>\n<option value='21'>21</option>\n<option value='22'>22</option>\n<option value='23'>23</option>\n<option value='24'>24</option>\n<option value='25'>25</option>\n<option value='26'>26</option>\n<option value='27'>27</option>\n<option value='28'>28</option>\n<option value='29'>29</option>\n<option value='30'>30</option>\n<option value='31'>31</option>\n<option value='32'>32</option>\n<option value='33'>33</option>\n<option value='34'>34</option>\n<option selected='selected' value='35'>35</option>\n<option value='36'>36</option>\n<option value='37'>37</option>\n<option value='38'>38</option>\n<option value='39'>39</option>\n<option value='40'>40</option>\n<option value='41'>41</option>\n<option value='42'>42</option>\n<option value='43'>43</option>\n<option value='44'>44</option>\n<option value='45'>45</option>\n<option value='46'>46</option>\n<option value='47'>47</option>\n<option value='48'>48</option>\n<option value='49'>49</option>\n<option value='50'>50</option>\n<option value='51'>51</option>\n<option value='52'>52</option>\n<option value='53'>53</option>\n<option value='54'>54</option>\n<option value='55'>55</option>\n<option value='56'>56</option>\n<option value='57'>57</option>\n<option value='58'>58</option>\n<option value='59'>59</option>\n</select>\n"
1014
+
1015
+ assert_dom_equal(expected, _erbout)
1016
+ end
1017
+
1018
+ def test_date_select_with_zero_value_and_no_start_year
1019
+ expected = %(<select id="date_first_year" name="date[first][year]">\n)
1020
+ (Date.today.year-5).upto(Date.today.year+1) { |y| expected << %(<option value="#{y}">#{y}</option>\n) }
1021
+ expected << "</select>\n"
1022
+
1023
+ expected << %(<select id="date_first_month" name="date[first][month]">\n)
1024
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
1025
+ expected << "</select>\n"
1026
+
1027
+ expected << %(<select id="date_first_day" name="date[first][day]">\n)
1028
+ expected <<
1029
+ %(<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
1030
+ expected << "</select>\n"
1031
+
1032
+ assert_equal expected, select_date(0, :end_year => Date.today.year+1, :prefix => "date[first]")
1033
+ end
1034
+
1035
+ def test_date_select_with_zero_value_and_no_end_year
1036
+ expected = %(<select id="date_first_year" name="date[first][year]">\n)
1037
+ last_year = Time.now.year + 5
1038
+ 2003.upto(last_year) { |y| expected << %(<option value="#{y}">#{y}</option>\n) }
1039
+ expected << "</select>\n"
1040
+
1041
+ expected << %(<select id="date_first_month" name="date[first][month]">\n)
1042
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
1043
+ expected << "</select>\n"
1044
+
1045
+ expected << %(<select id="date_first_day" name="date[first][day]">\n)
1046
+ expected <<
1047
+ %(<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
1048
+ expected << "</select>\n"
1049
+
1050
+ assert_equal expected, select_date(0, :start_year => 2003, :prefix => "date[first]")
1051
+ end
1052
+
1053
+ def test_date_select_with_zero_value_and_no_start_and_end_year
1054
+ expected = %(<select id="date_first_year" name="date[first][year]">\n)
1055
+ (Date.today.year-5).upto(Date.today.year+5) { |y| expected << %(<option value="#{y}">#{y}</option>\n) }
1056
+ expected << "</select>\n"
1057
+
1058
+ expected << %(<select id="date_first_month" name="date[first][month]">\n)
1059
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
1060
+ expected << "</select>\n"
1061
+
1062
+ expected << %(<select id="date_first_day" name="date[first][day]">\n)
1063
+ expected <<
1064
+ %(<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
1065
+ expected << "</select>\n"
1066
+
1067
+ assert_equal expected, select_date(0, :prefix => "date[first]")
1068
+ end
1069
+
1070
+ def test_date_select_with_nil_value_and_no_start_and_end_year
1071
+ expected = %(<select id="date_first_year" name="date[first][year]">\n)
1072
+ (Date.today.year-5).upto(Date.today.year+5) { |y| expected << %(<option value="#{y}">#{y}</option>\n) }
1073
+ expected << "</select>\n"
1074
+
1075
+ expected << %(<select id="date_first_month" name="date[first][month]">\n)
1076
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
1077
+ expected << "</select>\n"
1078
+
1079
+ expected << %(<select id="date_first_day" name="date[first][day]">\n)
1080
+ expected <<
1081
+ %(<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
1082
+ expected << "</select>\n"
1083
+
1084
+ assert_equal expected, select_date(nil, :prefix => "date[first]")
1085
+ end
1086
+
1087
+ def test_datetime_select_with_nil_value_and_no_start_and_end_year
1088
+ expected = %(<select id="date_first_year" name="date[first][year]">\n)
1089
+ (Date.today.year-5).upto(Date.today.year+5) { |y| expected << %(<option value="#{y}">#{y}</option>\n) }
1090
+ expected << "</select>\n"
1091
+
1092
+ expected << %(<select id="date_first_month" name="date[first][month]">\n)
1093
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
1094
+ expected << "</select>\n"
1095
+
1096
+ expected << %(<select id="date_first_day" name="date[first][day]">\n)
1097
+ expected <<
1098
+ %(<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
1099
+ expected << "</select>\n"
1100
+
1101
+ expected << %(<select id="date_first_hour" name="date[first][hour]">\n)
1102
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n)
1103
+ expected << "</select>\n"
1104
+
1105
+ expected << %(<select id="date_first_minute" name="date[first][minute]">\n)
1106
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
1107
+ expected << "</select>\n"
1108
+
1109
+ assert_equal expected, select_datetime(nil, :prefix => "date[first]")
1110
+ end
1111
+
1112
+
1113
+ def test_datetime_select_with_options_index
1114
+ @post = Post.new
1115
+ @post.updated_at = Time.local(2004, 6, 15, 16, 35)
1116
+ id = 456
1117
+
1118
+ expected = %{<select id="post_456_updated_at_1i" name="post[#{id}][updated_at(1i)]">\n}
1119
+ expected << %{<option value="1999">1999</option>\n<option value="2000">2000</option>\n<option value="2001">2001</option>\n<option value="2002">2002</option>\n<option value="2003">2003</option>\n<option value="2004" selected="selected">2004</option>\n<option value="2005">2005</option>\n<option value="2006">2006</option>\n<option value="2007">2007</option>\n<option value="2008">2008</option>\n<option value="2009">2009</option>\n}
1120
+ expected << "</select>\n"
1121
+
1122
+ expected << %{<select id="post_456_updated_at_2i" name="post[#{id}][updated_at(2i)]">\n}
1123
+ expected << %{<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6" selected="selected">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n}
1124
+ expected << "</select>\n"
1125
+
1126
+ expected << %{<select id="post_456_updated_at_3i" name="post[#{id}][updated_at(3i)]">\n}
1127
+ expected << %{<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15" selected="selected">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n}
1128
+ expected << "</select>\n"
1129
+
1130
+ expected << " &mdash; "
1131
+
1132
+ expected << %{<select id="post_456_updated_at_4i" name="post[#{id}][updated_at(4i)]">\n}
1133
+ expected << %{<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16" selected="selected">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n}
1134
+ expected << "</select>\n"
1135
+ expected << " : "
1136
+ expected << %{<select id="post_456_updated_at_5i" name="post[#{id}][updated_at(5i)]">\n}
1137
+ expected << %{<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35" selected="selected">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n}
1138
+ expected << "</select>\n"
1139
+
1140
+ assert_equal expected, datetime_select("post", "updated_at", :index => id)
1141
+ end
1142
+
1143
+ def test_datetime_select_with_auto_index
1144
+ @post = Post.new
1145
+ @post.updated_at = Time.local(2004, 6, 15, 16, 35)
1146
+ id = @post.id
1147
+
1148
+ expected = %{<select id="post_123_updated_at_1i" name="post[#{id}][updated_at(1i)]">\n}
1149
+ expected << %{<option value="1999">1999</option>\n<option value="2000">2000</option>\n<option value="2001">2001</option>\n<option value="2002">2002</option>\n<option value="2003">2003</option>\n<option value="2004" selected="selected">2004</option>\n<option value="2005">2005</option>\n<option value="2006">2006</option>\n<option value="2007">2007</option>\n<option value="2008">2008</option>\n<option value="2009">2009</option>\n}
1150
+ expected << "</select>\n"
1151
+
1152
+ expected << %{<select id="post_123_updated_at_2i" name="post[#{id}][updated_at(2i)]">\n}
1153
+ expected << %{<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6" selected="selected">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n}
1154
+ expected << "</select>\n"
1155
+
1156
+ expected << %{<select id="post_123_updated_at_3i" name="post[#{id}][updated_at(3i)]">\n}
1157
+ expected << %{<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15" selected="selected">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n}
1158
+ expected << "</select>\n"
1159
+
1160
+ expected << " &mdash; "
1161
+
1162
+ expected << %{<select id="post_123_updated_at_4i" name="post[#{id}][updated_at(4i)]">\n}
1163
+ expected << %{<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16" selected="selected">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n}
1164
+ expected << "</select>\n"
1165
+ expected << " : "
1166
+ expected << %{<select id="post_123_updated_at_5i" name="post[#{id}][updated_at(5i)]">\n}
1167
+ expected << %{<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35" selected="selected">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n}
1168
+ expected << "</select>\n"
1169
+
1170
+ assert_equal expected, datetime_select("post[]", "updated_at")
1171
+ end
1172
+
1173
+ def test_datetime_select_with_seconds
1174
+ @post = Post.new
1175
+ @post.updated_at = Time.local(2004, 6, 15, 15, 16, 35)
1176
+
1177
+ expected = %{<select id="post_updated_at_1i" name="post[updated_at(1i)]">\n}
1178
+ 1999.upto(2009) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 2004}>#{i}</option>\n) }
1179
+ expected << "</select>\n"
1180
+ expected << %{<select id="post_updated_at_2i" name="post[updated_at(2i)]">\n}
1181
+ 1.upto(12) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 6}>#{Date::MONTHNAMES[i]}</option>\n) }
1182
+ expected << "</select>\n"
1183
+ expected << %{<select id="post_updated_at_3i" name="post[updated_at(3i)]">\n}
1184
+ 1.upto(31) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 15}>#{i}</option>\n) }
1185
+ expected << "</select>\n"
1186
+
1187
+ expected << " &mdash; "
1188
+
1189
+ expected << %{<select id="post_updated_at_4i" name="post[updated_at(4i)]">\n}
1190
+ 0.upto(23) { |i| expected << %(<option value="#{leading_zero_on_single_digits(i)}"#{' selected="selected"' if i == 15}>#{leading_zero_on_single_digits(i)}</option>\n) }
1191
+ expected << "</select>\n"
1192
+ expected << " : "
1193
+ expected << %{<select id="post_updated_at_5i" name="post[updated_at(5i)]">\n}
1194
+ 0.upto(59) { |i| expected << %(<option value="#{leading_zero_on_single_digits(i)}"#{' selected="selected"' if i == 16}>#{leading_zero_on_single_digits(i)}</option>\n) }
1195
+ expected << "</select>\n"
1196
+ expected << " : "
1197
+ expected << %{<select id="post_updated_at_6i" name="post[updated_at(6i)]">\n}
1198
+ 0.upto(59) { |i| expected << %(<option value="#{leading_zero_on_single_digits(i)}"#{' selected="selected"' if i == 35}>#{leading_zero_on_single_digits(i)}</option>\n) }
1199
+ expected << "</select>\n"
1200
+
1201
+ assert_equal expected, datetime_select("post", "updated_at", :include_seconds => true)
1202
+ end
1203
+
1204
+ def test_datetime_select_discard_year
1205
+ @post = Post.new
1206
+ @post.updated_at = Time.local(2004, 6, 15, 15, 16, 35)
1207
+
1208
+ expected = %{<input type="hidden" id="post_updated_at_1i" name="post[updated_at(1i)]" value="2004" />\n}
1209
+ expected << %{<select id="post_updated_at_2i" name="post[updated_at(2i)]">\n}
1210
+ 1.upto(12) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 6}>#{Date::MONTHNAMES[i]}</option>\n) }
1211
+ expected << "</select>\n"
1212
+ expected << %{<select id="post_updated_at_3i" name="post[updated_at(3i)]">\n}
1213
+ 1.upto(31) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 15}>#{i}</option>\n) }
1214
+ expected << "</select>\n"
1215
+
1216
+ expected << " &mdash; "
1217
+
1218
+ expected << %{<select id="post_updated_at_4i" name="post[updated_at(4i)]">\n}
1219
+ 0.upto(23) { |i| expected << %(<option value="#{leading_zero_on_single_digits(i)}"#{' selected="selected"' if i == 15}>#{leading_zero_on_single_digits(i)}</option>\n) }
1220
+ expected << "</select>\n"
1221
+ expected << " : "
1222
+ expected << %{<select id="post_updated_at_5i" name="post[updated_at(5i)]">\n}
1223
+ 0.upto(59) { |i| expected << %(<option value="#{leading_zero_on_single_digits(i)}"#{' selected="selected"' if i == 16}>#{leading_zero_on_single_digits(i)}</option>\n) }
1224
+ expected << "</select>\n"
1225
+
1226
+ assert_equal expected, datetime_select("post", "updated_at", :discard_year => true)
1227
+ end
1228
+
1229
+ def test_datetime_select_discard_month
1230
+ @post = Post.new
1231
+ @post.updated_at = Time.local(2004, 6, 15, 15, 16, 35)
1232
+
1233
+ expected = %{<select id="post_updated_at_1i" name="post[updated_at(1i)]">\n}
1234
+ 1999.upto(2009) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 2004}>#{i}</option>\n) }
1235
+ expected << "</select>\n"
1236
+ expected << %{<input type="hidden" id="post_updated_at_2i" name="post[updated_at(2i)]" value="6" />\n}
1237
+ expected << %{<input type="hidden" id="post_updated_at_3i" name="post[updated_at(3i)]" value="15" />\n}
1238
+
1239
+ expected << " &mdash; "
1240
+
1241
+ expected << %{<select id="post_updated_at_4i" name="post[updated_at(4i)]">\n}
1242
+ 0.upto(23) { |i| expected << %(<option value="#{leading_zero_on_single_digits(i)}"#{' selected="selected"' if i == 15}>#{leading_zero_on_single_digits(i)}</option>\n) }
1243
+ expected << "</select>\n"
1244
+ expected << " : "
1245
+ expected << %{<select id="post_updated_at_5i" name="post[updated_at(5i)]">\n}
1246
+ 0.upto(59) { |i| expected << %(<option value="#{leading_zero_on_single_digits(i)}"#{' selected="selected"' if i == 16}>#{leading_zero_on_single_digits(i)}</option>\n) }
1247
+ expected << "</select>\n"
1248
+
1249
+ assert_equal expected, datetime_select("post", "updated_at", :discard_month => true)
1250
+ end
1251
+
1252
+ def test_datetime_select_discard_year_and_month
1253
+ @post = Post.new
1254
+ @post.updated_at = Time.local(2004, 6, 15, 15, 16, 35)
1255
+
1256
+ expected = %{<input type="hidden" id="post_updated_at_1i" name="post[updated_at(1i)]" value="2004" />\n}
1257
+ expected << %{<input type="hidden" id="post_updated_at_2i" name="post[updated_at(2i)]" value="6" />\n}
1258
+ expected << %{<input type="hidden" id="post_updated_at_3i" name="post[updated_at(3i)]" value="15" />\n}
1259
+
1260
+ expected << %{<select id="post_updated_at_4i" name="post[updated_at(4i)]">\n}
1261
+ 0.upto(23) { |i| expected << %(<option value="#{leading_zero_on_single_digits(i)}"#{' selected="selected"' if i == 15}>#{leading_zero_on_single_digits(i)}</option>\n) }
1262
+ expected << "</select>\n"
1263
+ expected << " : "
1264
+ expected << %{<select id="post_updated_at_5i" name="post[updated_at(5i)]">\n}
1265
+ 0.upto(59) { |i| expected << %(<option value="#{leading_zero_on_single_digits(i)}"#{' selected="selected"' if i == 16}>#{leading_zero_on_single_digits(i)}</option>\n) }
1266
+ expected << "</select>\n"
1267
+
1268
+ assert_equal expected, datetime_select("post", "updated_at", :discard_year => true, :discard_month => true)
1269
+ end
1270
+
1271
+ def test_datetime_select_invalid_order
1272
+ @post = Post.new
1273
+ @post.updated_at = Time.local(2004, 6, 15, 15, 16, 35)
1274
+
1275
+ expected = %{<select id="post_updated_at_3i" name="post[updated_at(3i)]">\n}
1276
+ 1.upto(31) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 15}>#{i}</option>\n) }
1277
+ expected << "</select>\n"
1278
+ expected << %{<select id="post_updated_at_2i" name="post[updated_at(2i)]">\n}
1279
+ 1.upto(12) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 6}>#{Date::MONTHNAMES[i]}</option>\n) }
1280
+ expected << "</select>\n"
1281
+ expected << %{<select id="post_updated_at_1i" name="post[updated_at(1i)]">\n}
1282
+ 1999.upto(2009) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 2004}>#{i}</option>\n) }
1283
+ expected << "</select>\n"
1284
+
1285
+ expected << " &mdash; "
1286
+
1287
+ expected << %{<select id="post_updated_at_4i" name="post[updated_at(4i)]">\n}
1288
+ 0.upto(23) { |i| expected << %(<option value="#{leading_zero_on_single_digits(i)}"#{' selected="selected"' if i == 15}>#{leading_zero_on_single_digits(i)}</option>\n) }
1289
+ expected << "</select>\n"
1290
+ expected << " : "
1291
+ expected << %{<select id="post_updated_at_5i" name="post[updated_at(5i)]">\n}
1292
+ 0.upto(59) { |i| expected << %(<option value="#{leading_zero_on_single_digits(i)}"#{' selected="selected"' if i == 16}>#{leading_zero_on_single_digits(i)}</option>\n) }
1293
+ expected << "</select>\n"
1294
+
1295
+ assert_equal expected, datetime_select("post", "updated_at", :order => [:minute, :day, :hour, :month, :year, :second])
1296
+ end
1297
+
1298
+ def test_datetime_select_discard_with_order
1299
+ @post = Post.new
1300
+ @post.updated_at = Time.local(2004, 6, 15, 15, 16, 35)
1301
+
1302
+ expected = %{<input type="hidden" id="post_updated_at_1i" name="post[updated_at(1i)]" value="2004" />\n}
1303
+ expected << %{<select id="post_updated_at_3i" name="post[updated_at(3i)]">\n}
1304
+ 1.upto(31) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 15}>#{i}</option>\n) }
1305
+ expected << "</select>\n"
1306
+ expected << %{<select id="post_updated_at_2i" name="post[updated_at(2i)]">\n}
1307
+ 1.upto(12) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 6}>#{Date::MONTHNAMES[i]}</option>\n) }
1308
+ expected << "</select>\n"
1309
+
1310
+ expected << " &mdash; "
1311
+
1312
+ expected << %{<select id="post_updated_at_4i" name="post[updated_at(4i)]">\n}
1313
+ 0.upto(23) { |i| expected << %(<option value="#{leading_zero_on_single_digits(i)}"#{' selected="selected"' if i == 15}>#{leading_zero_on_single_digits(i)}</option>\n) }
1314
+ expected << "</select>\n"
1315
+ expected << " : "
1316
+ expected << %{<select id="post_updated_at_5i" name="post[updated_at(5i)]">\n}
1317
+ 0.upto(59) { |i| expected << %(<option value="#{leading_zero_on_single_digits(i)}"#{' selected="selected"' if i == 16}>#{leading_zero_on_single_digits(i)}</option>\n) }
1318
+ expected << "</select>\n"
1319
+
1320
+ assert_equal expected, datetime_select("post", "updated_at", :order => [:day, :month])
1321
+ end
1322
+ end