narf 0.6.2 → 0.6.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (424) hide show
  1. data/ChangeLog +22 -0
  2. data/lib/web/htmltools/xmltree.rb +2 -2
  3. data/lib/web/htmltools/xpath.rb +1 -1
  4. data/narf.gemspec +1 -1
  5. metadata +2 -460
  6. data/InstalledFiles +0 -2227
  7. data/config.save +0 -12
  8. data/doc/apache_cgi.txt~ +0 -17
  9. data/doc/fastcgi.txt~ +0 -19
  10. data/doc/rdoc/classes/Web.html +0 -369
  11. data/doc/rdoc/classes/Web.src/M000002.html +0 -15
  12. data/doc/rdoc/classes/Web.src/M000003.html +0 -15
  13. data/doc/rdoc/classes/Web.src/M000004.html +0 -15
  14. data/doc/rdoc/classes/Web.src/M000005.html +0 -15
  15. data/doc/rdoc/classes/Web.src/M000006.html +0 -20
  16. data/doc/rdoc/classes/Web.src/M000007.html +0 -18
  17. data/doc/rdoc/classes/Web.src/M000008.html +0 -18
  18. data/doc/rdoc/classes/Web.src/M000009.html +0 -18
  19. data/doc/rdoc/classes/Web.src/M000010.html +0 -15
  20. data/doc/rdoc/classes/Web.src/M000011.html +0 -15
  21. data/doc/rdoc/classes/Web.src/M000012.html +0 -15
  22. data/doc/rdoc/classes/Web/CGD.html +0 -173
  23. data/doc/rdoc/classes/Web/CGD.src/M000037.html +0 -24
  24. data/doc/rdoc/classes/Web/CGD.src/M000038.html +0 -24
  25. data/doc/rdoc/classes/Web/CGD.src/M000039.html +0 -15
  26. data/doc/rdoc/classes/Web/CGD.src/M000040.html +0 -15
  27. data/doc/rdoc/classes/Web/CGD.src/M000041.html +0 -23
  28. data/doc/rdoc/classes/Web/CGI.html +0 -946
  29. data/doc/rdoc/classes/Web/CGI.src/M000051.html +0 -15
  30. data/doc/rdoc/classes/Web/CGI.src/M000052.html +0 -24
  31. data/doc/rdoc/classes/Web/CGI.src/M000053.html +0 -15
  32. data/doc/rdoc/classes/Web/CGI.src/M000054.html +0 -15
  33. data/doc/rdoc/classes/Web/CGI.src/M000055.html +0 -15
  34. data/doc/rdoc/classes/Web/CGI.src/M000056.html +0 -15
  35. data/doc/rdoc/classes/Web/CGI.src/M000057.html +0 -17
  36. data/doc/rdoc/classes/Web/CGI.src/M000058.html +0 -34
  37. data/doc/rdoc/classes/Web/CGI.src/M000059.html +0 -22
  38. data/doc/rdoc/classes/Web/CGI.src/M000060.html +0 -15
  39. data/doc/rdoc/classes/Web/CGI.src/M000061.html +0 -15
  40. data/doc/rdoc/classes/Web/CGI.src/M000062.html +0 -19
  41. data/doc/rdoc/classes/Web/CGI.src/M000063.html +0 -18
  42. data/doc/rdoc/classes/Web/CGI.src/M000064.html +0 -19
  43. data/doc/rdoc/classes/Web/CGI.src/M000065.html +0 -15
  44. data/doc/rdoc/classes/Web/CGI.src/M000066.html +0 -15
  45. data/doc/rdoc/classes/Web/CGI.src/M000067.html +0 -15
  46. data/doc/rdoc/classes/Web/CGI.src/M000068.html +0 -13
  47. data/doc/rdoc/classes/Web/CGI.src/M000069.html +0 -13
  48. data/doc/rdoc/classes/Web/CGI.src/M000070.html +0 -13
  49. data/doc/rdoc/classes/Web/CGI.src/M000071.html +0 -13
  50. data/doc/rdoc/classes/Web/CGI.src/M000072.html +0 -19
  51. data/doc/rdoc/classes/Web/CGI.src/M000073.html +0 -15
  52. data/doc/rdoc/classes/Web/CGI.src/M000074.html +0 -19
  53. data/doc/rdoc/classes/Web/CGI.src/M000075.html +0 -15
  54. data/doc/rdoc/classes/Web/CGI.src/M000076.html +0 -15
  55. data/doc/rdoc/classes/Web/CGI.src/M000077.html +0 -15
  56. data/doc/rdoc/classes/Web/CGI.src/M000078.html +0 -20
  57. data/doc/rdoc/classes/Web/CGI.src/M000079.html +0 -36
  58. data/doc/rdoc/classes/Web/CGI.src/M000080.html +0 -19
  59. data/doc/rdoc/classes/Web/CGI.src/M000081.html +0 -18
  60. data/doc/rdoc/classes/Web/CGI.src/M000082.html +0 -15
  61. data/doc/rdoc/classes/Web/CGI.src/M000083.html +0 -17
  62. data/doc/rdoc/classes/Web/CGI.src/M000084.html +0 -15
  63. data/doc/rdoc/classes/Web/CGI.src/M000085.html +0 -16
  64. data/doc/rdoc/classes/Web/CGI.src/M000086.html +0 -15
  65. data/doc/rdoc/classes/Web/CGI.src/M000087.html +0 -15
  66. data/doc/rdoc/classes/Web/CGI.src/M000088.html +0 -15
  67. data/doc/rdoc/classes/Web/CGI.src/M000089.html +0 -16
  68. data/doc/rdoc/classes/Web/CGI.src/M000090.html +0 -15
  69. data/doc/rdoc/classes/Web/CGI.src/M000091.html +0 -15
  70. data/doc/rdoc/classes/Web/CGI.src/M000092.html +0 -15
  71. data/doc/rdoc/classes/Web/CGI.src/M000093.html +0 -15
  72. data/doc/rdoc/classes/Web/CGI.src/M000094.html +0 -15
  73. data/doc/rdoc/classes/Web/CGI.src/M000095.html +0 -15
  74. data/doc/rdoc/classes/Web/CGI.src/M000096.html +0 -19
  75. data/doc/rdoc/classes/Web/CGI.src/M000097.html +0 -15
  76. data/doc/rdoc/classes/Web/CGI.src/M000098.html +0 -15
  77. data/doc/rdoc/classes/Web/CGI.src/M000099.html +0 -43
  78. data/doc/rdoc/classes/Web/CGI.src/M000100.html +0 -18
  79. data/doc/rdoc/classes/Web/CGI.src/M000101.html +0 -20
  80. data/doc/rdoc/classes/Web/CGI.src/M000102.html +0 -15
  81. data/doc/rdoc/classes/Web/CGI.src/M000103.html +0 -15
  82. data/doc/rdoc/classes/Web/CGI.src/M000104.html +0 -15
  83. data/doc/rdoc/classes/Web/CGI.src/M000105.html +0 -24
  84. data/doc/rdoc/classes/Web/CGI.src/M000106.html +0 -24
  85. data/doc/rdoc/classes/Web/CGI.src/M000107.html +0 -22
  86. data/doc/rdoc/classes/Web/CaseInsensitiveHash.html +0 -104
  87. data/doc/rdoc/classes/Web/CaseInsensitiveHash.src/M000118.html +0 -15
  88. data/doc/rdoc/classes/Web/CaseInsensitiveHash.src/M000119.html +0 -15
  89. data/doc/rdoc/classes/Web/CaseInsensitiveHash.src/M000120.html +0 -15
  90. data/doc/rdoc/classes/Web/Mime.html +0 -122
  91. data/doc/rdoc/classes/Web/Mime.src/M000118.html +0 -15
  92. data/doc/rdoc/classes/Web/Mime.src/M000119.html +0 -15
  93. data/doc/rdoc/classes/Web/Mime.src/M000120.html +0 -23
  94. data/doc/rdoc/classes/Web/Mime.src/M000121.html +0 -15
  95. data/doc/rdoc/classes/Web/Mime.src/M000122.html +0 -15
  96. data/doc/rdoc/classes/Web/Mime.src/M000123.html +0 -23
  97. data/doc/rdoc/classes/Web/Mime.src/M000124.html +0 -15
  98. data/doc/rdoc/classes/Web/Narflates.html +0 -134
  99. data/doc/rdoc/classes/Web/Parser.html +0 -219
  100. data/doc/rdoc/classes/Web/Parser.src/M000013.html +0 -21
  101. data/doc/rdoc/classes/Web/Parser.src/M000014.html +0 -19
  102. data/doc/rdoc/classes/Web/Parser.src/M000015.html +0 -21
  103. data/doc/rdoc/classes/Web/Parser.src/M000016.html +0 -15
  104. data/doc/rdoc/classes/Web/Parser.src/M000017.html +0 -30
  105. data/doc/rdoc/classes/Web/Parser.src/M000018.html +0 -15
  106. data/doc/rdoc/classes/Web/Parser.src/M000019.html +0 -19
  107. data/doc/rdoc/classes/Web/Parser.src/M000020.html +0 -27
  108. data/doc/rdoc/classes/Web/Parser.src/M000021.html +0 -15
  109. data/doc/rdoc/classes/Web/Parser.src/M000022.html +0 -16
  110. data/doc/rdoc/classes/Web/Parser.src/M000023.html +0 -18
  111. data/doc/rdoc/classes/Web/Session.html +0 -178
  112. data/doc/rdoc/classes/Web/Session.src/M000042.html +0 -20
  113. data/doc/rdoc/classes/Web/Session.src/M000043.html +0 -19
  114. data/doc/rdoc/classes/Web/Session.src/M000044.html +0 -21
  115. data/doc/rdoc/classes/Web/Session.src/M000045.html +0 -21
  116. data/doc/rdoc/classes/Web/Session.src/M000046.html +0 -15
  117. data/doc/rdoc/classes/Web/Session.src/M000047.html +0 -17
  118. data/doc/rdoc/classes/Web/Session.src/M000048.html +0 -15
  119. data/doc/rdoc/classes/Web/Session.src/M000049.html +0 -15
  120. data/doc/rdoc/classes/Web/Session.src/M000050.html +0 -16
  121. data/doc/rdoc/classes/Web/Testing.html +0 -474
  122. data/doc/rdoc/classes/Web/Testing.src/M000024.html +0 -15
  123. data/doc/rdoc/classes/Web/Testing.src/M000025.html +0 -25
  124. data/doc/rdoc/classes/Web/Testing.src/M000026.html +0 -15
  125. data/doc/rdoc/classes/Web/Testing.src/M000027.html +0 -25
  126. data/doc/rdoc/classes/Web/Testing.src/M000028.html +0 -57
  127. data/doc/rdoc/classes/Web/Testing.src/M000029.html +0 -15
  128. data/doc/rdoc/classes/Web/Testing.src/M000030.html +0 -15
  129. data/doc/rdoc/classes/Web/Testing.src/M000031.html +0 -15
  130. data/doc/rdoc/classes/Web/Testing.src/M000032.html +0 -15
  131. data/doc/rdoc/classes/Web/Testing.src/M000033.html +0 -15
  132. data/doc/rdoc/classes/Web/Testing.src/M000034.html +0 -15
  133. data/doc/rdoc/classes/Web/Testing.src/M000035.html +0 -15
  134. data/doc/rdoc/classes/Web/Testing.src/M000036.html +0 -18
  135. data/doc/rdoc/classes/Web/Upload.html +0 -160
  136. data/doc/rdoc/classes/Web/Upload.src/M000108.html +0 -25
  137. data/doc/rdoc/classes/Web/Upload.src/M000109.html +0 -18
  138. data/doc/rdoc/classes/Web/Upload.src/M000110.html +0 -16
  139. data/doc/rdoc/classes/Web/Upload.src/M000111.html +0 -16
  140. data/doc/rdoc/classes/Web/Wiki.html +0 -249
  141. data/doc/rdoc/classes/Web/Wiki.src/M000112.html +0 -25
  142. data/doc/rdoc/classes/Web/Wiki.src/M000113.html +0 -15
  143. data/doc/rdoc/classes/Web/Wiki.src/M000114.html +0 -26
  144. data/doc/rdoc/classes/Web/Wiki.src/M000115.html +0 -21
  145. data/doc/rdoc/classes/Web/Wiki.src/M000116.html +0 -18
  146. data/doc/rdoc/classes/Web/Wiki.src/M000117.html +0 -19
  147. data/doc/rdoc/created.rid +0 -1
  148. data/doc/rdoc/files/README.html +0 -230
  149. data/doc/rdoc/files/doc/apache_cgi_txt.html +0 -76
  150. data/doc/rdoc/files/doc/fastcgi_txt.html +0 -82
  151. data/doc/rdoc/files/doc/mod_ruby_txt.html +0 -62
  152. data/doc/rdoc/files/doc/webrick_txt.html +0 -79
  153. data/doc/rdoc/files/examples/examples_rdoc.html +0 -73
  154. data/doc/rdoc/files/lib/web/cgi_rb.html +0 -75
  155. data/doc/rdoc/files/lib/web/mime_rb.html +0 -67
  156. data/doc/rdoc/files/lib/web/parser_rb.html +0 -73
  157. data/doc/rdoc/files/lib/web/session_rb.html +0 -73
  158. data/doc/rdoc/files/lib/web/template_rb.html +0 -73
  159. data/doc/rdoc/files/lib/web/testing_rb.html +0 -67
  160. data/doc/rdoc/files/lib/web/upload_rb.html +0 -73
  161. data/doc/rdoc/files/lib/web/wiki_rb.html +0 -79
  162. data/doc/rdoc/files/lib/web_rb.html +0 -116
  163. data/doc/rdoc/files/lib/web_rb.src/M000001.html +0 -15
  164. data/doc/rdoc/fr_class_index.html +0 -47
  165. data/doc/rdoc/fr_file_index.html +0 -52
  166. data/doc/rdoc/fr_method_index.html +0 -158
  167. data/doc/rdoc/index.html +0 -22
  168. data/doc/rdoc/rdoc-style.css +0 -99
  169. data/examples/admin.rb~ +0 -5
  170. data/examples/cookbook.rdoc~ +0 -238
  171. data/examples/examples.rdoc~ +0 -17
  172. data/examples/hello.world.rb~ +0 -3
  173. data/examples/session.rb~ +0 -31
  174. data/examples/test/test.hello.world.rb~ +0 -9
  175. data/examples/test/test.session.rb~ +0 -37
  176. data/examples/wiki.rb~ +0 -5
  177. data/lib/web.rb~ +0 -290
  178. data/lib/web/#assertinclude.rb# +0 -110
  179. data/lib/web/assertinclude.rb~ +0 -110
  180. data/lib/web/cgi.rb~ +0 -640
  181. data/lib/web/htmlparser/html-parser.rb~ +0 -429
  182. data/lib/web/htmlparser/sgml-parser.rb~ +0 -332
  183. data/lib/web/htmltools/element.rb~ +0 -296
  184. data/lib/web/htmltools/stparser.rb~ +0 -276
  185. data/lib/web/htmltools/tags.rb~ +0 -286
  186. data/lib/web/htmltools/tree.rb~ +0 -139
  187. data/lib/web/htmltools/xmltree.rb~ +0 -160
  188. data/lib/web/htmltools/xpath.rb~ +0 -71
  189. data/lib/web/parser.rb~ +0 -288
  190. data/lib/web/request.rb~ +0 -238
  191. data/lib/web/runner.rb~ +0 -26
  192. data/lib/web/sapi/fastcgi.rb~ +0 -25
  193. data/lib/web/sapi/mod_ruby.rb~ +0 -46
  194. data/lib/web/sapi/webrick.rb~ +0 -89
  195. data/lib/web/session.rb~ +0 -75
  196. data/lib/web/tagparser.rb~ +0 -96
  197. data/lib/web/template.rb~ +0 -613
  198. data/lib/web/testing.rb~ +0 -546
  199. data/lib/web/unit/response.rb~ +0 -461
  200. data/lib/web/unit/ui/cui/testrunner.rb~ +0 -50
  201. data/lib/web/upload.rb~ +0 -262
  202. data/lib/web/wiki.rb~ +0 -517
  203. data/lib/web/wiki/linker.rb~ +0 -72
  204. data/lib/web/wiki/mime.rb~ +0 -68
  205. data/lib/web/wiki/page.rb~ +0 -192
  206. data/lib/web/wiki/resources/#edit.html# +0 -65
  207. data/lib/web/wiki/resources/admin.html~ +0 -13
  208. data/lib/web/wiki/resources/default-content_editor.html~ +0 -1
  209. data/lib/web/wiki/resources/edit.html~ +0 -2
  210. data/lib/web/wiki/resources/home.html~ +0 -10
  211. data/lib/web/wiki/resources/htmlarea/ChangeLog +0 -1185
  212. data/lib/web/wiki/resources/htmlarea/dialog.js +0 -72
  213. data/lib/web/wiki/resources/htmlarea/examples/2-areas.cgi +0 -16
  214. data/lib/web/wiki/resources/htmlarea/examples/2-areas.html +0 -158
  215. data/lib/web/wiki/resources/htmlarea/examples/context-menu.html +0 -95
  216. data/lib/web/wiki/resources/htmlarea/examples/core.html +0 -184
  217. data/lib/web/wiki/resources/htmlarea/examples/css.html +0 -88
  218. data/lib/web/wiki/resources/htmlarea/examples/custom.css +0 -29
  219. data/lib/web/wiki/resources/htmlarea/examples/full-page.html +0 -75
  220. data/lib/web/wiki/resources/htmlarea/examples/fully-loaded.html +0 -248
  221. data/lib/web/wiki/resources/htmlarea/examples/index.html +0 -40
  222. data/lib/web/wiki/resources/htmlarea/examples/spell-checker.html +0 -132
  223. data/lib/web/wiki/resources/htmlarea/examples/table-operations.html +0 -116
  224. data/lib/web/wiki/resources/htmlarea/examples/test.cgi +0 -21
  225. data/lib/web/wiki/resources/htmlarea/htmlarea.css +0 -180
  226. data/lib/web/wiki/resources/htmlarea/htmlarea.js +0 -2175
  227. data/lib/web/wiki/resources/htmlarea/images/ed_about.gif +0 -0
  228. data/lib/web/wiki/resources/htmlarea/images/ed_align_center.gif +0 -0
  229. data/lib/web/wiki/resources/htmlarea/images/ed_align_justify.gif +0 -0
  230. data/lib/web/wiki/resources/htmlarea/images/ed_align_left.gif +0 -0
  231. data/lib/web/wiki/resources/htmlarea/images/ed_align_right.gif +0 -0
  232. data/lib/web/wiki/resources/htmlarea/images/ed_blank.gif +0 -0
  233. data/lib/web/wiki/resources/htmlarea/images/ed_charmap.gif +0 -0
  234. data/lib/web/wiki/resources/htmlarea/images/ed_color_bg.gif +0 -0
  235. data/lib/web/wiki/resources/htmlarea/images/ed_color_fg.gif +0 -0
  236. data/lib/web/wiki/resources/htmlarea/images/ed_copy.gif +0 -0
  237. data/lib/web/wiki/resources/htmlarea/images/ed_custom.gif +0 -0
  238. data/lib/web/wiki/resources/htmlarea/images/ed_cut.gif +0 -0
  239. data/lib/web/wiki/resources/htmlarea/images/ed_delete.gif +0 -0
  240. data/lib/web/wiki/resources/htmlarea/images/ed_format_bold.gif +0 -0
  241. data/lib/web/wiki/resources/htmlarea/images/ed_format_italic.gif +0 -0
  242. data/lib/web/wiki/resources/htmlarea/images/ed_format_strike.gif +0 -0
  243. data/lib/web/wiki/resources/htmlarea/images/ed_format_sub.gif +0 -0
  244. data/lib/web/wiki/resources/htmlarea/images/ed_format_sup.gif +0 -0
  245. data/lib/web/wiki/resources/htmlarea/images/ed_format_underline.gif +0 -0
  246. data/lib/web/wiki/resources/htmlarea/images/ed_help.gif +0 -0
  247. data/lib/web/wiki/resources/htmlarea/images/ed_hr.gif +0 -0
  248. data/lib/web/wiki/resources/htmlarea/images/ed_html.gif +0 -0
  249. data/lib/web/wiki/resources/htmlarea/images/ed_image.gif +0 -0
  250. data/lib/web/wiki/resources/htmlarea/images/ed_indent_less.gif +0 -0
  251. data/lib/web/wiki/resources/htmlarea/images/ed_indent_more.gif +0 -0
  252. data/lib/web/wiki/resources/htmlarea/images/ed_left_to_right.gif +0 -0
  253. data/lib/web/wiki/resources/htmlarea/images/ed_link.gif +0 -0
  254. data/lib/web/wiki/resources/htmlarea/images/ed_list_bullet.gif +0 -0
  255. data/lib/web/wiki/resources/htmlarea/images/ed_list_num.gif +0 -0
  256. data/lib/web/wiki/resources/htmlarea/images/ed_paste.gif +0 -0
  257. data/lib/web/wiki/resources/htmlarea/images/ed_redo.gif +0 -0
  258. data/lib/web/wiki/resources/htmlarea/images/ed_right_to_left.gif +0 -0
  259. data/lib/web/wiki/resources/htmlarea/images/ed_save.gif +0 -0
  260. data/lib/web/wiki/resources/htmlarea/images/ed_show_border.gif +0 -0
  261. data/lib/web/wiki/resources/htmlarea/images/ed_splitcel.gif +0 -0
  262. data/lib/web/wiki/resources/htmlarea/images/ed_undo.gif +0 -0
  263. data/lib/web/wiki/resources/htmlarea/images/fullscreen_maximize.gif +0 -0
  264. data/lib/web/wiki/resources/htmlarea/images/fullscreen_minimize.gif +0 -0
  265. data/lib/web/wiki/resources/htmlarea/images/insert_table.gif +0 -0
  266. data/lib/web/wiki/resources/htmlarea/index.html +0 -199
  267. data/lib/web/wiki/resources/htmlarea/lang/b5.js +0 -36
  268. data/lib/web/wiki/resources/htmlarea/lang/cz.js +0 -63
  269. data/lib/web/wiki/resources/htmlarea/lang/da.js +0 -38
  270. data/lib/web/wiki/resources/htmlarea/lang/de.js +0 -54
  271. data/lib/web/wiki/resources/htmlarea/lang/ee.js +0 -63
  272. data/lib/web/wiki/resources/htmlarea/lang/el.js +0 -75
  273. data/lib/web/wiki/resources/htmlarea/lang/en.js +0 -88
  274. data/lib/web/wiki/resources/htmlarea/lang/es.js +0 -51
  275. data/lib/web/wiki/resources/htmlarea/lang/fi.js +0 -46
  276. data/lib/web/wiki/resources/htmlarea/lang/fr.js +0 -61
  277. data/lib/web/wiki/resources/htmlarea/lang/gb.js +0 -36
  278. data/lib/web/wiki/resources/htmlarea/lang/he.js +0 -63
  279. data/lib/web/wiki/resources/htmlarea/lang/hu.js +0 -63
  280. data/lib/web/wiki/resources/htmlarea/lang/it.js +0 -54
  281. data/lib/web/wiki/resources/htmlarea/lang/ja-euc.js +0 -37
  282. data/lib/web/wiki/resources/htmlarea/lang/ja-jis.js +0 -37
  283. data/lib/web/wiki/resources/htmlarea/lang/ja-sjis.js +0 -37
  284. data/lib/web/wiki/resources/htmlarea/lang/ja-utf8.js +0 -37
  285. data/lib/web/wiki/resources/htmlarea/lang/lt.js +0 -55
  286. data/lib/web/wiki/resources/htmlarea/lang/lv.js +0 -55
  287. data/lib/web/wiki/resources/htmlarea/lang/nb.js +0 -36
  288. data/lib/web/wiki/resources/htmlarea/lang/nl.js +0 -90
  289. data/lib/web/wiki/resources/htmlarea/lang/no.js +0 -79
  290. data/lib/web/wiki/resources/htmlarea/lang/pl.js +0 -36
  291. data/lib/web/wiki/resources/htmlarea/lang/pt_br.js +0 -37
  292. data/lib/web/wiki/resources/htmlarea/lang/ro.js +0 -80
  293. data/lib/web/wiki/resources/htmlarea/lang/ru.js +0 -63
  294. data/lib/web/wiki/resources/htmlarea/lang/se.js +0 -38
  295. data/lib/web/wiki/resources/htmlarea/lang/si.js +0 -63
  296. data/lib/web/wiki/resources/htmlarea/lang/vn.js +0 -51
  297. data/lib/web/wiki/resources/htmlarea/license.txt +0 -30
  298. data/lib/web/wiki/resources/htmlarea/plugins/CSS/css.js +0 -116
  299. data/lib/web/wiki/resources/htmlarea/plugins/CSS/lang/en.js +0 -2
  300. data/lib/web/wiki/resources/htmlarea/plugins/ContextMenu/context-menu.js +0 -416
  301. data/lib/web/wiki/resources/htmlarea/plugins/ContextMenu/lang/de.js +0 -59
  302. data/lib/web/wiki/resources/htmlarea/plugins/ContextMenu/lang/el.js +0 -57
  303. data/lib/web/wiki/resources/htmlarea/plugins/ContextMenu/lang/en.js +0 -66
  304. data/lib/web/wiki/resources/htmlarea/plugins/ContextMenu/lang/nl.js +0 -66
  305. data/lib/web/wiki/resources/htmlarea/plugins/ContextMenu/menu.css +0 -64
  306. data/lib/web/wiki/resources/htmlarea/plugins/FullPage/full-page.js +0 -143
  307. data/lib/web/wiki/resources/htmlarea/plugins/FullPage/img/docprop.gif +0 -0
  308. data/lib/web/wiki/resources/htmlarea/plugins/FullPage/lang/en.js +0 -25
  309. data/lib/web/wiki/resources/htmlarea/plugins/FullPage/lang/ro.js +0 -25
  310. data/lib/web/wiki/resources/htmlarea/plugins/FullPage/popups/docprop.html +0 -131
  311. data/lib/web/wiki/resources/htmlarea/plugins/FullPage/test.html +0 -89
  312. data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/img/spell-check.gif +0 -0
  313. data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/lang/cz.js +0 -37
  314. data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/lang/da.js +0 -37
  315. data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/lang/de.js +0 -28
  316. data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/lang/en.js +0 -38
  317. data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/lang/hu.js +0 -37
  318. data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/lang/it.js +0 -28
  319. data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/lang/ro.js +0 -37
  320. data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/readme-tech.html +0 -114
  321. data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/spell-check-logic.cgi +0 -210
  322. data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/spell-check-style.css +0 -10
  323. data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/spell-check-ui.html +0 -122
  324. data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/spell-check-ui.js +0 -397
  325. data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/spell-checker.js +0 -79
  326. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/cell-delete.gif +0 -0
  327. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/cell-insert-after.gif +0 -0
  328. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/cell-insert-before.gif +0 -0
  329. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/cell-merge.gif +0 -0
  330. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/cell-prop.gif +0 -0
  331. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/cell-split.gif +0 -0
  332. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/col-delete.gif +0 -0
  333. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/col-insert-after.gif +0 -0
  334. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/col-insert-before.gif +0 -0
  335. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/col-split.gif +0 -0
  336. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/row-delete.gif +0 -0
  337. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/row-insert-above.gif +0 -0
  338. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/row-insert-under.gif +0 -0
  339. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/row-prop.gif +0 -0
  340. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/row-split.gif +0 -0
  341. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/table-prop.gif +0 -0
  342. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/lang/cz.js +0 -90
  343. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/lang/da.js +0 -90
  344. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/lang/de.js +0 -81
  345. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/lang/el.js +0 -81
  346. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/lang/en.js +0 -90
  347. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/lang/fi.js +0 -66
  348. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/lang/hu.js +0 -63
  349. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/lang/it.js +0 -81
  350. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/lang/nl.js +0 -90
  351. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/lang/no.js +0 -91
  352. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/lang/ro.js +0 -90
  353. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/table-operations.js +0 -1160
  354. data/lib/web/wiki/resources/htmlarea/popupdiv.js +0 -369
  355. data/lib/web/wiki/resources/htmlarea/popups/about.html +0 -378
  356. data/lib/web/wiki/resources/htmlarea/popups/blank.html +0 -2
  357. data/lib/web/wiki/resources/htmlarea/popups/custom2.html +0 -35
  358. data/lib/web/wiki/resources/htmlarea/popups/editor_help.html +0 -16
  359. data/lib/web/wiki/resources/htmlarea/popups/fullscreen.html +0 -133
  360. data/lib/web/wiki/resources/htmlarea/popups/insert_image.html +0 -191
  361. data/lib/web/wiki/resources/htmlarea/popups/insert_table.html +0 -174
  362. data/lib/web/wiki/resources/htmlarea/popups/link.html +0 -142
  363. data/lib/web/wiki/resources/htmlarea/popups/old-fullscreen.html +0 -131
  364. data/lib/web/wiki/resources/htmlarea/popups/old_insert_image.html +0 -206
  365. data/lib/web/wiki/resources/htmlarea/popups/popup.js +0 -109
  366. data/lib/web/wiki/resources/htmlarea/popups/select_color.html +0 -347
  367. data/lib/web/wiki/resources/htmlarea/popupwin.js +0 -139
  368. data/lib/web/wiki/resources/htmlarea/reference.html +0 -523
  369. data/lib/web/wiki/resources/htmlarea/release-notes.html +0 -165
  370. data/lib/web/wiki/resources/illustration.html~ +0 -1
  371. data/lib/web/wiki/resources/index.html~ +0 -4
  372. data/lib/web/wiki/resources/more_news.html~ +0 -5
  373. data/lib/web/wiki/resources/more_news_rss_0.91.html +0 -23
  374. data/lib/web/wiki/resources/page_history.html~ +0 -19
  375. data/lib/web/wiki/resources/template.html~ +0 -13
  376. data/narf.gemspec~ +0 -40
  377. data/sapi/apache_cgi/INSTALL.txt~ +0 -9
  378. data/sapi/apache_cgi/README~ +0 -0
  379. data/sapi/fastcgi/INSTALL.txt~ +0 -17
  380. data/sapi/mod_ruby/INSTALL.txt~ +0 -5
  381. data/sapi/webrick/INSTALL.txt~ +0 -21
  382. data/sapi/webrick/run_webrick.rb~ +0 -16
  383. data/scripts/makedist.rb~ +0 -49
  384. data/test/mod_ruby_stub.rb~ +0 -38
  385. data/test/test.action.rb~ +0 -142
  386. data/test/test.assertinclude.rb~ +0 -109
  387. data/test/test.narf.cgi.rb~ +0 -105
  388. data/test/test.request.rb~ +0 -328
  389. data/test/test.response.rb~ +0 -556
  390. data/test/test.template.rb~ +0 -832
  391. data/test/test.web.test.rb~ +0 -461
  392. data/test/webunit/test_cookie.rb~ +0 -128
  393. data/test/webunit/test_form.rb~ +0 -43
  394. data/test/webunit/test_multipart.rb~ +0 -53
  395. data/test/webunit/test_params.rb~ +0 -211
  396. data/test/webunit/test_response.rb~ +0 -145
  397. data/test/webunit/test_site/assert.html~ +0 -1
  398. data/test/webunit/test_site/auth/index.html~ +0 -1
  399. data/test/webunit/test_site/badtags.html~ +0 -1
  400. data/test/webunit/test_site/cookie.cgi~ +0 -35
  401. data/test/webunit/test_site/document.xml~ +0 -1
  402. data/test/webunit/test_site/form.html~ +0 -1
  403. data/test/webunit/test_site/frame-0.html~ +0 -1
  404. data/test/webunit/test_site/frame-1.html~ +0 -1
  405. data/test/webunit/test_site/frame.html~ +0 -1
  406. data/test/webunit/test_site/image.html~ +0 -1
  407. data/test/webunit/test_site/include.cgi~ +0 -10
  408. data/test/webunit/test_site/jscript-0.html~ +0 -1
  409. data/test/webunit/test_site/jscript-1.html~ +0 -1
  410. data/test/webunit/test_site/jscript.html~ +0 -1
  411. data/test/webunit/test_site/link.html~ +0 -1
  412. data/test/webunit/test_site/multipart.cgi~ +0 -25
  413. data/test/webunit/test_site/multipart.html~ +0 -1
  414. data/test/webunit/test_site/params.html~ +0 -1
  415. data/test/webunit/test_site/redirect.cgi~ +0 -14
  416. data/test/webunit/test_site/response.html~ +0 -1
  417. data/test/webunit/test_site/simple.cgi~ +0 -17
  418. data/test/webunit/test_site/stock.cgi~ +0 -34
  419. data/test/webunit/test_site/table.html~ +0 -1
  420. data/test/webunit/test_site/test.cgi~ +0 -25
  421. data/test/wiki/test.history.rb~ +0 -254
  422. data/test/wiki/test.illustration_page.rb~ +0 -287
  423. data/test/wiki/test.tarpit.rb~ +0 -40
  424. data/test/wiki/test.wiki.rb~ +0 -295
