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,286 +0,0 @@
1
- # This encodes the knowledge of HTML 4.0 tags for a parser.
2
- # It knows about block vs. inline tags, empty tags, and optionally
3
- # omitted end tags.
4
- #
5
- # Copyright:: Copyright(C) 2002 Ned Konz <ned@bike-nomad.com>
6
- # License:: Ruby's license
7
- # CVS ID:: $Id: tags.rb,v 1.7 2002/06/04 01:55:59 ned Exp $
8
-
9
- # This is an error raised by <tt>HTML::Tag.named()</tt> when a tag doesn't exist.
10
- class NoSuchHTMLTagError < RuntimeError
11
- end
12
-
13
- # This is the base class for all the HTML tag classes.
14
- module HTML
15
-
16
- class Tag
17
-
18
- # tag_name:: a String, the name of the tag
19
- # can_omit:: a Boolean, true if end tag is optional
20
- def initialize(tag_name, can_omit)
21
- @name = tag_name.downcase
22
- @can_omit_end = can_omit
23
- end
24
-
25
- # Return my tag name.
26
- def name; @name; end
27
-
28
- # Return true if my end tag can be omitted.
29
- def can_omit_end_tag; @can_omit_end; end
30
-
31
- # Return true if I am a block element.
32
- def is_block_element; false; end
33
-
34
- # Return true if I am an inline element.
35
- def is_inline_element; false; end
36
-
37
- # Return true if I am an empty element.
38
- def is_empty_element; false; end
39
-
40
- # Return true if I can contain <tt>tag</tt> if my parent is of type <tt>parent</tt>.
41
- # tag:: tag name, a String
42
- # parent:: parent tag name, a String.
43
- def can_contain(tag, parent); false; end
44
-
45
- # Return true if whitespace within me can be omitted (ignoring browser
46
- # bugs)
47
- def can_ignore_whitespace; true; end
48
- end
49
-
50
- # This represents an HTML block element.
51
- class BlockTag < Tag
52
- def is_block_element; true; end
53
-
54
- # Blocks can contain anything, so return true.
55
- def can_contain(tag, parent); true; end
56
- end
57
-
58
- # This represents an HTML inline element.
59
- class InlineTag < Tag
60
- def is_inline_element; true; end
61
-
62
- # Inlines can only contain other inlines.
63
- def can_contain(tag, parent)
64
- Tag.named(tag).is_inline_element
65
- end
66
- end
67
-
68
- # This represents an HTML element that can be regarded as either a block
69
- # or an inline element..
70
- class BlockOrInlineTag < InlineTag
71
-
72
- def is_block_element; true; end
73
-
74
- # If used as inline elements (e.g., within another inline element or a P),
75
- # these elements should not contain any block-level elements.
76
- def can_contain(tag, parent)
77
- return ((parent.downcase == 'p' \
78
- or Tag.named(parent).is_inline_element) \
79
- and ! Tag.named(tag).is_block_element)
80
- end
81
- end
82
-
83
- # This represents an HTML tag that never has an end tag.
84
- class EmptyTag < Tag
85
- def is_empty_element; true; end
86
- def is_inline_element; true; end
87
- def can_contain(tag, parent); false; end
88
- end
89
-
90
- # This block initializes the tag lookup table.
91
- class Tag
92
- @table = Hash.new
93
-
94
- # Add the given tag to the tag lookup table.
95
- #
96
- # This can be called by user code to add otherwise unknown tags to the
97
- # table.
98
- #
99
- # name:: the tag name, a String.
100
- # is_block:: true if I am a block element.
101
- # is_inline:: true if I am an inline element.
102
- # is_empty:: true if I am an empty element.
103
- # can_omit:: true if my end tag can be omitted.
104
- def Tag.add_tag(name, is_block, is_inline, is_empty, can_omit)
105
- @table[ name.upcase ] = @table[ name.downcase ] = \
106
- if is_empty
107
- EmptyTag.new(name, true)
108
- elsif is_block
109
- if is_inline
110
- BlockOrInlineTag.new(name, can_omit)
111
- else
112
- BlockTag.new(name, can_omit)
113
- end
114
- else
115
- InlineTag.new(name, can_omit)
116
- end
117
- end
118
-
119
- # Return an Tag with the given name, or raise a
120
- # NoSuchHTMLTagError.
121
- def Tag.named(tagname)
122
- @table[ tagname ] || raise(NoSuchHTMLTagError.exception(tagname))
123
- end
124
-
125
- # Block Inline Empty can_omit_end
126
- [
127
- [ 'A', false, true, false, false ], # Anchor
128
- [ 'ABBR', false, true, false, false ], # Abbreviation
129
- [ 'ACRONYM', false, true, false, false ], # Acronym
130
- [ 'ADDRESS', true, false, false, false ], # Address
131
- [ 'APPLET', true, true, false, false ], # Java applet
132
- [ 'AREA', true, false, true, true ], # Image map region
133
- [ 'B', false, true, false, false ], # Bold text
134
- [ 'BASE', false, false, true, true ], # Document base URI
135
- [ 'BASEFONT', false, true, true, true ], # Base font change
136
- [ 'BDO', false, true, false, false ], # Bi_di override
137
- [ 'BIG', false, true, false, false ], # Large text
138
- [ 'BLOCKQUOTE', true, false, false, false ], # Block quotation
139
- [ 'BODY', true, false, false, false ], # Document body
140
- [ 'BR', false, true, true, true ], # Line break
141
- [ 'BUTTON', true, true, false, false ], # Button
142
- [ 'CAPTION', false, true, false, false ], # Table caption
143
- [ 'CENTER', false, true, false, false ], # Centered block
144
- [ 'CITE', false, true, false, false ], # Citation
145
- [ 'CODE', false, true, false, false ], # Computer code
146
- [ 'COL', false, false, true, true ], # Table column
147
- [ 'COLGROUP', true, false, false, true ], # Table column group
148
- [ 'DD', true, false, false, true ], # Definition description
149
- [ 'DEL', true, true, false, false ], # Deleted text
150
- [ 'DFN', false, true, false, false ], # Defined term
151
- [ 'DIR', true, false, false, false ], # Directory list
152
- [ 'DIV', true, false, false, false ], # Generic block-level container
153
- [ 'DL', true, false, false, false ], # Definition list
154
- [ 'DT', false, true, false, true ], # Definition term
155
- [ 'EM', false, true, false, false ], # Emphasis
156
- [ 'FIELDSET', true, false, false, false ], # Form control group
157
- [ 'FONT', false, true, false, false ], # Font change
158
- [ 'FORM', true, false, false, false ], # Interactive form
159
- [ 'FRAME', false, false, true, true ], # Frame
160
- [ 'FRAMESET', true, false, false, false ], # Frameset
161
- [ 'H1', true, false, false, false ], # Level-one heading
162
- [ 'H2', true, false, false, false ], # Level-two heading
163
- [ 'H3', true, false, false, false ], # Level-three heading
164
- [ 'H4', true, false, false, false ], # Level-four heading
165
- [ 'H5', true, false, false, false ], # Level-five heading
166
- [ 'H6', true, false, false, false ], # Level-six heading
167
- [ 'HEAD', true, false, false, false ], # Document head
168
- [ 'HR', false, true, true, true ], # Horizontal rule
169
- [ 'HTML', true, false, false, false ], # HTML document
170
- [ 'I', false, true, false, false ], # Italic text
171
- [ 'IFRAME', true, true, false, false ], # Inline frame
172
- [ 'IMG', false, true, true, true ], # Inline image
173
- [ 'INPUT', false, true, true, true ], # Form input
174
- [ 'INS', true, true, false, false ], # Inserted text
175
- [ 'ISINDEX', false, true, true, true ], # Input prompt
176
- [ 'KBD', false, true, false, false ], # Text to be input
177
- [ 'LABEL', false, true, false, false ], # Form field label
178
- [ 'LEGEND', false, true, false, false ], # Fieldset caption
179
- [ 'LI', true, false, false, true ], # List item
180
- [ 'LINK', true, false, false, false ], # Document relationship
181
- [ 'MAP', true, true, false, false ], # Image map
182
- [ 'MENU', true, false, false, false ], # Menu list
183
- [ 'META', false, true, true, true ], # Metadata
184
- [ 'NOFRAMES', true, false, false, false ], # Frames alternate content
185
- [ 'NOSCRIPT', true, false, false, false ], # Alternate script content
186
- [ 'OBJECT', true, true, false, false ], # Object
187
- [ 'OL', true, false, false, false ], # Ordered list
188
- [ 'OPTGROUP', true, false, false, false ], # Option group
189
- [ 'OPTION', true, false, false, false ], # Menu option
190
- [ 'P', true, false, false, true ], # Paragraph
191
- [ 'PARAM', false, true, true, true ], # Object parameter
192
- [ 'PRE', true, false, false, false ], # Preformatted text
193
- [ 'Q', false, true, false, false ], # Short quotation
194
- [ 'S', false, true, false, false ], # Strike-through text
195
- [ 'SAMP', false, true, false, false ], # Sample output
196
- [ 'SCRIPT', true, true, false, false ], # Client-side script
197
- [ 'SELECT', true, false, false, false ], # Option selector
198
- [ 'SMALL', false, true, false, false ], # Small text
199
- [ 'SPAN', false, true, false, false ], # Generic inline container
200
- [ 'STRIKE', false, true, false, false ], # Strike-through text
201
- [ 'STRONG', false, true, false, false ], # Strong emphasis
202
- [ 'STYLE', true, false, false, false ], # Embedded style sheet
203
- [ 'SUB', false, true, false, false ], # Subscript
204
- [ 'SUP', false, true, false, false ], # Superscript
205
- [ 'TABLE', true, false, false, false ], # Table
206
- [ 'TBODY', true, false, false, false ], # Table body
207
- [ 'TD', true, false, false, true ], # Table data cell
208
- [ 'TEXTAREA', false, true, false, false ], # Multi-line text input
209
- [ 'TFOOT', true, false, false, true ], # Table foot
210
- [ 'TH', true, false, false, true ], # Table header cell
211
- [ 'THEAD', true, false, false, true ], # Table head
212
- [ 'TITLE', true, false, false, false ], # Document title
213
- [ 'TR', true, false, false, true ], # Table row
214
- [ 'TT', false, true, false, false ], # Teletype text
215
- [ 'U', false, true, false, false ], # Underlined text
216
- [ 'UL', true, false, false, false ], # Unordered list
217
- [ 'VAR', false, true, false, false ], # Variable
218
- ].each { |a| add_tag(*a) }
219
-
220
- # EXCEPTIONS TODO
221
- # A, LABEL can't contain itself
222
- # several things (fonts, etc) can't be in PRE
223
- # SELECT can only have OPTGROUP or OPTION
224
- # TEXTAREA, OPTION only contains plain text
225
- # APPLET and OBJECT has PARAM+ followed by block and/or inline
226
- # BUTTON can't contain:
227
- # A, INPUT, SELECT, TEXTAREA, LABEL, BUTTON, or IFRAME
228
- # nor FORM, ISINDEX, and FIELDSET
229
- # IFRAME can only contain block elems if parent can
230
- # MAP can contain block+ *xor* AREA+
231
- # SCRIPT only contains a SCRIPT (that is, until /<\/[A-Za-z]/)
232
- # BODY must be in HTML or NOFRAMES
233
- # COL can only be in COLGROUP or TABLE
234
- # COLGROUP has only COL*, and can only be in TABLE
235
- # DIR, MENU can only contain LI+, none of which may contain block elems
236
- # DL must contain (DT|DD)+
237
- # DT and DD are only allowed in DL
238
- # FIELDSET contains LEGEND, (block|inline)*
239
- # FRAMESET contains (FRAMESET|FRAME), plus NOFRAMES and must be in HTML
240
- # H# can only be contained in block elems, but only contain inlines.
241
- # HEAD must only contain TITLE, BASE?, ISINDEX?, SCRIPT* STYLE* META* LINK*
242
- # OBJECT* HEAD must be in HTML
243
- # HTML is top-level and can only contain HEAD, BODY, or HEAD, FRAMESET
244
- # LI can contain blocks except when inside DIR or MENU
245
- # LI can only be inside OL, UL, DIR, MENU
246
- # OL, UL can only contain LI+
247
- # OPTGROUP contains OPTION+
248
- # P can only contain inlines. However, it is a block-level elem.
249
- # PRE can only contain inlines except IMG, OBJECT, APPLET, BIG, SMALL, SUB,
250
- # SUP, FONT, BASEFONT
251
-
252
- # tags with optional omitted endtags and their allowed contents:
253
- # anchor matches at beginning and end
254
- {
255
- 'AREA' => '(?!AREA)[A-Z]+',
256
- 'COLGROUP' => 'COL',
257
- 'DD' => '(?!D[DT]$)[A-Z]+',
258
- 'DT' => '(?!D[DT]$)[A-Z]+',
259
- 'MAP' => 'AREA',
260
- 'P' => '(?!P$)[A-Z]+',
261
- 'TD' => '(?!T[HDR]$)[A-Z]+',
262
- 'TFOOT' => 'TR',
263
- 'TH' => '(?!T[HDR]$)[A-Z]+',
264
- 'THEAD' => 'TR',
265
- 'TR' => 'T[HD]',
266
- }.each_pair { |tagname, pattern|
267
- eval <<EOM
268
- class << named(tagname) # :nodoc:
269
- def can_contain(tag, parent)
270
- (/\\A#{pattern}\\z/i =~ tag) == 0
271
- end
272
- end
273
- EOM
274
- }
275
-
276
- class << named('TEXTAREA') # :nodoc:
277
- def can_ignore_whitespace; false; end
278
- end
279
- class << named('PRE') # :nodoc:
280
- def can_ignore_whitespace; false; end
281
- end
282
- class << named('OPTION') # :nodoc:
283
- def can_ignore_whitespace; false; end
284
- end
285
- end
286
- end
@@ -1,139 +0,0 @@
1
- #!/usr/bin/ruby
2
- # This is an HTML parser that builds an element tree for further
3
- # processing. Attributes and data are also stored.
4
- #
5
- # Typical usage is:
6
- # parser = HTMLTree::Parser.new(false, false)
7
- # parser.parse_file_named('whatever.html')
8
- # # then you have the tree built..
9
- # parser.tree.dump
10
- #
11
- # Copyright:: Copyright (C) 2002, Ned Konz <ned@bike-nomad.com>
12
- # License:: Ruby's
13
- # CVS ID:: $Id: tree.rb,v 1.14 2002/06/04 01:55:59 ned Exp $
14
-
15
- require 'web/htmltools/tags'
16
- require 'web/htmltools/stparser'
17
- require 'web/htmltools/element'
18
-
19
- # This is a tree building HTML parser.
20
- module HTMLTree #:nodoc: all
21
- class Parser < HTML::StackingParser
22
-
23
- # verbose:: if true, will warn to $stderr on unknown
24
- # tags/entities/characters, as well as missing end tags and extra end
25
- # tags.
26
- # strip_white:: if true, remove all non-essential whitespace. Note
27
- # that there are browser bugs that may cause this to change the
28
- # appearance of HTML (even though it shouldn't by the standard).
29
- def initialize(verbose=false, strip_white=true)
30
- super
31
- reset
32
- end
33
-
34
- # Reset this parser so that it can parse a new document.
35
- def reset
36
- super
37
- @rootNode = @currentNode = Document.new
38
- end
39
-
40
- # Return the tree that was built. This will be an HTMLTree::Element that
41
- # represents the whole document. The \<html> node is a child of this.
42
- def tree
43
- @rootNode
44
- end
45
-
46
- # Return the <html> node, if any.
47
- def html
48
- @rootNode.html_node()
49
- end
50
-
51
- # no user-serviceable parts inside...
52
- # though you can subclass carefully.
53
- private
54
-
55
- def add_child_to_current(tag, attrs)
56
- node = Element.new(@currentNode, tag)
57
- attrs.each { |a| node.add_attribute(*a) }
58
- node
59
- end
60
-
61
- # callbacks
62
-
63
- # add a child to the current node and descend
64
- def handle_start_tag(tag, attrs)
65
- node = add_child_to_current(tag, attrs)
66
- @rootNode = node unless @rootNode
67
- @currentNode = node
68
- end
69
-
70
- # go up to parent
71
- def handle_end_tag(tag)
72
- @currentNode = @currentNode.parent
73
- end
74
-
75
- # add a child to the current node
76
- def handle_empty_tag(tag, attrs)
77
- add_child_to_current(tag, attrs)
78
- end
79
-
80
- # Add a child to the current node and descend
81
- # Assume that the unknown tag has an end tag.
82
- def handle_unknown_tag(tag, attrs)
83
- super
84
- handle_start_tag(tag, attrs)
85
- end
86
-
87
- # go up to parent
88
- def handle_missing_end_tag(tag)
89
- super
90
- handle_end_tag(tag)
91
- end
92
-
93
- # ignore
94
- def handle_extra_end_tag(tag)
95
- super
96
- end
97
-
98
- def handle_cdata(data)
99
- node = Data.new(@currentNode, data)
100
- end
101
-
102
- def handle_script(data)
103
- node = Data.new(@currentNode, data)
104
- end
105
-
106
- def handle_unknown_character(name)
107
- super
108
- end
109
-
110
- def handle_unknown_entity(name)
111
- super
112
- end
113
-
114
- def handle_comment(data)
115
- super # make sure and strip whitespace.
116
- node = Comment.new(@currentNode, data)
117
- end
118
-
119
- def handle_special(data)
120
- node = HTMLTree::Special.new(@currentNode, data)
121
- $stderr.print('special ', node, ' discarded') unless @currentNode
122
- end
123
-
124
- end
125
- end
126
-
127
- if $0 == __FILE__
128
- $stdout.sync = true
129
-
130
- class TestStackingParser < HTMLTree::Parser
131
- $DEBUG = false
132
- p = TestStackingParser.new(true, false)
133
- p.parse_file_named(ARGV[0] || 'ebay.html')
134
- File.open('xx.html', 'w') { |of|
135
- p.tree.write(of)
136
- }
137
- p.tree.dump
138
- end
139
- end
@@ -1,160 +0,0 @@
1
- #!/usr/bin/ruby
2
- # This is an HTML parser that builds an element tree for further
3
- # processing. Attributes and data are also stored.
4
- # The storage is that of REXML, which is required.
5
- #
6
- # Typical usage is:
7
- # parser = HTMLTree::XMLParser.new(false, false)
8
- # parser.parse_file_named('whatever.html')
9
- # # then you have the tree built..
10
- # parser.tree # is a REXML::Document
11
- #
12
- # Copyright:: Copyright (C) 2002, Ned Konz <ned@bike-nomad.com>
13
- # License:: Ruby's
14
- # CVS ID:: $Id: tree.rb,v 1.14 2002/06/04 01:55:59 ned Exp $
15
-
16
- require 'html/tags'
17
- require 'html/stparser'
18
- require 'rexml/element'
19
- require 'rexml/document'
20
-
21
- # REXML::Child
22
- # REXML::XMLDecl
23
- # REXML::Instruction
24
- # REXML::Text
25
- # REXML::Comment
26
- # REXML::Entity
27
- # REXML::Parent
28
- # REXML::Element (+REXML::Namespace)
29
- # REXML::Document
30
- # REXML::DocType
31
- #
32
- # This is a tree building HTML parser that makes XML.
33
- module HTMLTree #:nodoc: all
34
- class XMLParser < HTML::StackingParser
35
-
36
- # verbose:: if true, will warn to $stderr on unknown
37
- # tags/entities/characters, as well as missing end tags and extra end
38
- # tags.
39
- # strip_white:: if true, remove all non-essential whitespace. Note
40
- # that there are browser bugs that may cause this to change the
41
- # appearance of HTML (even though it shouldn't by the standard).
42
- def initialize(verbose=false, strip_white=true)
43
- super
44
- reset
45
- end
46
-
47
- # Reset this parser so that it can parse a new document.
48
- def reset
49
- super
50
- @rootNode = @currentNode = REXML::Document.new()
51
- end
52
-
53
- # Return the document that was built. This will be an
54
- # REXML::Document that represents the whole document. The \<html>
55
- # node is a child of this.
56
- def document
57
- @rootNode
58
- end
59
-
60
- def tree
61
- document()
62
- end
63
-
64
- # Return the root of the document, if any.
65
- def root
66
- @rootNode.root()
67
- end
68
-
69
- # Return the <html> node, if any.
70
- def html
71
- @rootNode.root.elements['html']
72
- end
73
-
74
- # no user-serviceable parts inside...
75
- # though you can subclass carefully.
76
- private
77
-
78
- def add_child_to_current(tag, attrs)
79
- node = REXML::Element.new(tag, @currentNode)
80
- attrs.each { |a| node.attributes[a[0]] = a[1] }
81
- node
82
- end
83
-
84
- # callbacks
85
-
86
- # add a child to the current node and descend
87
- def handle_start_tag(tag, attrs)
88
- node = add_child_to_current(tag, attrs)
89
- @rootNode = node unless @rootNode
90
- @currentNode = node
91
- end
92
-
93
- # go up to parent
94
- def handle_end_tag(tag)
95
- @currentNode = @currentNode.parent
96
- end
97
-
98
- # add a child to the current node
99
- def handle_empty_tag(tag, attrs)
100
- add_child_to_current(tag, attrs)
101
- end
102
-
103
- # Add a child to the current node and descend
104
- # Assume that the unknown tag has an end tag.
105
- def handle_unknown_tag(tag, attrs)
106
- super
107
- handle_start_tag(tag, attrs)
108
- end
109
-
110
- # go up to parent
111
- def handle_missing_end_tag(tag)
112
- super
113
- handle_end_tag(tag)
114
- end
115
-
116
- # ignore
117
- def handle_extra_end_tag(tag)
118
- super
119
- end
120
-
121
- def handle_cdata(data)
122
- REXML::Text.new(data, !@stripWhitespace, @currentNode)
123
- end
124
-
125
- def handle_script(data)
126
- REXML::Comment.new(data, @currentNode)
127
- end
128
-
129
- def handle_unknown_character(name)
130
- super # that is, do nothing
131
- end
132
-
133
- def handle_unknown_entity(name)
134
- super # that is, do nothing
135
- end
136
-
137
- def handle_comment(data)
138
- super # strip white
139
- REXML::Comment.new(data, @currentNode)
140
- end
141
-
142
- def handle_special(data)
143
- REXML::DocType.new(data, @currentNode) # TODO
144
- end
145
-
146
- end
147
- end
148
-
149
- if $0 == __FILE__
150
- $stdout.sync = true
151
-
152
- class TestStackingParser < HTMLTree::XMLParser
153
- $DEBUG = false
154
- p = TestStackingParser.new(true, false)
155
- p.parse_file_named(ARGV[0] || 'ebay.html')
156
- File.open('xx.html', 'w') { |of|
157
- p.document.write(of)
158
- }
159
- end
160
- end