tk_as_gem 0.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (345) hide show
  1. data/README +22 -0
  2. data/Rakefile +11 -0
  3. data/VERSION +1 -0
  4. data/ext/ChangeLog.tkextlib +935 -0
  5. data/ext/MANUAL_tcltklib.eng +469 -0
  6. data/ext/MANUAL_tcltklib.eucj +579 -0
  7. data/ext/README.1st +19 -0
  8. data/ext/README.ActiveTcl +49 -0
  9. data/ext/README.fork +34 -0
  10. data/ext/README.macosx-aqua +67 -0
  11. data/ext/README.tcltklib +85 -0
  12. data/ext/depend +2 -0
  13. data/ext/extconf.rb +451 -0
  14. data/ext/lib/README +30 -0
  15. data/ext/lib/multi-tk.rb +3491 -0
  16. data/ext/lib/remote-tk.rb +530 -0
  17. data/ext/lib/tcltk.rb +367 -0
  18. data/ext/lib/tk.rb +5584 -0
  19. data/ext/lib/tk/after.rb +6 -0
  20. data/ext/lib/tk/autoload.rb +414 -0
  21. data/ext/lib/tk/bgerror.rb +29 -0
  22. data/ext/lib/tk/bindtag.rb +138 -0
  23. data/ext/lib/tk/button.rb +30 -0
  24. data/ext/lib/tk/canvas.rb +789 -0
  25. data/ext/lib/tk/canvastag.rb +434 -0
  26. data/ext/lib/tk/checkbutton.rb +30 -0
  27. data/ext/lib/tk/clipboard.rb +75 -0
  28. data/ext/lib/tk/clock.rb +71 -0
  29. data/ext/lib/tk/composite.rb +458 -0
  30. data/ext/lib/tk/console.rb +52 -0
  31. data/ext/lib/tk/dialog.rb +326 -0
  32. data/ext/lib/tk/encodedstr.rb +187 -0
  33. data/ext/lib/tk/entry.rb +119 -0
  34. data/ext/lib/tk/event.rb +542 -0
  35. data/ext/lib/tk/font.rb +2344 -0
  36. data/ext/lib/tk/frame.rb +131 -0
  37. data/ext/lib/tk/grid.rb +279 -0
  38. data/ext/lib/tk/image.rb +275 -0
  39. data/ext/lib/tk/itemconfig.rb +1215 -0
  40. data/ext/lib/tk/itemfont.rb +327 -0
  41. data/ext/lib/tk/kinput.rb +71 -0
  42. data/ext/lib/tk/label.rb +21 -0
  43. data/ext/lib/tk/labelframe.rb +29 -0
  44. data/ext/lib/tk/listbox.rb +282 -0
  45. data/ext/lib/tk/macpkg.rb +78 -0
  46. data/ext/lib/tk/menu.rb +681 -0
  47. data/ext/lib/tk/menubar.rb +131 -0
  48. data/ext/lib/tk/menuspec.rb +275 -0
  49. data/ext/lib/tk/message.rb +22 -0
  50. data/ext/lib/tk/mngfocus.rb +33 -0
  51. data/ext/lib/tk/msgcat.rb +296 -0
  52. data/ext/lib/tk/namespace.rb +551 -0
  53. data/ext/lib/tk/optiondb.rb +377 -0
  54. data/ext/lib/tk/optionobj.rb +212 -0
  55. data/ext/lib/tk/pack.rb +107 -0
  56. data/ext/lib/tk/package.rb +143 -0
  57. data/ext/lib/tk/palette.rb +55 -0
  58. data/ext/lib/tk/panedwindow.rb +258 -0
  59. data/ext/lib/tk/place.rb +128 -0
  60. data/ext/lib/tk/radiobutton.rb +71 -0
  61. data/ext/lib/tk/root.rb +95 -0
  62. data/ext/lib/tk/scale.rb +111 -0
  63. data/ext/lib/tk/scrollable.rb +82 -0
  64. data/ext/lib/tk/scrollbar.rb +177 -0
  65. data/ext/lib/tk/scrollbox.rb +39 -0
  66. data/ext/lib/tk/selection.rb +86 -0
  67. data/ext/lib/tk/spinbox.rb +119 -0
  68. data/ext/lib/tk/tagfont.rb +43 -0
  69. data/ext/lib/tk/text.rb +1596 -0
  70. data/ext/lib/tk/textimage.rb +88 -0
  71. data/ext/lib/tk/textmark.rb +204 -0
  72. data/ext/lib/tk/texttag.rb +318 -0
  73. data/ext/lib/tk/textwindow.rb +154 -0
  74. data/ext/lib/tk/timer.rb +669 -0
  75. data/ext/lib/tk/toplevel.rb +262 -0
  76. data/ext/lib/tk/ttk_selector.rb +76 -0
  77. data/ext/lib/tk/txtwin_abst.rb +39 -0
  78. data/ext/lib/tk/validation.rb +397 -0
  79. data/ext/lib/tk/variable.rb +1765 -0
  80. data/ext/lib/tk/virtevent.rb +139 -0
  81. data/ext/lib/tk/winfo.rb +392 -0
  82. data/ext/lib/tk/winpkg.rb +153 -0
  83. data/ext/lib/tk/wm.rb +552 -0
  84. data/ext/lib/tk/xim.rb +122 -0
  85. data/ext/lib/tkafter.rb +4 -0
  86. data/ext/lib/tkbgerror.rb +4 -0
  87. data/ext/lib/tkcanvas.rb +4 -0
  88. data/ext/lib/tkclass.rb +47 -0
  89. data/ext/lib/tkconsole.rb +4 -0
  90. data/ext/lib/tkdialog.rb +4 -0
  91. data/ext/lib/tkentry.rb +4 -0
  92. data/ext/lib/tkextlib/ICONS.rb +13 -0
  93. data/ext/lib/tkextlib/ICONS/icons.rb +129 -0
  94. data/ext/lib/tkextlib/ICONS/setup.rb +8 -0
  95. data/ext/lib/tkextlib/SUPPORT_STATUS +196 -0
  96. data/ext/lib/tkextlib/blt.rb +187 -0
  97. data/ext/lib/tkextlib/blt/barchart.rb +79 -0
  98. data/ext/lib/tkextlib/blt/bitmap.rb +112 -0
  99. data/ext/lib/tkextlib/blt/busy.rb +82 -0
  100. data/ext/lib/tkextlib/blt/component.rb +2145 -0
  101. data/ext/lib/tkextlib/blt/container.rb +28 -0
  102. data/ext/lib/tkextlib/blt/cutbuffer.rb +23 -0
  103. data/ext/lib/tkextlib/blt/dragdrop.rb +268 -0
  104. data/ext/lib/tkextlib/blt/eps.rb +32 -0
  105. data/ext/lib/tkextlib/blt/graph.rb +67 -0
  106. data/ext/lib/tkextlib/blt/htext.rb +111 -0
  107. data/ext/lib/tkextlib/blt/setup.rb +8 -0
  108. data/ext/lib/tkextlib/blt/spline.rb +23 -0
  109. data/ext/lib/tkextlib/blt/stripchart.rb +74 -0
  110. data/ext/lib/tkextlib/blt/table.rb +399 -0
  111. data/ext/lib/tkextlib/blt/tabnotebook.rb +110 -0
  112. data/ext/lib/tkextlib/blt/tabset.rb +500 -0
  113. data/ext/lib/tkextlib/blt/ted.rb +65 -0
  114. data/ext/lib/tkextlib/blt/tile.rb +21 -0
  115. data/ext/lib/tkextlib/blt/tile/button.rb +16 -0
  116. data/ext/lib/tkextlib/blt/tile/checkbutton.rb +17 -0
  117. data/ext/lib/tkextlib/blt/tile/frame.rb +16 -0
  118. data/ext/lib/tkextlib/blt/tile/label.rb +16 -0
  119. data/ext/lib/tkextlib/blt/tile/radiobutton.rb +17 -0
  120. data/ext/lib/tkextlib/blt/tile/scrollbar.rb +16 -0
  121. data/ext/lib/tkextlib/blt/tile/toplevel.rb +16 -0
  122. data/ext/lib/tkextlib/blt/tree.rb +1058 -0
  123. data/ext/lib/tkextlib/blt/treeview.rb +1272 -0
  124. data/ext/lib/tkextlib/blt/unix_dnd.rb +135 -0
  125. data/ext/lib/tkextlib/blt/vector.rb +256 -0
  126. data/ext/lib/tkextlib/blt/watch.rb +175 -0
  127. data/ext/lib/tkextlib/blt/win_printer.rb +61 -0
  128. data/ext/lib/tkextlib/blt/winop.rb +107 -0
  129. data/ext/lib/tkextlib/bwidget.rb +151 -0
  130. data/ext/lib/tkextlib/bwidget/arrowbutton.rb +21 -0
  131. data/ext/lib/tkextlib/bwidget/bitmap.rb +21 -0
  132. data/ext/lib/tkextlib/bwidget/button.rb +31 -0
  133. data/ext/lib/tkextlib/bwidget/buttonbox.rb +90 -0
  134. data/ext/lib/tkextlib/bwidget/combobox.rb +51 -0
  135. data/ext/lib/tkextlib/bwidget/dialog.rb +182 -0
  136. data/ext/lib/tkextlib/bwidget/dragsite.rb +31 -0
  137. data/ext/lib/tkextlib/bwidget/dropsite.rb +39 -0
  138. data/ext/lib/tkextlib/bwidget/dynamichelp.rb +63 -0
  139. data/ext/lib/tkextlib/bwidget/entry.rb +43 -0
  140. data/ext/lib/tkextlib/bwidget/label.rb +41 -0
  141. data/ext/lib/tkextlib/bwidget/labelentry.rb +80 -0
  142. data/ext/lib/tkextlib/bwidget/labelframe.rb +52 -0
  143. data/ext/lib/tkextlib/bwidget/listbox.rb +358 -0
  144. data/ext/lib/tkextlib/bwidget/mainframe.rb +128 -0
  145. data/ext/lib/tkextlib/bwidget/messagedlg.rb +192 -0
  146. data/ext/lib/tkextlib/bwidget/notebook.rb +166 -0
  147. data/ext/lib/tkextlib/bwidget/pagesmanager.rb +73 -0
  148. data/ext/lib/tkextlib/bwidget/panedwindow.rb +37 -0
  149. data/ext/lib/tkextlib/bwidget/panelframe.rb +57 -0
  150. data/ext/lib/tkextlib/bwidget/passwddlg.rb +44 -0
  151. data/ext/lib/tkextlib/bwidget/progressbar.rb +20 -0
  152. data/ext/lib/tkextlib/bwidget/progressdlg.rb +58 -0
  153. data/ext/lib/tkextlib/bwidget/scrollableframe.rb +40 -0
  154. data/ext/lib/tkextlib/bwidget/scrolledwindow.rb +38 -0
  155. data/ext/lib/tkextlib/bwidget/scrollview.rb +25 -0
  156. data/ext/lib/tkextlib/bwidget/selectcolor.rb +73 -0
  157. data/ext/lib/tkextlib/bwidget/selectfont.rb +86 -0
  158. data/ext/lib/tkextlib/bwidget/separator.rb +20 -0
  159. data/ext/lib/tkextlib/bwidget/setup.rb +8 -0
  160. data/ext/lib/tkextlib/bwidget/spinbox.rb +98 -0
  161. data/ext/lib/tkextlib/bwidget/statusbar.rb +52 -0
  162. data/ext/lib/tkextlib/bwidget/titleframe.rb +33 -0
  163. data/ext/lib/tkextlib/bwidget/tree.rb +453 -0
  164. data/ext/lib/tkextlib/bwidget/widget.rb +129 -0
  165. data/ext/lib/tkextlib/itcl.rb +13 -0
  166. data/ext/lib/tkextlib/itcl/incr_tcl.rb +178 -0
  167. data/ext/lib/tkextlib/itcl/setup.rb +13 -0
  168. data/ext/lib/tkextlib/itk.rb +13 -0
  169. data/ext/lib/tkextlib/itk/incr_tk.rb +446 -0
  170. data/ext/lib/tkextlib/itk/setup.rb +13 -0
  171. data/ext/lib/tkextlib/iwidgets.rb +94 -0
  172. data/ext/lib/tkextlib/iwidgets/buttonbox.rb +120 -0
  173. data/ext/lib/tkextlib/iwidgets/calendar.rb +125 -0
  174. data/ext/lib/tkextlib/iwidgets/canvasprintbox.rb +53 -0
  175. data/ext/lib/tkextlib/iwidgets/canvasprintdialog.rb +38 -0
  176. data/ext/lib/tkextlib/iwidgets/checkbox.rb +129 -0
  177. data/ext/lib/tkextlib/iwidgets/combobox.rb +104 -0
  178. data/ext/lib/tkextlib/iwidgets/dateentry.rb +20 -0
  179. data/ext/lib/tkextlib/iwidgets/datefield.rb +58 -0
  180. data/ext/lib/tkextlib/iwidgets/dialog.rb +20 -0
  181. data/ext/lib/tkextlib/iwidgets/dialogshell.rb +120 -0
  182. data/ext/lib/tkextlib/iwidgets/disjointlistbox.rb +50 -0
  183. data/ext/lib/tkextlib/iwidgets/entryfield.rb +185 -0
  184. data/ext/lib/tkextlib/iwidgets/extbutton.rb +40 -0
  185. data/ext/lib/tkextlib/iwidgets/extfileselectionbox.rb +46 -0
  186. data/ext/lib/tkextlib/iwidgets/extfileselectiondialog.rb +33 -0
  187. data/ext/lib/tkextlib/iwidgets/feedback.rb +35 -0
  188. data/ext/lib/tkextlib/iwidgets/fileselectionbox.rb +46 -0
  189. data/ext/lib/tkextlib/iwidgets/fileselectiondialog.rb +33 -0
  190. data/ext/lib/tkextlib/iwidgets/finddialog.rb +42 -0
  191. data/ext/lib/tkextlib/iwidgets/hierarchy.rb +365 -0
  192. data/ext/lib/tkextlib/iwidgets/hyperhelp.rb +50 -0
  193. data/ext/lib/tkextlib/iwidgets/labeledframe.rb +39 -0
  194. data/ext/lib/tkextlib/iwidgets/labeledwidget.rb +45 -0
  195. data/ext/lib/tkextlib/iwidgets/mainwindow.rb +67 -0
  196. data/ext/lib/tkextlib/iwidgets/menubar.rb +211 -0
  197. data/ext/lib/tkextlib/iwidgets/messagebox.rb +92 -0
  198. data/ext/lib/tkextlib/iwidgets/messagedialog.rb +20 -0
  199. data/ext/lib/tkextlib/iwidgets/notebook.rb +174 -0
  200. data/ext/lib/tkextlib/iwidgets/optionmenu.rb +92 -0
  201. data/ext/lib/tkextlib/iwidgets/panedwindow.rb +133 -0
  202. data/ext/lib/tkextlib/iwidgets/promptdialog.rb +131 -0
  203. data/ext/lib/tkextlib/iwidgets/pushbutton.rb +35 -0
  204. data/ext/lib/tkextlib/iwidgets/radiobox.rb +120 -0
  205. data/ext/lib/tkextlib/iwidgets/scopedobject.rb +24 -0
  206. data/ext/lib/tkextlib/iwidgets/scrolledcanvas.rb +353 -0
  207. data/ext/lib/tkextlib/iwidgets/scrolledframe.rb +59 -0
  208. data/ext/lib/tkextlib/iwidgets/scrolledhtml.rb +58 -0
  209. data/ext/lib/tkextlib/iwidgets/scrolledlistbox.rb +207 -0
  210. data/ext/lib/tkextlib/iwidgets/scrolledtext.rb +564 -0
  211. data/ext/lib/tkextlib/iwidgets/scrolledwidget.rb +20 -0
  212. data/ext/lib/tkextlib/iwidgets/selectionbox.rb +102 -0
  213. data/ext/lib/tkextlib/iwidgets/selectiondialog.rb +92 -0
  214. data/ext/lib/tkextlib/iwidgets/setup.rb +8 -0
  215. data/ext/lib/tkextlib/iwidgets/shell.rb +38 -0
  216. data/ext/lib/tkextlib/iwidgets/spindate.rb +48 -0
  217. data/ext/lib/tkextlib/iwidgets/spinint.rb +30 -0
  218. data/ext/lib/tkextlib/iwidgets/spinner.rb +169 -0
  219. data/ext/lib/tkextlib/iwidgets/spintime.rb +48 -0
  220. data/ext/lib/tkextlib/iwidgets/tabnotebook.rb +180 -0
  221. data/ext/lib/tkextlib/iwidgets/tabset.rb +144 -0
  222. data/ext/lib/tkextlib/iwidgets/timeentry.rb +25 -0
  223. data/ext/lib/tkextlib/iwidgets/timefield.rb +58 -0
  224. data/ext/lib/tkextlib/iwidgets/toolbar.rb +112 -0
  225. data/ext/lib/tkextlib/iwidgets/watch.rb +56 -0
  226. data/ext/lib/tkextlib/pkg_checker.rb +184 -0
  227. data/ext/lib/tkextlib/setup.rb +8 -0
  228. data/ext/lib/tkextlib/tcllib.rb +90 -0
  229. data/ext/lib/tkextlib/tcllib/README +135 -0
  230. data/ext/lib/tkextlib/tcllib/autoscroll.rb +158 -0
  231. data/ext/lib/tkextlib/tcllib/ctext.rb +160 -0
  232. data/ext/lib/tkextlib/tcllib/cursor.rb +97 -0
  233. data/ext/lib/tkextlib/tcllib/datefield.rb +57 -0
  234. data/ext/lib/tkextlib/tcllib/dialog.rb +84 -0
  235. data/ext/lib/tkextlib/tcllib/getstring.rb +134 -0
  236. data/ext/lib/tkextlib/tcllib/history.rb +73 -0
  237. data/ext/lib/tkextlib/tcllib/ico.rb +116 -0
  238. data/ext/lib/tkextlib/tcllib/ip_entry.rb +66 -0
  239. data/ext/lib/tkextlib/tcllib/panelframe.rb +72 -0
  240. data/ext/lib/tkextlib/tcllib/plotchart.rb +886 -0
  241. data/ext/lib/tkextlib/tcllib/ruler.rb +65 -0
  242. data/ext/lib/tkextlib/tcllib/screenruler.rb +68 -0
  243. data/ext/lib/tkextlib/tcllib/scrollwin.rb +61 -0
  244. data/ext/lib/tkextlib/tcllib/setup.rb +8 -0
  245. data/ext/lib/tkextlib/tcllib/style.rb +61 -0
  246. data/ext/lib/tkextlib/tcllib/superframe.rb +51 -0
  247. data/ext/lib/tkextlib/tcllib/swaplist.rb +150 -0
  248. data/ext/lib/tkextlib/tcllib/tablelist.rb +27 -0
  249. data/ext/lib/tkextlib/tcllib/tablelist_core.rb +782 -0
  250. data/ext/lib/tkextlib/tcllib/tablelist_tile.rb +25 -0
  251. data/ext/lib/tkextlib/tcllib/tkpiechart.rb +314 -0
  252. data/ext/lib/tkextlib/tcllib/tooltip.rb +95 -0
  253. data/ext/lib/tkextlib/tcllib/widget.rb +48 -0
  254. data/ext/lib/tkextlib/tclx.rb +13 -0
  255. data/ext/lib/tkextlib/tclx/setup.rb +8 -0
  256. data/ext/lib/tkextlib/tclx/tclx.rb +74 -0
  257. data/ext/lib/tkextlib/tile.rb +419 -0
  258. data/ext/lib/tkextlib/tile/dialog.rb +96 -0
  259. data/ext/lib/tkextlib/tile/setup.rb +8 -0
  260. data/ext/lib/tkextlib/tile/sizegrip.rb +29 -0
  261. data/ext/lib/tkextlib/tile/style.rb +316 -0
  262. data/ext/lib/tkextlib/tile/tbutton.rb +33 -0
  263. data/ext/lib/tkextlib/tile/tcheckbutton.rb +36 -0
  264. data/ext/lib/tkextlib/tile/tcombobox.rb +54 -0
  265. data/ext/lib/tkextlib/tile/tentry.rb +48 -0
  266. data/ext/lib/tkextlib/tile/tframe.rb +33 -0
  267. data/ext/lib/tkextlib/tile/tlabel.rb +33 -0
  268. data/ext/lib/tkextlib/tile/tlabelframe.rb +36 -0
  269. data/ext/lib/tkextlib/tile/tmenubutton.rb +36 -0
  270. data/ext/lib/tkextlib/tile/tnotebook.rb +139 -0
  271. data/ext/lib/tkextlib/tile/tpaned.rb +231 -0
  272. data/ext/lib/tkextlib/tile/tprogressbar.rb +56 -0
  273. data/ext/lib/tkextlib/tile/tradiobutton.rb +36 -0
  274. data/ext/lib/tkextlib/tile/treeview.rb +1239 -0
  275. data/ext/lib/tkextlib/tile/tscale.rb +53 -0
  276. data/ext/lib/tkextlib/tile/tscrollbar.rb +54 -0
  277. data/ext/lib/tkextlib/tile/tseparator.rb +33 -0
  278. data/ext/lib/tkextlib/tile/tsquare.rb +30 -0
  279. data/ext/lib/tkextlib/tkDND.rb +18 -0
  280. data/ext/lib/tkextlib/tkDND/setup.rb +8 -0
  281. data/ext/lib/tkextlib/tkDND/shape.rb +125 -0
  282. data/ext/lib/tkextlib/tkDND/tkdnd.rb +182 -0
  283. data/ext/lib/tkextlib/tkHTML.rb +13 -0
  284. data/ext/lib/tkextlib/tkHTML/htmlwidget.rb +453 -0
  285. data/ext/lib/tkextlib/tkHTML/setup.rb +8 -0
  286. data/ext/lib/tkextlib/tkimg.rb +36 -0
  287. data/ext/lib/tkextlib/tkimg/README +26 -0
  288. data/ext/lib/tkextlib/tkimg/bmp.rb +33 -0
  289. data/ext/lib/tkextlib/tkimg/gif.rb +33 -0
  290. data/ext/lib/tkextlib/tkimg/ico.rb +33 -0
  291. data/ext/lib/tkextlib/tkimg/jpeg.rb +33 -0
  292. data/ext/lib/tkextlib/tkimg/pcx.rb +33 -0
  293. data/ext/lib/tkextlib/tkimg/pixmap.rb +44 -0
  294. data/ext/lib/tkextlib/tkimg/png.rb +33 -0
  295. data/ext/lib/tkextlib/tkimg/ppm.rb +33 -0
  296. data/ext/lib/tkextlib/tkimg/ps.rb +33 -0
  297. data/ext/lib/tkextlib/tkimg/setup.rb +8 -0
  298. data/ext/lib/tkextlib/tkimg/sgi.rb +33 -0
  299. data/ext/lib/tkextlib/tkimg/sun.rb +33 -0
  300. data/ext/lib/tkextlib/tkimg/tga.rb +33 -0
  301. data/ext/lib/tkextlib/tkimg/tiff.rb +33 -0
  302. data/ext/lib/tkextlib/tkimg/window.rb +33 -0
  303. data/ext/lib/tkextlib/tkimg/xbm.rb +33 -0
  304. data/ext/lib/tkextlib/tkimg/xpm.rb +33 -0
  305. data/ext/lib/tkextlib/tktable.rb +14 -0
  306. data/ext/lib/tkextlib/tktable/setup.rb +8 -0
  307. data/ext/lib/tkextlib/tktable/tktable.rb +957 -0
  308. data/ext/lib/tkextlib/tktrans.rb +14 -0
  309. data/ext/lib/tkextlib/tktrans/setup.rb +8 -0
  310. data/ext/lib/tkextlib/tktrans/tktrans.rb +64 -0
  311. data/ext/lib/tkextlib/treectrl.rb +13 -0
  312. data/ext/lib/tkextlib/treectrl/setup.rb +8 -0
  313. data/ext/lib/tkextlib/treectrl/tktreectrl.rb +2461 -0
  314. data/ext/lib/tkextlib/trofs.rb +13 -0
  315. data/ext/lib/tkextlib/trofs/setup.rb +8 -0
  316. data/ext/lib/tkextlib/trofs/trofs.rb +51 -0
  317. data/ext/lib/tkextlib/version.rb +6 -0
  318. data/ext/lib/tkextlib/vu.rb +48 -0
  319. data/ext/lib/tkextlib/vu/bargraph.rb +61 -0
  320. data/ext/lib/tkextlib/vu/charts.rb +53 -0
  321. data/ext/lib/tkextlib/vu/dial.rb +102 -0
  322. data/ext/lib/tkextlib/vu/pie.rb +282 -0
  323. data/ext/lib/tkextlib/vu/setup.rb +8 -0
  324. data/ext/lib/tkextlib/vu/spinbox.rb +22 -0
  325. data/ext/lib/tkextlib/winico.rb +14 -0
  326. data/ext/lib/tkextlib/winico/setup.rb +8 -0
  327. data/ext/lib/tkextlib/winico/winico.rb +224 -0
  328. data/ext/lib/tkfont.rb +4 -0
  329. data/ext/lib/tkmacpkg.rb +4 -0
  330. data/ext/lib/tkmenubar.rb +4 -0
  331. data/ext/lib/tkmngfocus.rb +4 -0
  332. data/ext/lib/tkpalette.rb +4 -0
  333. data/ext/lib/tkscrollbox.rb +4 -0
  334. data/ext/lib/tktext.rb +4 -0
  335. data/ext/lib/tkvirtevent.rb +4 -0
  336. data/ext/lib/tkwinpkg.rb +4 -0
  337. data/ext/old-README.tcltklib.eucj +159 -0
  338. data/ext/stubs.c +531 -0
  339. data/ext/stubs.h +33 -0
  340. data/ext/tcltklib.c +10155 -0
  341. data/ext/tkutil/.cvsignore +3 -0
  342. data/ext/tkutil/depend +1 -0
  343. data/ext/tkutil/extconf.rb +14 -0
  344. data/ext/tkutil/tkutil.c +1789 -0
  345. metadata +418 -0
