rabbit 0.9.2 → 0.9.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (345) hide show
  1. data/Gemfile +16 -0
  2. data/README +1 -0
  3. data/Rakefile +161 -53
  4. data/TODO +2 -0
  5. data/bin/rabbit +78 -34
  6. data/bin/rabbit-command +16 -3
  7. data/bin/rabbiter +74 -73
  8. data/bin/rabrick +17 -4
  9. data/bin/rabwii +77 -0
  10. data/data/rabbit/image/dark-gradation-images/background-gradation.png +0 -0
  11. data/data/rabbit/image/dark-gradation-images/dark-gradation-images.rb +2 -0
  12. data/data/rabbit/image/dark-gradation-images/property.rb +4 -0
  13. data/doc/_config.yml +2 -0
  14. data/doc/_layouts/en.html +37 -0
  15. data/doc/_layouts/ja.html +37 -0
  16. data/doc/_layouts/skeleton.html +91 -0
  17. data/doc/_plugins/converters/hiki.rb +27 -0
  18. data/doc/_plugins/converters/rd.rb +73 -0
  19. data/doc/_site/css/jquery-ui/themes/ui-lightness.css +573 -0
  20. data/doc/_site/css/rabbit.css +247 -0
  21. data/doc/_site/en/development.html +140 -0
  22. data/doc/_site/en/faq.html +117 -0
  23. data/doc/_site/en/hiki.html +420 -0
  24. data/doc/_site/en/how-to-make/hiki.html +113 -0
  25. data/doc/_site/en/how-to-make/index.html +135 -0
  26. data/doc/_site/en/how-to-make/pdf.html +111 -0
  27. data/doc/_site/en/how-to-make/rd.html +151 -0
  28. data/doc/_site/en/how-to-make/theme.html +249 -0
  29. data/doc/_site/en/index.html +343 -0
  30. data/doc/_site/en/install/homebrew.html +279 -0
  31. data/doc/_site/en/install/index.html +144 -0
  32. data/doc/_site/en/install/macports.html +158 -0
  33. data/doc/_site/en/install/windows.html +200 -0
  34. data/doc/_site/en/news.html +928 -0
  35. data/doc/_site/en/rd.html +555 -0
  36. data/doc/_site/en/sample/hiki/rabbit.html +380 -0
  37. data/doc/_site/en/sample/index.html +117 -0
  38. data/doc/_site/en/sample/rd/rabbit.html +572 -0
  39. data/doc/_site/en/slides.html +113 -0
  40. data/doc/_site/en/usage.html +445 -0
  41. data/doc/_site/en/users.html +127 -0
  42. data/doc/_site/favicon.ico +0 -0
  43. data/doc/_site/favicon.png +0 -0
  44. data/doc/_site/images/background-sample.svg +290 -0
  45. data/doc/_site/images/background.png +0 -0
  46. data/doc/_site/images/background.svg +131 -0
  47. data/doc/_site/images/hare-and-tortoise.png +0 -0
  48. data/doc/_site/images/hare-and-tortoise.svg +541 -0
  49. data/doc/_site/images/jp.png +0 -0
  50. data/{sample/momo/usako/usako_psd_100.png → doc/_site/images/lavie-icon.png} +0 -0
  51. data/doc/_site/images/lavie.png +0 -0
  52. data/doc/_site/images/screenshots/en/blue-circle-raw.png +0 -0
  53. data/doc/_site/images/screenshots/en/blue-circle.png +0 -0
  54. data/doc/_site/images/screenshots/en/clear-blue-raw.png +0 -0
  55. data/doc/_site/images/screenshots/en/clear-blue.png +0 -0
  56. data/doc/_site/images/screenshots/en/cozmixng-raw.png +0 -0
  57. data/doc/_site/images/screenshots/en/cozmixng.png +0 -0
  58. data/doc/_site/images/screenshots/en/dark-gradation-raw.png +0 -0
  59. data/doc/_site/images/screenshots/en/dark-gradation.png +0 -0
  60. data/doc/_site/images/screenshots/en/day-white-raw.png +0 -0
  61. data/doc/_site/images/screenshots/en/day-white.png +0 -0
  62. data/doc/_site/images/screenshots/en/debian-raw.png +0 -0
  63. data/doc/_site/images/screenshots/en/debian.png +0 -0
  64. data/doc/_site/images/screenshots/en/green-circle-raw.png +0 -0
  65. data/doc/_site/images/screenshots/en/green-circle.png +0 -0
  66. data/doc/_site/images/screenshots/en/night-black-raw.png +0 -0
  67. data/doc/_site/images/screenshots/en/night-black.png +0 -0
  68. data/doc/_site/images/screenshots/en/rabbit-raw.png +0 -0
  69. data/doc/_site/images/screenshots/en/rabbit.png +0 -0
  70. data/doc/_site/images/screenshots/en/ranguba-raw.png +0 -0
  71. data/doc/_site/images/screenshots/en/ranguba.png +0 -0
  72. data/doc/_site/images/screenshots/en/red-frame-raw.png +0 -0
  73. data/doc/_site/images/screenshots/en/red-frame.png +0 -0
  74. data/doc/_site/images/screenshots/en/ruby-gnome2-raw.png +0 -0
  75. data/doc/_site/images/screenshots/en/ruby-gnome2.png +0 -0
  76. data/doc/_site/images/screenshots/ja/blue-circle-raw.png +0 -0
  77. data/doc/_site/images/screenshots/ja/blue-circle.png +0 -0
  78. data/doc/_site/images/screenshots/ja/clear-blue-raw.png +0 -0
  79. data/doc/_site/images/screenshots/ja/clear-blue.png +0 -0
  80. data/doc/_site/images/screenshots/ja/cozmixng-raw.png +0 -0
  81. data/doc/_site/images/screenshots/ja/cozmixng.png +0 -0
  82. data/doc/_site/images/screenshots/ja/dark-gradation-raw.png +0 -0
  83. data/doc/_site/images/screenshots/ja/dark-gradation.png +0 -0
  84. data/doc/_site/images/screenshots/ja/day-white-raw.png +0 -0
  85. data/doc/_site/images/screenshots/ja/day-white.png +0 -0
  86. data/doc/_site/images/screenshots/ja/debian-raw.png +0 -0
  87. data/doc/_site/images/screenshots/ja/debian.png +0 -0
  88. data/doc/_site/images/screenshots/ja/green-circle-raw.png +0 -0
  89. data/doc/_site/images/screenshots/ja/green-circle.png +0 -0
  90. data/doc/_site/images/screenshots/ja/night-black-raw.png +0 -0
  91. data/doc/_site/images/screenshots/ja/night-black.png +0 -0
  92. data/doc/_site/images/screenshots/ja/rabbit-raw.png +0 -0
  93. data/doc/_site/images/screenshots/ja/rabbit.png +0 -0
  94. data/doc/_site/images/screenshots/ja/ranguba-raw.png +0 -0
  95. data/doc/_site/images/screenshots/ja/ranguba.png +0 -0
  96. data/doc/_site/images/screenshots/ja/red-frame-raw.png +0 -0
  97. data/doc/_site/images/screenshots/ja/red-frame.png +0 -0
  98. data/doc/_site/images/screenshots/ja/ruby-gnome2-raw.png +0 -0
  99. data/doc/_site/images/screenshots/ja/ruby-gnome2.png +0 -0
  100. data/doc/_site/images/us.png +0 -0
  101. data/doc/_site/index.html.en +122 -0
  102. data/doc/_site/index.html.ja +122 -0
  103. data/doc/_site/ja/about.html +120 -0
  104. data/doc/_site/ja/development.html +141 -0
  105. data/doc/_site/ja/faq.html +232 -0
  106. data/doc/_site/ja/hiki.html +416 -0
  107. data/doc/_site/ja/how-to-make/hiki.html +113 -0
  108. data/doc/_site/ja/how-to-make/index.html +135 -0
  109. data/doc/_site/ja/how-to-make/pdf.html +112 -0
  110. data/doc/_site/ja/how-to-make/rd.html +161 -0
  111. data/doc/_site/ja/how-to-make/theme.html +254 -0
  112. data/doc/_site/ja/index.html +351 -0
  113. data/doc/_site/ja/install/homebrew.html +279 -0
  114. data/doc/_site/ja/install/index.html +146 -0
  115. data/doc/_site/ja/install/macports.html +177 -0
  116. data/doc/_site/ja/install/windows.html +200 -0
  117. data/doc/_site/ja/news.html +926 -0
  118. data/doc/_site/ja/rd.html +565 -0
  119. data/doc/_site/ja/sample/hiki/rabbit.html +390 -0
  120. data/doc/_site/ja/sample/index.html +117 -0
  121. data/doc/_site/ja/sample/rd/rabbit.html +580 -0
  122. data/doc/_site/ja/slides.html +142 -0
  123. data/doc/_site/ja/usage.html +458 -0
  124. data/doc/_site/ja/users.html +331 -0
  125. data/doc/_site/javascripts/jquery-ui.js +11544 -0
  126. data/doc/_site/javascripts/jquery.js +7179 -0
  127. data/doc/_site/screenshot.en.rab +10 -0
  128. data/doc/_site/screenshot.ja.rab +10 -0
  129. data/doc/css/jquery-ui/themes/ui-lightness.css +573 -0
  130. data/doc/css/rabbit.css +247 -0
  131. data/doc/en/development.rd +50 -0
  132. data/doc/en/faq.rd +18 -0
  133. data/doc/en/hiki.hiki +325 -0
  134. data/doc/en/how-to-make/hiki.hiki +9 -0
  135. data/doc/en/how-to-make/index.rd +25 -0
  136. data/doc/en/how-to-make/pdf.rd +7 -0
  137. data/doc/en/how-to-make/rd.rd +66 -0
  138. data/doc/en/how-to-make/theme.rd +135 -0
  139. data/doc/en/index.rd +276 -0
  140. data/doc/en/install/homebrew.rd +196 -0
  141. data/doc/en/install/index.rd +63 -0
  142. data/doc/en/install/macports.rd +77 -0
  143. data/doc/en/install/windows.rd +103 -0
  144. data/{NEWS.en → doc/en/news.rd} +78 -3
  145. data/doc/en/rd.rd +481 -0
  146. data/doc/en/sample/hiki/rabbit.hiki +389 -0
  147. data/doc/en/sample/index.rd +11 -0
  148. data/doc/en/sample/rd/rabbit.rd +467 -0
  149. data/doc/en/slides.rd +7 -0
  150. data/doc/en/usage.rd +365 -0
  151. data/doc/en/users.rd +29 -0
  152. data/doc/favicon.ico +0 -0
  153. data/doc/favicon.png +0 -0
  154. data/doc/images/background-sample.svg +290 -0
  155. data/doc/images/background.png +0 -0
  156. data/doc/images/background.svg +131 -0
  157. data/doc/images/hare-and-tortoise.png +0 -0
  158. data/doc/images/hare-and-tortoise.svg +541 -0
  159. data/doc/images/jp.png +0 -0
  160. data/doc/images/lavie-icon.png +0 -0
  161. data/doc/images/lavie.png +0 -0
  162. data/doc/images/screenshots/en/blue-circle-raw.png +0 -0
  163. data/doc/images/screenshots/en/blue-circle.png +0 -0
  164. data/doc/images/screenshots/en/clear-blue-raw.png +0 -0
  165. data/doc/images/screenshots/en/clear-blue.png +0 -0
  166. data/doc/images/screenshots/en/cozmixng-raw.png +0 -0
  167. data/doc/images/screenshots/en/cozmixng.png +0 -0
  168. data/doc/images/screenshots/en/dark-gradation-raw.png +0 -0
  169. data/doc/images/screenshots/en/dark-gradation.png +0 -0
  170. data/doc/images/screenshots/en/day-white-raw.png +0 -0
  171. data/doc/images/screenshots/en/day-white.png +0 -0
  172. data/doc/images/screenshots/en/debian-raw.png +0 -0
  173. data/doc/images/screenshots/en/debian.png +0 -0
  174. data/doc/images/screenshots/en/green-circle-raw.png +0 -0
  175. data/doc/images/screenshots/en/green-circle.png +0 -0
  176. data/doc/images/screenshots/en/night-black-raw.png +0 -0
  177. data/doc/images/screenshots/en/night-black.png +0 -0
  178. data/doc/images/screenshots/en/rabbit-raw.png +0 -0
  179. data/doc/images/screenshots/en/rabbit.png +0 -0
  180. data/doc/images/screenshots/en/ranguba-raw.png +0 -0
  181. data/doc/images/screenshots/en/ranguba.png +0 -0
  182. data/doc/images/screenshots/en/red-frame-raw.png +0 -0
  183. data/doc/images/screenshots/en/red-frame.png +0 -0
  184. data/doc/images/screenshots/en/ruby-gnome2-raw.png +0 -0
  185. data/doc/images/screenshots/en/ruby-gnome2.png +0 -0
  186. data/doc/images/screenshots/ja/blue-circle-raw.png +0 -0
  187. data/doc/images/screenshots/ja/blue-circle.png +0 -0
  188. data/doc/images/screenshots/ja/clear-blue-raw.png +0 -0
  189. data/doc/images/screenshots/ja/clear-blue.png +0 -0
  190. data/doc/images/screenshots/ja/cozmixng-raw.png +0 -0
  191. data/doc/images/screenshots/ja/cozmixng.png +0 -0
  192. data/doc/images/screenshots/ja/dark-gradation-raw.png +0 -0
  193. data/doc/images/screenshots/ja/dark-gradation.png +0 -0
  194. data/doc/images/screenshots/ja/day-white-raw.png +0 -0
  195. data/doc/images/screenshots/ja/day-white.png +0 -0
  196. data/doc/images/screenshots/ja/debian-raw.png +0 -0
  197. data/doc/images/screenshots/ja/debian.png +0 -0
  198. data/doc/images/screenshots/ja/green-circle-raw.png +0 -0
  199. data/doc/images/screenshots/ja/green-circle.png +0 -0
  200. data/doc/images/screenshots/ja/night-black-raw.png +0 -0
  201. data/doc/images/screenshots/ja/night-black.png +0 -0
  202. data/doc/images/screenshots/ja/rabbit-raw.png +0 -0
  203. data/doc/images/screenshots/ja/rabbit.png +0 -0
  204. data/doc/images/screenshots/ja/ranguba-raw.png +0 -0
  205. data/doc/images/screenshots/ja/ranguba.png +0 -0
  206. data/doc/images/screenshots/ja/red-frame-raw.png +0 -0
  207. data/doc/images/screenshots/ja/red-frame.png +0 -0
  208. data/doc/images/screenshots/ja/ruby-gnome2-raw.png +0 -0
  209. data/doc/images/screenshots/ja/ruby-gnome2.png +0 -0
  210. data/doc/images/us.png +0 -0
  211. data/doc/index.html.en +48 -0
  212. data/doc/index.html.ja +48 -0
  213. data/doc/ja/about.rd +21 -0
  214. data/doc/ja/development.rd +49 -0
  215. data/doc/ja/faq.rd +177 -0
  216. data/doc/ja/hiki.hiki +319 -0
  217. data/doc/ja/how-to-make/hiki.hiki +9 -0
  218. data/doc/ja/how-to-make/index.rd +25 -0
  219. data/doc/ja/how-to-make/pdf.rd +8 -0
  220. data/doc/ja/how-to-make/rd.rd +83 -0
  221. data/doc/ja/how-to-make/theme.rd +142 -0
  222. data/doc/ja/index.rd +283 -0
  223. data/doc/ja/install/homebrew.rd +196 -0
  224. data/doc/ja/install/index.rd +65 -0
  225. data/doc/ja/install/macports.rd +105 -0
  226. data/doc/ja/install/windows.rd +100 -0
  227. data/{NEWS.ja → doc/ja/news.rd} +84 -3
  228. data/doc/ja/rd.rd +489 -0
  229. data/doc/ja/sample/hiki/rabbit.hiki +405 -0
  230. data/doc/ja/sample/index.rd +11 -0
  231. data/doc/ja/sample/rd/rabbit.rd +475 -0
  232. data/doc/ja/slides.rd +29 -0
  233. data/doc/ja/usage.rd +380 -0
  234. data/doc/ja/users.rd +173 -0
  235. data/doc/javascripts/jquery-ui.js +11544 -0
  236. data/doc/javascripts/jquery.js +7179 -0
  237. data/doc/screenshot.en.rab +10 -0
  238. data/doc/screenshot.ja.rab +10 -0
  239. data/lib/rabbit/action/toggle.rb +0 -14
  240. data/lib/rabbit/canvas.rb +42 -46
  241. data/lib/rabbit/console.rb +9 -1
  242. data/lib/rabbit/front.rb +1 -1
  243. data/lib/rabbit/keys.rb +0 -8
  244. data/lib/rabbit/logger/gui.rb +3 -5
  245. data/lib/rabbit/parser/pdf.rb +1 -1
  246. data/lib/rabbit/parser/wiki/output.rb +17 -1
  247. data/lib/rabbit/rabbit.rb +12 -1
  248. data/lib/rabbit/renderer/base.rb +0 -25
  249. data/lib/rabbit/renderer/display/clutter-embed.rb +5 -69
  250. data/lib/rabbit/renderer/display/drawing-area.rb +0 -2
  251. data/lib/rabbit/renderer/display/key-handler.rb +0 -8
  252. data/lib/rabbit/source/base.rb +4 -0
  253. data/lib/rabbit/theme/background-image-toolkit/background-image-toolkit.rb +4 -8
  254. data/lib/rabbit/theme/clutter-comment/clutter-comment.rb +76 -0
  255. data/lib/rabbit/theme/clutter-comment/property.rb +3 -0
  256. data/lib/rabbit/theme/color-circle/color-circle.rb +3 -0
  257. data/lib/rabbit/theme/dark-gradation/dark-gradation.rb +187 -0
  258. data/lib/rabbit/theme/dark-gradation/property.rb +3 -0
  259. data/lib/rabbit/theme/debian/debian.rb +125 -145
  260. data/lib/rabbit/theme/default/default.rb +6 -0
  261. data/lib/rabbit/theme/footer-comment/footer-comment.rb +46 -0
  262. data/lib/rabbit/theme/footer-comment/property.rb +3 -0
  263. data/lib/rabbit/theme/image/image.rb +3 -2
  264. data/lib/rabbit/theme/per-slide-background-color/property.rb +1 -1
  265. data/lib/rabbit/theme/slide-number/slide-number.rb +9 -3
  266. data/lib/rabbit/theme/stream-comment/property.rb +3 -0
  267. data/lib/rabbit/theme/stream-comment/stream-comment.rb +66 -0
  268. data/lib/rabbit/theme/tag/property.rb +1 -1
  269. data/lib/rabbit/theme/title-background-image/title-background-image.rb +6 -5
  270. data/lib/rabbit/theme/twitter-comment/property.rb +4 -0
  271. data/lib/rabbit/theme/twitter-comment/twitter-comment.rb +15 -0
  272. data/lib/rabbit/twitter.rb +216 -0
  273. data/lib/rabbit/utils.rb +26 -0
  274. data/misc/emacs/README.ja +1 -1
  275. data/misc/emacs/rabbit-mode.el +1 -1
  276. data/po/en/rabbit.po +429 -267
  277. data/po/fr/rabbit.po +440 -268
  278. data/po/ja/rabbit.po +455 -270
  279. data/po/rabbit.pot +2567 -0
  280. data/sample/rabbit-en.hiki +384 -0
  281. data/sample/rabbit-en.rd +1 -1
  282. data/sample/rabbit-implementation.rd +1 -1
  283. data/sample/rabbit.hiki +85 -13
  284. data/sample/rabbit.rd +1 -1
  285. data/sample/theme-bench-en.hiki +100 -0
  286. data/sample/theme-bench.hiki +101 -0
  287. metadata +413 -118
  288. data/README.en +0 -850
  289. data/README.ja +0 -885
  290. data/bin/rabbit.bat +0 -8
  291. data/data/locale/en/LC_MESSAGES/rabbit.mo +0 -0
  292. data/data/locale/fr/LC_MESSAGES/rabbit.mo +0 -0
  293. data/data/locale/ja/LC_MESSAGES/rabbit.mo +0 -0
  294. data/lib/rabbit/comment-canvas.rb +0 -21
  295. data/lib/rabbit/comment/log.rb +0 -74
  296. data/lib/rabbit/renderer/display/comment-drawing-area.rb +0 -175
  297. data/lib/rabbit/renderer/display/comment.rb +0 -194
  298. data/lib/rabbit/theme/comment/comment.rb +0 -5
  299. data/lib/rabbit/theme/comment/property.rb +0 -3
  300. data/lib/rt/rt2html-lib.rb +0 -157
  301. data/lib/rt/rtparser.rb +0 -226
  302. data/lib/rt/rtvisitor.rb +0 -68
  303. data/lib/rwiki/soap/common.rb +0 -5
  304. data/lib/rwiki/soap/driver.rb +0 -43
  305. data/lib/rwiki/soap/servant.rb +0 -78
  306. data/sample/asahina/alice.png +0 -0
  307. data/sample/asahina/yukiusa.png +0 -0
  308. data/sample/momo/banner/bn1.png +0 -0
  309. data/sample/momo/banner/bn2.png +0 -0
  310. data/sample/momo/banner/bn_psd.psd +0 -0
  311. data/sample/momo/banner/bn_psd2.psd +0 -0
  312. data/sample/momo/tailavi/tailavi-ruby.png +0 -0
  313. data/sample/momo/tailavi/tailavi-ruby.psd +0 -0
  314. data/sample/momo/tailavi/tailavi-taiyaki.png +0 -0
  315. data/sample/momo/tailavi/tailavi-taiyaki.psd +0 -0
  316. data/sample/momo/tailavi/tailavi-yokubari.png +0 -0
  317. data/sample/momo/tailavi/tailavi-yokubari.psd +0 -0
  318. data/sample/momo/tailavi/taiyaki.png +0 -0
  319. data/sample/momo/tailavi/taiyaki.psd +0 -0
  320. data/sample/momo/usako/blue_dot.png +0 -0
  321. data/sample/momo/usako/green_dot.png +0 -0
  322. data/sample/momo/usako/rabbit.png +0 -0
  323. data/sample/momo/usako/rabbit_mimi.png +0 -0
  324. data/sample/momo/usako/rabbit_mimi2.png +0 -0
  325. data/sample/momo/usako/red_dot.png +0 -0
  326. data/sample/momo/usako/ruby.png +0 -0
  327. data/sample/momo/usako/ruby_new.png +0 -0
  328. data/sample/momo/usako/usa1.png +0 -0
  329. data/sample/momo/usako/usa2.png +0 -0
  330. data/sample/momo/usako/usa3.png +0 -0
  331. data/sample/momo/usako/usako_psd.psd +0 -0
  332. data/sample/momo/usako/usako_psd_200.png +0 -0
  333. data/sample/rabbit-balloon.eps +0 -233
  334. data/sample/sode/kame-color.riff +0 -0
  335. data/sample/sode/kame.riff +0 -0
  336. data/sample/usatti/kame-taro.png +0 -0
  337. data/sample/usatti/rabbit-pink-logo.png +0 -0
  338. data/sample/usatti/rabbit-pink-logo2.png +0 -0
  339. data/sample/usatti/ruby-pink-circle-logo.png +0 -0
  340. data/sample/usatti/ruby-pink-circle.png +0 -0
  341. data/sample/usatti/ruby-pink-polygon-logo.png +0 -0
  342. data/sample/usatti/ruby-pink-polygon.png +0 -0
  343. data/sample/usatti/tanu-kitaro.png +0 -0
  344. data/sample/usatti/usa-taro.png +0 -0
  345. data/sample/usatti/yukidaru-taro.png +0 -0
