Class: HubStore::Ui

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

Constant Summary collapse

FORMAT =
":spinner :title :status"

Instance Method Summary collapse

Constructor Details

#initializeUi

Returns a new instance of Ui.



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

def initialize
  @spinner = TTY::Spinner.new(FORMAT, format: :dots_3, hide_cursor: true, interval: 20)
end

Instance Method Details

#info(progname, &block) ⇒ Object



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

def info(progname, &block)
  case progname
  when HubLink::START
    start block.call
  when HubLink::FINISH
    stop block.call
  else
    update block.call
  end
end

#start(msg) ⇒ Object



23
24
25
26
# File 'lib/hub_store/ui.rb', line 23

def start(msg)
  spinner.update(title: format(msg), status: nil)
  spinner.auto_spin
end

#stop(msg) ⇒ Object



32
33
34
35
# File 'lib/hub_store/ui.rb', line 32

def stop(msg)
  spinner.update(status: nil)
  spinner.success("(#{format msg, :green})")
end

#update(msg) ⇒ Object



28
29
30
# File 'lib/hub_store/ui.rb', line 28

def update(msg)
  spinner.update(status: msg)
end