@@ -0,0 +1,8 @@
1
+ #
2
+ # setup.rb -- setup script before calling TkPackage.require()
3
+ #
4
+ # If you need some setup operations (for example, add a library path
5
+ # to the library search path) before using Tcl/Tk library packages
6
+ # wrapped by Ruby scripts in this directory, please write the setup
7
+ # operations in this file.
8
+ #
@@ -0,0 +1,22 @@
1
+ #
2
+ # ::vu::spinbox widget
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+ # a standard spinbox (<= 8.3)
6
+ # This is the same as the 8.4 core spinbox widget.
7
+ #
8
+ require 'tk'
9
+
10
+ if (Tk::TK_MAJOR_VERSION < 8 ||
11
+ (Tk::TK_MAJOR_VERSION == 8 && Tk::TK_MINOR_VERSION < 4))
12
+ # call setup script -- <libdir>/tkextlib/vu.rb
13
+ require 'tkextlib/vu.rb'
14
+
15
+ Tk.tk_call('namespace', 'import', '::vu::spinbox')
16
+ end
17
+
18
+ module Tk
19
+ module Vu
20
+ Spinbox = Tk::Spinbox
21
+ end
22
+ end
@@ -0,0 +1,14 @@
1
+ #
2
+ # winico -- Windows Icon extension support
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+ require 'tk'
6
+
7
+ # call setup script for general 'tkextlib' libraries
8
+ require 'tkextlib/setup.rb'
9
+
10
+ # call setup script
11
+ require 'tkextlib/tktable/setup.rb'
12
+
13
+ # load library
14
+ require 'tkextlib/winico/winico'
@@ -0,0 +1,8 @@
1
+ #
2
+ # setup.rb -- setup script before calling TkPackage.require()
3
+ #
4
+ # If you need some setup operations (for example, add a library path
5
+ # to the library search path) before using Tcl/Tk library packages
6
+ # wrapped by Ruby scripts in this directory, please write the setup
7
+ # operations in this file.
8
+ #
@@ -0,0 +1,224 @@
1
+ #
2
+ # tkextlib/winico/winico.rb
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+
6
+ require 'tk'
7
+
8
+ # call setup script for general 'tkextlib' libraries
9
+ require 'tkextlib/setup.rb'
10
+
11
+ # call setup script
12
+ require 'tkextlib/winico/setup.rb'
13
+
14
+ # TkPackage.require('winico', '0.5')
15
+ # TkPackage.require('winico', '0.6')
16
+ TkPackage.require('winico')
17
+
18
+ module Tk
19
+ class Winico < TkObject
20
+ PACKAGE_NAME = 'winico'.freeze
21
+ def self.package_name
22
+ PACKAGE_NAME
23
+ end
24
+
25
+ def self.package_version
26
+ begin
27
+ TkPackage.require('winico')
28
+ rescue
29
+ ''
30
+ end
31
+ end
32
+ end
33
+ end
34
+
35
+ class Tk::Winico
36
+ WinicoID_TBL = TkCore::INTERP.create_table
37
+
38
+ TkCore::INTERP.init_ip_env{
39
+ WinicoID_TBL.mutex.synchronize{ WinicoID_TBL.clear }
40
+ }
41
+
42
+ def self.id2obj(id)
43
+ WinicoID_TBL.mutex.synchronize{
44
+ (WinicoID_TBL.key?(id))? WinicoID_TBL[id] : id
45
+ }
46
+ end
47
+
48
+ def self.info
49
+ simplelist(Tk.tk_call('winico', 'info')).collect{|id|
50
+ Tk::Winico.id2obj(id)
51
+ }
52
+ end
53
+
54
+ def self.icon_info(id)
55
+ simplelist(Tk.tk_call('winico', 'info', id)).collect{|inf|
56
+ h = Hash[*list(inf)]
57
+ h.keys.each{|k| h[k[1..-1]] = h.delete(k)}
58
+ }
59
+ end
60
+
61
+ #################################
62
+
63
+ def self.new_from_file(file_name)
64
+ self.new(file_name)
65
+ end
66
+
67
+ def self.new_from_resource(resource_name, file_name = nil)
68
+ self.new(file_name, resource_name)
69
+ end
70
+
71
+ def initialize(file_name, resource_name=nil, winico_id=nil)
72
+ if resource_name
73
+ # from resource
74
+ if file_name
75
+ @id = Tk.tk_call('winico', 'load', resource_name, file_name)
76
+ else
77
+ @id = Tk.tk_call('winico', 'load', resource_name)
78
+ end
79
+ elsif file_name
80
+ # from .ico file
81
+ @id = Tk.tk_call('winico', 'createfrom', file_name)
82
+ elsif winico_id
83
+ @id = winico_id
84
+ else
85
+ fail ArgumentError,
86
+ "must be given proper information from where loading icons"
87
+ end
88
+ @path = @id
89
+ WinicoID_TBL.mutex.synchronize{
90
+ WinicoID_TBL[@id] = self
91
+ }
92
+ end
93
+
94
+ def id
95
+ @id
96
+ end
97
+
98
+ def set_window(win_id, *opts) # opts := ?'big'|'small'?, ?pos?
99
+ # NOTE:: the window, which is denoted by win_id, MUST BE MAPPED.
100
+ # If not, then this may fail or crash.
101
+ tk_call('winico', 'setwindow', win_id, @id, *opts)
102
+ end
103
+
104
+ def delete
105
+ tk_call('winico', 'delete', @id)
106
+ WinicoID_TBL.mutex.synchronize{
107
+ WinicoID_TBL.delete(@id)
108
+ }
109
+ self
110
+ end
111
+ alias destroy delete
112
+
113
+ def info
114
+ Tk::Winico.icon_info(@id)
115
+ end
116
+
117
+ #################################
118
+
119
+ class Winico_callback < TkValidateCommand
120
+ class ValidateArgs < TkUtil::CallbackSubst
121
+ KEY_TBL = [
122
+ [ ?m, ?s, :message ],
123
+ [ ?i, ?x, :icon ],
124
+ [ ?x, ?n, :x ],
125
+ [ ?y, ?n, :y ],
126
+ [ ?X, ?n, :last_x ],
127
+ [ ?Y, ?n, :last_y ],
128
+ [ ?t, ?n, :tickcount ],
129
+ [ ?w, ?n, :icon_idnum ],
130
+ [ ?l, ?n, :msg_idnum ],
131
+ nil
132
+ ]
133
+
134
+ PROC_TBL = [
135
+ [ ?n, TkComm.method(:number) ],
136
+ [ ?s, TkComm.method(:string) ],
137
+ [ ?x, proc{|id|
138
+ Tk::Winico::WinicoID_TBL.mutex.synchronize{
139
+ if Tk::Winico::WinicoID_TBL.key?(id)
140
+ obj = Tk::Winico::WinicoID_TBL[id]
141
+ else
142
+ # Tk::Winico.new(nil, nil, id)
143
+ obj = Tk::Winico.allocate
144
+ obj.instance_eval{ @path = @id = id }
145
+ Tk::Winico::WinicoID_TBL[id] = obj
146
+ end
147
+ obj
148
+ }
149
+ } ],
150
+ nil
151
+ ]
152
+
153
+ =begin
154
+ # for Ruby m17n :: ?x --> String --> char-code ( getbyte(0) )
155
+ KEY_TBL.map!{|inf|
156
+ if inf.kind_of?(Array)
157
+ inf[0] = inf[0].getbyte(0) if inf[0].kind_of?(String)
158
+ inf[1] = inf[1].getbyte(0) if inf[1].kind_of?(String)
159
+ end
160
+ inf
161
+ }
162
+
163
+ PROC_TBL.map!{|inf|
164
+ if inf.kind_of?(Array)
165
+ inf[0] = inf[0].getbyte(0) if inf[0].kind_of?(String)
166
+ end
167
+ inf
168
+ }
169
+ =end
170
+
171
+ _setup_subst_table(KEY_TBL, PROC_TBL);
172
+
173
+ def self.ret_val(val)
174
+ val
175
+ end
176
+ end
177
+
178
+ def self._config_keys
179
+ ['callback']
180
+ end
181
+ end
182
+
183
+ #################################
184
+
185
+ def add_to_taskbar(keys = {})
186
+ keys = _symbolkey2str(keys)
187
+ Winico_callback._config_keys.each{|k|
188
+ if keys[k].kind_of?(Array)
189
+ cmd, *args = keys[k]
190
+ #keys[k] = Winico_callback.new(cmd, args.join(' '))
191
+ keys[k] = Winico_callback.new(cmd, *args)
192
+ # elsif keys[k].kind_of?(Proc)
193
+ elsif TkComm._callback_entry?(keys[k])
194
+ keys[k] = Winico_callback.new(keys[k])
195
+ end
196
+ }
197
+ tk_call('winico', 'taskbar', 'add', @id, *(hash_kv(keys)))
198
+ self
199
+ end
200
+ alias taskbar_add add_to_taskbar
201
+
202
+ def modify_taskbar(keys = {})
203
+ keys = _symbolkey2str(keys)
204
+ Winico_callback._config_keys.each{|k|
205
+ if keys[k].kind_of?(Array)
206
+ cmd, *args = keys[k]
207
+ #keys[k] = Winico_callback.new(cmd, args.join(' '))
208
+ keys[k] = Winico_callback.new(cmd, *args)
209
+ # elsif keys[k].kind_of?(Proc)
210
+ elsif TkComm._callback_entry?(keys[k])
211
+ keys[k] = Winico_callback.new(keys[k])
212
+ end
213
+ }
214
+ tk_call('winico', 'taskbar', 'modify', @id, *(hash_kv(keys)))
215
+ self
216
+ end
217
+ alias taskbar_modify modify_taskbar
218
+
219
+ def delete_from_taskbar
220
+ tk_call('winico', 'taskbar', 'delete', @id)
221
+ self
222
+ end
223
+ alias taskbar_delete delete_from_taskbar
224
+ end
data/ext/lib/tkfont.rb ADDED
@@ -0,0 +1,4 @@
1
+ #
2
+ # tkfont.rb - load tk/font.rb
3
+ #
4
+ require 'tk/font'
@@ -0,0 +1,4 @@
1
+ #
2
+ # tkmacpkg.rb - load tk/macpkg.rb
3
+ #
4
+ require 'tk/macpkg'
@@ -0,0 +1,4 @@
1
+ #
2
+ # tkmenubar.rb - load tk/menubar.rb
3
+ #
4
+ require 'tk/menubar'
@@ -0,0 +1,4 @@
1
+ #
2
+ # tkmngfocus.rb - load tk/mngfocus.rb
3
+ #
4
+ require 'tk/mngfocus'
@@ -0,0 +1,4 @@
1
+ #
2
+ # tkpalette.rb - load tk/palette.rb
3
+ #
4
+ require 'tk/palette'
@@ -0,0 +1,4 @@
1
+ #
2
+ # tkscrollbox.rb - load tk/scrollbox.rb
3
+ #
4
+ require 'tk/scrollbox'
data/ext/lib/tktext.rb ADDED
@@ -0,0 +1,4 @@
1
+ #
2
+ # tktext.rb - load tk/text.rb
3
+ #
4
+ require 'tk/text'
@@ -0,0 +1,4 @@
1
+ #
2
+ # tkvirtevent.rb - load tk/virtevent.rb
3
+ #
4
+ require 'tk/virtevent'
@@ -0,0 +1,4 @@
1
+ #
2
+ # tkwinpkg.rb - load tk/winpkg.rb
3
+ #
4
+ require 'tk/winpkg'
@@ -0,0 +1,159 @@
1
+ (tof)
2
+ 2003/06/19 Hidetoshi NAGAI
3
+
4
+ �ܥɥ�����ȤˤϸŤ� tcltk �饤�֥�ꡤtcltklib �饤�֥�������
5
+ ���ޤޤ�Ƥ��ޤ��������ε������ƤϸŤ���ΤȤʤäƤ��ޤ���
6
+
7
+ �ޤ������ߤ� Ruby/Tk ���濴�Ǥ��� tk.rb �� wish ��ƤӽФ�����Ϥ�
8
+ ����tcltklib �饤�֥��� wrap ����ư����ΤȤʤäƤ��ޤ�������
9
+ ���ᡤ�Ť��������ҤǽҤ٤��Ƥ���褦�ʥץ��������̿��ˤ�륪����
10
+ �إåɤ�¸�ߤ��ޤ���
11
+
12
+ ���ߤ� tcltklib �饤�֥��Ǥ⡤Tcl/Tk �� C �饤�֥����󥯤���
13
+ ľ�ܤ�ư�������Ȥǡ������Хإåɤ򲡤����Ĥ� Tcl/Tk ���󥿡��ץ꥿
14
+ �Τۤ�����ǽ�ʳ�ĥ�饤�֥���ޤ�ˤ�Ȥ�������Ʊ���Ǥ�����������
15
+ �������Ϥۤܡ�tk.rb �ʲ��Υ饤�֥������Ū��Ư�����뤿��Τ�Ρ�
16
+ �ȸ��ʤ���Ƥ��ꡤ������Ū�ǥ��ƥʥ󥹤���Ƥ��ޤ���
17
+
18
+ tk.rb �ιⵡǽ����ȼ�äơ�����Υ饤�֥��Ǥ��� tcltk �饤�֥��
19
+ ��tcltk.rb�ˤϤ���¸�߰յ��򸺤��Ƥ��ꡤ���ߤǤϥ��ƥʥ󥹤ϹԤ�
20
+ ��Ƥ��ޤ���
21
+
22
+ �ʤ����Ť������ǤϥХ���ǥ��󥰤ˤ����륹����ץȤ��ɲäϤǤ��ʤ���
23
+ �ȤȤʤäƤ��ޤ��������ߤ� tk.rb �ǤϤ�����ǽ�Ǥ��뤳�Ȥ���­����
24
+ �����ޤ���
25
+
26
+ �ʲ����饤�֥��θŤ�����ʸ��Ǥ���
27
+ ==============================================================
28
+ tcltk �饤�֥��
29
+ tcltklib �饤�֥��
30
+ Sep. 19, 1997 Y. Shigehiro
31
+
32
+ �ʲ�, ��tcl/tk�פȤ���ɽ����, tclsh �� wish ��¸����Ƥ���, ���̤Ǥ���
33
+ �Ȥ����� tcl/tk ��ؤ��ޤ�. ��tcltk �饤�֥���, ��tcltklib �饤�֥�
34
+ ��פȤ���ɽ����, �ܥѥå������˴ޤޤ�� ruby �ѤΥ饤�֥���ؤ��ޤ�.
35
+
36
+ [�ե�����ˤĤ���]
37
+
38
+ README.euc : ���Υե�����(����, ��ħ, ���󥹥ȡ������ˡ).
39
+ MANUAL.euc : �ޥ˥奢��.
40
+
41
+ lib/, ext/ : �饤�֥��μ���.
42
+
43
+ sample/ : �ޥ˥奢������Υ���ץ�ץ������.
44
+ sample/sample0.rb : tcltklib �饤�֥��Υƥ���.
45
+ sample/sample1.rb : tcltk �饤�֥��Υƥ���.
46
+ tcl/tk (wish) �ǤǤ������ʤ��Ȥ���̤�񤤤Ƥߤޤ���.
47
+ sample/sample2.rb : tcltk �饤�֥��Υ���ץ�.
48
+ maeda shugo (shugo@po.aianet.ne.jp) ��ˤ��
49
+ (`rb.tk' �ǽ񤫤�Ƥ���) ruby �Υ���ץ�ץ������
50
+ http://www.aianet.or.jp/~shugo/ruby/othello.rb.gz
51
+ �� tcltk �饤�֥���Ȥ��褦��, ����Ū���ѹ����Ƥߤޤ���.
52
+
53
+ demo/ : 100 �ܤ����� 100 �������ǥ�ץ������.
54
+ �ǽ�˶��롼�פλ��֤�¬�ꤷ, ³���Ƽºݤ�����������֤�¬�ꤷ�ޤ�.
55
+ tcl/tk ��(��)����ΤȤ��� backing store ��Ȥ鷺��Χ���� 10000 ��(?)
56
+ ��������Τ�, (��)�����Ϥ���, �ޥ��󤬤��ʤ�Ť��ʤ�ޤ�.
57
+ demo/lines0.tcl : wish �ѤΥ�����ץ�.
58
+ demo/lines1.rb : `tk.rb' �ѤΥ�����ץ�.
59
+ demo/lines2.rb : tcltk �饤�֥���ѤΥ�����ץ�.
60
+
61
+ [����]
62
+
63
+ ����ѥ���/�¹Ԥˤ�, tcl/tk �� C �饤�֥�꤬ɬ�פǤ�.
64
+
65
+ ���Υ饤�֥���,
66
+
67
+ ruby-1.0-970701, ruby-1.0-970911, ruby-1.0-970919
68
+ FreeBSD 2.2.2-RELEASE
69
+ ����Ӥ��Υѥå����� jp-tcl-7.6.tgz, jp-tk-4.2.tgz
70
+
71
+ �Ǻ���/ư���ǧ���ޤ���. ¾�δĶ��Ǥ�ư��뤫�ɤ����狼��ޤ���.
72
+
73
+ TclTkLib.mainloop ��¹���� Control-C �������ʤ��Τ����ؤʤΤ�, ruby
74
+ �Υ������򻲹ͤ�, #include "sig.h" ���� trap_immediate �����Ƥ���
75
+ ����, ruby �� README.EXT �ˤ�񤤤Ƥʤ��Τ�, ����ʤ��Ȥ򤷤��ɤ��Τ�
76
+ �ɤ����狼��ޤ���.
77
+
78
+ -d ���ץ����ǥǥХå������ɽ�������뤿���, ruby �Υ������򻲹ͤ�,
79
+ debug �Ȥ�������ѿ��򻲾Ȥ��Ƥ��ޤ���, ruby �� README.EXT �ˤ�񤤤�
80
+ �ʤ��Τ�, ����ʤ��Ȥ򤷤��ɤ��Τ��ɤ����狼��ޤ���.
81
+
82
+ extconf.rb �Ͻ񤭤ޤ�����, (���������ʰ�̣��)������ɤ��Τ��ɤ�ʬ����
83
+ �ޤ���.
84
+
85
+ [��ħ]
86
+
87
+ ruby ���� tcl/tk �饤�֥������ѤǤ��ޤ�.
88
+
89
+ tcl/tk ���󥿥ץ꥿�Υ�����ץȤ�, ����Ū�� tcltk �饤�֥���Ѥ� ruby
90
+ ������ץȤ��Ѵ��Ǥ��ޤ�.
91
+
92
+ (`tk.rb' �Ȥΰ㤤)
93
+
94
+ 1. tcl/tk ���󥿥ץ꥿�Υ�����ץȤ�, �ɤΤ褦��, tcltk �饤�֥���Ѥ�
95
+ ruby ������ץȤ��Ѵ�����뤫������Ǥ����, �ޥ˥奢���ब̵������
96
+ ���� `tk.rb' �Ȥϰۤʤ�
97
+
98
+ tcl/tk �Υޥ˥奢��䥪��饤��ɥ�����Ȥ��Ѥ���
99
+
100
+ ��Ψ�ɤ��ץ�����ߥ󥰤�Ԥ����Ȥ��Ǥ��ޤ�.
101
+ ������ˡ���狼��ʤ�, ���ޥ�ɤ�Ϳ����ѥ�᡼�����狼��ʤ�...
102
+ - Canvas.new { ... } ��, �ʤ����ƥ졼���֥��å���񤱤��??
103
+ - Canvas �� bbox �Ͽ��ͤΥꥹ�Ȥ��֤��Τ�, xview ��ʸ������֤���??
104
+ ��, ��������, �饤�֥��Υ��������ɤ�������ɬ�פϤ���ޤ���.
105
+
106
+ 2. �ġ��ε�ǽ(���ץ����)����̽����ˤ�ꥵ�ݡ��Ȥ��Ƥ���, ���Τ��᥵
107
+ �ݡ��Ȥ��Ƥ��ʤ���ǽ�ϻȤ����Ȥ��Ǥ��ʤ�(�����ϻȤ��ʤ����Ȥ�ʤ���
108
+ �Ǥ���) `tk.rb' �Ȥϰۤʤ�, tcl/tk ���󥿥ץ꥿�Dz�ǽ�ʤ��Ȥ�
109
+
110
+ �ۤȤ��
111
+
112
+ ruby �����¹ԤǤ��ޤ�. ����, ruby ����¹ԤǤ��ʤ����Ȥ���ǧ����
113
+ �Ƥ���Τ�,
114
+
115
+ bind ���ޥ�ɤǥ�����ץȤ��ɲä��빽ʸ
116
+ ��bind tag sequence +script��
117
+ ^
118
+
119
+ �ΤߤǤ�.
120
+ - `. configure -width' �򤷤褦�Ȥ���, `Tk.root.height()' �Ƚ�
121
+ ���Τ�, `undefined method `height'' ���ܤ��Ƥ��ޤä�. tk.rb ��
122
+ �ɤ�Ǥߤ�, ������. �Ǥ��ʤ��Τ�...
123
+ �Ȥ������ȤϤ���ޤ���.
124
+
125
+ 3. wish �ץ�������ư���ץ��������̿��� wish �����Ѥ��� `tk.rb' �Ȥ�
126
+ �ۤʤ�, tcl/tk �� C �饤�֥����󥯤�
127
+
128
+ ����®�� (�Ȥ��äƤ�, �פä�����®���ʤ��Ǥ���)
129
+
130
+ ������Ԥ��ޤ�.
131
+
132
+ 4. `tk.rb' �ۤ�, ����ʥ��󥿡��ե������������Ƥ��ʤ�����, tcl/tk ��
133
+ �󥿥ץ꥿��������
134
+
135
+ �����鲿�ޤǼ�ʬ�ǵ���
136
+
137
+ ���ʤ���Фʤ�ޤ���(��������, tcl/tk �饤�֥��λ����̤�,
138
+ tcl/tk ���󥿥ץ꥿��ʣ���������뤳�Ȥ�Ǥ��ޤ���).
139
+ ���󥿡��ե�������(�����餯) ruby �λ��ۤ˱�ä���ΤǤϤ���ޤ���.
140
+ �ޤ�, ������ץȤε��Ҥ�
141
+
142
+ ��������
143
+
144
+ �Ǥ�. ������ץȤ�, �츫, �ɤߤŤ餤��ΤȤʤ�ޤ�. ��, �񤯿ͤˤȤ�
145
+ �Ƥ�, ����ۤ��Ѥ路����ΤǤϤʤ��Ȼפ��ޤ�.
146
+
147
+ [���󥹥ȡ������ˡ]
148
+
149
+ 0. ruby �Υ������ե�����(ruby-1.0-�ʤ󤿤�.tgz)��Ÿ�����Ƥ����ޤ�.
150
+
151
+ 1. ruby-1.0-�ʤ󤿤�/ext �� ext/tcltklib �򥳥ԡ����ޤ�.
152
+ cp -r ext/tcltklib ???/ruby-1.0-�ʤ󤿤�/ext/
153
+
154
+ 2. ruby �Υ��󥹥ȡ���ˡ�˽��� make ���򤷤ޤ�.
155
+
156
+ 3. ruby �Υ饤�֥���־�� lib/* �򥳥ԡ����ޤ�.
157
+ cp lib/* /usr/local/lib/ruby/
158
+
159
+ (eof)