0

Linux コマンド 'top' に似たテキスト ベースの UI を備えたアプリケーションを Ruby で構築したいと考えています。UI の構築に使用できるツールキットや手法は? 特に、常に更新されるコンソール ウィンドウの領域と、キーを押して表示を操作できる機能が必要です。

4

3 に答える 3

2

ターミナル インターフェイスについては、http://ncurses-ruby.berlios.de/を参照してください。

于 2009-05-19T03:01:09.927 に答える
1

Ncurses はコンソール アプリに最適で、多くの言語 (または単にシェル スクリプトを使用) のバインディングを見つけることができます。呪われた gtk ( http://zemljanka.sourceforge.net/cursed/ ) もありますが、その作業はかなり前に停止したと思います。

プラットフォームについては触れていませんが、OS/X には Geektool ( http://projects.tynsoe.org/en/geektool/ ) という素晴らしい小さなアプリがあり、スクリプトの出力をデスクトップに置くことができます。小さな Ruby スクリプトを使用して、トップ プロセス リストを生成します。

puts %x{uptime}

IO.popen("ps aruxl") { |readme|
    pslist = readme.to_a
    pslist.shift # remove header line
    pslist.each_with_index { |i,index|
      ps = i.split
      psh = { user: ps[0], pid: ps[1], pcpu: ps[2], pmem: ps[3],
              vsz: ps[4], rss: ps[5], tty: ps[6], stat: ps[7],
              time: ps[8], uid: ps[9], ppid: ps[10], cpu: ps[11], pri: ps[12], 
              nice: ps[13], wchan: ps[14], cmd: ps[16..ps.size].join(" ") }
      printf("%-6s %-6s %-6s %s", "PID:", "%CPU:", "%Mem", "Command\n") if index == 0
      printf("%-6d %-6.1f %-6.1f %s\n", 
        psh[:pid].to_i, psh[:pcpu].to_f, psh[:pmem].to_f, psh[:cmd]) if index < 10

    }

}

(これはおそらくもっと良いかもしれませんが、これは私が今までに書いた最初の Ruby スクリプトであり、機能するので、改善するために再訪したことはありません。また、入力も必要ありません。とにかく、いくつかのアイデアを得るのに役立つかもしれません)

于 2009-05-19T03:11:57.503 に答える
0

stflがありますが、ルビーバインディングが維持されているかどうかはわかりません。ncursesはおそらくあなたの最善の策です。

于 2009-05-20T11:59:53.190 に答える