zenityで進捗状況の可視化が手軽にできる。
zenityというコマンドを知りました><
zenity?
- ダイアログウィンドウを表示するコマンド
- gnomeのパッケージのひとつ
- (kdeにもzenityに似たkdialogというコマンドがある)
- http://www.google.co.jp/search?q=zenity
これとrubyを組み合わせると計算の進捗状況を可視化することができるかもしれません
rubyと組み合わせる
1から100までの和を計算するコードです。
class VisibleObject include Enumerable def initialize a @content = a if generate? a @io = IO.popen("zenity --progress --auto-close","r+") end def generate? a if a.respond_to? :each a else raise "this Object doesn't have `each` method" end end def each @size = @content.size @content.each_with_index do |e,i| n = 100 * i / @size @io.write("#{n}\n") yield(e) end end end class Range alias :size :last end class Object def to_visiable VisibleObject.new(self) end end raise "zenity is not found" unless system("zenity --help") (1..100).to_visiable.inject{ |s,n| sleep 0.1; s+n}