人気ブログランキング | 話題のタグを見る

超小型 irb もどき mini.rb

Ruby を対話的に使うためのプログラム mini.rb を作った。irb があるからいらないようなものだが、コードサイズが超小型なのでいじりやすい。エディタを立ち上げられるコマンドがあるので複数行のプログラムの編集が楽という特徴がある。

送信時のセキュリティチェックの関係で eval に括弧がついていません。このままだと、実行はできますが警告が表示されるので括弧を補ってください。

ファイル名 mini.rb

def ml
  prog = ''
  while true
    print 'multi line*> '
    line = gets
    break if line == "\n"
    prog << line
  end
  eval prog, TOPLEVEL_BINDING
end

def edit(fname = "temp.rb")
  system "notepad #{fname}"
end

def dir
  system "dir /w"
end

def run
  $".each_with_index{|c, i|  $"[i]="" if c == "temp.rb" }
  require "temp.rb"
end

def ruby(fname = "temp.rb")
  system "ruby #{fname}"
end

loop do
  begin
    print "minirb> "
    p eval gets, TOPLEVEL_BINDING
  rescue
    STDERR.puts "Warning: #$!"
  end
end

使い方は、ruby mini.rb で起動した後プロンプトから Ruby の式を一行入力すると実行されて式の値が表示される。複数行を入力したいときは ml コマンドで複数行入力モードになる。複数行入力モードから出るには、リターンキーのみを押して空行を入力する。edit コマンドでエディタが立ち上がる。編集が済んだあとは run コマンドで実行できる。(管理人は BASIC 世代なのだ。)dir コマンドでファイルの一覧を見ることができる。edit "file name" (引用符は必須) で任意のファイルを編集できる。ruby "file name" で任意の Ruby ファイルの実行ができる。終了は exit と入力する。
by tnomura9 | 2008-04-06 08:02 | Ruby | Comments(0)
<< 逆ポーランド記法電卓 簡単なスキャナ >>