Ruby/ProgressBar はプログレスバーをテキストで表示する Ruby用 のライブラリです。処理の進捗状況をパーセント、プログレスバー、 および推定残り時間として表示します。
最新版は <URL:/ruby-progressbar/> から入手可能です
使用例
% irb --simple-prompt -r progressbar
>> pbar = ProgressBar.new("test", 100)
=> (ProgressBar: 0/100)
>> 100.times {sleep(0.1); pbar.inc}; pbar.finish
test: 100% |oooooooooooooooooooooooooooooooooooooooo| Time: 00:00:10
=> nil
>> pbar = ProgressBar.new("test", 100)
=> (ProgressBar: 0/100)
>> (1..100).each{|x| sleep(0.1); pbar.set(x)}; pbar.finish
test: 67% |oooooooooooooooooooooooooo | ETA: 00:00:03
API
ProgressBar#new (title, total, out = STDERR)-
プログレスバーの初期状態を表示し、新しい ProgressBarオブ ジェクトを返す。title で見出しを、total で処 理の総計を、out で出力先の IO を設定する。
プログレスバーの表示は、前回の表示から進捗が 1%以上あっ たとき、あるいは 1秒以上経過した場合に更新されます。
ProgressBar#inc (step = 1)- 内部のカウンタを step 数だけ進めて、プログレスバー の表示を更新する。バーの右側には推定残り時間を表示する。 カウンタは total を越えて進むことはない。
ProgressBar#set (count)- カウンタの値を count に設定し、プログレスバーの 表示を更新する。バーの右側には推定残り時間を表示する。 count にマイナスの値あるいは total より大き い値を渡すと例外が発生する。
ProgressBar#finish- プログレスバーを停止し、プログレスバーの表示を更新する。 プログレスバーの右側には経過時間を表示する。 このとき、プログレスバーは 100% で終了する。
ProgressBar#halt- プログレスバーを停止し、プログレスバーの表示を更新する。 プログレスバーの右側には経過時間を表示する。 このとき、プログレスバーはその時点のパーセンテージで終了する。
ProgressBar#format=- プログレスバー表示のフォーマットを設定する。 未変更時は "%-14s %3d%% %s %s"
ProgressBar#format_arguments=- プログレスバー表示に使う関数を設定する。 未変更時は [:title, :percentage, :bar, :stat] ファイル転送時には :stat の変わりに :stat_for_file_transfer を使うと転送バイト数と転送速度を表示できる。
ProgressBar#file_transfer_mode- プログレスバー表示に :stat の変わりに :stat_for_file_transfer を使い、転送バイト数と転送速度を表示する。
ReverseProgressBar というクラスも提供されます。機能は ProgressBar とまったく同じですが、プログレスバーの進行方向が 逆になっています。
制限事項
進捗状況を処理の総計に対する割合として計算するため、処理の総 計が事前にわからない状況では使えません。また、進捗の流れが均 一でないときには残り時間の推定は正しく行えません。
ダウンロード
Ruby のライセンスに従ったフリーソフトウェアとして公開します。 完全に無保証です。