powerbar 1.0.3 → 1.0.4
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 +2 -2
- data/bin/powerbar-demo +14 -2
- data/lib/powerbar.rb +21 -4
- data/lib/powerbar/version.rb +1 -1
- metadata +6 -6
data/README.rdoc
CHANGED
@@ -13,7 +13,7 @@ This is PowerBar - The last progressbar-library you'll ever need.
|
|
13
13
|
|
14
14
|
* Fully customizable; all output is template-driven.
|
15
15
|
|
16
|
-
* All output is optional. You may
|
16
|
+
* All output is optional. You may set PowerBar to silently collect progress
|
17
17
|
information (percentage-done, throughput, ETA, etc.) and then use the
|
18
18
|
computed values elsewhere in your app.
|
19
19
|
|
@@ -50,7 +50,7 @@ Then look at the {source-code}[https://github.com/busyloop/powerbar/blob/master/
|
|
50
50
|
|
51
51
|
p = PowerBar.new
|
52
52
|
|
53
|
-
# Override some
|
53
|
+
# Override some defaults to demonstrate how the settings work
|
54
54
|
p.settings.tty.finite.template.barchar = '*'
|
55
55
|
p.settings.tty.finite.template.padchar = '.'
|
56
56
|
|
data/bin/powerbar-demo
CHANGED
@@ -8,11 +8,23 @@ def demo_1
|
|
8
8
|
step = 1000
|
9
9
|
|
10
10
|
p = PowerBar.new
|
11
|
+
|
12
|
+
# This is how you alter the settings.
|
13
|
+
# (see the source-code for all available settings)
|
14
|
+
p.settings.tty.finite.show_eta = true
|
15
|
+
|
11
16
|
(0..total).step(step).each do |i|
|
12
17
|
p.show({:msg => 'DEMO 1 - Ten seconds of progress', :done => i, :total => total})
|
13
18
|
sleep 0.1
|
14
19
|
end
|
15
|
-
|
20
|
+
|
21
|
+
# close(true) will set the bar to 100% before closing.
|
22
|
+
# use this when you are sure your operation has finished but
|
23
|
+
# for some reason 'done' may still be smaller than 'total'.
|
24
|
+
#
|
25
|
+
# this is not necessary in this example, and usually a bad idea,
|
26
|
+
# but demonstrating here so you know it exists.
|
27
|
+
p.close(true)
|
16
28
|
end
|
17
29
|
|
18
30
|
# DEMO 2
|
@@ -236,7 +248,7 @@ def demo_10
|
|
236
248
|
sleep 0.1
|
237
249
|
end
|
238
250
|
p.wipe
|
239
|
-
|
251
|
+
puts "Thanks for watching! ;-)"
|
240
252
|
end
|
241
253
|
|
242
254
|
begin
|
data/lib/powerbar.rb
CHANGED
@@ -49,7 +49,8 @@ class PowerBar
|
|
49
49
|
:finite => { # <== Settings for a finite progress bar (when total != :unknown)
|
50
50
|
# The :output Proc is called to draw on the screen --------------------.
|
51
51
|
:output => Proc.new{ |s| $stderr.print s[0..terminal_width()-1] }, # <-'
|
52
|
-
:interval => 0.1,
|
52
|
+
:interval => 0.1, # Minimum interval between screen refreshes (in seconds)
|
53
|
+
:show_eta => true, # Set to false if you want to hide the ETA without changing the template
|
53
54
|
:template => { # <== template for a finite progress bar on a tty
|
54
55
|
:pre => "\e[1000D\e[?25l", # printed before the progress-bar
|
55
56
|
#
|
@@ -77,6 +78,7 @@ class PowerBar
|
|
77
78
|
:infinite => { # <== Settings for an infinite progress "bar" (when total is :unknown)
|
78
79
|
:output => Proc.new{ |s| $stderr.print s[0..terminal_width()-1] },
|
79
80
|
:interval => 0.1,
|
81
|
+
:show_eta => false,
|
80
82
|
:template => {
|
81
83
|
:pre => "\e[1000D\e[?25l",
|
82
84
|
:main => "${<msg>}: ${<done> }${<rate>/s }${<elapsed>}",
|
@@ -94,6 +96,7 @@ class PowerBar
|
|
94
96
|
# You may want to hook in your favorite Logger-Library here. ---.
|
95
97
|
:output => Proc.new{ |s| $stderr.print s }, # <----------------'
|
96
98
|
:interval => 1,
|
99
|
+
:show_eta => true,
|
97
100
|
:line_width => 78, # Maximum output line width
|
98
101
|
:template => {
|
99
102
|
:pre => '',
|
@@ -109,6 +112,7 @@ class PowerBar
|
|
109
112
|
:infinite => {
|
110
113
|
:output => Proc.new{ |s| $stderr.print s },
|
111
114
|
:interval => 1,
|
115
|
+
:show_eta => false,
|
112
116
|
:line_width => 78,
|
113
117
|
:template => {
|
114
118
|
:pre => "",
|
@@ -165,7 +169,19 @@ class PowerBar
|
|
165
169
|
|
166
170
|
# Print the close-template and defuse the exit-hook.
|
167
171
|
# Be a good citizen, always close your PowerBars!
|
168
|
-
def close
|
172
|
+
def close(fill=false)
|
173
|
+
show(
|
174
|
+
{
|
175
|
+
:done => fill && !state.total.is_a?(Symbol) ? state.total : state.done,
|
176
|
+
:tty => {
|
177
|
+
:finite => { :show_eta => false },
|
178
|
+
:infinite => { :show_eta => false },
|
179
|
+
},
|
180
|
+
:notty => {
|
181
|
+
:finite => { :show_eta => false },
|
182
|
+
:infinite => { :show_eta => false },
|
183
|
+
},
|
184
|
+
}, true)
|
169
185
|
scope.output.call(scope.template.close) unless scope.template.close.nil?
|
170
186
|
state.closed = true
|
171
187
|
end
|
@@ -190,8 +206,8 @@ class PowerBar
|
|
190
206
|
|
191
207
|
# Output the PowerBar.
|
192
208
|
# Returns true if bar was shown, false otherwise.
|
193
|
-
def show(opts={})
|
194
|
-
return false if scope.interval > Time.now - state.time_last_show
|
209
|
+
def show(opts={}, force=false)
|
210
|
+
return false if scope.interval > Time.now - state.time_last_show and force == false
|
195
211
|
|
196
212
|
update(opts)
|
197
213
|
hook_exit
|
@@ -246,6 +262,7 @@ class PowerBar
|
|
246
262
|
|
247
263
|
# returns nil when eta is < 1 second
|
248
264
|
def h_eta
|
265
|
+
return nil unless scope.show_eta
|
249
266
|
1 < eta ? humanize_interval(eta) : nil
|
250
267
|
end
|
251
268
|
|
data/lib/powerbar/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: powerbar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.4
|
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:
|
12
|
+
date: 2012-01-17 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: ansi
|
16
|
-
requirement: &
|
16
|
+
requirement: &17713320 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 1.4.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *17713320
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: hashie
|
27
|
-
requirement: &
|
27
|
+
requirement: &17712340 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,7 +32,7 @@ dependencies:
|
|
32
32
|
version: 1.1.0
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *17712340
|
36
36
|
description: The last progressbar-library you'll ever need
|
37
37
|
email:
|
38
38
|
- moe@busyloop.net
|