easydb.rb をテストするとき、結構タイポが多くて、最初から打ち直すのが面倒だったので、readline を導入した。ファイル名の補完がタブでできるし、タイポでエラーがでたとき元の入力をコントロール+Pで呼び出すことができる。
ちょっとデータをいじってみるというようなお気軽な用途のためにつくったので、これ以上の改変は考えていない。著作権はRubyに準じる。 (テーブルをフォーマットするのにフォーマットの文を eval しているので、format のパースをしないとちょっと危ないが、自己責任で使ってください。) ファイル名: easydb.rb (eval は半角英数に直して使用) require 'readline' include Readline class Array def dump(label) format = 'print ' + label.split(/ /).collect{|x| 'x[:'+x+']'}.join('," ",') + ', "\n"' puts label self.each{|x| eval format} end end def read(path) data = IO.read(path).split(/\n/) format = data.shift label = data.shift raise 'format error' if format =~ /system|open/ return data.collect{|x| x.split(/,/)}.collect{|x| eval format}, label end def ml prog = "" while true line = readline('lines*> ', true) break if line == ";" prog << line + "\n" end return prog end loop do begin line = readline('easydb> ', true) if line == ";" then line = ml end evall(line, TOPLEVEL_BINDING) rescue SyntaxError, LoadError, StandardError STDERR.puts "Warning: #$!" end end
by tnomura9
| 2008-09-15 10:14
| Ruby
|
Comments(0)
|
カテゴリ
新型コロナウイルス 主インデックス Haskell 記事リスト 圏論記事リスト 考えるということのリスト 考えるということ ラッセルのパラドックス Haskell Prelude Ocaml ボーカロイド 圏論 jQuery デモ HTML Python ツールボックス XAMPP Ruby ubuntu WordPress 脳の話 話のネタ リンク 幸福論 キリスト教 心の話 メモ 電子カルテ Dojo JavaScript C# NetWalker ed と sed HTML Raspberry Pi C 言語 命題論理 以前の記事
最新のトラックバック
最新のコメント
ファン
記事ランキング
ブログジャンル
画像一覧
|
ファン申請 |
||