class S3Zipper::Spinner

Public Class Methods

new(title: "", enabled: true, steps: %w[▸▹▹▹▹▹ ▹▸▹▹▹▹ ▹▹▸▹▹▹ ▹▹▹▸▹▹ ▹▹▹▹▸▹ ▹▹▹▹▹▸ ▹▹▹▹▹]) click to toggle source
# File lib/s3_zipper/spinner.rb, line 9
def initialize title: "", enabled: true, steps: %w[▸▹▹▹▹▹ ▹▸▹▹▹▹ ▹▹▸▹▹▹ ▹▹▹▸▹▹ ▹▹▹▹▸▹ ▹▹▹▹▹▸ ▹▹▹▹▹]
  return unless enabled || true

  @progress_bar = ProgressBar.create(
    format:                           "[%B] %t",
    total:                            nil,
    length:                           100,
    title:                            title,
    autofinish:                       false,
    unknown_progress_animation_steps: steps,
  )
end

Public Instance Methods

finish(title: nil) click to toggle source
# File lib/s3_zipper/spinner.rb, line 50
def finish title: nil
  return unless @progress_bar

  @progress_bar.title  = title if title
  @progress_bar.format = "[✔] %t"
  @progress_bar.finish
end
increment() click to toggle source
# File lib/s3_zipper/spinner.rb, line 44
def increment
  return unless @progress_bar

  @progress_bar.increment
end
reset(title: nil, total: nil, format: nil) click to toggle source
# File lib/s3_zipper/spinner.rb, line 22
def reset title: nil, total: nil, format: nil
  return unless @progress_bar

  @progress_bar.progress = 0
  @progress_bar.title    = title if title
  @progress_bar.total    = total if total
  @progress_bar.format   = format if format
  refresh
end
spin() click to toggle source
# File lib/s3_zipper/spinner.rb, line 36
def spin
  return unless @progress_bar
  until @progress_bar.finished?
    increment
    sleep(2)
  end
end
start() click to toggle source
# File lib/s3_zipper/spinner.rb, line 32
def start
  async.spin
end