@@ -1,5 +0,0 @@
1
- @xx_large_font_size ||= screen_size(10 * Pango::SCALE)
2
- @lightning_talk_as_large_as_possible = true
3
- include_theme("lightning-talk")
4
-
5
- proc_name = "comment"
@@ -1,3 +0,0 @@
1
- @category = N_("Theme")
2
- @title = N_("Comment")
3
- @description = N_("A theme for comment window")
@@ -1,157 +0,0 @@
1
- =begin
2
- rt2html-lib.rb
3
- $Id: rt2html-lib.rb 433 2006-11-07 00:45:14Z znz $
4
- =end
5
- require 'rt/rtvisitor'
6
-
7
- module RT
8
- class RT2HTMLVisitor < RTVisitor
9
- OUTPUT_SUFFIX = "html"
10
- INCLUDE_SUFFIX = ["html"]
11
-
12
- def initialize
13
- super
14
- end
15
-
16
- def block(name)
17
- %Q[<!-- #{name} -->\n] +
18
- yield +
19
- %Q[<!-- #{name} end -->\n\n]
20
- end
21
- private :block
22
-
23
- def setup
24
- block('setup') do
25
- s = %Q[<table border="1">\n]
26
- s << %Q[<caption>#{caption}</caption>\n] if caption
27
- s
28
- end
29
- end
30
-
31
- def teardown
32
- block('teardown') do
33
- %Q[</table>\n]
34
- end
35
- end
36
-
37
- def cell_element(cell, name)
38
- rs, cs = cell.rowspan, cell.colspan
39
- if rs == 1 and cs == 1
40
- ret = "<#{name}>"
41
- elsif rs == 1
42
- ret = %Q[<#{name} colspan="#{cs}">]
43
- elsif cs == 1
44
- ret = %Q[<#{name} rowspan="#{rs}">]
45
- else
46
- ret = %Q[<#{name} colspan="#{cs}" rowspan="#{rs}">]
47
- end
48
- ret
49
- end
50
- private :cell_element
51
-
52
- def visit_Header(ary = @header)
53
- block('Header') do
54
- if ary.empty?
55
- ""
56
- else
57
- ret = "<thead>\n"
58
- ary.each do |line|
59
- ret << '<tr>'
60
- each_cell(line) do |cell|
61
- ret << cell_element(cell, 'th')
62
- ret << cell.value
63
- ret << '</th>'
64
- end
65
- ret << "</tr>\n"
66
- end
67
- ret << "</thead>\n"
68
- end
69
- end
70
- end
71
-
72
- def visit_Body(ary = @body)
73
- block('Body') do
74
- ret = "<tbody>\n"
75
- ary.each do |line|
76
- ret << '<tr>'
77
- each_cell(line) do |cell|
78
- ret << cell_element(cell, %Q[td align="#{cell.align.id2name}"])
79
- ret << cell.value
80
- ret << '</td>'
81
- end
82
- ret << "</tr>\n"
83
- end
84
- ret << "</tbody>\n"
85
- end
86
- end
87
-
88
- end # RT2HTMLVisitor
89
- end
90
- $Visitor_Class = RT::RT2HTMLVisitor
91
- if __FILE__ == $0
92
- require 'runit-init'
93
-
94
- include RT
95
- class RT2HTMLVisitorTest < RUNIT::TestCase
96
- def setup
97
- @x = RT2HTMLVisitor::new
98
- @x.visit(RTParser::parse(<<-END))
99
- caption = ɽ�ƥ���
100
-
101
- , �ʹ�, == , �� , ==
102
- || , �� , �� ,����,�᥹
103
-
104
- x , 1.0 , 2.0, 1.1, 1.2
105
- y , 0.4 , 0.5, 0.3, 0.1
106
- END
107
- end
108
-
109
- def uncomment(str)
110
- rep = "\001"
111
- #if str =~ /\A<!--\s+.+?\s+-->\n(.+)<!--\s+.+?\s+-->\n\n\Z/p# POSIX
112
- if str.gsub(/\n/, rep) =~ /\A<!--\s+.+?\s+-->#{rep}(.+)<!--\s+.+?\s+-->#{rep}#{rep}\Z/
113
- #$1
114
- $1.gsub(/#{rep}/, "\n")
115
- else
116
- assert_fail("not RTBlock format")
117
- end
118
- end
119
-
120
- def test_setup
121
- lines =
122
- %Q[<table border="1">\n] +
123
- %Q[<caption>ɽ�ƥ���</caption>\n]
124
- assert_equal(lines, uncomment(@x.setup))
125
- end
126
-
127
- def test_teardown
128
- assert_equal(%Q[</table>\n], uncomment(@x.teardown))
129
- end
130
-
131
- def test_visit_Header
132
- lines =
133
- %Q[<thead>\n] +
134
- %Q[<tr><th rowspan="2"></th><th colspan="2">�ʹ�</th><th colspan="2">��</th></tr>\n] +
135
- %Q[<tr><th>��</th><th>��</th><th>����</th><th>�᥹</th></tr>\n] +
136
- %Q[</thead>\n]
137
- assert_equal(lines, uncomment(@x.visit_Header))
138
- end
139
-
140
- def test_visit_Body
141
- lines =
142
- %Q[<tbody>\n] +
143
- %Q[<tr><td align="left">x</td><td align="right">1.0</td><td align="right">2.0</td><td align="right">1.1</td><td align="right">1.2</td></tr>\n] +
144
- %Q[<tr><td align="left">y</td><td align="right">0.4</td><td align="right">0.5</td><td align="right">0.3</td><td align="right">0.1</td></tr>\n] +
145
- %Q[</tbody>\n]
146
- assert_equal(lines, uncomment(@x.visit_Body))
147
- end
148
-
149
- def test0
150
- assert_equal(RT::RTCell, RT::RTCell::new("a").type)
151
- end
152
-
153
- end
154
- testrunner RT2HTMLVisitorTest
155
- end
156
-
157
-
data/lib/rt/rtparser.rb DELETED
@@ -1,226 +0,0 @@
1
- #!/usr/bin/ruby
2
- =begin
3
- rtparser.rb
4
- $Id: rtparser.rb 433 2006-11-07 00:45:14Z znz $
5
- =end
6
- module RT
7
- class RTCell
8
- def initialize(value, align = nil)
9
- @rowspan = @colspan = 1
10
- @value = value
11
- @align = case align # {:left, :center :right}
12
- when :left, :center, :right
13
- align
14
- when nil
15
- if /^[+\-]?[0-9]+\.?[0-9]*/ === value
16
- :right
17
- else
18
- :left
19
- end
20
- else
21
- raise "[BUG]Illegal align type"
22
- end
23
- end
24
- def == (x)
25
- case x
26
- when self.class
27
- self.value == "" && x.value == "" || self.value == x.value && self.align == x.align
28
- else
29
- false
30
- end
31
- end
32
- def inspect
33
- if value==""
34
- "()"
35
- else
36
- a = case align
37
- when :left
38
- "l"
39
- when :center
40
- "c"
41
- when :right
42
- "r"
43
- else
44
- raise "[BUG]Illegal align type"
45
- end
46
- "#{a}(#{value})"
47
- end
48
- end
49
-
50
- attr_reader :value, :align
51
- attr_accessor :rowspan, :colspan
52
- end
53
-
54
- class RTParser
55
- DefaultConfig = {
56
- 'delimiter' => "[,\t]",
57
- 'rowspan' => "||",
58
- 'colspan' => "==",
59
- 'escape' => nil,
60
- 'caption' => nil,
61
- }
62
-
63
- def initialize(str="")
64
- @str = str.dup
65
- normalize_linefeed! @str
66
- @config_line = []
67
- @header_line = []
68
- @body_line = []
69
- @config = DefaultConfig.dup
70
- @header = []
71
- @body = []
72
- end
73
- attr_reader :str, :config, :header, :body
74
-
75
- def normalize_linefeed!(str)
76
- str.gsub!("\r\n", "\n")
77
- str.gsub!("\r", "\n")
78
- end
79
-
80
- def self::parse(str)
81
- obj = self::new str
82
- obj.make_blocks
83
- obj.parse_config
84
- obj.parse_header
85
- obj.parse_body
86
- obj.calc_span(obj.header)
87
- obj.calc_span(obj.body)
88
- obj
89
- end
90
-
91
- def blocks
92
- [@config_line, @header_line, @body_line]
93
- end
94
-
95
- def make_blocks(str = @str)
96
- part = str.split(/\n\n/).collect{|x| x.split(/\n/)}
97
- case part.length
98
- when 0
99
- when 1
100
- @body_line, = part
101
- when 2
102
- @config_line, @body_line = part
103
- when 3
104
- @config_line, @header_line, @body_line = part
105
- else
106
- raise "RT: blocks are too many."
107
- end
108
- self
109
- end
110
-
111
- def parse_config(lines = @config_line)
112
- lines.each do |line|
113
- case line
114
- when /^#/ # comment
115
- when /^\s*(\S+)\s*=\s*(.+)$/
116
- @config[$1] = $2
117
- else
118
- raise "RT: syntax error in config block"
119
- end
120
- end
121
- self
122
- end
123
-
124
- def split2(str,re)
125
- ret = str.split(re, -1)
126
- end
127
- private :split2
128
-
129
- ESCAPE_TMP = "\001\002"
130
- def _escape!(str)
131
- esc = config['escape']
132
- str.gsub!(/#{Regexp.quote(esc)}#{config['delimiter']}/, ESCAPE_TMP) if esc
133
- end
134
- private :_escape!
135
-
136
- def _unescape!(str)
137
- str.gsub!(/#{ESCAPE_TMP}/, config['delimiter'])
138
- end
139
- private :_unescape!
140
-
141
- def parse_table_data(lines) # iterator
142
- ret = []
143
- lines.each do |line|
144
- case line
145
- when /^#/ # comment
146
- else
147
- _escape! line
148
- ret << split2(line, /\s*#{config['delimiter']}\s*/).collect {|x|
149
- _unescape! x
150
- yield(x.strip)
151
- }
152
- end
153
- end
154
- unless ret.find_all{|x| x.length == ret[0].length} == ret
155
- raise "RT: different column size"
156
- end
157
- ret
158
- end
159
- private :parse_table_data
160
-
161
- def _make_cell(x, align)
162
- case x
163
- when config['rowspan'], config['colspan']
164
- x
165
- else
166
- RTCell::new(x, align)
167
- end
168
- end
169
- private :_make_cell
170
-
171
- def parse_header(lines = @header_line)
172
- @header = parse_table_data(lines) {|x|
173
- _make_cell x, :center
174
- }
175
- self
176
- end
177
-
178
- def parse_body(lines = @body_line)
179
- @body = parse_table_data(lines) {|x|
180
- _make_cell x, nil
181
- }
182
- self
183
- end
184
-
185
- def calc_span(tbl)
186
- return if tbl.empty?
187
- cols = tbl[0].length
188
- tbl.each do |row|
189
- row.each_with_index do |elm, j|
190
- case elm
191
- when String
192
- when RTCell
193
- nspan = 1
194
- 1.upto(cols-j-1) do |k|
195
- break unless row[j+k] == config['colspan']
196
- nspan += 1
197
- end
198
- row[j].colspan = nspan
199
- else
200
- raise "[BUG] invalid cell"
201
- end
202
- end
203
- end
204
-
205
- rows = tbl.length
206
- 0.upto(cols-1) do |j|
207
- 0.upto(rows-1) do |i|
208
- case tbl[i][j]
209
- when String
210
- when RTCell
211
- nspan = 1
212
- 1.upto(rows-i-1) do |k|
213
- break unless tbl[i+k][j] == config['rowspan']
214
- nspan += 1
215
- end
216
- tbl[i][j].rowspan = nspan
217
- else
218
- raise "[BUG] invalid cell"
219
- end
220
- end
221
- end
222
- end
223
- end # class RTCell, RTParser
224
- end # module RT
225
-
226
-
data/lib/rt/rtvisitor.rb DELETED
@@ -1,68 +0,0 @@
1
- #!/usr/bin/ruby
2
- =begin
3
- rtvisitor.rb
4
- $Id: rtvisitor.rb 433 2006-11-07 00:45:14Z znz $
5
- =end
6
- require 'rt/rtparser'
7
-
8
- module RT
9
- class RTVisitor
10
- def each_cell(ary)
11
- ary.each do |x|
12
- if x.class == RT::RTCell
13
- yield x
14
- else
15
- end
16
- end
17
- end
18
- private :each_cell
19
-
20
- def initialize
21
- end
22
- attr_reader :rt, :header, :body, :caption
23
- attr_accessor :filename, :charcode
24
-
25
- def self.visit(parsed)
26
- self::new.visit(parsed)
27
- end
28
-
29
- def visit(parsed)
30
- @filename = @charset = nil
31
- @rt = parsed
32
- @header = @rt.header
33
- @body = @rt.body
34
- @caption = @rt.config['caption']
35
-
36
- setup +
37
- visit_Caption +
38
- visit_Header +
39
- visit_Body +
40
- teardown
41
- end
42
-
43
- def setup
44
- ""
45
- end
46
-
47
- def teardown
48
- ""
49
- end
50
-
51
- def visit_Caption
52
- ""
53
- end
54
-
55
- def visit_Header
56
- ""
57
- end
58
-
59
- def visit_Body
60
- ""
61
- end
62
- end
63
- end
64
-
65
-
66
-
67
-
68
-