@@ -1,429 +0,0 @@
1
- # HTML parser
2
-
3
- require 'sgml-parser'
4
-
5
- class HTMLParser < SGMLParser
6
-
7
- def initialize(formatter, verbose=nil)
8
- super(verbose)
9
- @formatter = formatter
10
- @savedata = nil
11
- @isindex = 0
12
- @title = nil
13
- @base = nil
14
- @anchor = nil
15
- @anchorlist = []
16
- @nofill = 0
17
- @list_stack = []
18
- end
19
-
20
-
21
- def handle_data(data)
22
- if @savedata
23
- @savedata = @savedata + data
24
- else
25
- if @nofill != 0
26
- @formatter.add_literal_data(data)
27
- else
28
- @formatter.add_flowing_data(data)
29
- end
30
- end
31
- end
32
-
33
- def save_bgn
34
- @savedata = ''
35
- end
36
-
37
- def save_end
38
- data = @savedata
39
- @savedata = nil
40
- data = '' if data == nil
41
- if @nofill == 0
42
- data = data.split.join(" ")
43
- end
44
- return data
45
- end
46
-
47
- def anchor_bgn(href, name, type)
48
- @anchor = href
49
- if @anchor
50
- @anchorlist << href
51
- end
52
- end
53
-
54
- def anchor_end
55
- if @anchor
56
- #handle_data(format "[%d]", @anchorlist.length)
57
- @anchor = nil
58
- end
59
- end
60
-
61
- def handle_image(src, alt, *args)
62
- handle_data(alt)
63
- end
64
-
65
- def start_html(attrs) end
66
- def end_html() end
67
-
68
- def start_head(attrs) end
69
- def end_head() end
70
-
71
- def start_body(attrs) end
72
- def end_body() end
73
-
74
- def start_title(attrs)
75
- save_bgn
76
- end
77
-
78
- def end_title
79
- @title = save_end
80
- end
81
-
82
- def do_base(attrs)
83
- for a, v in attrs
84
- if a == 'href'
85
- @base = v
86
- end
87
- end
88
- end
89
-
90
- def do_isindex(attrs)
91
- @isindex = 1
92
- end
93
-
94
- def do_link(attrs)
95
- end
96
-
97
- def do_meta(attrs)
98
- end
99
-
100
- def do_nextid(attrs) # Deprecated
101
- end
102
-
103
-
104
- def start_h1(attrs)
105
- @formatter.end_paragraph(1)
106
- @formatter.push_font('h1', 0, 1, 0)
107
- end
108
-
109
- def end_h1
110
- @formatter.end_paragraph(1)
111
- @formatter.pop_font()
112
- end
113
-
114
- def start_h2(attrs)
115
- @formatter.end_paragraph(1)
116
- @formatter.push_font('h2', 0, 1, 0)
117
- end
118
-
119
- def end_h2
120
- @formatter.end_paragraph(1)
121
- @formatter.pop_font()
122
- end
123
-
124
- def start_h3(attrs)
125
- @formatter.end_paragraph(1)
126
- @formatter.push_font('h3', 0, 1, 0)
127
- end
128
-
129
- def end_h3
130
- @formatter.end_paragraph(1)
131
- @formatter.pop_font()
132
- end
133
-
134
- def start_h4(attrs)
135
- @formatter.end_paragraph(1)
136
- @formatter.push_font('h4', 0, 1, 0)
137
- end
138
-
139
- def end_h4
140
- @formatter.end_paragraph(1)
141
- @formatter.pop_font()
142
- end
143
-
144
- def start_h5(attrs)
145
- @formatter.end_paragraph(1)
146
- @formatter.push_font('h5', 0, 1, 0)
147
- end
148
-
149
- def end_h5
150
- @formatter.end_paragraph(1)
151
- @formatter.pop_font()
152
- end
153
-
154
- def start_h6(attrs)
155
- @formatter.end_paragraph(1)
156
- @formatter.push_font('h6', 0, 1, 0)
157
- end
158
-
159
- def end_h6
160
- @formatter.end_paragraph(1)
161
- @formatter.pop_font()
162
- end
163
-
164
- def do_p(attrs)
165
- @formatter.end_paragraph(1)
166
- end
167
-
168
- def start_pre(attrs)
169
- @formatter.end_paragraph(1)
170
- @formatter.push_font(nil, nil, nil, 1)
171
- @nofill = @nofill + 1
172
- end
173
-
174
- def end_pre
175
- @formatter.end_paragraph(1)
176
- @formatter.pop_font()
177
- @nofill = @nofill - 1
178
- if @nofill < 0 then @nofill = 0 end
179
- end
180
-
181
- def start_xmp(attrs)
182
- start_pre(attrs)
183
- setliteral('xmp') # Tell SGML parser
184
- end
185
-
186
- def end_xmp
187
- end_pre
188
- end
189
-
190
- def start_listing(attrs)
191
- start_pre(attrs)
192
- setliteral('listing') # Tell SGML parser
193
- end
194
-
195
- def end_listing
196
- end_pre
197
- end
198
-
199
- def start_address(attrs)
200
- @formatter.end_paragraph(0)
201
- @formatter.push_font(nil, 1, nil, nil)
202
- end
203
-
204
- def end_address
205
- @formatter.end_paragraph(0)
206
- @formatter.pop_font()
207
- end
208
-
209
- def start_blockquote(attrs)
210
- @formatter.end_paragraph(1)
211
- @formatter.push_margin('blockquote')
212
- end
213
-
214
- def end_blockquote
215
- @formatter.end_paragraph(1)
216
- @formatter.pop_margin()
217
- end
218
-
219
- def start_ul(attrs)
220
- @formatter.end_paragraph(0)
221
- @formatter.push_margin('ul')
222
- @list_stack << ['ul', '*', 0]
223
- end
224
-
225
- def end_ul
226
- if @list_stack
227
- @list_stack.pop
228
- end
229
- @formatter.end_paragraph(0)
230
- @formatter.pop_margin
231
- end
232
-
233
- def do_li(attrs)
234
- @formatter.end_paragraph(0)
235
- if @list_stack && @list_stack.size > 0
236
- dummy, label, counter = top = @list_stack[-1]
237
- top[2] = counter = counter+1
238
- else
239
- label, counter = '*', 0
240
- end
241
- @formatter.add_label_data(label, counter)
242
- end
243
-
244
- def start_ol(attrs)
245
- @formatter.end_paragraph(0)
246
- @formatter.push_margin('ol')
247
- label = '1.'
248
- for a, v in attrs
249
- if a == 'type'
250
- if v.length == 1
251
- v = v + '.'
252
- label = v
253
- end
254
- end
255
- end
256
- @list_stack << ['ol', label, 0]
257
- end
258
-
259
- def end_ol
260
- if @list_stack
261
- @list_stack.pop
262
- end
263
- @formatter.end_paragraph(0)
264
- @formatter.pop_margin
265
- end
266
-
267
- def start_menu(attrs)
268
- start_ul(attrs)
269
- end
270
-
271
- def end_menu
272
- end_ul
273
- end
274
-
275
- def start_dir(attrs)
276
- start_ul(attrs)
277
- end
278
-
279
- def end_dir
280
- end_ul
281
- end
282
-
283
- def start_dl(attrs)
284
- @formatter.end_paragraph(1)
285
- @list_stack << ['dl', '', 0]
286
- end
287
-
288
- def end_dl
289
- ddpop(1)
290
- if @list_stack.length > 0
291
- @list_stack.pop
292
- end
293
- end
294
-
295
- def do_dt(attrs)
296
- ddpop
297
- end
298
-
299
- def do_dd(attrs)
300
- ddpop
301
- @formatter.push_margin('dd')
302
- @list_stack << ['dd', '', 0]
303
- end
304
-
305
- def ddpop(bl=0)
306
- @formatter.end_paragraph(bl)
307
- if @list_stack.length > 0
308
- if @list_stack[-1][0] == 'dd'
309
- @list_stack.pop
310
- @formatter.pop_margin
311
- end
312
- end
313
- end
314
-
315
- def start_cite(attrs) start_i(attrs) end
316
- def end_cite() end_i end
317
-
318
- def start_code(attrs) start_tt(attrs) end
319
- def end_code() end_tt end
320
-
321
- def start_em(attrs) start_i(attrs) end
322
- def end_em() end_i end
323
-
324
- def start_kbd(attrs) start_tt(attrs) end
325
- def end_kbd() end_tt end
326
-
327
- def start_samp(attrs) start_tt(attrs) end
328
- def end_samp() end_tt end
329
-
330
- def start_strong(attrs) start_b(attrs) end
331
- def end_strong() end_b end
332
-
333
- def start_var(attrs) start_i(attrs) end
334
- def end_var() end_i end
335
-
336
- def start_i(attrs)
337
- @formatter.push_font(nil, 1, nil, nil)
338
- end
339
- def end_i
340
- @formatter.pop_font
341
- end
342
-
343
- def start_b(attrs)
344
- @formatter.push_font(nil, nil, 1, nil)
345
- end
346
- def end_b
347
- @formatter.pop_font
348
- end
349
-
350
- def start_tt(attrs)
351
- @formatter.push_font(nil, nil, nil, 1)
352
- end
353
- def end_tt
354
- @formatter.pop_font
355
- end
356
-
357
- def start_a(attrs)
358
- href = nil
359
- name = nil
360
- type = nil
361
- for attrname, value in attrs
362
- value = value.strip
363
- if attrname == 'href'
364
- href = value
365
- end
366
- if attrname == 'name'
367
- name = value
368
- end
369
- if attrname == 'type'
370
- type = value.downcase
371
- end
372
- end
373
- anchor_bgn(href, name, type)
374
- end
375
-
376
- def end_a
377
- anchor_end
378
- end
379
-
380
- def do_br(attrs)
381
- @formatter.add_line_break
382
- end
383
-
384
- def do_hr(attrs)
385
- @formatter.add_hor_rule
386
- end
387
-
388
- def do_img(attrs)
389
- align = nil
390
- alt = '(image)'
391
- ismap = nil
392
- src = nil
393
- width = 0
394
- height = 0
395
- for attrname, value in attrs
396
- if attrname == 'align'
397
- align = value
398
- end
399
- if attrname == 'alt'
400
- alt = value
401
- end
402
- if attrname == 'ismap'
403
- ismap = value
404
- end
405
- if attrname == 'src'
406
- src = value
407
- end
408
- if attrname == 'width'
409
- width = Integer(value)
410
- end
411
- if attrname == 'height'
412
- height = Integer(value)
413
- end
414
- end
415
- handle_image(src, alt, ismap, align, width, height)
416
- end
417
-
418
- def do_plaintext(attrs)
419
- start_pre(attrs)
420
- setnomoretags # Tell SGML parser
421
- end
422
-
423
- def unknown_starttag(tag, attrs)
424
- end
425
-
426
- def unknown_endtag(tag)
427
- end
428
-
429
- end
@@ -1,332 +0,0 @@
1
- # A parser for SGML, using the derived class as static DTD.
2
-
3
- class SGMLParser
4
-
5
- # Regular expressions used for parsing:
6
- Interesting = /[&<]/
7
- Incomplete = Regexp.compile('&([a-zA-Z][a-zA-Z0-9]*|#[0-9]*)?|' +
8
- '<([a-zA-Z][^<>]*|/([a-zA-Z][^<>]*)?|' +
9
- '![^<>]*)?')
10
-
11
- Entityref = /&([a-zA-Z][-.a-zA-Z0-9]*)[^-.a-zA-Z0-9]/
12
- Charref = /&#([0-9]+)[^0-9]/
13
-
14
- Starttagopen = /<[>a-zA-Z]/
15
- Endtagopen = /<\/[<>a-zA-Z]/
16
- Endbracket = /[<>]/
17
- Special = /<![^<>]*>/
18
- Commentopen = /<!--/
19
- Commentclose = /--[ \t\n]*>/
20
- Tagfind = /[a-zA-Z][a-zA-Z0-9.-]*/
21
- Attrfind = Regexp.compile('[\s,]*([a-zA-Z_][a-zA-Z_0-9.-]*)' +
22
- '(\s*=\s*' +
23
- "('[^']*'" +
24
- '|"[^"]*"' +
25
- '|[-~a-zA-Z0-9,./:+*%?!()_#=]*))?')
26
-
27
- Entitydefs =
28
- {'lt'=>'<', 'gt'=>'>', 'amp'=>'&', 'quot'=>'"', 'apos'=>'\''}
29
-
30
- def initialize(verbose=false)
31
- @verbose = verbose
32
- reset
33
- end
34
-
35
- def reset
36
- @rawdata = ''
37
- @stack = []
38
- @lasttag = '???'
39
- @nomoretags = false
40
- @literal = false
41
- end
42
-
43
- def has_context(gi)
44
- @stack.include? gi
45
- end
46
-
47
- def setnomoretags
48
- @nomoretags = true
49
- @literal = true
50
- end
51
-
52
- def setliteral(*args)
53
- @literal = true
54
- end
55
-
56
- def feed(data)
57
- @rawdata << data
58
- goahead(false)
59
- end
60
-
61
- def close
62
- goahead(true)
63
- end
64
-
65
- def goahead(_end)
66
- rawdata = @rawdata
67
- i = 0
68
- n = rawdata.length
69
- while i < n
70
- if @nomoretags
71
- handle_data(rawdata[i..(n-1)])
72
- i = n
73
- break
74
- end
75
- j = rawdata.index(Interesting, i)
76
- j = n unless j
77
- if i < j
78
- handle_data(rawdata[i..(j-1)])
79
- end
80
- i = j
81
- break if (i == n)
82
- if rawdata[i] == ?< #
83
- if rawdata.index(Starttagopen, i) == i
84
- if @literal
85
- handle_data(rawdata[i, 1])
86
- i += 1
87
- next
88
- end
89
- k = parse_starttag(i)
90
- break unless k
91
- i = k
92
- next
93
- end
94
- if rawdata.index(Endtagopen, i) == i
95
- k = parse_endtag(i)
96
- break unless k
97
- i = k
98
- @literal = false
99
- next
100
- end
101
- if rawdata.index(Commentopen, i) == i
102
- if @literal
103
- handle_data(rawdata[i,1])
104
- i += 1
105
- next
106
- end
107
- k = parse_comment(i)
108
- break unless k
109
- i += k
110
- next
111
- end
112
- if rawdata.index(Special, i) == i
113
- if @literal
114
- handle_data(rawdata[i, 1])
115
- i += 1
116
- next
117
- end
118
- k = parse_special(i)
119
- break unless k
120
- i += k
121
- next
122
- end
123
- elsif rawdata[i] == ?& #
124
- if rawdata.index(Charref, i) == i
125
- i += $&.length
126
- handle_charref($1)
127
- i -= 1 unless rawdata[i-1] == ?;
128
- next
129
- end
130
- if rawdata.index(Entityref, i) == i
131
- i += $&.length
132
- handle_entityref($1)
133
- i -= 1 unless rawdata[i-1] == ?;
134
- next
135
- end
136
- else
137
- raise RuntimeError, 'neither < nor & ??'
138
- end
139
- # We get here only if incomplete matches but
140
- # nothing else
141
- match = rawdata.index(Incomplete, i)
142
- unless match == i
143
- handle_data(rawdata[i, 1])
144
- i += 1
145
- next
146
- end
147
- j = match + $&.length
148
- break if j == n # Really incomplete
149
- handle_data(rawdata[i..(j-1)])
150
- i = j
151
- end
152
- # end while
153
- if _end and i < n
154
- handle_data(@rawdata[i..(n-1)])
155
- i = n
156
- end
157
- @rawdata = rawdata[i..-1]
158
- end
159
-
160
- def parse_comment(i)
161
- rawdata = @rawdata
162
- if rawdata[i, 4] != '<!--'
163
- raise RuntimeError, 'unexpected call to handle_comment'
164
- end
165
- match = rawdata.index(Commentclose, i)
166
- return nil unless match
167
- matched_length = $&.length
168
- j = match
169
- handle_comment(rawdata[i+4..(j-1)])
170
- j = match + matched_length
171
- return j-i
172
- end
173
-
174
- def parse_starttag(i)
175
- rawdata = @rawdata
176
- j = rawdata.index(Endbracket, i + 1)
177
- return nil unless j
178
- attrs = []
179
- if rawdata[i+1] == ?> #
180
- # SGML shorthand: <> == <last open tag seen>
181
- k = j
182
- tag = @lasttag
183
- else
184
- match = rawdata.index(Tagfind, i + 1)
185
- unless match
186
- raise RuntimeError, 'unexpected call to parse_starttag'
187
- end
188
- k = i + 1 + ($&.length)
189
- tag = $&.downcase
190
- @lasttag = tag
191
- end
192
- while k < j
193
- break unless rawdata.index(Attrfind, k)
194
- matched_length = $&.length
195
- attrname, rest, attrvalue = $1, $2, $3
196
- if not rest
197
- attrvalue = '' # was: = attrname
198
- elsif (attrvalue[0] == ?' && attrvalue[-1] == ?') or
199
- (attrvalue[0] == ?" && attrvalue[-1] == ?")
200
- attrvalue = attrvalue[1..-2]
201
- end
202
- attrs << [attrname.downcase, attrvalue]
203
- k += matched_length
204
- end
205
- if rawdata[j] == ?> #
206
- j += 1
207
- end
208
- finish_starttag(tag, attrs)
209
- return j
210
- end
211
-
212
- def parse_endtag(i)
213
- rawdata = @rawdata
214
- j = rawdata.index(Endbracket, i + 1)
215
- return nil unless j
216
- tag = (rawdata[i+2..j-1].strip).downcase
217
- if rawdata[j] == ?> #
218
- j += 1
219
- end
220
- finish_endtag(tag)
221
- return j
222
- end
223
-
224
- def finish_starttag(tag, attrs)
225
- method = 'start_' + tag
226
- if self.respond_to?(method)
227
- @stack << tag
228
- handle_starttag(tag, method, attrs)
229
- return 1
230
- else
231
- method = 'do_' + tag
232
- if self.respond_to?(method)
233
- handle_starttag(tag, method, attrs)
234
- return 0
235
- else
236
- unknown_starttag(tag, attrs)
237
- return -1
238
- end
239
- end
240
- end
241
-
242
- def finish_endtag(tag)
243
- if tag == ''
244
- found = @stack.length - 1
245
- if found < 0
246
- unknown_endtag(tag)
247
- return
248
- end
249
- else
250
- unless @stack.include? tag
251
- method = 'end_' + tag
252
- unless self.respond_to?(method)
253
- unknown_endtag(tag)
254
- end
255
- return
256
- end
257
- found = @stack.index(tag) #or @stack.length
258
- end
259
- while @stack.length > found
260
- tag = @stack[-1]
261
- method = 'end_' + tag
262
- if respond_to?(method)
263
- handle_endtag(tag, method)
264
- else
265
- unknown_endtag(tag)
266
- end
267
- @stack.pop
268
- end
269
- end
270
-
271
- def parse_special(i)
272
- rawdata = @rawdata
273
- match = rawdata.index(Endbracket, i+1)
274
- return nil unless match
275
- matched_length = $&.length
276
- handle_special(rawdata[i+1..(match-1)])
277
- return match - i + matched_length
278
- end
279
-
280
- def handle_starttag(tag, method, attrs)
281
- self.send(method, attrs)
282
- end
283
-
284
- def handle_endtag(tag, method)
285
- self.send(method)
286
- end
287
-
288
- def report_unbalanced(tag)
289
- if @verbose
290
- print '*** Unbalanced </' + tag + '>', "\n"
291
- print '*** Stack:', self.stack, "\n"
292
- end
293
- end
294
-
295
- def handle_charref(name)
296
- n = Integer(name)
297
- if !(0 <= n && n <= 255)
298
- unknown_charref(name)
299
- return
300
- end
301
- handle_data(n.chr)
302
- end
303
-
304
- def handle_entityref(name)
305
- table = Entitydefs
306
- if table.include?(name)
307
- handle_data(table[name])
308
- else
309
- unknown_entityref(name)
310
- return
311
- end
312
- end
313
-
314
- def handle_data(data)
315
- end
316
-
317
- def handle_comment(data)
318
- end
319
-
320
- def handle_special(data)
321
- end
322
-
323
- def unknown_starttag(tag, attrs)
324
- end
325
- def unknown_endtag(tag)
326
- end
327
- def unknown_charref(ref)
328
- end
329
- def unknown_entityref(ref)
330
- end
331
-
332
- end