Sha256: 5d68910f8f5d2aed3f190fd652470212403df304d8f2e5f36bd19387306e97a9

Contents?: true

Size: 1.08 KB

Versions: 4

Compression:

Stored size: 1.08 KB

Contents

require 'ruby-progressbar'
class Progress
  def initialize options = {}
    return unless options[:enabled] || true
    @options      = options
    @title        = options[:title]
    @total        = options[:total]
    @format       = options[:format]
    @progress_bar = ProgressBar.create(@options)
  end

  def reset(title: nil, total: nil, format: nil)
    @progress_bar.progress = 0
    @progress_bar.title    = title
    @progress_bar.total    = total
    @progress_bar.format   = format
    refresh
  end

  def refresh
    @progress_bar.refresh
  end

  def progress
    return unless @progress_bar
    @progress_bar.progress
  end

  def increment
    return unless @progress_bar
    @progress_bar.increment
  end

  def update attr, value
    return unless @progress_bar
    @progress_bar.send("#{attr}=", value)
    @progress_bar.refresh
  end

  def finish title: @title, format: @format
    return unless @progress_bar
    @progress_bar.title  = title
    @progress_bar.format = format
    @progress_bar.refresh
    @progress_bar.finish
  end

  def disable
    @progress_bar = nil
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
s3_zipper-1.0.3 lib/s3_zipper/progress.rb
s3_zipper-1.0.2 lib/s3_zipper/progress.rb
s3_zipper-1.0.1 lib/s3_zipper/progress.rb
s3_zipper-1.0.0 lib/s3_zipper/progress.rb