Module: Indicator

Defined in:
lib/indicator/spin.rb,
lib/indicator/spinner.rb,
lib/indicator/version.rb

Defined Under Namespace

Classes: Spin

Constant Summary collapse

VERSION =
"0.1.2"

Class Method Summary collapse

Class Method Details

.set(name = :bar) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/indicator/spinner.rb', line 7

def set name = :bar
  case name
  when :bar
    %w{ | / - \\ }
  when :x
    %w{ + X }
  when :<
    %w{ | < }
  when :>
    %w{ | > }
  when :V
    %w{ V > ^ }
  when :dots
    %w{ : . }
  when :bars
    %w{ - = }
  when :p
    %w{ p b d q }
  when :bqpd
    %w{ bq pd }
  when :-
    %w{ - ~ }

  when :arrows
    %w{                  }
  when :box
    %w{                 }
  when :braile
    %w{                 }

  else
    %w{ | / - \\ }
  end
end

.spin(opts = {}, &blk) ⇒ Object



47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/indicator/spinner.rb', line 47

def spin opts={}, &blk
  spinner   = opts[:spinner] || self.spinner(opts)
  noclean   = opts[:noclean] || false
  ondemand	= opts[:ondemand] || false

  if ondemand
    yield spinner
  else
    t = Thread.new { yield spinner }

    while t.alive?
      spinner.spinning
    end

    t.join
  end

  spinner.clean unless noclean
end

.spinner(opts = {}) ⇒ Object



42
43
44
45
# File 'lib/indicator/spinner.rb', line 42

def spinner opts={}
  opts[:frames] = set opts[:set] unless opts[:frames]
  Indicator::Spin.new opts
end