進行状況を表示します。全体の値と進み方のディレイ時間とを引数に取ります。
$ ruby progressbar.rb 250 .05 [**************************************************] 250 / 250
みたいな感じ。
#!/usr/bin/env ruby # coding: utf-8 max = ARGV[0] ? ARGV[0].to_i : 100 max_size = max.to_s.size sleep_delay = ARGV[1] ? ARGV[1].to_f : 0.1 (1..max).each do |i| # something to do print "\r" + "[#{'%-50s' % ('*' * (i.to_f / max * 50).to_i)}] #{'%*d' % [max_size, i]} / #{max}" sleep sleep_delay end print "\n"
作ったきっかけ
\rってCarriageReturnだから行頭に戻るだけだし、yumやらrubygemsやらhomebrewやらでよく見かけるテキストのプログレスバーが作れるよな、と思ったので。
意外と簡単だった。
rubygemsあったw
GitHub - jfelchner/ruby-progressbar: Ruby/ProgressBar is a text progress bar library for Ruby.
まぁ有るわなw
レシピブックに載ってたw
- 作者: 青木峰郎,後藤裕蔵,高橋征義,まつもとゆきひろ
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2010/08/28
- メディア: 単行本
- 購入: 5人 クリック: 83回
- この商品を含むブログ (32件) を見る
- 作者: 青木峰郎,後藤裕蔵,高橋征義,まつもとゆきひろ
- 出版社/メーカー: ソフトバンク クリエイティブ
- 発売日: 2007/02/01
- メディア: 単行本
- 購入: 9人 クリック: 182回
- この商品を含むブログ (97件) を見る