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,296 +0,0 @@
1
- # Copyright:: Copyright (C) 2002, Ned Konz <ned@bike-nomad.com>
2
- # License:: Same as Ruby's
3
- # CVS ID: $Id: element.rb,v 1.8 2002/06/04 01:55:59 ned Exp $
4
-
5
- # This module is a mix-in that provides parent/child behavior to real
6
- # Element classes. Because it defines <tt>each()</tt> and includes Enumerable,
7
- # you can iterate through a tree using the usual Enumerable methods.
8
-
9
- require 'web/htmltools/tags'
10
-
11
- module HTMLTree
12
- module TreeElement
13
- include Enumerable
14
-
15
- protected
16
-
17
- def initialize_tree_element(parent_or_nil = nil, contents_or_nil = nil)
18
- @_content, @_parent = contents_or_nil, parent_or_nil
19
- if parent_or_nil
20
- parent_or_nil.add_child(self)
21
- end
22
- end
23
-
24
- attr_accessor :_parent
25
-
26
- public
27
-
28
- # Add one or more children to this node.
29
- def add_child(*children_to_add)
30
- if can_have_children?
31
- children_to_add.each do |child|
32
- @_content << child
33
- child._parent = self
34
- end
35
- else
36
- raise(ArgumentError.exception('node cannot have children'))
37
- end
38
- end
39
-
40
- alias_method(:add_children, :add_child)
41
-
42
- # Remove one or more children from this node.
43
- def remove_child(*children_to_remove)
44
- if can_have_children?
45
- children_to_remove.each do |child|
46
- child._parent = nil if @_content.delete(child)
47
- end
48
- else
49
- raise(ArgumentError.exception('node cannot have children'))
50
- end
51
- end
52
-
53
- alias_method(:remove_children, :remove_child)
54
-
55
- # Change my parent. Disconnects from prior parent, if any.
56
- def parent=(parent_or_nil)
57
- @_parent.remove_child(self) if @_parent
58
- parent_or_nil.add_child(self) if parent_or_nil
59
- end
60
-
61
- # Return true if my content is a collection of Elements
62
- # rather than actual data.
63
- def can_have_children?
64
- @_content.kind_of?(Array)
65
- end
66
-
67
- # Return a collection of my children. Returns an empty Array if I am a
68
- # data element, just to keep other methods simple.
69
- def children
70
- can_have_children? ? @_content : []
71
- end
72
-
73
- # Return my content; either my children or my data.
74
- def content
75
- @_content
76
- end
77
-
78
- # Return my parent element.
79
- def parent
80
- @_parent
81
- end
82
-
83
- # Return the ultimate parent.
84
- def root
85
- @_parent ? self : @_parent.root
86
- end
87
-
88
- # Return true if I have any children.
89
- def has_children?
90
- children.size > 0
91
- end
92
-
93
- # Breadth-first iterator, required by Enumerable.
94
- def each(&block)
95
- block.call(self)
96
- children.each { |ch| ch.each(&block) }
97
- end
98
-
99
- # Print out to $stdout (or given IO or String)
100
- # a formatted dump of my structure.
101
- def dump(indent=0, io=$stdout)
102
- io << " " * indent
103
- io << self.to_s
104
- io << "\n"
105
- children.each { |ea| ea.dump(indent+1, io) }
106
- end
107
-
108
- end
109
-
110
- # This is a Element that represents the whole document (and makes a
111
- # scope for the DTD declaration)
112
- class Document
113
- include TreeElement
114
-
115
- def initialize
116
- initialize_tree_element(nil, [])
117
- end
118
-
119
- def to_s
120
- ''
121
- end
122
-
123
- def each(&block)
124
- children.each { |ch| ch.each(&block) }
125
- end
126
-
127
- def write(io)
128
- children.each { |t| t.write(io) }
129
- end
130
-
131
- def tag
132
- ''
133
- end
134
-
135
- # Return my child <html> node, if any.
136
- def html_node
137
- children.detect { |ea| ea.tag == 'html' }
138
- end
139
- end
140
-
141
- # This is a TreeElement that represents tagged items in an HTML
142
- # document.
143
- class Element
144
- include TreeElement
145
-
146
- protected
147
-
148
- # parent_or_nil:: TreeElement or nil
149
- # tag_name:: String
150
- def initialize(parent_or_nil = nil, tag_name = nil)
151
- initialize_tree_element(parent_or_nil, [])
152
- @_tag = tag_name
153
- @_attributes = {}
154
- @_attribute_order = []
155
- end
156
-
157
- public
158
-
159
- def can_have_children?; true; end
160
-
161
- # Return true if I'm data instead of a tag
162
- def data?; false; end
163
-
164
- def to_s
165
- a = [ "<", tag ]
166
- @_attribute_order.each { |k|
167
- v = @_attributes[k]
168
- a << " #{k.to_s}=\"#{v.to_s}\""
169
- }
170
- a << ">"
171
- a.join('')
172
- end
173
-
174
- # Append an attribute. <tt>values</tt> are first flattened into an Array,
175
- # then converted into strings.
176
- #
177
- # If there is a single attribute value, it will appear as a String,
178
- # otherwise it will be an Array of Strings.
179
- #
180
- # Example:
181
- # element.add_attribute("width", "123")
182
- # element.add_attribute("value", [ "a", "b" ])
183
- def add_attribute(name, *values)
184
- values = values.flatten.collect { |ea| ea.to_s.strip }
185
- name = name.downcase
186
- if @_attributes.include?(name)
187
- @_attributes[name] = @_attributes[name].to_a + values
188
- else
189
- @_attributes[name] = values.size > 1 ? values : values[0]
190
- end
191
- @_attribute_order << name
192
- self
193
- end
194
-
195
- # Return my tag (should be a String)
196
- def tag; @_tag; end
197
-
198
- # Return an HTML::Tag for further information, or nil if this is an
199
- # unknown tag.
200
- def tag_info
201
- begin
202
- HTML::Tag.named(@_tag)
203
- rescue NoSuchHTMLTagError
204
- nil
205
- end
206
- end
207
-
208
- # Return my attributes Hash.
209
- def attributes; @_attributes; end
210
-
211
- # Return the order of my attributes
212
- def attribute_order; @_attribute_order; end
213
-
214
- # Return the value of a single attribute (a String or Array).
215
- def attribute(name); @_attributes[name]; end
216
-
217
- # Return the value of a single attribute (a String or Array).
218
- def [](name); attribute(name); end
219
-
220
- # Replace an attribute.
221
- def []=(name, *values)
222
- @_attributes[name] = values.size > 1 ? values : values[0]
223
- @_attribute_order.delete(name)
224
- self
225
- end
226
-
227
- # Print me (and my descendents) on the given IO stream.
228
- def write(io)
229
- io << self
230
- children.each { |t| t.write(io) }
231
- unless tag_info.is_empty_element
232
- io.puts( "</#{tag()}>" )
233
- end
234
- end
235
-
236
- end
237
-
238
- # This is a TreeElement that represents leaf data nodes (CDATA, scripts,
239
- # comments, processing directives). It forwards unknown messages to the
240
- # content element, so it otherwise behaves like a String.
241
- class Data
242
- include TreeElement
243
-
244
- protected
245
-
246
- # parent_or_nil:: parent, TreeElement or nil
247
- # str:: contents, String
248
- def initialize(parent_or_nil = nil, str = '')
249
- initialize_tree_element(parent_or_nil, str)
250
- end
251
-
252
- public
253
-
254
- # Return true because I am a data Element.
255
- def data?; true; end
256
-
257
- # Return false because I have no children.
258
- def can_have_children?; false; end
259
-
260
- # Return an empty collection because I have no children.
261
- def children; []; end
262
-
263
- # Return my (empty) tag String.
264
- def tag; ''; end
265
-
266
- # Return my (empty) attributes Hash.
267
- def attributes; {}; end
268
-
269
- def to_s
270
- @_content
271
- end
272
-
273
- # Print me on the given IO stream.
274
- def write(io)
275
- io << self
276
- end
277
-
278
- # Forward all other methods to my content, so I can otherwise behave
279
- # like a String.
280
- def method_missing(sym, *args)
281
- @_content.method(sym).call(*args)
282
- end
283
- end
284
-
285
- class Comment < Data
286
- def to_s
287
- '<!--' + @_content + '-->'
288
- end
289
- end
290
-
291
- class Special < Data
292
- def to_s
293
- '<' + @_content + '>'
294
- end
295
- end
296
- end
@@ -1,276 +0,0 @@
1
- # Copyright:: Copyright(C) 2002 Ned Konz
2
- # License:: Ruby's License
3
- # CVS ID:: $Id: stparser.rb,v 1.6 2002/06/04 01:55:59 ned Exp $
4
-
5
- require 'web/htmlparser/sgml-parser'
6
- require 'web/htmltools/tags'
7
-
8
- # This is an SGMLParser subclass that knows about HTML 4.0 rules
9
- # and can spot empty tags and deal with tags that may have omitted endtags.
10
- module HTML #:nodoc: all
11
- class StackingParser < SGMLParser
12
- # accessors
13
-
14
- def stack; @tagStack; end
15
-
16
- def last_tag; @tagStack[-1] || 'html'; end
17
-
18
- def parent_tag; @tagStack[-2] || 'html'; end
19
-
20
- def strip_whitespace=(flag); @stripWhitespace = flag; end
21
-
22
- # input methods
23
-
24
- # Open and parse the given file.
25
- def parse_file_named(name)
26
- File.open(name) { |f|
27
- while bytes = f.read(65536)
28
- feed(bytes)
29
- end
30
- }
31
- end
32
-
33
- # Feed some more data to the parser.
34
- def feed(string)
35
- super
36
- while @saved.size > 0
37
- saved = @saved
38
- @saved = ''
39
- super(saved)
40
- end
41
- end
42
-
43
- # available only to subclasses
44
- private
45
-
46
- if $DEBUG
47
- def dprint(*stuff)
48
- print((" " * @tagStack.size), stuff) if @verbose
49
- end
50
- else
51
- def dprint(*stuff); end
52
- end
53
-
54
- def warn(msg)
55
- $stderr.print(msg) if @verbose
56
- end
57
-
58
- def initialize(verbose=false, strip_white=false)
59
- super(verbose)
60
- @tagStack = []
61
- @saved = ''
62
- @stripWhitespace = strip_white
63
- end
64
-
65
- # handle_data will call this.
66
- def skip_script(data)
67
- # is the end of the script in this buffer?
68
- if m = data.index(%r{</[A-Za-z]})
69
- @nomoretags = false
70
- @saved = data[m..-1]
71
- handle_script(data[0,m]) # call user handler
72
- else
73
- handle_script(data)
74
- end
75
- end
76
-
77
- # Unfortunately, sgml-parser calls this and there's important work to do in
78
- # it. So the user handler has to be named something different.
79
- def handle_data(data)
80
- # need to handle scripts
81
- if last_tag() == 'script' && @nomoretags
82
- skip_script(data)
83
- else
84
- if @stripWhitespace
85
- begin
86
- data.strip! if HTML::Tag.named(last_tag()).can_ignore_whitespace
87
- rescue NoSuchHTMLTagError
88
- data.strip!
89
- end
90
- end
91
- handle_cdata(data) if data.size > 0 # call user handler
92
- end
93
- end
94
-
95
- def finish_starttag(tag, attrs)
96
- dprint "*START* #{tag} #{attrs.inspect}\n"
97
- # dprint "-START- #{tag}\n"
98
- begin
99
- unless HTML::Tag.named(last_tag()).can_contain(tag, parent_tag())
100
- dprint "-INSERT-\n"
101
- finish_endtag(last_tag())
102
- end
103
- rescue NoSuchHTMLTagError
104
- # hmm.. last_tag was unknown.
105
- # Assume it doesn't have an optional endtag.
106
- end
107
-
108
- push(tag)
109
-
110
- begin
111
- if HTML::Tag.named(tag).is_empty_element
112
- dprint "-EMPTY-\n"
113
- handle_empty_tag(tag, attrs) # call user handler
114
- drop_to_tag(tag)
115
- else
116
- handle_start_tag(tag, attrs) # call user handler
117
- end
118
-
119
- if tag.downcase == 'script'
120
- @nomoretags = true
121
- end
122
- rescue NoSuchHTMLTagError
123
- # hmm... the start tag is unknown.
124
- # And we pushed it.
125
- # If it's empty, we'll get rid of it at the next end tag.
126
- handle_unknown_tag(tag, attrs)
127
- end
128
- end
129
-
130
- # return true if tag is not extra
131
- def drop_to_tag(tag)
132
- dropped = @tagStack.size - (@tagStack.rindex(tag.downcase) || @tagStack.size)
133
- if dropped == 0 # got an end tag but we haven't seen start tag?
134
- handle_extra_end_tag(tag) # call user handler
135
- return false
136
- end
137
- dropped.times do
138
- begin
139
- # detect missing end tag
140
- if last_tag != tag and ! HTML::Tag.named(last_tag).can_omit_end_tag
141
- handle_missing_end_tag(last_tag) # call user handler
142
- end
143
- rescue NoSuchHTMLTagError
144
- # oops, don't recognize last_tag.
145
- end
146
- pop
147
- end
148
- return true
149
- end
150
-
151
- def finish_endtag(tag)
152
- dprint "*END* #{tag}\n"
153
- if drop_to_tag(tag)
154
- dprint "-END- #{tag} #{@tagStack.inspect}\n"
155
- handle_end_tag(tag) # call user handler
156
- end
157
- end
158
-
159
- def push(tag)
160
- @tagStack.push(tag.downcase)
161
- dprint "*PUSH* #{tag} => #{@tagStack.inspect}\n"
162
- end
163
-
164
- def pop
165
- tag = @tagStack.pop
166
- dprint "*POP* #{tag} => #{@tagStack.inspect}\n"
167
- tag
168
- end
169
-
170
- def unknown_charref(name)
171
- handle_unknown_character(name)
172
- end
173
-
174
- def unknown_entityref(name)
175
- handle_unknown_entity(name)
176
- end
177
-
178
- # callbacks: can be overridden in subclasses
179
-
180
- def handle_start_tag(tag, attrs)
181
- end
182
-
183
- def handle_end_tag(tag)
184
- end
185
-
186
- # by default, an empty tag is handled as a start tag
187
- # with an inserted end tag.
188
- def handle_empty_tag(tag, attrs)
189
- handle_start_tag(tag, attrs)
190
- handle_end_tag(tag)
191
- end
192
-
193
- def handle_unknown_tag(tag, attrs)
194
- warn("warning: unknown tag #{tag}\n")
195
- end
196
-
197
- def handle_missing_end_tag(tag)
198
- warn("warning: missing end tag </#{tag}>\n")
199
- end
200
-
201
- def handle_extra_end_tag(tag)
202
- warn("warning: extra end tag </#{tag}>\n")
203
- end
204
-
205
- def handle_cdata(data)
206
- end
207
-
208
- def handle_script(data)
209
- end
210
-
211
- def handle_unknown_character(name)
212
- end
213
-
214
- def handle_unknown_entity(name)
215
- end
216
-
217
- # call super if you want the data stripped
218
- def handle_comment(data)
219
- data.strip! if @stripWhitespace
220
- end
221
-
222
- def handle_special(data)
223
- end
224
-
225
- end
226
- end
227
-
228
- # test script
229
- if $0 == __FILE__
230
- $stdout.sync = true
231
-
232
- class TestStackingParser < HTML::StackingParser
233
- def dump_stack
234
- stack.each { |ea| print ea, '/' }
235
- end
236
- def handle_start_tag(tag, attrs)
237
- print("START: #{tag} #{attrs.inspect}\n")
238
- end
239
- def handle_end_tag(tag)
240
- # print("END: #{tag}\n")
241
- end
242
- def handle_empty_tag(tag, attrs)
243
- # print("EMPTY: #{tag} #{attrs.inspect}\n")
244
- end
245
- def handle_cdata(data)
246
- # print("DATA: #{data.size} chars\n")
247
- if last_tag() != 'style'
248
- str = data.strip
249
- if str.size > 0
250
- dump_stack
251
- print(str.inspect, "\n")
252
- end
253
- end
254
- end
255
- def handle_script(data)
256
- # print("SCRIPT: #{data.size} chars\n")
257
- end
258
- def handle_unknown_character(name)
259
- print("UNKC: #{name}\n")
260
- end
261
- def handle_unknown_entity(name)
262
- print("UNKE: #{name}\n")
263
- end
264
- def handle_comment(data)
265
- super
266
- print("COMMENT: #{data}\n")
267
- end
268
- def handle_special(data)
269
- print("SPECIAL: #{data}\n")
270
- end
271
- end
272
-
273
- $DEBUG = false
274
- p = TestStackingParser.new(true)
275
- p.parse_file_named(ARGV[0] || 'ebay.html')
276
- end