Class: Captive::UI::Spinner

Inherits:
Object
  • Object
show all
Defined in:
lib/captive/ui/spinner.rb

Instance Method Summary collapse

Constructor Details

#initialize(label, tty_spinner: nil) ⇒ Spinner

Returns a new instance of Spinner.



8
9
10
# File 'lib/captive/ui/spinner.rb', line 8

def initialize(label, tty_spinner: nil)
  @tty_spinner = tty_spinner || TTY::Spinner.new("  [:spinner] #{label}", format: :dots)
end

Instance Method Details

#run(success_msg:) ⇒ Object



12
13
14
15
16
17
18
19
20
# File 'lib/captive/ui/spinner.rb', line 12

def run(success_msg:)
  @tty_spinner.auto_spin
  result = yield
  @tty_spinner.success(success_msg)
  result
rescue => e
  @tty_spinner.error
  raise
end