lib/progressbar.rb in narou-1.7.0 vs lib/progressbar.rb in narou-1.7.1

- old
+ new

@@ -1,38 +1,38 @@ -# -*- coding: utf-8 -*- -# -# Copyright 2013 whiteleaf. All rights reserved. -# - -class ProgressBar - class OverRangeError < StandardError; end - - def initialize(max, interval = 1, width = 50, char = "*") - @max = max == 0 ? 1.0 : max.to_f - @interval = interval - @width = width - @char = char - @counter = 0 - end - - def output(num) - return if $debug - if num > @max - raise OverRangeError, "`#{num}` over `#{@max}(max)`" - end - @counter += 1 - return unless @counter % @interval == 0 - ratio = calc_ratio(num) - now = (@width * ratio).round - rest = @width - now - STDOUT.print "[" + @char * now + ' ' * rest + "] #{(ratio * 100).round}%\r" - end - - def clear - return if $debug - STDOUT.print " " * 79 + "\r" - end - - def calc_ratio(num) - num / @max - end -end +# -*- coding: utf-8 -*- +# +# Copyright 2013 whiteleaf. All rights reserved. +# + +class ProgressBar + class OverRangeError < StandardError; end + + def initialize(max, interval = 1, width = 50, char = "*") + @max = max == 0 ? 1.0 : max.to_f + @interval = interval + @width = width + @char = char + @counter = 0 + end + + def output(num) + return if $debug + if num > @max + raise OverRangeError, "`#{num}` over `#{@max}(max)`" + end + @counter += 1 + return unless @counter % @interval == 0 + ratio = calc_ratio(num) + now = (@width * ratio).round + rest = @width - now + STDOUT.print "[" + @char * now + ' ' * rest + "] #{(ratio * 100).round}%\r" + end + + def clear + return if $debug + STDOUT.print " " * 79 + "\r" + end + + def calc_ratio(num) + num / @max + end +end