narf 0.5.1

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 (657) hide show
  1. data/ChangeLog +163 -0
  2. data/InstalledFiles +2227 -0
  3. data/README +124 -0
  4. data/TODO +88 -0
  5. data/bin/narftest +17 -0
  6. data/bug.rb +9 -0
  7. data/build.rb +314 -0
  8. data/build.rb~ +314 -0
  9. data/config.save +12 -0
  10. data/doc/apache_cgi.txt +17 -0
  11. data/doc/fastcgi.txt +19 -0
  12. data/doc/mod_ruby.txt +7 -0
  13. data/doc/rdoc/classes/Web.html +366 -0
  14. data/doc/rdoc/classes/Web.src/M000002.html +15 -0
  15. data/doc/rdoc/classes/Web.src/M000003.html +15 -0
  16. data/doc/rdoc/classes/Web.src/M000004.html +15 -0
  17. data/doc/rdoc/classes/Web.src/M000005.html +15 -0
  18. data/doc/rdoc/classes/Web.src/M000006.html +20 -0
  19. data/doc/rdoc/classes/Web.src/M000007.html +18 -0
  20. data/doc/rdoc/classes/Web.src/M000008.html +18 -0
  21. data/doc/rdoc/classes/Web.src/M000009.html +18 -0
  22. data/doc/rdoc/classes/Web.src/M000010.html +15 -0
  23. data/doc/rdoc/classes/Web.src/M000011.html +15 -0
  24. data/doc/rdoc/classes/Web.src/M000012.html +15 -0
  25. data/doc/rdoc/classes/Web/CGD.html +173 -0
  26. data/doc/rdoc/classes/Web/CGD.src/M000037.html +24 -0
  27. data/doc/rdoc/classes/Web/CGD.src/M000038.html +23 -0
  28. data/doc/rdoc/classes/Web/CGD.src/M000039.html +15 -0
  29. data/doc/rdoc/classes/Web/CGD.src/M000040.html +15 -0
  30. data/doc/rdoc/classes/Web/CGD.src/M000041.html +23 -0
  31. data/doc/rdoc/classes/Web/CGI.html +946 -0
  32. data/doc/rdoc/classes/Web/CGI.src/M000051.html +15 -0
  33. data/doc/rdoc/classes/Web/CGI.src/M000052.html +24 -0
  34. data/doc/rdoc/classes/Web/CGI.src/M000053.html +15 -0
  35. data/doc/rdoc/classes/Web/CGI.src/M000054.html +15 -0
  36. data/doc/rdoc/classes/Web/CGI.src/M000055.html +15 -0
  37. data/doc/rdoc/classes/Web/CGI.src/M000056.html +15 -0
  38. data/doc/rdoc/classes/Web/CGI.src/M000057.html +17 -0
  39. data/doc/rdoc/classes/Web/CGI.src/M000058.html +34 -0
  40. data/doc/rdoc/classes/Web/CGI.src/M000059.html +22 -0
  41. data/doc/rdoc/classes/Web/CGI.src/M000060.html +15 -0
  42. data/doc/rdoc/classes/Web/CGI.src/M000061.html +15 -0
  43. data/doc/rdoc/classes/Web/CGI.src/M000062.html +19 -0
  44. data/doc/rdoc/classes/Web/CGI.src/M000063.html +18 -0
  45. data/doc/rdoc/classes/Web/CGI.src/M000064.html +19 -0
  46. data/doc/rdoc/classes/Web/CGI.src/M000065.html +15 -0
  47. data/doc/rdoc/classes/Web/CGI.src/M000066.html +15 -0
  48. data/doc/rdoc/classes/Web/CGI.src/M000067.html +15 -0
  49. data/doc/rdoc/classes/Web/CGI.src/M000068.html +13 -0
  50. data/doc/rdoc/classes/Web/CGI.src/M000069.html +13 -0
  51. data/doc/rdoc/classes/Web/CGI.src/M000070.html +13 -0
  52. data/doc/rdoc/classes/Web/CGI.src/M000071.html +13 -0
  53. data/doc/rdoc/classes/Web/CGI.src/M000072.html +19 -0
  54. data/doc/rdoc/classes/Web/CGI.src/M000073.html +15 -0
  55. data/doc/rdoc/classes/Web/CGI.src/M000074.html +19 -0
  56. data/doc/rdoc/classes/Web/CGI.src/M000075.html +15 -0
  57. data/doc/rdoc/classes/Web/CGI.src/M000076.html +15 -0
  58. data/doc/rdoc/classes/Web/CGI.src/M000077.html +15 -0
  59. data/doc/rdoc/classes/Web/CGI.src/M000078.html +20 -0
  60. data/doc/rdoc/classes/Web/CGI.src/M000079.html +36 -0
  61. data/doc/rdoc/classes/Web/CGI.src/M000080.html +19 -0
  62. data/doc/rdoc/classes/Web/CGI.src/M000081.html +18 -0
  63. data/doc/rdoc/classes/Web/CGI.src/M000082.html +15 -0
  64. data/doc/rdoc/classes/Web/CGI.src/M000083.html +17 -0
  65. data/doc/rdoc/classes/Web/CGI.src/M000084.html +15 -0
  66. data/doc/rdoc/classes/Web/CGI.src/M000085.html +16 -0
  67. data/doc/rdoc/classes/Web/CGI.src/M000086.html +15 -0
  68. data/doc/rdoc/classes/Web/CGI.src/M000087.html +15 -0
  69. data/doc/rdoc/classes/Web/CGI.src/M000088.html +15 -0
  70. data/doc/rdoc/classes/Web/CGI.src/M000089.html +16 -0
  71. data/doc/rdoc/classes/Web/CGI.src/M000090.html +15 -0
  72. data/doc/rdoc/classes/Web/CGI.src/M000091.html +15 -0
  73. data/doc/rdoc/classes/Web/CGI.src/M000092.html +15 -0
  74. data/doc/rdoc/classes/Web/CGI.src/M000093.html +15 -0
  75. data/doc/rdoc/classes/Web/CGI.src/M000094.html +15 -0
  76. data/doc/rdoc/classes/Web/CGI.src/M000095.html +15 -0
  77. data/doc/rdoc/classes/Web/CGI.src/M000096.html +19 -0
  78. data/doc/rdoc/classes/Web/CGI.src/M000097.html +15 -0
  79. data/doc/rdoc/classes/Web/CGI.src/M000098.html +15 -0
  80. data/doc/rdoc/classes/Web/CGI.src/M000099.html +43 -0
  81. data/doc/rdoc/classes/Web/CGI.src/M000100.html +18 -0
  82. data/doc/rdoc/classes/Web/CGI.src/M000101.html +20 -0
  83. data/doc/rdoc/classes/Web/CGI.src/M000102.html +15 -0
  84. data/doc/rdoc/classes/Web/CGI.src/M000103.html +15 -0
  85. data/doc/rdoc/classes/Web/CGI.src/M000104.html +15 -0
  86. data/doc/rdoc/classes/Web/CGI.src/M000105.html +24 -0
  87. data/doc/rdoc/classes/Web/CGI.src/M000106.html +24 -0
  88. data/doc/rdoc/classes/Web/CGI.src/M000107.html +22 -0
  89. data/doc/rdoc/classes/Web/CaseInsensitiveHash.html +104 -0
  90. data/doc/rdoc/classes/Web/CaseInsensitiveHash.src/M000118.html +15 -0
  91. data/doc/rdoc/classes/Web/CaseInsensitiveHash.src/M000119.html +15 -0
  92. data/doc/rdoc/classes/Web/CaseInsensitiveHash.src/M000120.html +15 -0
  93. data/doc/rdoc/classes/Web/Mime.html +122 -0
  94. data/doc/rdoc/classes/Web/Mime.src/M000118.html +15 -0
  95. data/doc/rdoc/classes/Web/Mime.src/M000119.html +15 -0
  96. data/doc/rdoc/classes/Web/Mime.src/M000120.html +23 -0
  97. data/doc/rdoc/classes/Web/Mime.src/M000121.html +15 -0
  98. data/doc/rdoc/classes/Web/Mime.src/M000122.html +15 -0
  99. data/doc/rdoc/classes/Web/Mime.src/M000123.html +23 -0
  100. data/doc/rdoc/classes/Web/Mime.src/M000124.html +15 -0
  101. data/doc/rdoc/classes/Web/Narflates.html +132 -0
  102. data/doc/rdoc/classes/Web/Parser.html +219 -0
  103. data/doc/rdoc/classes/Web/Parser.src/M000013.html +21 -0
  104. data/doc/rdoc/classes/Web/Parser.src/M000014.html +19 -0
  105. data/doc/rdoc/classes/Web/Parser.src/M000015.html +21 -0
  106. data/doc/rdoc/classes/Web/Parser.src/M000016.html +15 -0
  107. data/doc/rdoc/classes/Web/Parser.src/M000017.html +30 -0
  108. data/doc/rdoc/classes/Web/Parser.src/M000018.html +15 -0
  109. data/doc/rdoc/classes/Web/Parser.src/M000019.html +19 -0
  110. data/doc/rdoc/classes/Web/Parser.src/M000020.html +27 -0
  111. data/doc/rdoc/classes/Web/Parser.src/M000021.html +15 -0
  112. data/doc/rdoc/classes/Web/Parser.src/M000022.html +16 -0
  113. data/doc/rdoc/classes/Web/Parser.src/M000023.html +18 -0
  114. data/doc/rdoc/classes/Web/Session.html +178 -0
  115. data/doc/rdoc/classes/Web/Session.src/M000042.html +20 -0
  116. data/doc/rdoc/classes/Web/Session.src/M000043.html +19 -0
  117. data/doc/rdoc/classes/Web/Session.src/M000044.html +21 -0
  118. data/doc/rdoc/classes/Web/Session.src/M000045.html +21 -0
  119. data/doc/rdoc/classes/Web/Session.src/M000046.html +15 -0
  120. data/doc/rdoc/classes/Web/Session.src/M000047.html +17 -0
  121. data/doc/rdoc/classes/Web/Session.src/M000048.html +15 -0
  122. data/doc/rdoc/classes/Web/Session.src/M000049.html +15 -0
  123. data/doc/rdoc/classes/Web/Session.src/M000050.html +16 -0
  124. data/doc/rdoc/classes/Web/Testing.html +474 -0
  125. data/doc/rdoc/classes/Web/Testing.src/M000024.html +15 -0
  126. data/doc/rdoc/classes/Web/Testing.src/M000025.html +25 -0
  127. data/doc/rdoc/classes/Web/Testing.src/M000026.html +15 -0
  128. data/doc/rdoc/classes/Web/Testing.src/M000027.html +28 -0
  129. data/doc/rdoc/classes/Web/Testing.src/M000028.html +58 -0
  130. data/doc/rdoc/classes/Web/Testing.src/M000029.html +15 -0
  131. data/doc/rdoc/classes/Web/Testing.src/M000030.html +15 -0
  132. data/doc/rdoc/classes/Web/Testing.src/M000031.html +15 -0
  133. data/doc/rdoc/classes/Web/Testing.src/M000032.html +15 -0
  134. data/doc/rdoc/classes/Web/Testing.src/M000033.html +15 -0
  135. data/doc/rdoc/classes/Web/Testing.src/M000034.html +15 -0
  136. data/doc/rdoc/classes/Web/Testing.src/M000035.html +15 -0
  137. data/doc/rdoc/classes/Web/Testing.src/M000036.html +18 -0
  138. data/doc/rdoc/classes/Web/Upload.html +160 -0
  139. data/doc/rdoc/classes/Web/Upload.src/M000108.html +25 -0
  140. data/doc/rdoc/classes/Web/Upload.src/M000109.html +18 -0
  141. data/doc/rdoc/classes/Web/Upload.src/M000110.html +16 -0
  142. data/doc/rdoc/classes/Web/Upload.src/M000111.html +16 -0
  143. data/doc/rdoc/classes/Web/Wiki.html +249 -0
  144. data/doc/rdoc/classes/Web/Wiki.src/M000112.html +25 -0
  145. data/doc/rdoc/classes/Web/Wiki.src/M000113.html +15 -0
  146. data/doc/rdoc/classes/Web/Wiki.src/M000114.html +26 -0
  147. data/doc/rdoc/classes/Web/Wiki.src/M000115.html +21 -0
  148. data/doc/rdoc/classes/Web/Wiki.src/M000116.html +18 -0
  149. data/doc/rdoc/classes/Web/Wiki.src/M000117.html +19 -0
  150. data/doc/rdoc/created.rid +1 -0
  151. data/doc/rdoc/files/README.html +226 -0
  152. data/doc/rdoc/files/doc/apache_cgi_txt.html +82 -0
  153. data/doc/rdoc/files/doc/fastcgi_txt.html +82 -0
  154. data/doc/rdoc/files/doc/mod_ruby_txt.html +62 -0
  155. data/doc/rdoc/files/doc/webrick_txt.html +79 -0
  156. data/doc/rdoc/files/examples/examples_rdoc.html +73 -0
  157. data/doc/rdoc/files/lib/web/cgi_rb.html +75 -0
  158. data/doc/rdoc/files/lib/web/mime_rb.html +67 -0
  159. data/doc/rdoc/files/lib/web/parser_rb.html +73 -0
  160. data/doc/rdoc/files/lib/web/session_rb.html +73 -0
  161. data/doc/rdoc/files/lib/web/template_rb.html +73 -0
  162. data/doc/rdoc/files/lib/web/testing_rb.html +67 -0
  163. data/doc/rdoc/files/lib/web/upload_rb.html +73 -0
  164. data/doc/rdoc/files/lib/web/wiki_rb.html +79 -0
  165. data/doc/rdoc/files/lib/web_rb.html +116 -0
  166. data/doc/rdoc/files/lib/web_rb.src/M000001.html +15 -0
  167. data/doc/rdoc/fr_class_index.html +47 -0
  168. data/doc/rdoc/fr_file_index.html +52 -0
  169. data/doc/rdoc/fr_method_index.html +158 -0
  170. data/doc/rdoc/index.html +22 -0
  171. data/doc/rdoc/rdoc-style.css +99 -0
  172. data/doc/webrick.txt +23 -0
  173. data/examples/admin.rb +8 -0
  174. data/examples/admin.rb~ +5 -0
  175. data/examples/cookbook.rdoc +247 -0
  176. data/examples/cookbook.rdoc~ +238 -0
  177. data/examples/examples.rdoc +19 -0
  178. data/examples/examples.rdoc~ +17 -0
  179. data/examples/hello.world.rb +5 -0
  180. data/examples/hello.world.rb~ +3 -0
  181. data/examples/session.rb +34 -0
  182. data/examples/session.rb~ +31 -0
  183. data/examples/test/test.hello.world.rb +9 -0
  184. data/examples/test/test.hello.world.rb~ +9 -0
  185. data/examples/test/test.session.rb +37 -0
  186. data/examples/test/test.session.rb~ +37 -0
  187. data/examples/webunit/COPYING +340 -0
  188. data/examples/webunit/Makefile +14 -0
  189. data/examples/webunit/TIPS-ja.html +126 -0
  190. data/examples/webunit/TIPS-ja.rd +154 -0
  191. data/examples/webunit/TODO-ja.html +35 -0
  192. data/examples/webunit/TODO-ja.rd +28 -0
  193. data/examples/webunit/changes.rd +185 -0
  194. data/examples/webunit/conv/digit-0.cgi +40 -0
  195. data/examples/webunit/conv/digit-0.rb +21 -0
  196. data/examples/webunit/conv/digit-1.cgi +44 -0
  197. data/examples/webunit/conv/digit-1.rb +17 -0
  198. data/examples/webunit/conv/digit.cgi +59 -0
  199. data/examples/webunit/conv/digit.rb +23 -0
  200. data/examples/webunit/conv/test_digit-0.rb +16 -0
  201. data/examples/webunit/conv/test_digit-1.rb +19 -0
  202. data/examples/webunit/conv/test_digit.rb +26 -0
  203. data/examples/webunit/conv/test_digit_view-0.rb +76 -0
  204. data/examples/webunit/conv/test_digit_view-1.rb +102 -0
  205. data/examples/webunit/conv/test_digit_view.rb +134 -0
  206. data/examples/webunit/example.rd +37 -0
  207. data/examples/webunit/index-en.html +263 -0
  208. data/examples/webunit/index-en.rd +60 -0
  209. data/examples/webunit/index-ja.html +263 -0
  210. data/examples/webunit/index-ja.rd +60 -0
  211. data/examples/wiki.rb +7 -0
  212. data/examples/wiki.rb~ +5 -0
  213. data/install.rb +1022 -0
  214. data/lib/web.rb +290 -0
  215. data/lib/web.rb~ +290 -0
  216. data/lib/web/#assertinclude.rb# +110 -0
  217. data/lib/web/action.rb +82 -0
  218. data/lib/web/assertinclude.rb +110 -0
  219. data/lib/web/assertinclude.rb~ +110 -0
  220. data/lib/web/buffer.rb +20 -0
  221. data/lib/web/cgi.rb +641 -0
  222. data/lib/web/cgi.rb~ +640 -0
  223. data/lib/web/formreader.rb +317 -0
  224. data/lib/web/forms.rb +104 -0
  225. data/lib/web/htmlparser/html-parser.rb +429 -0
  226. data/lib/web/htmlparser/html-parser.rb~ +429 -0
  227. data/lib/web/htmlparser/sgml-parser.rb +332 -0
  228. data/lib/web/htmlparser/sgml-parser.rb~ +332 -0
  229. data/lib/web/htmltools/element.rb +296 -0
  230. data/lib/web/htmltools/element.rb~ +296 -0
  231. data/lib/web/htmltools/stparser.rb +276 -0
  232. data/lib/web/htmltools/stparser.rb~ +276 -0
  233. data/lib/web/htmltools/tags.rb +286 -0
  234. data/lib/web/htmltools/tags.rb~ +286 -0
  235. data/lib/web/htmltools/tree.rb +139 -0
  236. data/lib/web/htmltools/tree.rb~ +139 -0
  237. data/lib/web/htmltools/xmltree.rb +160 -0
  238. data/lib/web/htmltools/xmltree.rb~ +160 -0
  239. data/lib/web/htmltools/xpath.rb +71 -0
  240. data/lib/web/htmltools/xpath.rb~ +71 -0
  241. data/lib/web/mime.rb +82 -0
  242. data/lib/web/parser.rb +266 -0
  243. data/lib/web/parser.rb~ +266 -0
  244. data/lib/web/request.rb~ +238 -0
  245. data/lib/web/resources/mime.types +483 -0
  246. data/lib/web/runner.rb +26 -0
  247. data/lib/web/runner.rb~ +26 -0
  248. data/lib/web/sapi/fastcgi.rb +26 -0
  249. data/lib/web/sapi/fastcgi.rb~ +25 -0
  250. data/lib/web/sapi/mod_ruby.rb +46 -0
  251. data/lib/web/sapi/mod_ruby.rb~ +46 -0
  252. data/lib/web/sapi/webrick.rb +91 -0
  253. data/lib/web/sapi/webrick.rb~ +89 -0
  254. data/lib/web/session.rb +75 -0
  255. data/lib/web/session.rb~ +75 -0
  256. data/lib/web/simpledispatcher.rb +155 -0
  257. data/lib/web/strscanparser.rb +24 -0
  258. data/lib/web/tagparser.rb +96 -0
  259. data/lib/web/tagparser.rb~ +96 -0
  260. data/lib/web/template.rb +613 -0
  261. data/lib/web/template.rb~ +613 -0
  262. data/lib/web/testing.rb +546 -0
  263. data/lib/web/testing.rb~ +546 -0
  264. data/lib/web/traceoutput.rb +32 -0
  265. data/lib/web/unit.rb +27 -0
  266. data/lib/web/unit/assert.rb +154 -0
  267. data/lib/web/unit/converter.rb +148 -0
  268. data/lib/web/unit/cookie.rb +120 -0
  269. data/lib/web/unit/domwalker.rb +187 -0
  270. data/lib/web/unit/exception.rb +15 -0
  271. data/lib/web/unit/form.rb +118 -0
  272. data/lib/web/unit/formatter.rb +314 -0
  273. data/lib/web/unit/frame.rb +39 -0
  274. data/lib/web/unit/html-parser.rb +432 -0
  275. data/lib/web/unit/htmlelem.rb +124 -0
  276. data/lib/web/unit/htmlrepair.rb +116 -0
  277. data/lib/web/unit/htmlsplit.rb +840 -0
  278. data/lib/web/unit/image.rb +27 -0
  279. data/lib/web/unit/jscript.rb +32 -0
  280. data/lib/web/unit/link.rb +35 -0
  281. data/lib/web/unit/params.rb +323 -0
  282. data/lib/web/unit/parser.rb +226 -0
  283. data/lib/web/unit/resources/assert.html +101 -0
  284. data/lib/web/unit/resources/auth/index.html +5 -0
  285. data/lib/web/unit/resources/badtags.html +7 -0
  286. data/lib/web/unit/resources/cookie.cgi +33 -0
  287. data/lib/web/unit/resources/document.xml +13 -0
  288. data/lib/web/unit/resources/form.html +150 -0
  289. data/lib/web/unit/resources/frame-0.html +10 -0
  290. data/lib/web/unit/resources/frame-1.html +10 -0
  291. data/lib/web/unit/resources/frame.html +10 -0
  292. data/lib/web/unit/resources/image.html +17 -0
  293. data/lib/web/unit/resources/images/x.gif +0 -0
  294. data/lib/web/unit/resources/images/y.gif +0 -0
  295. data/lib/web/unit/resources/jscript-0.html +10 -0
  296. data/lib/web/unit/resources/jscript-1.html +10 -0
  297. data/lib/web/unit/resources/jscript.html +19 -0
  298. data/lib/web/unit/resources/link.html +19 -0
  299. data/lib/web/unit/resources/multipart.cgi +28 -0
  300. data/lib/web/unit/resources/multipart.html +74 -0
  301. data/lib/web/unit/resources/params.html +65 -0
  302. data/lib/web/unit/resources/redirect.cgi +13 -0
  303. data/lib/web/unit/resources/response.html +67 -0
  304. data/lib/web/unit/resources/simple.cgi +14 -0
  305. data/lib/web/unit/resources/stock.cgi +35 -0
  306. data/lib/web/unit/resources/table.html +83 -0
  307. data/lib/web/unit/response.rb +469 -0
  308. data/lib/web/unit/response.rb~ +461 -0
  309. data/lib/web/unit/runtest.rb +44 -0
  310. data/lib/web/unit/sgml-parser.rb +336 -0
  311. data/lib/web/unit/table.rb +150 -0
  312. data/lib/web/unit/testcase.rb +49 -0
  313. data/lib/web/unit/ui/cui/testrunner.rb +52 -0
  314. data/lib/web/unit/ui/cui/testrunner.rb~ +50 -0
  315. data/lib/web/unit/utils.rb +70 -0
  316. data/lib/web/unit/webunit.rb +28 -0
  317. data/lib/web/upload.rb +55 -0
  318. data/lib/web/upload.rb~ +262 -0
  319. data/lib/web/wiki.rb +506 -0
  320. data/lib/web/wiki.rb~ +506 -0
  321. data/lib/web/wiki/linker.rb +72 -0
  322. data/lib/web/wiki/linker.rb~ +72 -0
  323. data/lib/web/wiki/mime.rb~ +68 -0
  324. data/lib/web/wiki/page.rb +192 -0
  325. data/lib/web/wiki/page.rb~ +192 -0
  326. data/lib/web/wiki/resources/#edit.html# +65 -0
  327. data/lib/web/wiki/resources/admin.html +13 -0
  328. data/lib/web/wiki/resources/admin.html~ +13 -0
  329. data/lib/web/wiki/resources/asset_history.html +3 -0
  330. data/lib/web/wiki/resources/basic.html +1 -0
  331. data/lib/web/wiki/resources/default-content_editor.html +1 -0
  332. data/lib/web/wiki/resources/default-content_editor.html~ +1 -0
  333. data/lib/web/wiki/resources/edit.html +1 -1
  334. data/lib/web/wiki/resources/edit.html~ +1 -1
  335. data/lib/web/wiki/resources/ekit-content_editor.html +1 -0
  336. data/lib/web/wiki/resources/home.html +10 -0
  337. data/lib/web/wiki/resources/home.html~ +10 -0
  338. data/lib/web/wiki/resources/htmlarea/ChangeLog +1185 -0
  339. data/lib/web/wiki/resources/htmlarea/dialog.js +72 -0
  340. data/lib/web/wiki/resources/htmlarea/examples/2-areas.cgi +16 -0
  341. data/lib/web/wiki/resources/htmlarea/examples/2-areas.html +158 -0
  342. data/lib/web/wiki/resources/htmlarea/examples/context-menu.html +95 -0
  343. data/lib/web/wiki/resources/htmlarea/examples/core.html +184 -0
  344. data/lib/web/wiki/resources/htmlarea/examples/css.html +88 -0
  345. data/lib/web/wiki/resources/htmlarea/examples/custom.css +29 -0
  346. data/lib/web/wiki/resources/htmlarea/examples/full-page.html +75 -0
  347. data/lib/web/wiki/resources/htmlarea/examples/fully-loaded.html +248 -0
  348. data/lib/web/wiki/resources/htmlarea/examples/index.html +40 -0
  349. data/lib/web/wiki/resources/htmlarea/examples/spell-checker.html +132 -0
  350. data/lib/web/wiki/resources/htmlarea/examples/table-operations.html +116 -0
  351. data/lib/web/wiki/resources/htmlarea/examples/test.cgi +21 -0
  352. data/lib/web/wiki/resources/htmlarea/htmlarea.css +180 -0
  353. data/lib/web/wiki/resources/htmlarea/htmlarea.js +2175 -0
  354. data/lib/web/wiki/resources/htmlarea/images/ed_about.gif +0 -0
  355. data/lib/web/wiki/resources/htmlarea/images/ed_align_center.gif +0 -0
  356. data/lib/web/wiki/resources/htmlarea/images/ed_align_justify.gif +0 -0
  357. data/lib/web/wiki/resources/htmlarea/images/ed_align_left.gif +0 -0
  358. data/lib/web/wiki/resources/htmlarea/images/ed_align_right.gif +0 -0
  359. data/lib/web/wiki/resources/htmlarea/images/ed_blank.gif +0 -0
  360. data/lib/web/wiki/resources/htmlarea/images/ed_charmap.gif +0 -0
  361. data/lib/web/wiki/resources/htmlarea/images/ed_color_bg.gif +0 -0
  362. data/lib/web/wiki/resources/htmlarea/images/ed_color_fg.gif +0 -0
  363. data/lib/web/wiki/resources/htmlarea/images/ed_copy.gif +0 -0
  364. data/lib/web/wiki/resources/htmlarea/images/ed_custom.gif +0 -0
  365. data/lib/web/wiki/resources/htmlarea/images/ed_cut.gif +0 -0
  366. data/lib/web/wiki/resources/htmlarea/images/ed_delete.gif +0 -0
  367. data/lib/web/wiki/resources/htmlarea/images/ed_format_bold.gif +0 -0
  368. data/lib/web/wiki/resources/htmlarea/images/ed_format_italic.gif +0 -0
  369. data/lib/web/wiki/resources/htmlarea/images/ed_format_strike.gif +0 -0
  370. data/lib/web/wiki/resources/htmlarea/images/ed_format_sub.gif +0 -0
  371. data/lib/web/wiki/resources/htmlarea/images/ed_format_sup.gif +0 -0
  372. data/lib/web/wiki/resources/htmlarea/images/ed_format_underline.gif +0 -0
  373. data/lib/web/wiki/resources/htmlarea/images/ed_help.gif +0 -0
  374. data/lib/web/wiki/resources/htmlarea/images/ed_hr.gif +0 -0
  375. data/lib/web/wiki/resources/htmlarea/images/ed_html.gif +0 -0
  376. data/lib/web/wiki/resources/htmlarea/images/ed_image.gif +0 -0
  377. data/lib/web/wiki/resources/htmlarea/images/ed_indent_less.gif +0 -0
  378. data/lib/web/wiki/resources/htmlarea/images/ed_indent_more.gif +0 -0
  379. data/lib/web/wiki/resources/htmlarea/images/ed_left_to_right.gif +0 -0
  380. data/lib/web/wiki/resources/htmlarea/images/ed_link.gif +0 -0
  381. data/lib/web/wiki/resources/htmlarea/images/ed_list_bullet.gif +0 -0
  382. data/lib/web/wiki/resources/htmlarea/images/ed_list_num.gif +0 -0
  383. data/lib/web/wiki/resources/htmlarea/images/ed_paste.gif +0 -0
  384. data/lib/web/wiki/resources/htmlarea/images/ed_redo.gif +0 -0
  385. data/lib/web/wiki/resources/htmlarea/images/ed_right_to_left.gif +0 -0
  386. data/lib/web/wiki/resources/htmlarea/images/ed_save.gif +0 -0
  387. data/lib/web/wiki/resources/htmlarea/images/ed_show_border.gif +0 -0
  388. data/lib/web/wiki/resources/htmlarea/images/ed_splitcel.gif +0 -0
  389. data/lib/web/wiki/resources/htmlarea/images/ed_undo.gif +0 -0
  390. data/lib/web/wiki/resources/htmlarea/images/fullscreen_maximize.gif +0 -0
  391. data/lib/web/wiki/resources/htmlarea/images/fullscreen_minimize.gif +0 -0
  392. data/lib/web/wiki/resources/htmlarea/images/insert_table.gif +0 -0
  393. data/lib/web/wiki/resources/htmlarea/index.html +199 -0
  394. data/lib/web/wiki/resources/htmlarea/lang/b5.js +36 -0
  395. data/lib/web/wiki/resources/htmlarea/lang/cz.js +63 -0
  396. data/lib/web/wiki/resources/htmlarea/lang/da.js +38 -0
  397. data/lib/web/wiki/resources/htmlarea/lang/de.js +54 -0
  398. data/lib/web/wiki/resources/htmlarea/lang/ee.js +63 -0
  399. data/lib/web/wiki/resources/htmlarea/lang/el.js +75 -0
  400. data/lib/web/wiki/resources/htmlarea/lang/en.js +88 -0
  401. data/lib/web/wiki/resources/htmlarea/lang/es.js +51 -0
  402. data/lib/web/wiki/resources/htmlarea/lang/fi.js +46 -0
  403. data/lib/web/wiki/resources/htmlarea/lang/fr.js +61 -0
  404. data/lib/web/wiki/resources/htmlarea/lang/gb.js +36 -0
  405. data/lib/web/wiki/resources/htmlarea/lang/he.js +63 -0
  406. data/lib/web/wiki/resources/htmlarea/lang/hu.js +63 -0
  407. data/lib/web/wiki/resources/htmlarea/lang/it.js +54 -0
  408. data/lib/web/wiki/resources/htmlarea/lang/ja-euc.js +37 -0
  409. data/lib/web/wiki/resources/htmlarea/lang/ja-jis.js +37 -0
  410. data/lib/web/wiki/resources/htmlarea/lang/ja-sjis.js +37 -0
  411. data/lib/web/wiki/resources/htmlarea/lang/ja-utf8.js +37 -0
  412. data/lib/web/wiki/resources/htmlarea/lang/lt.js +55 -0
  413. data/lib/web/wiki/resources/htmlarea/lang/lv.js +55 -0
  414. data/lib/web/wiki/resources/htmlarea/lang/nb.js +36 -0
  415. data/lib/web/wiki/resources/htmlarea/lang/nl.js +90 -0
  416. data/lib/web/wiki/resources/htmlarea/lang/no.js +79 -0
  417. data/lib/web/wiki/resources/htmlarea/lang/pl.js +36 -0
  418. data/lib/web/wiki/resources/htmlarea/lang/pt_br.js +37 -0
  419. data/lib/web/wiki/resources/htmlarea/lang/ro.js +80 -0
  420. data/lib/web/wiki/resources/htmlarea/lang/ru.js +63 -0
  421. data/lib/web/wiki/resources/htmlarea/lang/se.js +38 -0
  422. data/lib/web/wiki/resources/htmlarea/lang/si.js +63 -0
  423. data/lib/web/wiki/resources/htmlarea/lang/vn.js +51 -0
  424. data/lib/web/wiki/resources/htmlarea/license.txt +30 -0
  425. data/lib/web/wiki/resources/htmlarea/plugins/CSS/css.js +116 -0
  426. data/lib/web/wiki/resources/htmlarea/plugins/CSS/lang/en.js +2 -0
  427. data/lib/web/wiki/resources/htmlarea/plugins/ContextMenu/context-menu.js +416 -0
  428. data/lib/web/wiki/resources/htmlarea/plugins/ContextMenu/lang/de.js +59 -0
  429. data/lib/web/wiki/resources/htmlarea/plugins/ContextMenu/lang/el.js +57 -0
  430. data/lib/web/wiki/resources/htmlarea/plugins/ContextMenu/lang/en.js +66 -0
  431. data/lib/web/wiki/resources/htmlarea/plugins/ContextMenu/lang/nl.js +66 -0
  432. data/lib/web/wiki/resources/htmlarea/plugins/ContextMenu/menu.css +64 -0
  433. data/lib/web/wiki/resources/htmlarea/plugins/FullPage/full-page.js +143 -0
  434. data/lib/web/wiki/resources/htmlarea/plugins/FullPage/img/docprop.gif +0 -0
  435. data/lib/web/wiki/resources/htmlarea/plugins/FullPage/lang/en.js +25 -0
  436. data/lib/web/wiki/resources/htmlarea/plugins/FullPage/lang/ro.js +25 -0
  437. data/lib/web/wiki/resources/htmlarea/plugins/FullPage/popups/docprop.html +131 -0
  438. data/lib/web/wiki/resources/htmlarea/plugins/FullPage/test.html +89 -0
  439. data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/img/spell-check.gif +0 -0
  440. data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/lang/cz.js +37 -0
  441. data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/lang/da.js +37 -0
  442. data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/lang/de.js +28 -0
  443. data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/lang/en.js +38 -0
  444. data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/lang/hu.js +37 -0
  445. data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/lang/it.js +28 -0
  446. data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/lang/ro.js +37 -0
  447. data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/readme-tech.html +114 -0
  448. data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/spell-check-logic.cgi +210 -0
  449. data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/spell-check-style.css +10 -0
  450. data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/spell-check-ui.html +122 -0
  451. data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/spell-check-ui.js +397 -0
  452. data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/spell-checker.js +79 -0
  453. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/cell-delete.gif +0 -0
  454. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/cell-insert-after.gif +0 -0
  455. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/cell-insert-before.gif +0 -0
  456. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/cell-merge.gif +0 -0
  457. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/cell-prop.gif +0 -0
  458. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/cell-split.gif +0 -0
  459. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/col-delete.gif +0 -0
  460. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/col-insert-after.gif +0 -0
  461. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/col-insert-before.gif +0 -0
  462. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/col-split.gif +0 -0
  463. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/row-delete.gif +0 -0
  464. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/row-insert-above.gif +0 -0
  465. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/row-insert-under.gif +0 -0
  466. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/row-prop.gif +0 -0
  467. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/row-split.gif +0 -0
  468. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/table-prop.gif +0 -0
  469. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/lang/cz.js +90 -0
  470. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/lang/da.js +90 -0
  471. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/lang/de.js +81 -0
  472. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/lang/el.js +81 -0
  473. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/lang/en.js +90 -0
  474. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/lang/fi.js +66 -0
  475. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/lang/hu.js +63 -0
  476. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/lang/it.js +81 -0
  477. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/lang/nl.js +90 -0
  478. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/lang/no.js +91 -0
  479. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/lang/ro.js +90 -0
  480. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/table-operations.js +1160 -0
  481. data/lib/web/wiki/resources/htmlarea/popupdiv.js +369 -0
  482. data/lib/web/wiki/resources/htmlarea/popups/about.html +378 -0
  483. data/lib/web/wiki/resources/htmlarea/popups/blank.html +2 -0
  484. data/lib/web/wiki/resources/htmlarea/popups/custom2.html +35 -0
  485. data/lib/web/wiki/resources/htmlarea/popups/editor_help.html +16 -0
  486. data/lib/web/wiki/resources/htmlarea/popups/fullscreen.html +133 -0
  487. data/lib/web/wiki/resources/htmlarea/popups/insert_image.html +191 -0
  488. data/lib/web/wiki/resources/htmlarea/popups/insert_table.html +174 -0
  489. data/lib/web/wiki/resources/htmlarea/popups/link.html +142 -0
  490. data/lib/web/wiki/resources/htmlarea/popups/old-fullscreen.html +131 -0
  491. data/lib/web/wiki/resources/htmlarea/popups/old_insert_image.html +206 -0
  492. data/lib/web/wiki/resources/htmlarea/popups/popup.js +109 -0
  493. data/lib/web/wiki/resources/htmlarea/popups/select_color.html +347 -0
  494. data/lib/web/wiki/resources/htmlarea/popupwin.js +139 -0
  495. data/lib/web/wiki/resources/htmlarea/reference.html +523 -0
  496. data/lib/web/wiki/resources/htmlarea/release-notes.html +165 -0
  497. data/lib/web/wiki/resources/ie-content_editor.html +1 -0
  498. data/lib/web/wiki/resources/ie-content_editor.js +196 -0
  499. data/lib/web/wiki/resources/illustration.html +1 -0
  500. data/lib/web/wiki/resources/illustration.html~ +1 -0
  501. data/lib/web/wiki/resources/images.html +1 -0
  502. data/lib/web/wiki/resources/index.html +4 -0
  503. data/lib/web/wiki/resources/index.html~ +4 -0
  504. data/lib/web/wiki/resources/more_news.html +5 -0
  505. data/lib/web/wiki/resources/more_news.html~ +5 -0
  506. data/lib/web/wiki/resources/more_news_rss_0.91.html +23 -0
  507. data/lib/web/wiki/resources/narf-logo.gif +0 -0
  508. data/lib/web/wiki/resources/page_history.html +19 -0
  509. data/lib/web/wiki/resources/page_history.html~ +19 -0
  510. data/lib/web/wiki/resources/template.html +13 -0
  511. data/lib/web/wiki/resources/template.html~ +13 -0
  512. data/lib/web/wiki/resources/test_upload.gif +0 -0
  513. data/lib/web/wiki/resources/text-styles.css +1 -0
  514. data/lib/web/writableio.rb +33 -0
  515. data/narf-0.5.1.gem +0 -0
  516. data/narf.gemspec +40 -0
  517. data/narf.gemspec~ +52 -0
  518. data/pre-setup.rb +5 -0
  519. data/sapi/apache_cgi/INSTALL.txt~ +9 -0
  520. data/sapi/apache_cgi/README~ +0 -0
  521. data/sapi/apache_cgi/src/narf.c +13 -0
  522. data/sapi/fastcgi/INSTALL.txt~ +17 -0
  523. data/sapi/mod_ruby/INSTALL.txt~ +5 -0
  524. data/sapi/webrick/INSTALL.txt~ +21 -0
  525. data/sapi/webrick/run_webrick.rb~ +16 -0
  526. data/scripts/dump.rb +14 -0
  527. data/scripts/makedist.rb +49 -0
  528. data/scripts/upload.html +5 -0
  529. data/scripts/uri.rb +41 -0
  530. data/scripts/uri/common.rb +432 -0
  531. data/scripts/uri/ftp.rb +149 -0
  532. data/scripts/uri/generic.rb +1106 -0
  533. data/scripts/uri/http.rb +76 -0
  534. data/scripts/uri/https.rb +26 -0
  535. data/scripts/uri/ldap.rb +238 -0
  536. data/scripts/uri/mailto.rb +260 -0
  537. data/scripts/urireg.rb +174 -0
  538. data/test/bufferedtestrunner.rb +112 -0
  539. data/test/mod_ruby_stub.rb +39 -0
  540. data/test/mod_ruby_stub.rb~ +38 -0
  541. data/test/stringio.rb +2 -0
  542. data/test/test.action.rb +142 -0
  543. data/test/test.action.rb~ +142 -0
  544. data/test/test.app.rb +0 -0
  545. data/test/test.assertinclude.rb +109 -0
  546. data/test/test.assertinclude.rb~ +109 -0
  547. data/test/test.formreader-2.0.rb +352 -0
  548. data/test/test.formreader.rb +465 -0
  549. data/test/test.mime-type.rb +23 -0
  550. data/test/test.narf.cgi.rb +101 -0
  551. data/test/test.narf.cgi.rb~ +105 -0
  552. data/test/test.request.rb +328 -0
  553. data/test/test.request.rb~ +318 -0
  554. data/test/test.response.rb +565 -0
  555. data/test/test.response.rb~ +556 -0
  556. data/test/test.session.rb +50 -0
  557. data/test/test.simpledispatcher.rb +188 -0
  558. data/test/test.tagparser.rb +65 -0
  559. data/test/test.template.rb +831 -0
  560. data/test/test.template.rb~ +832 -0
  561. data/test/test.testing2.rb +341 -0
  562. data/test/test.web.test.rb +463 -0
  563. data/test/test.web.test.rb~ +461 -0
  564. data/test/testfiles/basictemplate.tpl +1 -0
  565. data/test/testfiles/explorer5.multipart.data +9 -0
  566. data/test/testfiles/form.html +7 -0
  567. data/test/testfiles/mozilla.multipart.data +9 -0
  568. data/test/testfiles/netscape4.multipart.data +9 -0
  569. data/test/testfiles/pic hydra.png +1 -0
  570. data/test/testfiles/post.data +1 -0
  571. data/test/testfiles/print.text +1 -0
  572. data/test/testfiles/text +1 -0
  573. data/test/webunit/dont_get_it.test_webunit.rb +27 -0
  574. data/test/webunit/ref +38 -0
  575. data/test/webunit/resources/uploadfile1.txt +1 -0
  576. data/test/webunit/resources/uploadfile2.txt +1 -0
  577. data/test/webunit/test_assert.rb +169 -0
  578. data/test/webunit/test_cookie.rb +128 -0
  579. data/test/webunit/test_cookie.rb~ +128 -0
  580. data/test/webunit/test_domwalker.rb +83 -0
  581. data/test/webunit/test_form.rb +43 -0
  582. data/test/webunit/test_form.rb~ +43 -0
  583. data/test/webunit/test_frame.rb +43 -0
  584. data/test/webunit/test_htmlelem.rb +75 -0
  585. data/test/webunit/test_image.rb +46 -0
  586. data/test/webunit/test_jscript.rb +58 -0
  587. data/test/webunit/test_link.rb +87 -0
  588. data/test/webunit/test_multipart.rb +53 -0
  589. data/test/webunit/test_multipart.rb~ +53 -0
  590. data/test/webunit/test_params.rb +212 -0
  591. data/test/webunit/test_params.rb~ +211 -0
  592. data/test/webunit/test_parser.rb +31 -0
  593. data/test/webunit/test_response.rb +145 -0
  594. data/test/webunit/test_response.rb~ +145 -0
  595. data/test/webunit/test_site/assert.html +101 -0
  596. data/test/webunit/test_site/assert.html~ +1 -0
  597. data/test/webunit/test_site/auth/index.html +5 -0
  598. data/test/webunit/test_site/auth/index.html~ +1 -0
  599. data/test/webunit/test_site/badtags.html +7 -0
  600. data/test/webunit/test_site/badtags.html~ +1 -0
  601. data/test/webunit/test_site/cookie.cgi +37 -0
  602. data/test/webunit/test_site/cookie.cgi~ +35 -0
  603. data/test/webunit/test_site/document.xml +13 -0
  604. data/test/webunit/test_site/document.xml~ +1 -0
  605. data/test/webunit/test_site/form.html +150 -0
  606. data/test/webunit/test_site/form.html~ +1 -0
  607. data/test/webunit/test_site/frame-0.html +10 -0
  608. data/test/webunit/test_site/frame-0.html~ +1 -0
  609. data/test/webunit/test_site/frame-1.html +10 -0
  610. data/test/webunit/test_site/frame-1.html~ +1 -0
  611. data/test/webunit/test_site/frame.html +10 -0
  612. data/test/webunit/test_site/frame.html~ +1 -0
  613. data/test/webunit/test_site/image.html +17 -0
  614. data/test/webunit/test_site/image.html~ +1 -0
  615. data/test/webunit/test_site/images/x.gif +0 -0
  616. data/test/webunit/test_site/images/y.gif +0 -0
  617. data/test/webunit/test_site/include.cgi~ +10 -0
  618. data/test/webunit/test_site/jscript-0.html +10 -0
  619. data/test/webunit/test_site/jscript-0.html~ +1 -0
  620. data/test/webunit/test_site/jscript-1.html +10 -0
  621. data/test/webunit/test_site/jscript-1.html~ +1 -0
  622. data/test/webunit/test_site/jscript.html +19 -0
  623. data/test/webunit/test_site/jscript.html~ +1 -0
  624. data/test/webunit/test_site/link.html +19 -0
  625. data/test/webunit/test_site/link.html~ +1 -0
  626. data/test/webunit/test_site/multipart.cgi +27 -0
  627. data/test/webunit/test_site/multipart.cgi~ +25 -0
  628. data/test/webunit/test_site/multipart.html +74 -0
  629. data/test/webunit/test_site/multipart.html~ +1 -0
  630. data/test/webunit/test_site/params.html +65 -0
  631. data/test/webunit/test_site/params.html~ +1 -0
  632. data/test/webunit/test_site/redirect.cgi +14 -0
  633. data/test/webunit/test_site/redirect.cgi~ +14 -0
  634. data/test/webunit/test_site/response.html +67 -0
  635. data/test/webunit/test_site/response.html~ +1 -0
  636. data/test/webunit/test_site/simple.cgi +17 -0
  637. data/test/webunit/test_site/simple.cgi~ +17 -0
  638. data/test/webunit/test_site/stock.cgi +36 -0
  639. data/test/webunit/test_site/stock.cgi~ +34 -0
  640. data/test/webunit/test_site/table.html +83 -0
  641. data/test/webunit/test_site/table.html~ +1 -0
  642. data/test/webunit/test_site/test.cgi~ +25 -0
  643. data/test/webunit/test_table.rb +70 -0
  644. data/test/webunit/test_utils.rb +107 -0
  645. data/test/wiki/test.history.rb +277 -0
  646. data/test/wiki/test.history.rb~ +254 -0
  647. data/test/wiki/test.illustration_page.rb +287 -0
  648. data/test/wiki/test.illustration_page.rb~ +287 -0
  649. data/test/wiki/test.linker.rb +197 -0
  650. data/test/wiki/test.tarpit.rb +40 -0
  651. data/test/wiki/test.wiki.rb +295 -0
  652. data/test/wiki/test.wiki.rb~ +295 -0
  653. data/test/wikitestroot/big_image.jpg +0 -0
  654. data/test/wikitestroot/mime.types +483 -0
  655. data/test/wikitestroot/test_upload.gif +0 -0
  656. data/vandals.test.txt +3 -0
  657. metadata +768 -0
