ext/tcltklib/sample/sample0.rb


DEFINITIONS

This source file includes following functions.


   1  #! /usr/local/bin/ruby -vd
   2  
   3  # tcltklib ライブラリのテスト
   4  
   5  require "tcltklib"
   6  
   7  def test
   8    # インタプリタを生成する
   9    ip1 = TclTkIp.new()
  10  
  11    # 評価してみる
  12    print ip1._return_value().inspect, "\n"
  13    print ip1._eval("puts {abc}").inspect, "\n"
  14  
  15    # ボタンを作ってみる
  16    print ip1._return_value().inspect, "\n"
  17    print ip1._eval("button .lab -text exit -command \"destroy .\"").inspect,
  18      "\n"
  19    print ip1._return_value().inspect, "\n"
  20    print ip1._eval("pack .lab").inspect, "\n"
  21    print ip1._return_value().inspect, "\n"
  22  
  23    # インタプリタから ruby コマンドを評価してみる
  24  #  print ip1._eval(%q/ruby {print "print by ruby\n"}/).inspect, "\n"
  25    print ip1._eval(%q+puts [ruby {print "print by ruby\n"; "puts by tcl/tk"}]+).inspect, "\n"
  26    print ip1._return_value().inspect, "\n"
  27  
  28    # もう一つインタプリタを生成してみる
  29    ip2 = TclTkIp.new()
  30    ip2._eval("button .lab -text test -command \"puts test ; destroy .\"")
  31    ip2._eval("pack .lab")
  32  
  33    TclTkLib.mainloop
  34  end
  35  
  36  test
  37  GC.start
  38  
  39  print "exit\n"