powerbar 1.0.2 → 1.0.3
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 +9 -3
- data/lib/powerbar.rb +13 -15
- data/lib/powerbar/version.rb +1 -1
- metadata +6 -6
data/README.rdoc
CHANGED
@@ -17,9 +17,9 @@ This is PowerBar - The last progressbar-library you'll ever need.
|
|
17
17
|
information (percentage-done, throughput, ETA, etc.) and then use the
|
18
18
|
computed values elsewhere in your app.
|
19
19
|
|
20
|
-
* All state can be updated at any time. If you're monitoring a
|
21
|
-
multi-part operation you can change the status-message of a running
|
22
|
-
PowerBar
|
20
|
+
* All state can be updated at any time. For example: If you're monitoring a
|
21
|
+
multi-part operation then you can change the status-message of a running
|
22
|
+
PowerBar to reflect the current state.
|
23
23
|
|
24
24
|
== Screenshot
|
25
25
|
|
@@ -49,6 +49,12 @@ Then look at the {source-code}[https://github.com/busyloop/powerbar/blob/master/
|
|
49
49
|
step = 1000
|
50
50
|
|
51
51
|
p = PowerBar.new
|
52
|
+
|
53
|
+
# Override some default values to demonstrate how the settings work
|
54
|
+
p.settings.tty.finite.template.barchar = '*'
|
55
|
+
p.settings.tty.finite.template.padchar = '.'
|
56
|
+
|
57
|
+
# Dummy loop to simulate some progress
|
52
58
|
(0..total).step(step).each do |i|
|
53
59
|
p.show(:msg => 'DEMO 1 - Ten seconds of progress', :done => i, :total => total)
|
54
60
|
sleep 0.1
|
data/lib/powerbar.rb
CHANGED
@@ -44,6 +44,7 @@ class PowerBar
|
|
44
44
|
:rate_sample_max_interval => 10, # See PowerBar::Rate
|
45
45
|
:rate_sample_window => 6, # See PowerBar::Rate
|
46
46
|
:force_mode => nil, # set to :tty or :notty to force either mode
|
47
|
+
:kilo => 1024, # Change this to 1000 when measuring network traffic or such.
|
47
48
|
:tty => { # <== Settings when stdout is a tty
|
48
49
|
:finite => { # <== Settings for a finite progress bar (when total != :unknown)
|
49
50
|
# The :output Proc is called to draw on the screen --------------------.
|
@@ -182,8 +183,8 @@ class PowerBar
|
|
182
183
|
state.time_now = Time.now
|
183
184
|
|
184
185
|
@rate ||= PowerBar::Rate.new(state.time_now,
|
185
|
-
|
186
|
-
|
186
|
+
state.settings.rate_sample_window,
|
187
|
+
state.settings.rate_sample_max_interval)
|
187
188
|
@rate.append(state.time_now, state.done)
|
188
189
|
end
|
189
190
|
|
@@ -219,15 +220,11 @@ class PowerBar
|
|
219
220
|
# Returns nil if the bar-length would be == 0.
|
220
221
|
def bar
|
221
222
|
return nil if state.total.is_a? Symbol
|
222
|
-
|
223
|
-
|
224
|
-
barlen
|
225
|
-
|
226
|
-
|
227
|
-
barchar = scope.template.barchar
|
228
|
-
padchar = scope.template.padchar
|
229
|
-
fill = [0,[(done.to_f/total*barlen).to_i,barlen].min].max
|
230
|
-
thebar = barchar * fill + padchar * [barlen - fill,0].max
|
223
|
+
skel = render_template(:main, skip=[:bar])
|
224
|
+
lwid = state.scope_at[0] == :tty ? terminal_width() : scope.line_width
|
225
|
+
barlen = [lwid - skel.gsub(STRIP_ANSI, '').length, 0].max
|
226
|
+
fill = [0,[(state.done.to_f/state.total*barlen).to_i,barlen].min].max
|
227
|
+
thebar = scope.template.barchar * fill + scope.template.padchar * [barlen - fill,0].max
|
231
228
|
thebar.length == 0 ? nil : thebar
|
232
229
|
end
|
233
230
|
|
@@ -328,16 +325,17 @@ class PowerBar
|
|
328
325
|
end
|
329
326
|
|
330
327
|
HQ_UNITS = %w(b k M G T).freeze
|
331
|
-
def humanize_quantity(number, format='%n%u'
|
328
|
+
def humanize_quantity(number, format='%n%u')
|
332
329
|
return nil if number.nil?
|
333
330
|
return nil if number.is_a? Float and (number.nan? or number.infinite?)
|
334
|
-
|
331
|
+
kilo = settings.kilo
|
332
|
+
return number if number.to_i < kilo
|
335
333
|
|
336
334
|
max_exp = HQ_UNITS.size - 1
|
337
335
|
number = Float(number)
|
338
|
-
exponent = (Math.log(number) / Math.log(
|
336
|
+
exponent = (Math.log(number) / Math.log(kilo)).to_i
|
339
337
|
exponent = max_exp if exponent > max_exp
|
340
|
-
number /=
|
338
|
+
number /= kilo ** exponent
|
341
339
|
|
342
340
|
unit = HQ_UNITS[exponent]
|
343
341
|
return format.gsub(/%n/, number.round(1).to_s).gsub(/%u/, unit)
|
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.3
|
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: 2011-12-
|
12
|
+
date: 2011-12-08 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: ansi
|
16
|
-
requirement: &
|
16
|
+
requirement: &18446200 !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: *18446200
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: hashie
|
27
|
-
requirement: &
|
27
|
+
requirement: &18432940 !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: *18432940
|
36
36
|
description: The last progressbar-library you'll ever need
|
37
37
|
email:
|
38
38
|
- moe@busyloop.net
|