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,49 @@
1
+ require 'abstract_unit'
2
+
3
+ class AttributeMethodsTest < Test::Unit::TestCase
4
+ def setup
5
+ @old_suffixes = ActiveRecord::Base.send(:attribute_method_suffixes).dup
6
+ @target = Class.new(ActiveRecord::Base)
7
+ @target.table_name = 'topics'
8
+ end
9
+
10
+ def teardown
11
+ ActiveRecord::Base.send(:attribute_method_suffixes).clear
12
+ ActiveRecord::Base.attribute_method_suffix *@old_suffixes
13
+ end
14
+
15
+
16
+ def test_match_attribute_method_query_returns_match_data
17
+ assert_not_nil md = @target.match_attribute_method?('title=')
18
+ assert_equal 'title', md.pre_match
19
+ assert_equal ['='], md.captures
20
+
21
+ %w(_hello_world ist! _maybe?).each do |suffix|
22
+ @target.class_eval "def attribute#{suffix}(*args) args end"
23
+ @target.attribute_method_suffix suffix
24
+
25
+ assert_not_nil md = @target.match_attribute_method?("title#{suffix}")
26
+ assert_equal 'title', md.pre_match
27
+ assert_equal [suffix], md.captures
28
+ end
29
+ end
30
+
31
+ def test_declared_attribute_method_affects_respond_to_and_method_missing
32
+ topic = @target.new(:title => 'Budget')
33
+ assert topic.respond_to?('title')
34
+ assert_equal 'Budget', topic.title
35
+ assert !topic.respond_to?('title_hello_world')
36
+ assert_raise(NoMethodError) { topic.title_hello_world }
37
+
38
+ %w(_hello_world _it! _candidate= able?).each do |suffix|
39
+ @target.class_eval "def attribute#{suffix}(*args) args end"
40
+ @target.attribute_method_suffix suffix
41
+
42
+ meth = "title#{suffix}"
43
+ assert topic.respond_to?(meth)
44
+ assert_equal ['title'], topic.send(meth)
45
+ assert_equal ['title', 'a'], topic.send(meth, 'a')
46
+ assert_equal ['title', 1, 2, 3], topic.send(meth, 1, 2, 3)
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,1586 @@
1
+ require 'abstract_unit'
2
+ require 'fixtures/topic'
3
+ require 'fixtures/reply'
4
+ require 'fixtures/company'
5
+ require 'fixtures/customer'
6
+ require 'fixtures/developer'
7
+ require 'fixtures/project'
8
+ require 'fixtures/default'
9
+ require 'fixtures/auto_id'
10
+ require 'fixtures/column_name'
11
+ require 'fixtures/subscriber'
12
+ require 'fixtures/keyboard'
13
+ require 'fixtures/post'
14
+
15
+ class Category < ActiveRecord::Base; end
16
+ class Smarts < ActiveRecord::Base; end
17
+ class CreditCard < ActiveRecord::Base
18
+ class PinNumber < ActiveRecord::Base
19
+ class CvvCode < ActiveRecord::Base; end
20
+ class SubCvvCode < CvvCode; end
21
+ end
22
+ class SubPinNumber < PinNumber; end
23
+ class Brand < Category; end
24
+ end
25
+ class MasterCreditCard < ActiveRecord::Base; end
26
+ class Post < ActiveRecord::Base; end
27
+ class Computer < ActiveRecord::Base; end
28
+ class NonExistentTable < ActiveRecord::Base; end
29
+ class TestOracleDefault < ActiveRecord::Base; end
30
+
31
+ class LoosePerson < ActiveRecord::Base
32
+ self.table_name = 'people'
33
+ self.abstract_class = true
34
+ attr_protected :credit_rating, :administrator
35
+ end
36
+
37
+ class LooseDescendant < LoosePerson
38
+ attr_protected :phone_number
39
+ end
40
+
41
+ class TightPerson < ActiveRecord::Base
42
+ self.table_name = 'people'
43
+ attr_accessible :name, :address
44
+ end
45
+
46
+ class TightDescendant < TightPerson
47
+ attr_accessible :phone_number
48
+ end
49
+
50
+ class Booleantest < ActiveRecord::Base; end
51
+
52
+ class Task < ActiveRecord::Base
53
+ attr_protected :starting
54
+ end
55
+
56
+ class BasicsTest < Test::Unit::TestCase
57
+ fixtures :topics, :companies, :developers, :projects, :computers, :accounts
58
+
59
+ def test_table_exists
60
+ assert !NonExistentTable.table_exists?
61
+ assert Topic.table_exists?
62
+ end
63
+
64
+ def test_set_attributes
65
+ topic = Topic.find(1)
66
+ topic.attributes = { "title" => "Budget", "author_name" => "Jason" }
67
+ topic.save
68
+ assert_equal("Budget", topic.title)
69
+ assert_equal("Jason", topic.author_name)
70
+ assert_equal(topics(:first).author_email_address, Topic.find(1).author_email_address)
71
+ end
72
+
73
+ def test_integers_as_nil
74
+ test = AutoId.create('value' => '')
75
+ assert_nil AutoId.find(test.id).value
76
+ end
77
+
78
+ def test_set_attributes_with_block
79
+ topic = Topic.new do |t|
80
+ t.title = "Budget"
81
+ t.author_name = "Jason"
82
+ end
83
+
84
+ assert_equal("Budget", topic.title)
85
+ assert_equal("Jason", topic.author_name)
86
+ end
87
+
88
+ def test_respond_to?
89
+ topic = Topic.find(1)
90
+ assert topic.respond_to?("title")
91
+ assert topic.respond_to?("title?")
92
+ assert topic.respond_to?("title=")
93
+ assert topic.respond_to?(:title)
94
+ assert topic.respond_to?(:title?)
95
+ assert topic.respond_to?(:title=)
96
+ assert topic.respond_to?("author_name")
97
+ assert topic.respond_to?("attribute_names")
98
+ assert !topic.respond_to?("nothingness")
99
+ assert !topic.respond_to?(:nothingness)
100
+ end
101
+
102
+ def test_array_content
103
+ topic = Topic.new
104
+ topic.content = %w( one two three )
105
+ topic.save
106
+
107
+ assert_equal(%w( one two three ), Topic.find(topic.id).content)
108
+ end
109
+
110
+ def test_hash_content
111
+ topic = Topic.new
112
+ topic.content = { "one" => 1, "two" => 2 }
113
+ topic.save
114
+
115
+ assert_equal 2, Topic.find(topic.id).content["two"]
116
+
117
+ topic.content["three"] = 3
118
+ topic.save
119
+
120
+ assert_equal 3, Topic.find(topic.id).content["three"]
121
+ end
122
+
123
+ def test_update_array_content
124
+ topic = Topic.new
125
+ topic.content = %w( one two three )
126
+
127
+ topic.content.push "four"
128
+ assert_equal(%w( one two three four ), topic.content)
129
+
130
+ topic.save
131
+
132
+ topic = Topic.find(topic.id)
133
+ topic.content << "five"
134
+ assert_equal(%w( one two three four five ), topic.content)
135
+ end
136
+
137
+ def test_case_sensitive_attributes_hash
138
+ # DB2 is not case-sensitive
139
+ return true if current_adapter?(:DB2Adapter)
140
+
141
+ assert_equal @loaded_fixtures['computers']['workstation'].to_hash, Computer.find(:first).attributes
142
+ end
143
+
144
+ def test_create
145
+ topic = Topic.new
146
+ topic.title = "New Topic"
147
+ topic.save
148
+ topic_reloaded = Topic.find(topic.id)
149
+ assert_equal("New Topic", topic_reloaded.title)
150
+ end
151
+
152
+ def test_save!
153
+ topic = Topic.new(:title => "New Topic")
154
+ assert topic.save!
155
+
156
+ reply = Reply.new
157
+ assert_raise(ActiveRecord::RecordInvalid) { reply.save! }
158
+ end
159
+
160
+ def test_save_null_string_attributes
161
+ topic = Topic.find(1)
162
+ topic.attributes = { "title" => "null", "author_name" => "null" }
163
+ topic.save!
164
+ topic.reload
165
+ assert_equal("null", topic.title)
166
+ assert_equal("null", topic.author_name)
167
+ end
168
+
169
+ def test_save_nil_string_attributes
170
+ topic = Topic.find(1)
171
+ topic.title = nil
172
+ topic.save!
173
+ topic.reload
174
+ assert_nil topic.title
175
+ end
176
+
177
+ def test_hashes_not_mangled
178
+ new_topic = { :title => "New Topic" }
179
+ new_topic_values = { :title => "AnotherTopic" }
180
+
181
+ topic = Topic.new(new_topic)
182
+ assert_equal new_topic[:title], topic.title
183
+
184
+ topic.attributes= new_topic_values
185
+ assert_equal new_topic_values[:title], topic.title
186
+ end
187
+
188
+ def test_create_many
189
+ topics = Topic.create([ { "title" => "first" }, { "title" => "second" }])
190
+ assert_equal 2, topics.size
191
+ assert_equal "first", topics.first.title
192
+ end
193
+
194
+ def test_create_columns_not_equal_attributes
195
+ topic = Topic.new
196
+ topic.title = 'Another New Topic'
197
+ topic.send :write_attribute, 'does_not_exist', 'test'
198
+ assert_nothing_raised { topic.save }
199
+ end
200
+
201
+ def test_create_through_factory
202
+ topic = Topic.create("title" => "New Topic")
203
+ topicReloaded = Topic.find(topic.id)
204
+ assert_equal(topic, topicReloaded)
205
+ end
206
+
207
+ def test_update
208
+ topic = Topic.new
209
+ topic.title = "Another New Topic"
210
+ topic.written_on = "2003-12-12 23:23:00"
211
+ topic.save
212
+ topicReloaded = Topic.find(topic.id)
213
+ assert_equal("Another New Topic", topicReloaded.title)
214
+
215
+ topicReloaded.title = "Updated topic"
216
+ topicReloaded.save
217
+
218
+ topicReloadedAgain = Topic.find(topic.id)
219
+
220
+ assert_equal("Updated topic", topicReloadedAgain.title)
221
+ end
222
+
223
+ def test_update_columns_not_equal_attributes
224
+ topic = Topic.new
225
+ topic.title = "Still another topic"
226
+ topic.save
227
+
228
+ topicReloaded = Topic.find(topic.id)
229
+ topicReloaded.title = "A New Topic"
230
+ topicReloaded.send :write_attribute, 'does_not_exist', 'test'
231
+ assert_nothing_raised { topicReloaded.save }
232
+ end
233
+
234
+ def test_write_attribute
235
+ topic = Topic.new
236
+ topic.send(:write_attribute, :title, "Still another topic")
237
+ assert_equal "Still another topic", topic.title
238
+
239
+ topic.send(:write_attribute, "title", "Still another topic: part 2")
240
+ assert_equal "Still another topic: part 2", topic.title
241
+ end
242
+
243
+ def test_read_attribute
244
+ topic = Topic.new
245
+ topic.title = "Don't change the topic"
246
+ assert_equal "Don't change the topic", topic.send(:read_attribute, "title")
247
+ assert_equal "Don't change the topic", topic["title"]
248
+
249
+ assert_equal "Don't change the topic", topic.send(:read_attribute, :title)
250
+ assert_equal "Don't change the topic", topic[:title]
251
+ end
252
+
253
+ def test_read_attribute_when_false
254
+ topic = topics(:first)
255
+ topic.approved = false
256
+ assert !topic.approved?, "approved should be false"
257
+ topic.approved = "false"
258
+ assert !topic.approved?, "approved should be false"
259
+ end
260
+
261
+ def test_read_attribute_when_true
262
+ topic = topics(:first)
263
+ topic.approved = true
264
+ assert topic.approved?, "approved should be true"
265
+ topic.approved = "true"
266
+ assert topic.approved?, "approved should be true"
267
+ end
268
+
269
+ def test_read_write_boolean_attribute
270
+ topic = Topic.new
271
+ # puts ""
272
+ # puts "New Topic"
273
+ # puts topic.inspect
274
+ topic.approved = "false"
275
+ # puts "Expecting false"
276
+ # puts topic.inspect
277
+ assert !topic.approved?, "approved should be false"
278
+ topic.approved = "false"
279
+ # puts "Expecting false"
280
+ # puts topic.inspect
281
+ assert !topic.approved?, "approved should be false"
282
+ topic.approved = "true"
283
+ # puts "Expecting true"
284
+ # puts topic.inspect
285
+ assert topic.approved?, "approved should be true"
286
+ topic.approved = "true"
287
+ # puts "Expecting true"
288
+ # puts topic.inspect
289
+ assert topic.approved?, "approved should be true"
290
+ # puts ""
291
+ end
292
+
293
+ def test_reader_generation
294
+ Topic.find(:first).title
295
+ Firm.find(:first).name
296
+ Client.find(:first).name
297
+ if ActiveRecord::Base.generate_read_methods
298
+ assert_readers(Topic, %w(type replies_count))
299
+ assert_readers(Firm, %w(type))
300
+ assert_readers(Client, %w(type ruby_type rating?))
301
+ else
302
+ [Topic, Firm, Client].each {|klass| assert_equal klass.read_methods, {}}
303
+ end
304
+ end
305
+
306
+ def test_reader_for_invalid_column_names
307
+ # column names which aren't legal ruby ids
308
+ topic = Topic.find(:first)
309
+ topic.send(:define_read_method, "mumub-jumbo".to_sym, "mumub-jumbo", nil)
310
+ assert !Topic.read_methods.include?("mumub-jumbo")
311
+ end
312
+
313
+ def test_non_attribute_access_and_assignment
314
+ topic = Topic.new
315
+ assert !topic.respond_to?("mumbo")
316
+ assert_raises(NoMethodError) { topic.mumbo }
317
+ assert_raises(NoMethodError) { topic.mumbo = 5 }
318
+ end
319
+
320
+ def test_preserving_date_objects
321
+ # SQL Server doesn't have a separate column type just for dates, so all are returned as time
322
+ return true if current_adapter?(:SQLServerAdapter)
323
+
324
+ if current_adapter?(:SybaseAdapter)
325
+ # Sybase ctlib does not (yet?) support the date type; use datetime instead.
326
+ assert_kind_of(
327
+ Time, Topic.find(1).last_read,
328
+ "The last_read attribute should be of the Time class"
329
+ )
330
+ else
331
+ assert_kind_of(
332
+ Date, Topic.find(1).last_read,
333
+ "The last_read attribute should be of the Date class"
334
+ )
335
+ end
336
+ end
337
+
338
+ def test_preserving_time_objects
339
+ assert_kind_of(
340
+ Time, Topic.find(1).bonus_time,
341
+ "The bonus_time attribute should be of the Time class"
342
+ )
343
+
344
+ assert_kind_of(
345
+ Time, Topic.find(1).written_on,
346
+ "The written_on attribute should be of the Time class"
347
+ )
348
+
349
+ # For adapters which support microsecond resolution.
350
+ if current_adapter?(:PostgreSQLAdapter)
351
+ assert_equal 11, Topic.find(1).written_on.sec
352
+ assert_equal 223300, Topic.find(1).written_on.usec
353
+ assert_equal 9900, Topic.find(2).written_on.usec
354
+ end
355
+ end
356
+
357
+ def test_destroy
358
+ topic = Topic.find(1)
359
+ assert_equal topic, topic.destroy, 'topic.destroy did not return self'
360
+ assert topic.frozen?, 'topic not frozen after destroy'
361
+ assert_raise(ActiveRecord::RecordNotFound) { Topic.find(topic.id) }
362
+ end
363
+
364
+ def test_record_not_found_exception
365
+ assert_raises(ActiveRecord::RecordNotFound) { topicReloaded = Topic.find(99999) }
366
+ end
367
+
368
+ def test_initialize_with_attributes
369
+ topic = Topic.new({
370
+ "title" => "initialized from attributes", "written_on" => "2003-12-12 23:23"
371
+ })
372
+
373
+ assert_equal("initialized from attributes", topic.title)
374
+ end
375
+
376
+ def test_initialize_with_invalid_attribute
377
+ begin
378
+ topic = Topic.new({ "title" => "test",
379
+ "last_read(1i)" => "2005", "last_read(2i)" => "2", "last_read(3i)" => "31"})
380
+ rescue ActiveRecord::MultiparameterAssignmentErrors => ex
381
+ assert_equal(1, ex.errors.size)
382
+ assert_equal("last_read", ex.errors[0].attribute)
383
+ end
384
+ end
385
+
386
+ def test_load
387
+ topics = Topic.find(:all, :order => 'id')
388
+ assert_equal(2, topics.size)
389
+ assert_equal(topics(:first).title, topics.first.title)
390
+ end
391
+
392
+ def test_load_with_condition
393
+ topics = Topic.find(:all, :conditions => "author_name = 'Mary'")
394
+
395
+ assert_equal(1, topics.size)
396
+ assert_equal(topics(:second).title, topics.first.title)
397
+ end
398
+
399
+ def test_table_name_guesses
400
+ classes = [Category, Smarts, CreditCard, CreditCard::PinNumber, CreditCard::PinNumber::CvvCode, CreditCard::SubPinNumber, CreditCard::Brand, MasterCreditCard]
401
+
402
+ assert_equal "topics", Topic.table_name
403
+
404
+ assert_equal "categories", Category.table_name
405
+ assert_equal "smarts", Smarts.table_name
406
+ assert_equal "credit_cards", CreditCard.table_name
407
+ assert_equal "credit_card_pin_numbers", CreditCard::PinNumber.table_name
408
+ assert_equal "credit_card_pin_number_cvv_codes", CreditCard::PinNumber::CvvCode.table_name
409
+ assert_equal "credit_card_pin_numbers", CreditCard::SubPinNumber.table_name
410
+ assert_equal "categories", CreditCard::Brand.table_name
411
+ assert_equal "master_credit_cards", MasterCreditCard.table_name
412
+
413
+ ActiveRecord::Base.pluralize_table_names = false
414
+ classes.each(&:reset_table_name)
415
+
416
+ assert_equal "category", Category.table_name
417
+ assert_equal "smarts", Smarts.table_name
418
+ assert_equal "credit_card", CreditCard.table_name
419
+ assert_equal "credit_card_pin_number", CreditCard::PinNumber.table_name
420
+ assert_equal "credit_card_pin_number_cvv_code", CreditCard::PinNumber::CvvCode.table_name
421
+ assert_equal "credit_card_pin_number", CreditCard::SubPinNumber.table_name
422
+ assert_equal "category", CreditCard::Brand.table_name
423
+ assert_equal "master_credit_card", MasterCreditCard.table_name
424
+
425
+ ActiveRecord::Base.pluralize_table_names = true
426
+ classes.each(&:reset_table_name)
427
+
428
+ ActiveRecord::Base.table_name_prefix = "test_"
429
+ Category.reset_table_name
430
+ assert_equal "test_categories", Category.table_name
431
+ ActiveRecord::Base.table_name_suffix = "_test"
432
+ Category.reset_table_name
433
+ assert_equal "test_categories_test", Category.table_name
434
+ ActiveRecord::Base.table_name_prefix = ""
435
+ Category.reset_table_name
436
+ assert_equal "categories_test", Category.table_name
437
+ ActiveRecord::Base.table_name_suffix = ""
438
+ Category.reset_table_name
439
+ assert_equal "categories", Category.table_name
440
+
441
+ ActiveRecord::Base.pluralize_table_names = false
442
+ ActiveRecord::Base.table_name_prefix = "test_"
443
+ Category.reset_table_name
444
+ assert_equal "test_category", Category.table_name
445
+ ActiveRecord::Base.table_name_suffix = "_test"
446
+ Category.reset_table_name
447
+ assert_equal "test_category_test", Category.table_name
448
+ ActiveRecord::Base.table_name_prefix = ""
449
+ Category.reset_table_name
450
+ assert_equal "category_test", Category.table_name
451
+ ActiveRecord::Base.table_name_suffix = ""
452
+ Category.reset_table_name
453
+ assert_equal "category", Category.table_name
454
+
455
+ ActiveRecord::Base.pluralize_table_names = true
456
+ classes.each(&:reset_table_name)
457
+ end
458
+
459
+ def test_destroy_all
460
+ assert_equal 2, Topic.count
461
+
462
+ Topic.destroy_all "author_name = 'Mary'"
463
+ assert_equal 1, Topic.count
464
+ end
465
+
466
+ def test_destroy_many
467
+ assert_equal 3, Client.count
468
+ Client.destroy([2, 3])
469
+ assert_equal 1, Client.count
470
+ end
471
+
472
+ def test_delete_many
473
+ Topic.delete([1, 2])
474
+ assert_equal 0, Topic.count
475
+ end
476
+
477
+ def test_boolean_attributes
478
+ assert ! Topic.find(1).approved?
479
+ assert Topic.find(2).approved?
480
+ end
481
+
482
+ def test_increment_counter
483
+ Topic.increment_counter("replies_count", 1)
484
+ assert_equal 2, Topic.find(1).replies_count
485
+
486
+ Topic.increment_counter("replies_count", 1)
487
+ assert_equal 3, Topic.find(1).replies_count
488
+ end
489
+
490
+ def test_decrement_counter
491
+ Topic.decrement_counter("replies_count", 2)
492
+ assert_equal -1, Topic.find(2).replies_count
493
+
494
+ Topic.decrement_counter("replies_count", 2)
495
+ assert_equal -2, Topic.find(2).replies_count
496
+ end
497
+
498
+ def test_update_all
499
+ # The ADO library doesn't support the number of affected rows
500
+ return true if current_adapter?(:SQLServerAdapter)
501
+
502
+ assert_equal 2, Topic.update_all("content = 'bulk updated!'")
503
+ assert_equal "bulk updated!", Topic.find(1).content
504
+ assert_equal "bulk updated!", Topic.find(2).content
505
+ assert_equal 2, Topic.update_all(['content = ?', 'bulk updated again!'])
506
+ assert_equal "bulk updated again!", Topic.find(1).content
507
+ assert_equal "bulk updated again!", Topic.find(2).content
508
+ end
509
+
510
+ def test_update_many
511
+ topic_data = { 1 => { "content" => "1 updated" }, 2 => { "content" => "2 updated" } }
512
+ updated = Topic.update(topic_data.keys, topic_data.values)
513
+
514
+ assert_equal 2, updated.size
515
+ assert_equal "1 updated", Topic.find(1).content
516
+ assert_equal "2 updated", Topic.find(2).content
517
+ end
518
+
519
+ def test_delete_all
520
+ # The ADO library doesn't support the number of affected rows
521
+ return true if current_adapter?(:SQLServerAdapter)
522
+
523
+ assert_equal 2, Topic.delete_all
524
+ end
525
+
526
+ def test_update_by_condition
527
+ Topic.update_all "content = 'bulk updated!'", ["approved = ?", true]
528
+ assert_equal "Have a nice day", Topic.find(1).content
529
+ assert_equal "bulk updated!", Topic.find(2).content
530
+ end
531
+
532
+ def test_attribute_present
533
+ t = Topic.new
534
+ t.title = "hello there!"
535
+ t.written_on = Time.now
536
+ assert t.attribute_present?("title")
537
+ assert t.attribute_present?("written_on")
538
+ assert !t.attribute_present?("content")
539
+ end
540
+
541
+ def test_attribute_keys_on_new_instance
542
+ t = Topic.new
543
+ assert_equal nil, t.title, "The topics table has a title column, so it should be nil"
544
+ assert_raise(NoMethodError) { t.title2 }
545
+ end
546
+
547
+ def test_class_name
548
+ assert_equal "Firm", ActiveRecord::Base.class_name("firms")
549
+ assert_equal "Category", ActiveRecord::Base.class_name("categories")
550
+ assert_equal "AccountHolder", ActiveRecord::Base.class_name("account_holder")
551
+
552
+ ActiveRecord::Base.pluralize_table_names = false
553
+ assert_equal "Firms", ActiveRecord::Base.class_name( "firms" )
554
+ ActiveRecord::Base.pluralize_table_names = true
555
+
556
+ ActiveRecord::Base.table_name_prefix = "test_"
557
+ assert_equal "Firm", ActiveRecord::Base.class_name( "test_firms" )
558
+ ActiveRecord::Base.table_name_suffix = "_tests"
559
+ assert_equal "Firm", ActiveRecord::Base.class_name( "test_firms_tests" )
560
+ ActiveRecord::Base.table_name_prefix = ""
561
+ assert_equal "Firm", ActiveRecord::Base.class_name( "firms_tests" )
562
+ ActiveRecord::Base.table_name_suffix = ""
563
+ assert_equal "Firm", ActiveRecord::Base.class_name( "firms" )
564
+ end
565
+
566
+ def test_null_fields
567
+ assert_nil Topic.find(1).parent_id
568
+ assert_nil Topic.create("title" => "Hey you").parent_id
569
+ end
570
+
571
+ def test_default_values
572
+ topic = Topic.new
573
+ assert topic.approved?
574
+ assert_nil topic.written_on
575
+ assert_nil topic.bonus_time
576
+ assert_nil topic.last_read
577
+
578
+ topic.save
579
+
580
+ topic = Topic.find(topic.id)
581
+ assert topic.approved?
582
+ assert_nil topic.last_read
583
+
584
+ # Oracle has some funky default handling, so it requires a bit of
585
+ # extra testing. See ticket #2788.
586
+ if current_adapter?(:OracleAdapter)
587
+ test = TestOracleDefault.new
588
+ assert_equal "X", test.test_char
589
+ assert_equal "hello", test.test_string
590
+ assert_equal 3, test.test_int
591
+ end
592
+ end
593
+
594
+ # Oracle, SQLServer, and Sybase do not have a TIME datatype.
595
+ unless current_adapter?(:SQLServerAdapter, :OracleAdapter, :SybaseAdapter)
596
+ def test_utc_as_time_zone
597
+ Topic.default_timezone = :utc
598
+ attributes = { "bonus_time" => "5:42:00AM" }
599
+ topic = Topic.find(1)
600
+ topic.attributes = attributes
601
+ assert_equal Time.utc(2000, 1, 1, 5, 42, 0), topic.bonus_time
602
+ Topic.default_timezone = :local
603
+ end
604
+
605
+ def test_utc_as_time_zone_and_new
606
+ Topic.default_timezone = :utc
607
+ attributes = { "bonus_time(1i)"=>"2000",
608
+ "bonus_time(2i)"=>"1",
609
+ "bonus_time(3i)"=>"1",
610
+ "bonus_time(4i)"=>"10",
611
+ "bonus_time(5i)"=>"35",
612
+ "bonus_time(6i)"=>"50" }
613
+ topic = Topic.new(attributes)
614
+ assert_equal Time.utc(2000, 1, 1, 10, 35, 50), topic.bonus_time
615
+ Topic.default_timezone = :local
616
+ end
617
+ end
618
+
619
+ def test_default_values_on_empty_strings
620
+ topic = Topic.new
621
+ topic.approved = nil
622
+ topic.last_read = nil
623
+
624
+ topic.save
625
+
626
+ topic = Topic.find(topic.id)
627
+ assert_nil topic.last_read
628
+
629
+ # Sybase adapter does not allow nulls in boolean columns
630
+ if current_adapter?(:SybaseAdapter)
631
+ assert topic.approved == false
632
+ else
633
+ assert_nil topic.approved
634
+ end
635
+ end
636
+
637
+ def test_equality
638
+ assert_equal Topic.find(1), Topic.find(2).topic
639
+ end
640
+
641
+ def test_equality_of_new_records
642
+ assert_not_equal Topic.new, Topic.new
643
+ end
644
+
645
+ def test_hashing
646
+ assert_equal [ Topic.find(1) ], [ Topic.find(2).topic ] & [ Topic.find(1) ]
647
+ end
648
+
649
+ def test_destroy_new_record
650
+ client = Client.new
651
+ client.destroy
652
+ assert client.frozen?
653
+ end
654
+
655
+ def test_destroy_record_with_associations
656
+ client = Client.find(3)
657
+ client.destroy
658
+ assert client.frozen?
659
+ assert_kind_of Firm, client.firm
660
+ assert_raises(TypeError) { client.name = "something else" }
661
+ end
662
+
663
+ def test_update_attribute
664
+ assert !Topic.find(1).approved?
665
+ Topic.find(1).update_attribute("approved", true)
666
+ assert Topic.find(1).approved?
667
+
668
+ Topic.find(1).update_attribute(:approved, false)
669
+ assert !Topic.find(1).approved?
670
+ end
671
+
672
+ def test_update_attributes
673
+ topic = Topic.find(1)
674
+ assert !topic.approved?
675
+ assert_equal "The First Topic", topic.title
676
+
677
+ topic.update_attributes("approved" => true, "title" => "The First Topic Updated")
678
+ topic.reload
679
+ assert topic.approved?
680
+ assert_equal "The First Topic Updated", topic.title
681
+
682
+ topic.update_attributes(:approved => false, :title => "The First Topic")
683
+ topic.reload
684
+ assert !topic.approved?
685
+ assert_equal "The First Topic", topic.title
686
+ end
687
+
688
+ def test_update_attributes!
689
+ reply = Reply.find(2)
690
+ assert_equal "The Second Topic's of the day", reply.title
691
+ assert_equal "Have a nice day", reply.content
692
+
693
+ reply.update_attributes!("title" => "The Second Topic's of the day updated", "content" => "Have a nice evening")
694
+ reply.reload
695
+ assert_equal "The Second Topic's of the day updated", reply.title
696
+ assert_equal "Have a nice evening", reply.content
697
+
698
+ reply.update_attributes!(:title => "The Second Topic's of the day", :content => "Have a nice day")
699
+ reply.reload
700
+ assert_equal "The Second Topic's of the day", reply.title
701
+ assert_equal "Have a nice day", reply.content
702
+
703
+ assert_raise(ActiveRecord::RecordInvalid) { reply.update_attributes!(:title => nil, :content => "Have a nice evening") }
704
+ end
705
+
706
+ def test_mass_assignment_protection
707
+ firm = Firm.new
708
+ firm.attributes = { "name" => "Next Angle", "rating" => 5 }
709
+ assert_equal 1, firm.rating
710
+ end
711
+
712
+ def test_mass_assignment_protection_against_class_attribute_writers
713
+ [:logger, :configurations, :primary_key_prefix_type, :table_name_prefix, :table_name_suffix, :pluralize_table_names, :colorize_logging,
714
+ :default_timezone, :allow_concurrency, :generate_read_methods, :schema_format, :verification_timeout, :lock_optimistically, :record_timestamps].each do |method|
715
+ assert Task.respond_to?(method)
716
+ assert Task.respond_to?("#{method}=")
717
+ assert Task.new.respond_to?(method)
718
+ assert !Task.new.respond_to?("#{method}=")
719
+ end
720
+ end
721
+
722
+ def test_customized_primary_key_remains_protected
723
+ subscriber = Subscriber.new(:nick => 'webster123', :name => 'nice try')
724
+ assert_nil subscriber.id
725
+
726
+ keyboard = Keyboard.new(:key_number => 9, :name => 'nice try')
727
+ assert_nil keyboard.id
728
+ end
729
+
730
+ def test_customized_primary_key_remains_protected_when_refered_to_as_id
731
+ subscriber = Subscriber.new(:id => 'webster123', :name => 'nice try')
732
+ assert_nil subscriber.id
733
+
734
+ keyboard = Keyboard.new(:id => 9, :name => 'nice try')
735
+ assert_nil keyboard.id
736
+ end
737
+
738
+ def test_mass_assignment_protection_on_defaults
739
+ firm = Firm.new
740
+ firm.attributes = { "id" => 5, "type" => "Client" }
741
+ assert_nil firm.id
742
+ assert_equal "Firm", firm[:type]
743
+ end
744
+
745
+ def test_mass_assignment_accessible
746
+ reply = Reply.new("title" => "hello", "content" => "world", "approved" => true)
747
+ reply.save
748
+
749
+ assert reply.approved?
750
+
751
+ reply.approved = false
752
+ reply.save
753
+
754
+ assert !reply.approved?
755
+ end
756
+
757
+ def test_mass_assignment_protection_inheritance
758
+ assert_nil LoosePerson.accessible_attributes
759
+ assert_equal [ :credit_rating, :administrator ], LoosePerson.protected_attributes
760
+
761
+ assert_nil LooseDescendant.accessible_attributes
762
+ assert_equal [ :credit_rating, :administrator, :phone_number ], LooseDescendant.protected_attributes
763
+
764
+ assert_nil TightPerson.protected_attributes
765
+ assert_equal [ :name, :address ], TightPerson.accessible_attributes
766
+
767
+ assert_nil TightDescendant.protected_attributes
768
+ assert_equal [ :name, :address, :phone_number ], TightDescendant.accessible_attributes
769
+ end
770
+
771
+ def test_multiparameter_attributes_on_date
772
+ attributes = { "last_read(1i)" => "2004", "last_read(2i)" => "6", "last_read(3i)" => "24" }
773
+ topic = Topic.find(1)
774
+ topic.attributes = attributes
775
+ # note that extra #to_date call allows test to pass for Oracle, which
776
+ # treats dates/times the same
777
+ assert_date_from_db Date.new(2004, 6, 24), topic.last_read.to_date
778
+ end
779
+
780
+ def test_multiparameter_attributes_on_date_with_empty_date
781
+ attributes = { "last_read(1i)" => "2004", "last_read(2i)" => "6", "last_read(3i)" => "" }
782
+ topic = Topic.find(1)
783
+ topic.attributes = attributes
784
+ # note that extra #to_date call allows test to pass for Oracle, which
785
+ # treats dates/times the same
786
+ assert_date_from_db Date.new(2004, 6, 1), topic.last_read.to_date
787
+ end
788
+
789
+ def test_multiparameter_attributes_on_date_with_all_empty
790
+ attributes = { "last_read(1i)" => "", "last_read(2i)" => "", "last_read(3i)" => "" }
791
+ topic = Topic.find(1)
792
+ topic.attributes = attributes
793
+ assert_nil topic.last_read
794
+ end
795
+
796
+ def test_multiparameter_attributes_on_time
797
+ attributes = {
798
+ "written_on(1i)" => "2004", "written_on(2i)" => "6", "written_on(3i)" => "24",
799
+ "written_on(4i)" => "16", "written_on(5i)" => "24", "written_on(6i)" => "00"
800
+ }
801
+ topic = Topic.find(1)
802
+ topic.attributes = attributes
803
+ assert_equal Time.local(2004, 6, 24, 16, 24, 0), topic.written_on
804
+ end
805
+
806
+ def test_multiparameter_attributes_on_time_with_empty_seconds
807
+ attributes = {
808
+ "written_on(1i)" => "2004", "written_on(2i)" => "6", "written_on(3i)" => "24",
809
+ "written_on(4i)" => "16", "written_on(5i)" => "24", "written_on(6i)" => ""
810
+ }
811
+ topic = Topic.find(1)
812
+ topic.attributes = attributes
813
+ assert_equal Time.local(2004, 6, 24, 16, 24, 0), topic.written_on
814
+ end
815
+
816
+ def test_multiparameter_mass_assignment_protector
817
+ task = Task.new
818
+ time = Time.mktime(2000, 1, 1, 1)
819
+ task.starting = time
820
+ attributes = { "starting(1i)" => "2004", "starting(2i)" => "6", "starting(3i)" => "24" }
821
+ task.attributes = attributes
822
+ assert_equal time, task.starting
823
+ end
824
+
825
+ def test_multiparameter_assignment_of_aggregation
826
+ customer = Customer.new
827
+ address = Address.new("The Street", "The City", "The Country")
828
+ attributes = { "address(1)" => address.street, "address(2)" => address.city, "address(3)" => address.country }
829
+ customer.attributes = attributes
830
+ assert_equal address, customer.address
831
+ end
832
+
833
+ def test_attributes_on_dummy_time
834
+ # Oracle, SQL Server, and Sybase do not have a TIME datatype.
835
+ return true if current_adapter?(:SQLServerAdapter, :OracleAdapter, :SybaseAdapter)
836
+
837
+ attributes = {
838
+ "bonus_time" => "5:42:00AM"
839
+ }
840
+ topic = Topic.find(1)
841
+ topic.attributes = attributes
842
+ assert_equal Time.local(2000, 1, 1, 5, 42, 0), topic.bonus_time
843
+ end
844
+
845
+ def test_boolean
846
+ b_false = Booleantest.create({ "value" => false })
847
+ false_id = b_false.id
848
+ b_true = Booleantest.create({ "value" => true })
849
+ true_id = b_true.id
850
+
851
+ b_false = Booleantest.find(false_id)
852
+ assert !b_false.value?
853
+ b_true = Booleantest.find(true_id)
854
+ assert b_true.value?
855
+ end
856
+
857
+ def test_boolean_cast_from_string
858
+ b_false = Booleantest.create({ "value" => "0" })
859
+ false_id = b_false.id
860
+ b_true = Booleantest.create({ "value" => "1" })
861
+ true_id = b_true.id
862
+
863
+ b_false = Booleantest.find(false_id)
864
+ assert !b_false.value?
865
+ b_true = Booleantest.find(true_id)
866
+ assert b_true.value?
867
+ end
868
+
869
+ def test_clone
870
+ topic = Topic.find(1)
871
+ cloned_topic = nil
872
+ assert_nothing_raised { cloned_topic = topic.clone }
873
+ assert_equal topic.title, cloned_topic.title
874
+ assert cloned_topic.new_record?
875
+
876
+ # test if the attributes have been cloned
877
+ topic.title = "a"
878
+ cloned_topic.title = "b"
879
+ assert_equal "a", topic.title
880
+ assert_equal "b", cloned_topic.title
881
+
882
+ # test if the attribute values have been cloned
883
+ topic.title = {"a" => "b"}
884
+ cloned_topic = topic.clone
885
+ cloned_topic.title["a"] = "c"
886
+ assert_equal "b", topic.title["a"]
887
+
888
+ cloned_topic.save
889
+ assert !cloned_topic.new_record?
890
+ assert cloned_topic.id != topic.id
891
+ end
892
+
893
+ def test_clone_with_aggregate_of_same_name_as_attribute
894
+ dev = DeveloperWithAggregate.find(1)
895
+ assert_kind_of DeveloperSalary, dev.salary
896
+
897
+ clone = nil
898
+ assert_nothing_raised { clone = dev.clone }
899
+ assert_kind_of DeveloperSalary, clone.salary
900
+ assert_equal dev.salary.amount, clone.salary.amount
901
+ assert clone.new_record?
902
+
903
+ # test if the attributes have been cloned
904
+ original_amount = clone.salary.amount
905
+ dev.salary.amount = 1
906
+ assert_equal original_amount, clone.salary.amount
907
+
908
+ assert clone.save
909
+ assert !clone.new_record?
910
+ assert clone.id != dev.id
911
+ end
912
+
913
+ def test_clone_preserves_subtype
914
+ clone = nil
915
+ assert_nothing_raised { clone = Company.find(3).clone }
916
+ assert_kind_of Client, clone
917
+ end
918
+
919
+ def test_bignum
920
+ company = Company.find(1)
921
+ company.rating = 2147483647
922
+ company.save
923
+ company = Company.find(1)
924
+ assert_equal 2147483647, company.rating
925
+ end
926
+
927
+ # TODO: extend defaults tests to other databases!
928
+ if current_adapter?(:PostgreSQLAdapter)
929
+ def test_default
930
+ default = Default.new
931
+
932
+ # fixed dates / times
933
+ assert_equal Date.new(2004, 1, 1), default.fixed_date
934
+ assert_equal Time.local(2004, 1,1,0,0,0,0), default.fixed_time
935
+
936
+ # char types
937
+ assert_equal 'Y', default.char1
938
+ assert_equal 'a varchar field', default.char2
939
+ assert_equal 'a text field', default.char3
940
+ end
941
+
942
+ class Geometric < ActiveRecord::Base; end
943
+ def test_geometric_content
944
+
945
+ # accepted format notes:
946
+ # ()'s aren't required
947
+ # values can be a mix of float or integer
948
+
949
+ g = Geometric.new(
950
+ :a_point => '(5.0, 6.1)',
951
+ #:a_line => '((2.0, 3), (5.5, 7.0))' # line type is currently unsupported in postgresql
952
+ :a_line_segment => '(2.0, 3), (5.5, 7.0)',
953
+ :a_box => '2.0, 3, 5.5, 7.0',
954
+ :a_path => '[(2.0, 3), (5.5, 7.0), (8.5, 11.0)]', # [ ] is an open path
955
+ :a_polygon => '((2.0, 3), (5.5, 7.0), (8.5, 11.0))',
956
+ :a_circle => '<(5.3, 10.4), 2>'
957
+ )
958
+
959
+ assert g.save
960
+
961
+ # Reload and check that we have all the geometric attributes.
962
+ h = Geometric.find(g.id)
963
+
964
+ assert_equal '(5,6.1)', h.a_point
965
+ assert_equal '[(2,3),(5.5,7)]', h.a_line_segment
966
+ assert_equal '(5.5,7),(2,3)', h.a_box # reordered to store upper right corner then bottom left corner
967
+ assert_equal '[(2,3),(5.5,7),(8.5,11)]', h.a_path
968
+ assert_equal '((2,3),(5.5,7),(8.5,11))', h.a_polygon
969
+ assert_equal '<(5.3,10.4),2>', h.a_circle
970
+
971
+ # use a geometric function to test for an open path
972
+ objs = Geometric.find_by_sql ["select isopen(a_path) from geometrics where id = ?", g.id]
973
+ assert_equal objs[0].isopen, 't'
974
+
975
+ # test alternate formats when defining the geometric types
976
+
977
+ g = Geometric.new(
978
+ :a_point => '5.0, 6.1',
979
+ #:a_line => '((2.0, 3), (5.5, 7.0))' # line type is currently unsupported in postgresql
980
+ :a_line_segment => '((2.0, 3), (5.5, 7.0))',
981
+ :a_box => '(2.0, 3), (5.5, 7.0)',
982
+ :a_path => '((2.0, 3), (5.5, 7.0), (8.5, 11.0))', # ( ) is a closed path
983
+ :a_polygon => '2.0, 3, 5.5, 7.0, 8.5, 11.0',
984
+ :a_circle => '((5.3, 10.4), 2)'
985
+ )
986
+
987
+ assert g.save
988
+
989
+ # Reload and check that we have all the geometric attributes.
990
+ h = Geometric.find(g.id)
991
+
992
+ assert_equal '(5,6.1)', h.a_point
993
+ assert_equal '[(2,3),(5.5,7)]', h.a_line_segment
994
+ assert_equal '(5.5,7),(2,3)', h.a_box # reordered to store upper right corner then bottom left corner
995
+ assert_equal '((2,3),(5.5,7),(8.5,11))', h.a_path
996
+ assert_equal '((2,3),(5.5,7),(8.5,11))', h.a_polygon
997
+ assert_equal '<(5.3,10.4),2>', h.a_circle
998
+
999
+ # use a geometric function to test for an closed path
1000
+ objs = Geometric.find_by_sql ["select isclosed(a_path) from geometrics where id = ?", g.id]
1001
+ assert_equal objs[0].isclosed, 't'
1002
+ end
1003
+ end
1004
+
1005
+ class NumericData < ActiveRecord::Base
1006
+ self.table_name = 'numeric_data'
1007
+ end
1008
+
1009
+ def test_numeric_fields
1010
+ m = NumericData.new(
1011
+ :bank_balance => 1586.43,
1012
+ :big_bank_balance => BigDecimal("1000234000567.95"),
1013
+ :world_population => 6000000000,
1014
+ :my_house_population => 3
1015
+ )
1016
+ assert m.save
1017
+
1018
+ m1 = NumericData.find(m.id)
1019
+ assert_not_nil m1
1020
+
1021
+ # As with migration_test.rb, we should make world_population >= 2**62
1022
+ # to cover 64-bit platforms and test it is a Bignum, but the main thing
1023
+ # is that it's an Integer.
1024
+ assert_kind_of Integer, m1.world_population
1025
+ assert_equal 6000000000, m1.world_population
1026
+
1027
+ assert_kind_of Fixnum, m1.my_house_population
1028
+ assert_equal 3, m1.my_house_population
1029
+
1030
+ assert_kind_of BigDecimal, m1.bank_balance
1031
+ assert_equal BigDecimal("1586.43"), m1.bank_balance
1032
+
1033
+ assert_kind_of BigDecimal, m1.big_bank_balance
1034
+ assert_equal BigDecimal("1000234000567.95"), m1.big_bank_balance
1035
+ end
1036
+
1037
+ def test_auto_id
1038
+ auto = AutoId.new
1039
+ auto.save
1040
+ assert (auto.id > 0)
1041
+ end
1042
+
1043
+ def quote_column_name(name)
1044
+ "<#{name}>"
1045
+ end
1046
+
1047
+ def test_quote_keys
1048
+ ar = AutoId.new
1049
+ source = {"foo" => "bar", "baz" => "quux"}
1050
+ actual = ar.send(:quote_columns, self, source)
1051
+ inverted = actual.invert
1052
+ assert_equal("<foo>", inverted["bar"])
1053
+ assert_equal("<baz>", inverted["quux"])
1054
+ end
1055
+
1056
+ def test_sql_injection_via_find
1057
+ assert_raises(ActiveRecord::RecordNotFound, ActiveRecord::StatementInvalid) do
1058
+ Topic.find("123456 OR id > 0")
1059
+ end
1060
+ end
1061
+
1062
+ def test_column_name_properly_quoted
1063
+ col_record = ColumnName.new
1064
+ col_record.references = 40
1065
+ assert col_record.save
1066
+ col_record.references = 41
1067
+ assert col_record.save
1068
+ assert_not_nil c2 = ColumnName.find(col_record.id)
1069
+ assert_equal(41, c2.references)
1070
+ end
1071
+
1072
+ def test_quoting_arrays
1073
+ replies = Reply.find(:all, :conditions => [ "id IN (?)", topics(:first).replies.collect(&:id) ])
1074
+ assert_equal topics(:first).replies.size, replies.size
1075
+
1076
+ replies = Reply.find(:all, :conditions => [ "id IN (?)", [] ])
1077
+ assert_equal 0, replies.size
1078
+ end
1079
+
1080
+ MyObject = Struct.new :attribute1, :attribute2
1081
+
1082
+ def test_serialized_attribute
1083
+ myobj = MyObject.new('value1', 'value2')
1084
+ topic = Topic.create("content" => myobj)
1085
+ Topic.serialize("content", MyObject)
1086
+ assert_equal(myobj, topic.content)
1087
+ end
1088
+
1089
+ def test_serialized_attribute_with_class_constraint
1090
+ myobj = MyObject.new('value1', 'value2')
1091
+ topic = Topic.create("content" => myobj)
1092
+ Topic.serialize(:content, Hash)
1093
+
1094
+ assert_raise(ActiveRecord::SerializationTypeMismatch) { Topic.find(topic.id).content }
1095
+
1096
+ settings = { "color" => "blue" }
1097
+ Topic.find(topic.id).update_attribute("content", settings)
1098
+ assert_equal(settings, Topic.find(topic.id).content)
1099
+ Topic.serialize(:content)
1100
+ end
1101
+
1102
+ def test_quote
1103
+ author_name = "\\ \001 ' \n \\n \""
1104
+ topic = Topic.create('author_name' => author_name)
1105
+ assert_equal author_name, Topic.find(topic.id).author_name
1106
+ end
1107
+
1108
+ def test_quote_chars
1109
+ str = 'The Narrator'
1110
+ topic = Topic.create(:author_name => str)
1111
+ assert_equal str, topic.author_name
1112
+
1113
+ assert_kind_of ActiveSupport::Multibyte::Chars, str.chars
1114
+ topic = Topic.find_by_author_name(str.chars)
1115
+
1116
+ assert_kind_of Topic, topic
1117
+ assert_equal str, topic.author_name, "The right topic should have been found by name even with name passed as Chars"
1118
+ end
1119
+
1120
+ def test_class_level_destroy
1121
+ should_be_destroyed_reply = Reply.create("title" => "hello", "content" => "world")
1122
+ Topic.find(1).replies << should_be_destroyed_reply
1123
+
1124
+ Topic.destroy(1)
1125
+ assert_raise(ActiveRecord::RecordNotFound) { Topic.find(1) }
1126
+ assert_raise(ActiveRecord::RecordNotFound) { Reply.find(should_be_destroyed_reply.id) }
1127
+ end
1128
+
1129
+ def test_class_level_delete
1130
+ should_be_destroyed_reply = Reply.create("title" => "hello", "content" => "world")
1131
+ Topic.find(1).replies << should_be_destroyed_reply
1132
+
1133
+ Topic.delete(1)
1134
+ assert_raise(ActiveRecord::RecordNotFound) { Topic.find(1) }
1135
+ assert_nothing_raised { Reply.find(should_be_destroyed_reply.id) }
1136
+ end
1137
+
1138
+ def test_increment_attribute
1139
+ assert_equal 1, topics(:first).replies_count
1140
+ topics(:first).increment! :replies_count
1141
+ assert_equal 2, topics(:first, :reload).replies_count
1142
+
1143
+ topics(:first).increment(:replies_count).increment!(:replies_count)
1144
+ assert_equal 4, topics(:first, :reload).replies_count
1145
+ end
1146
+
1147
+ def test_increment_nil_attribute
1148
+ assert_nil topics(:first).parent_id
1149
+ topics(:first).increment! :parent_id
1150
+ assert_equal 1, topics(:first).parent_id
1151
+ end
1152
+
1153
+ def test_decrement_attribute
1154
+ topics(:first).increment(:replies_count).increment!(:replies_count)
1155
+ assert_equal 3, topics(:first).replies_count
1156
+
1157
+ topics(:first).decrement!(:replies_count)
1158
+ assert_equal 2, topics(:first, :reload).replies_count
1159
+
1160
+ topics(:first).decrement(:replies_count).decrement!(:replies_count)
1161
+ assert_equal 0, topics(:first, :reload).replies_count
1162
+ end
1163
+
1164
+ def test_toggle_attribute
1165
+ assert !topics(:first).approved?
1166
+ topics(:first).toggle!(:approved)
1167
+ assert topics(:first).approved?
1168
+ topic = topics(:first)
1169
+ topic.toggle(:approved)
1170
+ assert !topic.approved?
1171
+ topic.reload
1172
+ assert topic.approved?
1173
+ end
1174
+
1175
+ def test_reload
1176
+ t1 = Topic.find(1)
1177
+ t2 = Topic.find(1)
1178
+ t1.title = "something else"
1179
+ t1.save
1180
+ t2.reload
1181
+ assert_equal t1.title, t2.title
1182
+ end
1183
+
1184
+ def test_define_attr_method_with_value
1185
+ k = Class.new( ActiveRecord::Base )
1186
+ k.send(:define_attr_method, :table_name, "foo")
1187
+ assert_equal "foo", k.table_name
1188
+ end
1189
+
1190
+ def test_define_attr_method_with_block
1191
+ k = Class.new( ActiveRecord::Base )
1192
+ k.send(:define_attr_method, :primary_key) { "sys_" + original_primary_key }
1193
+ assert_equal "sys_id", k.primary_key
1194
+ end
1195
+
1196
+ def test_set_table_name_with_value
1197
+ k = Class.new( ActiveRecord::Base )
1198
+ k.table_name = "foo"
1199
+ assert_equal "foo", k.table_name
1200
+ k.set_table_name "bar"
1201
+ assert_equal "bar", k.table_name
1202
+ end
1203
+
1204
+ def test_set_table_name_with_block
1205
+ k = Class.new( ActiveRecord::Base )
1206
+ k.set_table_name { "ks" }
1207
+ assert_equal "ks", k.table_name
1208
+ end
1209
+
1210
+ def test_set_primary_key_with_value
1211
+ k = Class.new( ActiveRecord::Base )
1212
+ k.primary_key = "foo"
1213
+ assert_equal "foo", k.primary_key
1214
+ k.set_primary_key "bar"
1215
+ assert_equal "bar", k.primary_key
1216
+ end
1217
+
1218
+ def test_set_primary_key_with_block
1219
+ k = Class.new( ActiveRecord::Base )
1220
+ k.set_primary_key { "sys_" + original_primary_key }
1221
+ assert_equal "sys_id", k.primary_key
1222
+ end
1223
+
1224
+ def test_set_inheritance_column_with_value
1225
+ k = Class.new( ActiveRecord::Base )
1226
+ k.inheritance_column = "foo"
1227
+ assert_equal "foo", k.inheritance_column
1228
+ k.set_inheritance_column "bar"
1229
+ assert_equal "bar", k.inheritance_column
1230
+ end
1231
+
1232
+ def test_set_inheritance_column_with_block
1233
+ k = Class.new( ActiveRecord::Base )
1234
+ k.set_inheritance_column { original_inheritance_column + "_id" }
1235
+ assert_equal "type_id", k.inheritance_column
1236
+ end
1237
+
1238
+ def test_count_with_join
1239
+ res = Post.count_by_sql "SELECT COUNT(*) FROM posts LEFT JOIN comments ON posts.id=comments.post_id WHERE posts.#{QUOTED_TYPE} = 'Post'"
1240
+ res2 = nil
1241
+ assert_deprecated 'count' do
1242
+ res2 = Post.count("posts.#{QUOTED_TYPE} = 'Post'",
1243
+ "LEFT JOIN comments ON posts.id=comments.post_id")
1244
+ end
1245
+ assert_equal res, res2
1246
+
1247
+ res3 = nil
1248
+ assert_nothing_raised do
1249
+ res3 = Post.count(:conditions => "posts.#{QUOTED_TYPE} = 'Post'",
1250
+ :joins => "LEFT JOIN comments ON posts.id=comments.post_id")
1251
+ end
1252
+ assert_equal res, res3
1253
+
1254
+ res4 = Post.count_by_sql "SELECT COUNT(p.id) FROM posts p, comments co WHERE p.#{QUOTED_TYPE} = 'Post' AND p.id=co.post_id"
1255
+ res5 = nil
1256
+ assert_nothing_raised do
1257
+ res5 = Post.count(:conditions => "p.#{QUOTED_TYPE} = 'Post' AND p.id=co.post_id",
1258
+ :joins => "p, comments co",
1259
+ :select => "p.id")
1260
+ end
1261
+
1262
+ assert_equal res4, res5
1263
+
1264
+ res6 = Post.count_by_sql "SELECT COUNT(DISTINCT p.id) FROM posts p, comments co WHERE p.#{QUOTED_TYPE} = 'Post' AND p.id=co.post_id"
1265
+ res7 = nil
1266
+ assert_nothing_raised do
1267
+ res7 = Post.count(:conditions => "p.#{QUOTED_TYPE} = 'Post' AND p.id=co.post_id",
1268
+ :joins => "p, comments co",
1269
+ :select => "p.id",
1270
+ :distinct => true)
1271
+ end
1272
+ assert_equal res6, res7
1273
+ end
1274
+
1275
+ def test_clear_association_cache_stored
1276
+ firm = Firm.find(1)
1277
+ assert_kind_of Firm, firm
1278
+
1279
+ firm.clear_association_cache
1280
+ assert_equal Firm.find(1).clients.collect{ |x| x.name }.sort, firm.clients.collect{ |x| x.name }.sort
1281
+ end
1282
+
1283
+ def test_clear_association_cache_new_record
1284
+ firm = Firm.new
1285
+ client_stored = Client.find(3)
1286
+ client_new = Client.new
1287
+ client_new.name = "The Joneses"
1288
+ clients = [ client_stored, client_new ]
1289
+
1290
+ firm.clients << clients
1291
+
1292
+ firm.clear_association_cache
1293
+
1294
+ assert_equal firm.clients.collect{ |x| x.name }.sort, clients.collect{ |x| x.name }.sort
1295
+ end
1296
+
1297
+ def test_interpolate_sql
1298
+ assert_nothing_raised { Category.new.send(:interpolate_sql, 'foo@bar') }
1299
+ assert_nothing_raised { Category.new.send(:interpolate_sql, 'foo bar) baz') }
1300
+ assert_nothing_raised { Category.new.send(:interpolate_sql, 'foo bar} baz') }
1301
+ end
1302
+
1303
+ def test_scoped_find_conditions
1304
+ scoped_developers = Developer.with_scope(:find => { :conditions => 'salary > 90000' }) do
1305
+ Developer.find(:all, :conditions => 'id < 5')
1306
+ end
1307
+ assert !scoped_developers.include?(developers(:david)) # David's salary is less than 90,000
1308
+ assert_equal 3, scoped_developers.size
1309
+ end
1310
+
1311
+ def test_scoped_find_limit_offset
1312
+ scoped_developers = Developer.with_scope(:find => { :limit => 3, :offset => 2 }) do
1313
+ Developer.find(:all, :order => 'id')
1314
+ end
1315
+ assert !scoped_developers.include?(developers(:david))
1316
+ assert !scoped_developers.include?(developers(:jamis))
1317
+ assert_equal 3, scoped_developers.size
1318
+
1319
+ # Test without scoped find conditions to ensure we get the whole thing
1320
+ developers = Developer.find(:all, :order => 'id')
1321
+ assert_equal Developer.count, developers.size
1322
+ end
1323
+
1324
+ def test_scoped_find_order
1325
+ # Test order in scope
1326
+ scoped_developers = Developer.with_scope(:find => { :limit => 1, :order => 'salary DESC' }) do
1327
+ Developer.find(:all)
1328
+ end
1329
+ assert_equal 'Jamis', scoped_developers.first.name
1330
+ assert scoped_developers.include?(developers(:jamis))
1331
+ # Test scope without order and order in find
1332
+ scoped_developers = Developer.with_scope(:find => { :limit => 1 }) do
1333
+ Developer.find(:all, :order => 'salary DESC')
1334
+ end
1335
+ # Test scope order + find order, find has priority
1336
+ scoped_developers = Developer.with_scope(:find => { :limit => 3, :order => 'id DESC' }) do
1337
+ Developer.find(:all, :order => 'salary ASC')
1338
+ end
1339
+ assert scoped_developers.include?(developers(:poor_jamis))
1340
+ assert scoped_developers.include?(developers(:david))
1341
+ assert scoped_developers.include?(developers(:dev_10))
1342
+ # Test without scoped find conditions to ensure we get the right thing
1343
+ developers = Developer.find(:all, :order => 'id', :limit => 1)
1344
+ assert scoped_developers.include?(developers(:david))
1345
+ end
1346
+
1347
+ def test_scoped_find_limit_offset_including_has_many_association
1348
+ topics = Topic.with_scope(:find => {:limit => 1, :offset => 1, :include => :replies}) do
1349
+ Topic.find(:all, :order => "topics.id")
1350
+ end
1351
+ assert_equal 1, topics.size
1352
+ assert_equal 2, topics.first.id
1353
+ end
1354
+
1355
+ def test_scoped_find_order_including_has_many_association
1356
+ developers = Developer.with_scope(:find => { :order => 'developers.salary DESC', :include => :projects }) do
1357
+ Developer.find(:all)
1358
+ end
1359
+ assert developers.size >= 2
1360
+ for i in 1...developers.size
1361
+ assert developers[i-1].salary >= developers[i].salary
1362
+ end
1363
+ end
1364
+
1365
+ def test_abstract_class
1366
+ assert !ActiveRecord::Base.abstract_class?
1367
+ assert LoosePerson.abstract_class?
1368
+ assert !LooseDescendant.abstract_class?
1369
+ end
1370
+
1371
+ def test_base_class
1372
+ assert_equal LoosePerson, LoosePerson.base_class
1373
+ assert_equal LooseDescendant, LooseDescendant.base_class
1374
+ assert_equal TightPerson, TightPerson.base_class
1375
+ assert_equal TightPerson, TightDescendant.base_class
1376
+
1377
+ assert_equal Post, Post.base_class
1378
+ assert_equal Post, SpecialPost.base_class
1379
+ assert_equal Post, StiPost.base_class
1380
+ assert_equal SubStiPost, SubStiPost.base_class
1381
+ end
1382
+
1383
+ def test_descends_from_active_record
1384
+ # Tries to call Object.abstract_class?
1385
+ assert_raise(NoMethodError) do
1386
+ ActiveRecord::Base.descends_from_active_record?
1387
+ end
1388
+
1389
+ # Abstract subclass of AR::Base.
1390
+ assert LoosePerson.descends_from_active_record?
1391
+
1392
+ # Concrete subclass of an abstract class.
1393
+ assert LooseDescendant.descends_from_active_record?
1394
+
1395
+ # Concrete subclass of AR::Base.
1396
+ assert TightPerson.descends_from_active_record?
1397
+
1398
+ # Concrete subclass of a concrete class but has no type column.
1399
+ assert TightDescendant.descends_from_active_record?
1400
+
1401
+ # Concrete subclass of AR::Base.
1402
+ assert Post.descends_from_active_record?
1403
+
1404
+ # Abstract subclass of a concrete class which has a type column.
1405
+ # This is pathological, as you'll never have Sub < Abstract < Concrete.
1406
+ assert !StiPost.descends_from_active_record?
1407
+
1408
+ # Concrete subclasses an abstract class which has a type column.
1409
+ assert !SubStiPost.descends_from_active_record?
1410
+ end
1411
+
1412
+ def test_find_on_abstract_base_class_doesnt_use_type_condition
1413
+ old_class = LooseDescendant
1414
+ Object.send :remove_const, :LooseDescendant
1415
+
1416
+ descendant = old_class.create!
1417
+ assert_not_nil LoosePerson.find(descendant.id), "Should have found instance of LooseDescendant when finding abstract LoosePerson: #{descendant.inspect}"
1418
+ ensure
1419
+ unless Object.const_defined?(:LooseDescendant)
1420
+ Object.const_set :LooseDescendant, old_class
1421
+ end
1422
+ end
1423
+
1424
+ def test_assert_queries
1425
+ query = lambda { ActiveRecord::Base.connection.execute 'select count(*) from developers' }
1426
+ assert_queries(2) { 2.times { query.call } }
1427
+ assert_queries 1, &query
1428
+ assert_no_queries { assert true }
1429
+ end
1430
+
1431
+ def test_to_xml
1432
+ xml = topics(:first).to_xml(:indent => 0, :skip_instruct => true)
1433
+ bonus_time_in_current_timezone = topics(:first).bonus_time.xmlschema
1434
+ written_on_in_current_timezone = topics(:first).written_on.xmlschema
1435
+ last_read_in_current_timezone = topics(:first).last_read.xmlschema
1436
+ assert_equal "<topic>", xml.first(7)
1437
+ assert xml.include?(%(<title>The First Topic</title>))
1438
+ assert xml.include?(%(<author-name>David</author-name>))
1439
+ assert xml.include?(%(<id type="integer">1</id>))
1440
+ assert xml.include?(%(<replies-count type="integer">1</replies-count>))
1441
+ assert xml.include?(%(<written-on type="datetime">#{written_on_in_current_timezone}</written-on>))
1442
+ assert xml.include?(%(<content>Have a nice day</content>))
1443
+ assert xml.include?(%(<author-email-address>david@loudthinking.com</author-email-address>))
1444
+ assert xml.match(%(<parent-id type="integer"></parent-id>))
1445
+ if current_adapter?(:SybaseAdapter, :SQLServerAdapter, :OracleAdapter)
1446
+ assert xml.include?(%(<last-read type="datetime">#{last_read_in_current_timezone}</last-read>))
1447
+ else
1448
+ assert xml.include?(%(<last-read type="date">2004-04-15</last-read>))
1449
+ end
1450
+ # Oracle and DB2 don't have true boolean or time-only fields
1451
+ unless current_adapter?(:OracleAdapter, :DB2Adapter)
1452
+ assert xml.include?(%(<approved type="boolean">false</approved>)), "Approved should be a boolean"
1453
+ assert xml.include?(%(<bonus-time type="datetime">#{bonus_time_in_current_timezone}</bonus-time>))
1454
+ end
1455
+ end
1456
+
1457
+ def test_to_xml_skipping_attributes
1458
+ xml = topics(:first).to_xml(:indent => 0, :skip_instruct => true, :except => [:title, :replies_count])
1459
+ assert_equal "<topic>", xml.first(7)
1460
+ assert !xml.include?(%(<title>The First Topic</title>))
1461
+ assert xml.include?(%(<author-name>David</author-name>))
1462
+
1463
+ xml = topics(:first).to_xml(:indent => 0, :skip_instruct => true, :except => [:title, :author_name, :replies_count])
1464
+ assert !xml.include?(%(<title>The First Topic</title>))
1465
+ assert !xml.include?(%(<author-name>David</author-name>))
1466
+ end
1467
+
1468
+ def test_to_xml_including_has_many_association
1469
+ xml = topics(:first).to_xml(:indent => 0, :skip_instruct => true, :include => :replies, :except => :replies_count)
1470
+ assert_equal "<topic>", xml.first(7)
1471
+ assert xml.include?(%(<replies><reply>))
1472
+ assert xml.include?(%(<title>The Second Topic's of the day</title>))
1473
+ end
1474
+
1475
+ def test_array_to_xml_including_has_many_association
1476
+ xml = [ topics(:first), topics(:second) ].to_xml(:indent => 0, :skip_instruct => true, :include => :replies)
1477
+ assert xml.include?(%(<replies><reply>))
1478
+ end
1479
+
1480
+ def test_array_to_xml_including_methods
1481
+ xml = [ topics(:first), topics(:second) ].to_xml(:indent => 0, :skip_instruct => true, :methods => [ :topic_id ])
1482
+ assert xml.include?(%(<topic-id type="integer">#{topics(:first).topic_id}</topic-id>)), xml
1483
+ assert xml.include?(%(<topic-id type="integer">#{topics(:second).topic_id}</topic-id>)), xml
1484
+ end
1485
+
1486
+ def test_array_to_xml_including_has_one_association
1487
+ xml = [ companies(:first_firm), companies(:rails_core) ].to_xml(:indent => 0, :skip_instruct => true, :include => :account)
1488
+ assert xml.include?(companies(:first_firm).account.to_xml(:indent => 0, :skip_instruct => true))
1489
+ assert xml.include?(companies(:rails_core).account.to_xml(:indent => 0, :skip_instruct => true))
1490
+ end
1491
+
1492
+ def test_array_to_xml_including_belongs_to_association
1493
+ xml = [ companies(:first_client), companies(:second_client), companies(:another_client) ].to_xml(:indent => 0, :skip_instruct => true, :include => :firm)
1494
+ assert xml.include?(companies(:first_client).to_xml(:indent => 0, :skip_instruct => true))
1495
+ assert xml.include?(companies(:second_client).firm.to_xml(:indent => 0, :skip_instruct => true))
1496
+ assert xml.include?(companies(:another_client).firm.to_xml(:indent => 0, :skip_instruct => true))
1497
+ end
1498
+
1499
+ def test_to_xml_including_belongs_to_association
1500
+ xml = companies(:first_client).to_xml(:indent => 0, :skip_instruct => true, :include => :firm)
1501
+ assert !xml.include?("<firm>")
1502
+
1503
+ xml = companies(:second_client).to_xml(:indent => 0, :skip_instruct => true, :include => :firm)
1504
+ assert xml.include?("<firm>")
1505
+ end
1506
+
1507
+ def test_to_xml_including_multiple_associations
1508
+ xml = companies(:first_firm).to_xml(:indent => 0, :skip_instruct => true, :include => [ :clients, :account ])
1509
+ assert_equal "<firm>", xml.first(6)
1510
+ assert xml.include?(%(<account>))
1511
+ assert xml.include?(%(<clients><client>))
1512
+ end
1513
+
1514
+ def test_to_xml_including_multiple_associations_with_options
1515
+ xml = companies(:first_firm).to_xml(
1516
+ :indent => 0, :skip_instruct => true,
1517
+ :include => { :clients => { :only => :name } }
1518
+ )
1519
+
1520
+ assert_equal "<firm>", xml.first(6)
1521
+ assert xml.include?(%(<client><name>Summit</name></client>))
1522
+ assert xml.include?(%(<clients><client>))
1523
+ end
1524
+
1525
+ def test_to_xml_including_methods
1526
+ xml = Company.new.to_xml(:methods => :arbitrary_method, :skip_instruct => true)
1527
+ assert_equal "<company>", xml.first(9)
1528
+ assert xml.include?(%(<arbitrary-method>I am Jack's profound disappointment</arbitrary-method>))
1529
+ end
1530
+
1531
+ def test_except_attributes
1532
+ assert_equal(
1533
+ %w( author_name type id approved replies_count bonus_time written_on content author_email_address parent_id last_read),
1534
+ topics(:first).attributes(:except => :title).keys
1535
+ )
1536
+
1537
+ assert_equal(
1538
+ %w( replies_count bonus_time written_on content author_email_address parent_id last_read),
1539
+ topics(:first).attributes(:except => [ :title, :id, :type, :approved, :author_name ]).keys
1540
+ )
1541
+ end
1542
+
1543
+ def test_include_attributes
1544
+ assert_equal(%w( title ), topics(:first).attributes(:only => :title).keys)
1545
+ assert_equal(%w( title author_name type id approved ), topics(:first).attributes(:only => [ :title, :id, :type, :approved, :author_name ]).keys)
1546
+ end
1547
+
1548
+ def test_type_name_with_module_should_handle_beginning
1549
+ assert_equal 'ActiveRecord::Person', ActiveRecord::Base.send(:type_name_with_module, 'Person')
1550
+ assert_equal '::Person', ActiveRecord::Base.send(:type_name_with_module, '::Person')
1551
+ end
1552
+
1553
+ def test_to_param_should_return_string
1554
+ assert_kind_of String, Client.find(:first).to_param
1555
+ end
1556
+
1557
+ # FIXME: this test ought to run, but it needs to run sandboxed so that it
1558
+ # doesn't b0rk the current test environment by undefing everything.
1559
+ #
1560
+ #def test_dev_mode_memory_leak
1561
+ # counts = []
1562
+ # 2.times do
1563
+ # require_dependency 'fixtures/company'
1564
+ # Firm.find(:first)
1565
+ # Dependencies.clear
1566
+ # ActiveRecord::Base.reset_subclasses
1567
+ # Dependencies.remove_subclasses_for(ActiveRecord::Base)
1568
+ #
1569
+ # GC.start
1570
+ #
1571
+ # count = 0
1572
+ # ObjectSpace.each_object(Proc) { count += 1 }
1573
+ # counts << count
1574
+ # end
1575
+ # assert counts.last <= counts.first,
1576
+ # "expected last count (#{counts.last}) to be <= first count (#{counts.first})"
1577
+ #end
1578
+
1579
+ private
1580
+ def assert_readers(model, exceptions)
1581
+ expected_readers = Set.new(model.column_names - ['id'])
1582
+ expected_readers += expected_readers.map { |col| "#{col}?" }
1583
+ expected_readers -= exceptions
1584
+ assert_equal expected_readers, model.read_methods
1585
+ end
1586
+ end