indicator 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.rdoc CHANGED
@@ -45,3 +45,19 @@ Manual control
45
45
  sleep 0.2
46
46
  end
47
47
  spinner.clean
48
+
49
+ Predefined sets
50
+ Indicator::spin :set => :p do
51
+ 10.times do
52
+ sleep 0.5
53
+ end
54
+ end
55
+
56
+ Available sets: :x :< :> :V :dots :bars :p :bqpd :-
57
+
58
+ Custom set
59
+ Indicator::spin :frames => %w{ * + } do
60
+ 10.times do
61
+ sleep 0.5
62
+ end
63
+ end
data/lib/indicator.rb CHANGED
@@ -1,31 +1,60 @@
1
- require File.expand_path('../indicator/spin', __FILE__)
2
-
3
- module Indicator
4
- class << self
5
-
6
- def spinner
7
- Indicator::Spin.new
8
- end
9
-
10
- def spin opts={}, &blk
11
- spinner = opts[:spinner] || self.spinner
12
- noclean = opts[:noclean] || false
13
- ondemand = opts[:ondemand] || false
14
-
15
- if ondemand
16
- yield spinner
17
- else
18
- t = Thread.new { yield spinner }
19
-
20
- while t.alive?
21
- spinner.spinning
22
- end
23
-
24
- t.join
25
- end
26
-
27
- spinner.clean unless noclean
28
- end
29
-
30
- end
31
- end
1
+ # encoding: utf-8
2
+ require File.expand_path('../indicator/spin', __FILE__)
3
+
4
+ module Indicator
5
+ class << self
6
+
7
+ def set name = :bar
8
+ case name
9
+ when :bar
10
+ %w{ | / - \\ }
11
+ when :x
12
+ %w{ + X }
13
+ when :<
14
+ %w{ | < }
15
+ when :>
16
+ %w{ | > }
17
+ when :V
18
+ %w{ V > ^ }
19
+ when :dots
20
+ %w{ : . }
21
+ when :bars
22
+ %w{ - = }
23
+ when :p
24
+ %w{ p b d q }
25
+ when :bqpd
26
+ %w{ bq pd }
27
+ when :-
28
+ %w{ - ~ }
29
+ else
30
+ %w{ | / - \\ }
31
+ end
32
+ end
33
+
34
+ def spinner opts={}
35
+ opts[:frames] = set opts[:set] unless opts[:frames]
36
+ Indicator::Spin.new opts
37
+ end
38
+
39
+ def spin opts={}, &blk
40
+ spinner = opts[:spinner] || self.spinner(opts)
41
+ noclean = opts[:noclean] || false
42
+ ondemand = opts[:ondemand] || false
43
+
44
+ if ondemand
45
+ yield spinner
46
+ else
47
+ t = Thread.new { yield spinner }
48
+
49
+ while t.alive?
50
+ spinner.spinning
51
+ end
52
+
53
+ t.join
54
+ end
55
+
56
+ spinner.clean unless noclean
57
+ end
58
+
59
+ end
60
+ end
@@ -1,3 +1,3 @@
1
1
  module Indicator
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: indicator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-02-04 00:00:00.000000000Z
12
+ date: 2012-02-05 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &7808580 !ruby/object:Gem::Requirement
16
+ requirement: &8710280 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,7 +21,7 @@ dependencies:
21
21
  version: 2.7.0
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *7808580
24
+ version_requirements: *8710280
25
25
  description: Sometimes you need to display activity on the text console to inform
26
26
  the user that the program is actually doing something. Be funny with a lot predefined
27
27
  sets or make you own widget to display an animation text during a long-running process