Class: Schlib::Spinner

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

Class Method Summary collapse

Class Method Details

.create_spinner_threadObject



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/schlib/spinner.rb', line 15

def self.create_spinner_thread
  Thread.new do
    begin
      i = 0
      frames = %w[         ]
      loop do
        frame = frames[i % frames.size]
        print "\rLoading #{frame} ... "
        sleep 0.1
        i += 1
      end
    ensure
      print "\rLoading ▇ ... done\n\n"
    end
  end
end

.wait_forObject



5
6
7
8
9
10
11
# File 'lib/schlib/spinner.rb', line 5

def self.wait_for
  thread = create_spinner_thread
  value = yield
  thread.kill
  thread.join
  value
end