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.



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

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

Instance Method Details

#finishObject



38
39
40
41
42
43
44
# File 'lib/infopark/user_io.rb', line 38

def finish
  return unless @started

  user_io.tell("… ", newline: false)
  user_io.tell("OK", color: :green, bright: true)
  @started = false
end

#incrementObject



31
32
33
34
35
36
# File 'lib/infopark/user_io.rb', line 31

def increment
  raise(ImplementationError, "progress not started yet") unless @started

  user_io.tell(".", newline: false)
  reset_spinner
end

#spinObject



46
47
48
49
50
51
# File 'lib/infopark/user_io.rb', line 46

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



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

def start
  return if @started

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