class C_进度条

Public Class Methods

new(循环次数,宽度=STDOUT.winsize[1]-2-循环次数.size-20) click to toggle source

最后的减2,是因为京都条的收尾,各有一个|,计算的宽度的时候,必须去掉 默认宽度,就是屏幕宽度

# File lib/wxl_process_bar.rb, line 12
def initialize(循环次数,宽度=STDOUT.winsize[1]-2-循环次数.size-20)
        @当前循环次数=1
        @循环次数=循环次数
        @显示宽度=宽度
        @开始时间=Time.new
        @当前时间=nil
end

Public Instance Methods

更新() click to toggle source
# File lib/wxl_process_bar.rb, line 20
def 更新
        @当前时间=Time.new
        当前比例=((@当前循环次数.to_f/@循环次数)*@显示宽度).to_i
        剩余比例=@显示宽度-当前比例
        print "|";
        当前比例.times { print "#"};
        剩余比例.times {print " "};
        print "|";
        print "#{@当前循环次数}/#{@循环次数} times:#{(@当前时间-@开始时间).floor(2)}s"
        if 剩余比例 == 0
        print "\n"
        else
        print "\r"    #光标到行首
        $stdout.flush
        end
        @当前循环次数 += 1
end
更新记录到日志() click to toggle source
# File lib/wxl_process_bar.rb, line 38
def 更新记录到日志
        当前比例=((@当前循环次数.to_f/@循环次数)*50).to_i
        剩余比例=50-当前比例
        =''
         << "|";
        当前比例.times {  << "#"};
        剩余比例.times {  << " "};
         << "|";
         << "\n"
        @当前循环次数 += 1
        return 
end