@@ -0,0 +1,18 @@
1
+
2
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
3
+ <html>
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
6
+ <title>write_to_file (Web::Upload)</title>
7
+ <link rel=StyleSheet href="../../.././rdoc-style.css" type="text/css" media="screen" />
8
+ </head>
9
+ <body bgcolor="white">
10
+ <pre><span class="cmt"># File lib/web/upload.rb, line 35</span>
11
+ <span class="kw">def</span> write_to_file( filename )
12
+ File.open( filename, <span class="str">&quot;w&quot;</span> ) { |f|
13
+ f.binmode
14
+ f.write( <span class="kw">self</span>.read )
15
+ }
16
+ <span class="kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -0,0 +1,16 @@
1
+
2
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
3
+ <html>
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
6
+ <title>read (Web::Upload)</title>
7
+ <link rel=StyleSheet href="../../.././rdoc-style.css" type="text/css" media="screen" />
8
+ </head>
9
+ <body bgcolor="white">
10
+ <pre><span class="cmt"># File lib/web/upload.rb, line 43</span>
11
+ <span class="kw">def</span> read
12
+ @tempfile.rewind
13
+ @tempfile.read
14
+ <span class="kw">end</span></pre>
15
+ </body>
16
+ </html>
@@ -0,0 +1,16 @@
1
+
2
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
3
+ <html>
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
6
+ <title>open (Web::Upload)</title>
7
+ <link rel=StyleSheet href="../../.././rdoc-style.css" type="text/css" media="screen" />
8
+ </head>
9
+ <body bgcolor="white">
10
+ <pre><span class="cmt"># File lib/web/upload.rb, line 49</span>
11
+ <span class="kw">def</span> open
12
+ @tempfile.rewind
13
+ <span class="kw">yield</span> @tempfile
14
+ <span class="kw">end</span></pre>
15
+ </body>
16
+ </html>
@@ -0,0 +1,249 @@
1
+
2
+ <?xml version="1.0" encoding="utf-8"?>
3
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
4
+ "DTD/xhtml1-strict.dtd">
5
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
6
+ <head>
7
+ <title>Class: Web::Wiki</title>
8
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
9
+ <link rel=StyleSheet href="../.././rdoc-style.css" type="text/css" media="screen" />
10
+ <script type="text/javascript" language="JavaScript">
11
+ <!--
12
+ function popCode(url) {
13
+ window.open(url, "Code",
14
+ "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
15
+ }
16
+ //-->
17
+ </script>
18
+ </head>
19
+
20
+ <body bgcolor="white">
21
+
22
+ <table summary="Information on class" width="100%" border="0" cellspacing="0">
23
+ <tr class="title-row">
24
+ <td class="big-title-font">
25
+ <sup><font color="aqua">Class</font></sup> Web::Wiki
26
+ </td>
27
+ <td align="right">
28
+ <table summary="layout" cellspacing="0" cellpadding="2">
29
+ <tr valign="top">
30
+ <td class="small-title-font">In:</td>
31
+ <td class="small-title-font">
32
+ <a href="../../files/lib/web/wiki_rb.html" class="aqua">
33
+ lib/web/wiki.rb
34
+ </a>
35
+ <br />
36
+ </td>
37
+ </tr>
38
+ <tr>
39
+ <td class="small-title-font">Parent:</td>
40
+ <td class="small-title-font">
41
+ Object
42
+ </td>
43
+ </tr>
44
+ </table>
45
+ </td>
46
+ </tr>
47
+ </table>
48
+ <!-- banner header -->
49
+
50
+
51
+
52
+ <div class="description"><h2>Purpose</h2>
53
+ <p>
54
+ This wiki exists to:
55
+ </p>
56
+ <pre>
57
+ * Serve http://www.narf-lib.org
58
+ * Test the utility of features in the NARF toolkit, and serve
59
+ as an example of how to build a decent-sized application
60
+ with NARF
61
+ * Be a nice, useful wiki; aka UseMod with HTMLArea integration
62
+ and image uploads
63
+ </pre>
64
+ <h2>Usage</h2>
65
+ <p>
66
+ This is the quickest way to embed the narf wiki:
67
+ </p>
68
+ <pre>
69
+ #!/usr/bin/env ruby
70
+ require 'web/wiki'
71
+ Web::process{
72
+ Web::Wiki::handle_request()
73
+ }
74
+ </pre>
75
+ <p>
76
+ You will enjoy your wiki more, however, by fiddling with a few config
77
+ settings. Here what a production wiki.rb might look like:
78
+ </p>
79
+ <pre>
80
+ #!/usr/bin/env ruby
81
+ require 'web/wiki'
82
+
83
+ Web::process{
84
+ # this line allows me to overload the default templates
85
+ Web::template_include_path &lt;&lt; &quot;../&quot;
86
+ </pre>
87
+ <pre>
88
+ # here I set a number of config variables.
89
+ Web::Wiki::set_pref( :store_url =&gt; &quot;/pages/&quot;,
90
+ :store_dir =&gt; &quot;../pages/&quot;,
91
+ :home_page =&gt; &quot;NarfRocks&quot;,
92
+ :resourceurl =&gt; &quot;/resources&quot; )
93
+
94
+ # finally, I handle the request
95
+ Web::Wiki.handle_request
96
+ }
97
+ </pre>
98
+ <p>
99
+ The default templates for the NARF wiki are located in
100
+ </p>
101
+ <pre>
102
+ site_lib/web/wiki/resources/
103
+ </pre>
104
+ <p>
105
+ Append your template dir to the template_include_path and only worry about
106
+ overriding the templates you care about. Chances are, you&#8217;ll care
107
+ about these two templates:
108
+ </p>
109
+ <table>
110
+ <tr><td valign="top">template.html:</td><td>the overall template
111
+
112
+ </td></tr>
113
+ <tr><td valign="top">home.html:</td><td>the template for the homepage
114
+
115
+ </td></tr>
116
+ </table>
117
+ <p>
118
+ The following preferences can make a difference for your wiki:
119
+ </p>
120
+ <table>
121
+ <tr><td valign="top">store_dir:</td><td><a href="Wiki.html">Web::Wiki</a> uses YAML to save pages. By default,
122
+ these pages will be saved in &quot;./pages/&quot;.
123
+
124
+ </td></tr>
125
+ <tr><td valign="top">store_url:</td><td>If you make your store files publicly accessible, <a
126
+ href="Wiki.html">Web::Wiki</a> can let the webserver handle any the
127
+ download of any upload page assets.
128
+
129
+ </td></tr>
130
+ <tr><td valign="top">home_page:</td><td>The default home page for the wiki is HomePage. Set the HomePage to
131
+ something meaningful in your wiki.
132
+
133
+ </td></tr>
134
+ <tr><td valign="top">resourceurl:</td><td>By default, the NARF wiki will download various resource files from
135
+ sitelib/web/wiki/resources. This makes installation easy, but a single
136
+ visit to the edit page will incur the hit of executing ruby for every
137
+ single image. Make these files accessible online and tell NARF where to
138
+ find them, and things should run more quickly.
139
+
140
+ </td></tr>
141
+ </table>
142
+ <h2>Credits</h2>
143
+ <p>
144
+ <a href="Wiki.html">Web::Wiki</a> must extend its thanks to these very,
145
+ very useful projects:
146
+ </p>
147
+ <table>
148
+ <tr><td valign="top">YAML:</td><td><a href="http://yaml4r.sourceforge.net">yaml4r.sourceforge.net</a>/
149
+
150
+ </td></tr>
151
+ <tr><td valign="top">HTMLArea:</td><td><a
152
+ href="http://sourceforge.net/projects/itools-htmlarea">sourceforge.net/projects/itools-htmlarea</a>/
153
+
154
+ </td></tr>
155
+ </table>
156
+ </div>
157
+
158
+
159
+ <table summary="Methods" cellpadding="5" width="100%">
160
+ <tr><td class="tablesubtitle">Methods</td></tr>
161
+ </table>
162
+ <div class="name-list">
163
+ <a href="#M000117">handle_request</a>&nbsp; &nbsp;
164
+ <a href="#M000112">method_missing</a>&nbsp; &nbsp;
165
+ <a href="#M000115">pref</a>&nbsp; &nbsp;
166
+ <a href="#M000114">preferences</a>&nbsp; &nbsp;
167
+ <a href="#M000116">set_pref</a>&nbsp; &nbsp;
168
+ <a href="#M000113">wiki</a>&nbsp; &nbsp;
169
+ </div>
170
+
171
+
172
+
173
+
174
+ <table summary="Included modules" cellpadding="5" width="100%">
175
+ <tr><td class="tablesubtitle">Included modules</td></tr>
176
+ </table>
177
+ <div class="name-list">
178
+ <span class="method-name">Wiki::Store</span>
179
+ </div>
180
+
181
+ <table summary="Method list" cellpadding="5" width="100%">
182
+ <tr><td class="tablesubtitle">Public Class methods</td></tr>
183
+ </table>
184
+ <table summary="method" width="100%" cellspacing="0" cellpadding="5" border="0">
185
+ <tr><td class="methodtitle">
186
+ <a name="M000112"></a>
187
+ <a href="Wiki.src/M000112.html" target="Code" class="methodtitle"
188
+ onClick="popCode('Wiki.src/M000112.html');return false;">
189
+ <b>method_missing</b>( symbol, *args )
190
+ </a>
191
+ </td></tr>
192
+ </table>
193
+ <div class="description">
194
+ <p>
195
+ It seems nicer to define the class methods on an object and delegate a few
196
+ class methods
197
+ </p>
198
+ </div>
199
+ <table summary="method" width="100%" cellspacing="0" cellpadding="5" border="0">
200
+ <tr><td class="methodtitle">
201
+ <a name="M000113"></a>
202
+ <a href="Wiki.src/M000113.html" target="Code" class="methodtitle"
203
+ onClick="popCode('Wiki.src/M000113.html');return false;">
204
+ <b>wiki</b>()
205
+ </a>
206
+ </td></tr>
207
+ </table>
208
+ <table summary="method" width="100%" cellspacing="0" cellpadding="5" border="0">
209
+ <tr><td class="methodtitle">
210
+ <a name="M000114"></a>
211
+ <a href="Wiki.src/M000114.html" target="Code" class="methodtitle"
212
+ onClick="popCode('Wiki.src/M000114.html');return false;">
213
+ <b>preferences</b>()
214
+ </a>
215
+ </td></tr>
216
+ </table>
217
+ <table summary="method" width="100%" cellspacing="0" cellpadding="5" border="0">
218
+ <tr><td class="methodtitle">
219
+ <a name="M000115"></a>
220
+ <a href="Wiki.src/M000115.html" target="Code" class="methodtitle"
221
+ onClick="popCode('Wiki.src/M000115.html');return false;">
222
+ <b>pref</b>( key )
223
+ </a>
224
+ </td></tr>
225
+ </table>
226
+ <table summary="method" width="100%" cellspacing="0" cellpadding="5" border="0">
227
+ <tr><td class="methodtitle">
228
+ <a name="M000116"></a>
229
+ <a href="Wiki.src/M000116.html" target="Code" class="methodtitle"
230
+ onClick="popCode('Wiki.src/M000116.html');return false;">
231
+ <b>set_pref</b>( new_prefs={} )
232
+ </a>
233
+ </td></tr>
234
+ </table>
235
+ <table summary="Method list" cellpadding="5" width="100%">
236
+ <tr><td class="tablesubtitle">Public Instance methods</td></tr>
237
+ </table>
238
+ <table summary="method" width="100%" cellspacing="0" cellpadding="5" border="0">
239
+ <tr><td class="methodtitle">
240
+ <a name="M000117"></a>
241
+ <a href="Wiki.src/M000117.html" target="Code" class="methodtitle"
242
+ onClick="popCode('Wiki.src/M000117.html');return false;">
243
+ <b>handle_request</b>()
244
+ </a>
245
+ </td></tr>
246
+ </table>
247
+
248
+ </body>
249
+ </html>
@@ -0,0 +1,25 @@
1
+
2
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
3
+ <html>
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
6
+ <title>method_missing (Web::Wiki)</title>
7
+ <link rel=StyleSheet href="../../.././rdoc-style.css" type="text/css" media="screen" />
8
+ </head>
9
+ <body bgcolor="white">
10
+ <pre><span class="cmt"># File lib/web/wiki.rb, line 91</span>
11
+ <span class="kw">def</span> Wiki.method_missing( symbol, *args )
12
+ <span class="kw">if</span> [:handle_request,
13
+ :store_dir,
14
+ :store_url,
15
+ :store_basedir,
16
+ :more_news,
17
+ :page_list,
18
+ :exit_handler ].include? symbol
19
+ wiki.send symbol, *args
20
+ <span class="kw">else</span>
21
+ <span class="kw">super</span>( symbol, args )
22
+ <span class="kw">end</span>
23
+ <span class="kw">end</span></pre>
24
+ </body>
25
+ </html>
@@ -0,0 +1,15 @@
1
+
2
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
3
+ <html>
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
6
+ <title>wiki (Web::Wiki)</title>
7
+ <link rel=StyleSheet href="../../.././rdoc-style.css" type="text/css" media="screen" />
8
+ </head>
9
+ <body bgcolor="white">
10
+ <pre><span class="cmt"># File lib/web/wiki.rb, line 106</span>
11
+ <span class="kw">def</span> Wiki.wiki
12
+ @@wiki ||= Wiki.new
13
+ <span class="kw">end</span></pre>
14
+ </body>
15
+ </html>
@@ -0,0 +1,26 @@
1
+
2
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
3
+ <html>
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
6
+ <title>preferences (Web::Wiki)</title>
7
+ <link rel=StyleSheet href="../../.././rdoc-style.css" type="text/css" media="screen" />
8
+ </head>
9
+ <body bgcolor="white">
10
+ <pre><span class="cmt"># File lib/web/wiki.rb, line 117</span>
11
+ <span class="kw">def</span> Wiki.preferences
12
+ @@preferences ||= {<span class="str">&quot;baseurl&quot;</span> =&gt; Web::script_name,
13
+ <span class="str">&quot;resourceurl&quot;</span> =&gt; <span class="str">&quot;{$baseurl}/resources&quot;</span>,
14
+ <span class="str">&quot;store_dir&quot;</span> =&gt; <span class="str">&quot;./pages/&quot;</span>,
15
+ <span class="str">&quot;tarpit_dir&quot;</span> =&gt; <span class="str">&quot;./tarpit/&quot;</span>,
16
+ <span class="str">&quot;resource_dir&quot;</span> =&gt; File.join( File.dirname( <span class="kw">__FILE__</span> ),
17
+ <span class="str">&quot;wiki&quot;</span>,
18
+ <span class="str">&quot;resources&quot;</span> ),
19
+ <span class="str">&quot;vandals&quot;</span> =&gt; <span class="str">&quot;vandals.txt&quot;</span>,
20
+ <span class="str">&quot;home_page&quot;</span> =&gt; <span class="str">&quot;HomePage&quot;</span>,
21
+ <span class="str">&quot;home_template&quot;</span> =&gt; <span class="str">&quot;home.html&quot;</span>,
22
+ <span class="str">&quot;allowed_actions&quot;</span> =&gt; Wiki::Request.actions.keys
23
+ }
24
+ <span class="kw">end</span></pre>
25
+ </body>
26
+ </html>
@@ -0,0 +1,21 @@
1
+
2
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
3
+ <html>
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
6
+ <title>pref (Web::Wiki)</title>
7
+ <link rel=StyleSheet href="../../.././rdoc-style.css" type="text/css" media="screen" />
8
+ </head>
9
+ <body bgcolor="white">
10
+ <pre><span class="cmt"># File lib/web/wiki.rb, line 132</span>
11
+ <span class="kw">def</span> Wiki.pref( key )
12
+ key = key.to_s <span class="kw">unless</span> (key.kind_of? String)
13
+ pref = Wiki.preferences[key]
14
+ <span class="kw">while</span> (pref =~ <span class="re">/\{\$([^\}]*)\}/</span>)
15
+ variable = $1
16
+ pref.gsub!( /\{\$#{variable}\}/, Wiki.pref( variable.strip ) || <span class="str">&quot;&quot;</span>)
17
+ <span class="kw">end</span>
18
+ pref
19
+ <span class="kw">end</span></pre>
20
+ </body>
21
+ </html>
@@ -0,0 +1,18 @@
1
+
2
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
3
+ <html>
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
6
+ <title>set_pref (Web::Wiki)</title>
7
+ <link rel=StyleSheet href="../../.././rdoc-style.css" type="text/css" media="screen" />
8
+ </head>
9
+ <body bgcolor="white">
10
+ <pre><span class="cmt"># File lib/web/wiki.rb, line 142</span>
11
+ <span class="kw">def</span> Wiki.set_pref( new_prefs={} )
12
+ new_prefs.each{ |key,value|
13
+ key = key.to_s <span class="kw">unless</span> (key.kind_of? String)
14
+ Wiki.preferences[key] = value
15
+ }
16
+ <span class="kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -0,0 +1,19 @@
1
+
2
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
3
+ <html>
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
6
+ <title>handle_request (Web::Wiki)</title>
7
+ <link rel=StyleSheet href="../../.././rdoc-style.css" type="text/css" media="screen" />
8
+ </head>
9
+ <body bgcolor="white">
10
+ <pre><span class="cmt"># File lib/web/wiki.rb, line 305</span>
11
+ <span class="kw">def</span> handle_request
12
+ Request.new( <span class="kw">self</span> ).handle_request
13
+ <span class="kw">unless</span> (Wiki.pref(<span class="str">&quot;added_exit_handler&quot;</span>))
14
+ exit_handler
15
+ Wiki.set_pref(<span class="str">&quot;added_exit_handler&quot;</span> =&gt; <span class="kw">true</span> )
16
+ <span class="kw">end</span>
17
+ <span class="kw">end</span></pre>
18
+ </body>
19
+ </html>
@@ -0,0 +1 @@
1
+ Sun Oct 03 11:48:05 EDT 2004
@@ -0,0 +1,226 @@
1
+
2
+ <?xml version="1.0" encoding="utf-8"?>
3
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
4
+ "DTD/xhtml1-strict.dtd">
5
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
6
+ <head>
7
+ <title>File: README</title>
8
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
9
+ <link rel=StyleSheet href=".././rdoc-style.css" type="text/css" media="screen" />
10
+ <script type="text/javascript" language="JavaScript">
11
+ <!--
12
+ function popCode(url) {
13
+ window.open(url, "Code",
14
+ "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
15
+ }
16
+ //-->
17
+ </script>
18
+ </head>
19
+
20
+ <body bgcolor="white">
21
+ <table summary="Information on file" width="100%">
22
+ <tr class="title-row">
23
+ <td><table summary="layout" width="100%"><tr>
24
+ <td class="big-title-font" colspan="2">README</td>
25
+ <td align="right"><table summary="layout" cellspacing="0" cellpadding="2">
26
+ <tr>
27
+ <td class="small-title-font">Path:</td>
28
+ <td class="small-title-font">README</td>
29
+ </tr>
30
+ <tr>
31
+ <td class="small-title-font">Modified:</td>
32
+ <td class="small-title-font">Fri Sep 03 19:03:47 EDT 2004</td>
33
+ </tr>
34
+ </table>
35
+ </td></tr></table></td>
36
+ </tr>
37
+ </table>
38
+ <!-- banner header -->
39
+
40
+
41
+
42
+ <div class="description"><h3>Purpose</h3>
43
+ <p>
44
+ NARF is a replacement for, and derivative of, the Ruby CGI library. It
45
+ exists one reason:
46
+ </p>
47
+ <ul>
48
+ <li>To trivialize web development
49
+
50
+ </li>
51
+ </ul>
52
+ <p>
53
+ We hope that these 3 lines of development will accomplish our task:
54
+ </p>
55
+ <ul>
56
+ <li>To provide a clean API for writing <a href="../classes/Web.html">Web</a>
57
+ applications.
58
+
59
+ </li>
60
+ <li>To make it very easy to write testable <a
61
+ href="../classes/Web.html">Web</a> applications (using <a
62
+ href="../classes/Web/Testing.html">Web::Testing</a>), and provide a
63
+ template system (<a
64
+ href="../classes/Web/Narflates.html">Web::Narflates</a>).
65
+
66
+ </li>
67
+ <li>To test the above goals by developing integrated, high quality,
68
+ configurable versions of common web apps in a simple and easy to use
69
+ manner. The heart of <a
70
+ href="http://www.narf-lib.org">www.narf-lib.org</a>, <a
71
+ href="../classes/Web/Wiki.html">Web::Wiki</a> is an easy to use wiki. Not
72
+ the only one, but it does make us eat our own dogfood :-)
73
+
74
+ </li>
75
+ </ul>
76
+ <p>
77
+ NARF does all of this as a regular CGI application. It also runs in-process
78
+ under fastcgi, mod_ruby, and webrick. View these files for details:
79
+ </p>
80
+ <ul>
81
+ <li>sapi/fastcgi/INSTALL.txt
82
+
83
+ </li>
84
+ <li>sapi/mod_ruby/INSTALL.txt
85
+
86
+ </li>
87
+ <li>sapi/webrick/INSTALL.txt
88
+
89
+ </li>
90
+ </ul>
91
+ <h3>Installation</h3>
92
+ <p>
93
+ Run the installer for NARF:
94
+ </p>
95
+ <pre>
96
+ ruby build.rb test (optional)
97
+
98
+ ruby install.rb config
99
+ ruby install.rb setup
100
+ ruby install.rb install
101
+ </pre>
102
+ <h3>Dependencies</h3>
103
+ <p>
104
+ NARF requires the following packages on ruby 1.6. These packages are
105
+ included in ruby 1.8:
106
+ </p>
107
+ <p>
108
+ testunit (unit testing framework): <a
109
+ href="http://testunit.talbott.ws/packages/testunit-0.1.6.tar.gz">testunit.talbott.ws/packages/testunit-0.1.6.tar.gz</a>
110
+ </p>
111
+ <p>
112
+ strscan (string scanner library): <a
113
+ href="http://www.loveruby.net/archive/strscan/strscan-0.6.5.tar.gz">www.loveruby.net/archive/strscan/strscan-0.6.5.tar.gz</a>
114
+ </p>
115
+ <p>
116
+ You can use raa-install (<a
117
+ href="http://www.ruby-lang.org/raa/list.rhtml?id=729">www.ruby-lang.org/raa/list.rhtml?id=729</a>)
118
+ for this:
119
+ </p>
120
+ <pre>
121
+ raa-install -i testunit
122
+ raa-install -i strscan
123
+ </pre>
124
+ <h3>Hello World</h3>
125
+ <pre>
126
+ require 'web'
127
+ Web &lt;&lt; 'Hello World'
128
+ </pre>
129
+ <h3>Testing an App</h3>
130
+ <p>
131
+ If you haven&#8217;t noticed, NARF has a cgi style api. It&#8217;s also has
132
+ a testing api. Given these files:
133
+ </p>
134
+ <pre>
135
+ script.rb
136
+ test.rb
137
+ </pre>
138
+ <p>
139
+ where script.rb is:
140
+ </p>
141
+ <pre>
142
+ #!/usr/bin/ruby
143
+ require 'web'
144
+
145
+ Web &lt;&lt; &quot;param is #{Web[&quot;param&quot;]}&quot;
146
+ </pre>
147
+ <p>
148
+ and test.rb is:
149
+ </p>
150
+ <pre>
151
+ require 'web'
152
+ require 'test/unit'
153
+
154
+ class MyAppTest &lt; Test::Unit::TestCase
155
+ include Web::Testing
156
+ </pre>
157
+ <pre>
158
+ def test_prints_content
159
+ do_request &quot;script.rb&quot;, &quot;param&quot; =&gt; &quot;THIS!&quot;
160
+ assert_content &quot;param is THIS!&quot;
161
+ end
162
+ end
163
+ </pre>
164
+ <p>
165
+ Do this to run tests:
166
+ </p>
167
+ <pre>
168
+ ruby test.rb
169
+ </pre>
170
+ <p>
171
+ See <a href="../classes/Web/Testing.html">Web::Testing</a> for more
172
+ examples.
173
+ </p>
174
+ <h3>Websites</h3>
175
+ <p>
176
+ Home page: <a href="http://www.narf-lib.org">www.narf-lib.org</a>
177
+ </p>
178
+ <p>
179
+ Project info page, including downloads and CVS instructions: <a
180
+ href="http://www.sourceforge.net/projects/narf-lib">www.sourceforge.net/projects/narf-lib</a>
181
+ </p>
182
+ <h3>Credits</h3>
183
+ <p>
184
+ Narf was written by Tom Clarke and Patrick May, partly based on cgi.rb
185
+ written by Wakou Aoyama. It makes significant use of ruby-htmltools,
186
+ written by Ned Konz. Also, Keunwoo Lee patched Request.read_multipart to be
187
+ cleaner.
188
+ </p>
189
+ <p>
190
+ NARF contains code from the following projects, and we are in their debt:
191
+ </p>
192
+ <table>
193
+ <tr><td valign="top">ruby-htmltools:</td><td>This is a Ruby library for building trees representing HTML structure. <a
194
+ href="http://bike-nomad.com/ruby">bike-nomad.com/ruby</a>
195
+
196
+ </td></tr>
197
+ <tr><td valign="top">sgml-parser:</td><td>The html-parser package is a variant language implementation of the
198
+ Python&#8217;s SGML parser (sgmllib.py), HTML parser (htmllib.py) and
199
+ Formatter (formatter.py). <a
200
+ href="http://www.jin.gr.jp/%7Enahi/Ruby/html-parser/README.html">www.jin.gr.jp/%7Enahi/Ruby/html-parser/README.html</a>
201
+
202
+ </td></tr>
203
+ <tr><td valign="top">webunit:</td><td>WebUnit is Ruby API for testing html/cgi without browser, and is idealy
204
+ suited for automated unit testing of web sites when combined with a Ruby
205
+ unit test framework such as RubyUnit. It was designed and implemented by
206
+ Masaki Suketa. <a
207
+ href="http://www.xpenguin.biz/download/webunit/index-en.html">www.xpenguin.biz/download/webunit/index-en.html</a>
208
+
209
+ </td></tr>
210
+ </table>
211
+ <p>
212
+ Thanks also go to <a
213
+ href="http://www.sourceforge.net">www.sourceforge.net</a> for hosting the
214
+ project&#8217;s CVS and website
215
+ </p>
216
+ </div>
217
+
218
+
219
+
220
+
221
+
222
+
223
+
224
+
225
+ </body>
226
+ </html>