Class: Infopark::UserIO::Progress

Inherits:
Object
  • Object
show all
Defined in:
lib/infopark/user_io.rb

Instance Method Summary collapse

Constructor Details

#initialize(label, user_io) ⇒ Progress

Returns a new instance of Progress.



16
17
18
19
20
# File 'lib/infopark/user_io.rb', line 16

def initialize(label, user_io)
  @label = label
  @user_io = user_io
  @spinner = "-\\|/"
end

Instance Method Details

#finishObject



36
37
38
39
40
41
42
# 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

#incrementObject



30
31
32
33
34
# 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

#spinObject



44
45
46
47
48
# 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

#startObject



22
23
24
25
26
27
28
# File 'lib/infopark/user_io.rb', line 22

def start
  unless @started
    user_io.tell("#{label} ", newline: false)
    @started = true
    reset_spinner
  end
end