class Infopark::UserIO::Progress

Attributes

label[R]
user_io[R]

Public Class Methods

new(label, user_io) click to toggle source
# File lib/infopark/user_io.rb, line 16
def initialize(label, user_io)
  @label = label
  @user_io = user_io
  @spinner = "-\\|/"
end

Public Instance Methods

finish() click to toggle source
# File lib/infopark/user_io.rb, line 36
def finish
  if @started
    user_io.tell("… ", newline: false)
    user_io.tell("OK", color: :green, bright: true)
    @started = false
  end
end
increment() click to toggle source
# File lib/infopark/user_io.rb, line 30
def increment
  raise ImplementationError, "progress not started yet" unless @started
  user_io.tell(".", newline: false)
  reset_spinner
end
spin() click to toggle source
# File lib/infopark/user_io.rb, line 44
def spin
  raise ImplementationError, "progress not started yet" unless @started
  user_io.tell("#{@spinner[@spin_pos % @spinner.size]}\b", newline: false)
  @spin_pos += 1
end
start() click to toggle source
# File lib/infopark/user_io.rb, line 22
def start
  unless @started
    user_io.tell("#{label} ", newline: false)
    @started = true
    reset_spinner
  end
end

Private Instance Methods

reset_spinner() click to toggle source
# File lib/infopark/user_io.rb, line 54
def reset_spinner
  @spin_pos = 0
end