Sha256: 1536f3be2ed36768fce130dd05bb164a292a3ab3e38eab1ebd92bb26252de60e

Contents?: true

Size: 1.18 KB

Versions: 27

Compression:

Stored size: 1.18 KB

Contents

require 'rbbt/util/log'
require 'rbbt/util/log/progress/util'
require 'rbbt/util/log/progress/report'
module Log
  class ProgressBar

    attr_accessor :max, :ticks, :frequency, :depth, :desc
    def initialize(max = nil, options = {})
      options = Misc.add_defaults options, :depth => 0, :num_reports => 100, :desc => "Progress", :io => STDERR, :severity => Log.severity
      depth, num_reports, desc, io, severity = Misc.process_options options, :depth, :num_reports, :desc, :io, :severity

      @max = max
      @ticks = 0
      @frequency = 2
      @last_time = nil
      @last_count = nil
      @last_percent = nil
      @depth = depth
      @desc = desc
    end

    def percent
      (@ticks * 100) / @max
    end

    def tick
      @ticks += 1

      time = Time.now
      if @last_time.nil?
        @last_time = time
        @last_count = @ticks
        @start = time
        return
      end

      diff = time - @last_time
      report and return if diff > @frequency
      return unless max

      percent = self.percent
      if @last_percent.nil?
        @last_percent = percent
        return
      end
      report and return if percent > @last_percent and diff > 0.3
    end
  end
end

Version data entries

27 entries across 27 versions & 1 rubygems

Version Path
rbbt-util-5.13.32 lib/rbbt/util/log/progress.rb
rbbt-util-5.13.31 lib/rbbt/util/log/progress.rb
rbbt-util-5.13.30 lib/rbbt/util/log/progress.rb
rbbt-util-5.13.29 lib/rbbt/util/log/progress.rb
rbbt-util-5.13.28 lib/rbbt/util/log/progress.rb
rbbt-util-5.13.27 lib/rbbt/util/log/progress.rb
rbbt-util-5.13.26 lib/rbbt/util/log/progress.rb
rbbt-util-5.13.25 lib/rbbt/util/log/progress.rb
rbbt-util-5.13.24 lib/rbbt/util/log/progress.rb
rbbt-util-5.13.23 lib/rbbt/util/log/progress.rb
rbbt-util-5.13.22 lib/rbbt/util/log/progress.rb
rbbt-util-5.13.21 lib/rbbt/util/log/progress.rb
rbbt-util-5.13.20 lib/rbbt/util/log/progress.rb
rbbt-util-5.13.19 lib/rbbt/util/log/progress.rb
rbbt-util-5.13.18 lib/rbbt/util/log/progress.rb
rbbt-util-5.13.17 lib/rbbt/util/log/progress.rb
rbbt-util-5.13.16 lib/rbbt/util/log/progress.rb
rbbt-util-5.13.15 lib/rbbt/util/log/progress.rb
rbbt-util-5.13.14 lib/rbbt/util/log/progress.rb
rbbt-util-5.13.13 lib/rbbt/util/log/progress.rb