class ProgressBar
プログレスバーを表示する.¶ ↑
prg= ProgressBar.new prg.show_percent = true prg.size = 60 prg.start("downloading\n") 100.times{|i| prg.progress(i, "#{i}/100") sleep 0.015 } prg.end("done")
Attributes
bar_char_done[RW]
bar_char_undone[RW]
out[RW]
show_percent[RW]
size[RW]
Public Class Methods
new()
click to toggle source
# File lib/rbsync.rb, line 514 def initialize() @out = $stdout @size = 10 @bar_char_undone = "_" @bar_char_done = "#" @show_percent = true @printend_max_size = 0 end
Public Instance Methods
clear()
click to toggle source
# File lib/rbsync.rb, line 533 def clear() out.print "\r" line_size = [@printend_max_size, @size].max out.print " " * line_size out.flush end
end(message="")
click to toggle source
# File lib/rbsync.rb, line 527 def end(message="") progress(100) out.print " " + message out.puts "" out.flush end
progress(percent,message=nil)
click to toggle source
# File lib/rbsync.rb, line 539 def progress(percent,message=nil) clear() str ="" str << "\r" str << bar_char_done * ((percent.to_f/100.to_f)*size).to_i str << bar_char_undone * (size - ((percent.to_f/100.to_f)*size).to_i) str << " " + percent.to_s + "%" if show_percent str << " " + message if message @printend_max_size = str.size if str.size > @printend_max_size out.print str out.flush end
start(message="")
click to toggle source
# File lib/rbsync.rb, line 522 def start(message="") out.puts message out.print bar_char_undone * size out.flush end