spin_to_win 0.1.1 → 0.1.2
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.
- checksums.yaml +4 -4
- data/README.md +44 -12
- data/lib/spin_to_win.rb +8 -4
- data/lib/spin_to_win/spinner.rb +6 -6
- data/lib/spin_to_win/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7b84f4987c35b23cc49413617bdf1043c94498b3
|
4
|
+
data.tar.gz: e65cebf46ab31258ffe4ff7f1c7bf99487c9a6ba
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 10b6315dd2a62e925a2d0be6c4c8da9c344fcd0eb71efa4d365efa586b2b0b2cbcfc3e3cef229aa77c70ed122fbc28372e0c1f558a40006c29349d5f00901a6e
|
7
|
+
data.tar.gz: 40335c0824f51195f50e5aedf7b405493a51310d6ee3db2de606558d25cfb2bf9a487a2b3d2f929a193e62073f0ff52a18d747ab175bee6f5707f8a3fe2c303b
|
data/README.md
CHANGED
@@ -3,23 +3,23 @@
|
|
3
3
|
Simple ruby spinner that allows on the fly notifications in the format of:
|
4
4
|
|
5
5
|
:title :spinner :finished of :todo [:banner]
|
6
|
-
|
7
|
-
The bare bones spinner is
|
8
6
|
|
9
|
-
|
10
|
-
|
7
|
+
The bare bones spinner is
|
8
|
+
|
9
|
+
SpinToWin.with_spinner { sleep 1 }
|
10
|
+
|
11
11
|
\
|
12
12
|
|
13
|
-
With a title is
|
13
|
+
With a title is
|
14
14
|
|
15
15
|
SpinToWin.with_spinner('Zzzz') { sleep 1 }`
|
16
|
-
|
16
|
+
|
17
17
|
Zzzz \
|
18
18
|
|
19
19
|
With a title and banner:
|
20
20
|
|
21
21
|
SpinToWin.with_spinner('Zzzz') { |spinner| spinner.banner('sleepy'); sleep 1 }
|
22
|
-
|
22
|
+
|
23
23
|
Zzzz \ [sleepy]
|
24
24
|
|
25
25
|
The title is persistent but the banner can be changed with calls to the yielded `spinner`
|
@@ -28,22 +28,54 @@ With title, banner, and todos
|
|
28
28
|
|
29
29
|
SpinToWin.with_spinner('Zzzz') do |spinner|
|
30
30
|
spinner.increment_todo!(3)
|
31
|
-
|
31
|
+
|
32
32
|
spinner.banner('snore')
|
33
33
|
sleep 1
|
34
34
|
spinner.increment_done!
|
35
|
-
|
35
|
+
|
36
36
|
spinner.banner('dream')
|
37
37
|
sleep 1
|
38
38
|
spinner.increment_done!
|
39
|
-
|
39
|
+
|
40
40
|
spinner.banner('wake up!')
|
41
41
|
sleep 1
|
42
42
|
spinner.increment_done!
|
43
43
|
end
|
44
|
-
|
44
|
+
|
45
45
|
Zzzz \ 3 of 3 [wake up!]
|
46
46
|
|
47
|
+
## Threads
|
48
|
+
|
49
|
+
Spin to Win is built using [Celluloid](https://github.com/celluloid/celluloid) and was designed to be used by multiple threads.
|
50
|
+
|
51
|
+
SpinToWin.with_spinner('Dreaming about:') do |spinner|
|
52
|
+
futures = [
|
53
|
+
Celluloid::Future.new do
|
54
|
+
SpinToWin.add_banner('ham')
|
55
|
+
sleep 1
|
56
|
+
SpinToWin.increment_done!
|
57
|
+
SpinToWin.remove_banner('ham')
|
58
|
+
end,
|
59
|
+
Celluloid::Future.new do
|
60
|
+
SpinToWin.add_banner('sheep')
|
61
|
+
sleep 2
|
62
|
+
SpinToWin.increment_done!
|
63
|
+
SpinToWin.remove_banner('sheep')
|
64
|
+
end,
|
65
|
+
Celluloid::Future.new do
|
66
|
+
SpinToWin.add_banner('socks')
|
67
|
+
sleep 3
|
68
|
+
SpinToWin.increment_done!
|
69
|
+
SpinToWin.remove_banner('sock')
|
70
|
+
end
|
71
|
+
]
|
72
|
+
SpinToWin.increment_todo!(futures.size)
|
73
|
+
|
74
|
+
futures.each { |f| f.value }
|
75
|
+
end
|
76
|
+
|
77
|
+
Dreaming about: \ 0 of 3 [ham|sheep|socks]
|
78
|
+
|
47
79
|
## Installation
|
48
80
|
|
49
81
|
Add this line to your application's Gemfile:
|
@@ -61,7 +93,7 @@ Or install it yourself as:
|
|
61
93
|
$ gem install spin_to_win
|
62
94
|
|
63
95
|
## Usage
|
64
|
-
|
96
|
+
|
65
97
|
Fancy Demo \ 1 of 3 [step 1]
|
66
98
|
|
67
99
|
## Development
|
data/lib/spin_to_win.rb
CHANGED
@@ -5,12 +5,12 @@ require 'spin_to_win/spinner'
|
|
5
5
|
# Spinner
|
6
6
|
module SpinToWin
|
7
7
|
class << self
|
8
|
-
def increment_todo!
|
9
|
-
Celluloid::Notifications.notifier.publish('spinner_increment_todo')
|
8
|
+
def increment_todo!(count = 1)
|
9
|
+
Celluloid::Notifications.notifier.publish('spinner_increment_todo', count)
|
10
10
|
end
|
11
11
|
|
12
|
-
def increment_done!
|
13
|
-
Celluloid::Notifications.notifier.publish('spinner_increment_done')
|
12
|
+
def increment_done!(count = 1)
|
13
|
+
Celluloid::Notifications.notifier.publish('spinner_increment_done', count)
|
14
14
|
end
|
15
15
|
|
16
16
|
def complete!
|
@@ -25,6 +25,10 @@ module SpinToWin
|
|
25
25
|
Celluloid::Notifications.notifier.publish('spinner_set_banner', msg)
|
26
26
|
end
|
27
27
|
|
28
|
+
def add_banner(msg)
|
29
|
+
Celluloid::Notifications.notifier.publish('spinner_add_banner', msg)
|
30
|
+
end
|
31
|
+
|
28
32
|
def remove_banner(msg)
|
29
33
|
Celluloid::Notifications.notifier.publish('spinner_remove_banner', msg)
|
30
34
|
end
|
data/lib/spin_to_win/spinner.rb
CHANGED
@@ -93,14 +93,12 @@ module SpinToWin
|
|
93
93
|
@banner_queue = [banner]
|
94
94
|
end
|
95
95
|
|
96
|
-
|
97
|
-
|
98
|
-
def on_increment_todo(*_args)
|
99
|
-
increment_todo!
|
96
|
+
def on_increment_todo(*args)
|
97
|
+
increment_todo!(args[1] || 1)
|
100
98
|
end
|
101
99
|
|
102
|
-
def on_increment_done(*
|
103
|
-
increment_done!
|
100
|
+
def on_increment_done(*args)
|
101
|
+
increment_done!(args[1] || 1)
|
104
102
|
end
|
105
103
|
|
106
104
|
def on_output(*args)
|
@@ -123,6 +121,8 @@ module SpinToWin
|
|
123
121
|
complete!
|
124
122
|
end
|
125
123
|
|
124
|
+
private
|
125
|
+
|
126
126
|
def init_spinner
|
127
127
|
@run = true
|
128
128
|
@todo_count = @done_count = 0
|
data/lib/spin_to_win/version.rb
CHANGED