Class | ProgressBar |
In: |
lib/more/facets/progressbar.rb
|
Parent: | Object |
ProgressBar is a text-based progressbar library.
pbar = ProgressBar.new( "Demo", 100 ) 100.times { pbar.inc } pbar.finish
# File lib/more/facets/progressbar.rb, line 38 def initialize(title, total, out = STDERR) @title = title @total = total @out = out @bar_length = 80 @bar_mark = "o" @total_overflow = true @current = 0 @previous = 0 @is_finished = false @start_time = Time.now @format = "%-14s %3d%% %s %s" @format_arguments = [:title, :percentage, :bar, :stat] show_progress end
# File lib/more/facets/progressbar.rb, line 189 def bar_mark=(mark) @bar_mark = String(mark)[0..0] end
# File lib/more/facets/progressbar.rb, line 181 def file_transfer_mode @format_arguments = [:title, :percentage, :bar, :stat_for_file_transfer] end
# File lib/more/facets/progressbar.rb, line 205 def finish @current = @total @is_finished = true show_progress end
# File lib/more/facets/progressbar.rb, line 201 def format_arguments=(arguments) @format_arguments = arguments end
# File lib/more/facets/progressbar.rb, line 235 def inc(step = 1) @current += step @current = @total if @current > @total show_progress @previous = @current end
# File lib/more/facets/progressbar.rb, line 242 def inspect "(ProgressBar: #{@current}/#{@total})" end
# File lib/more/facets/progressbar.rb, line 220 def set(count) if count < 0 raise "invalid count less than zero: #{count}" elsif count > @total if @total_overflow @total = count + 1 else raise "invalid count greater than total: #{count}" end end @current = count show_progress @previous = @current end