Class: Lapidarius::Spinner
- Inherits:
-
Object
- Object
- Lapidarius::Spinner
- Defined in:
- lib/lapidarius/cli.rb
Constant Summary collapse
- CHARS =
%w[| / - \\]
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(io = STDOUT, fps = 15, delay = 1.0) ⇒ Spinner
constructor
A new instance of Spinner.
Constructor Details
#initialize(io = STDOUT, fps = 15, delay = 1.0) ⇒ Spinner
Returns a new instance of Spinner.
68 69 70 71 72 73 |
# File 'lib/lapidarius/cli.rb', line 68 def initialize(io = STDOUT, fps = 15, delay = 1.0) @io = io @fps = fps.to_i @delay = delay.to_f / @fps @iter = 0 end |
Instance Method Details
#call ⇒ Object
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
# File 'lib/lapidarius/cli.rb', line 75 def call spinner = Thread.new do while @iter do @io.print CHARS[(@iter+=1) % CHARS.length] sleep @delay @io.print "\b" @io.flush end end ensure yield.tap do @iter = false spinner.join end end |