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 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 at any time.
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
- state.settings.rate_sample_window,
186
- state.settings.rate_sample_max_interval)
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
- blank = render_template(:main, skip=[:bar])
223
- twid = state.scope_at[0] == :tty ? terminal_width() : scope.line_width
224
- barlen = [twid - blank.gsub(STRIP_ANSI, '').length, 0].max
225
- done = state.done
226
- total = state.total
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', base=1024)
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
- return number if number.to_i < base
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(base)).to_i
336
+ exponent = (Math.log(number) / Math.log(kilo)).to_i
339
337
  exponent = max_exp if exponent > max_exp
340
- number /= base ** exponent
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)
@@ -1,3 +1,3 @@
1
1
  class Powerbar
2
- VERSION = "1.0.2"
2
+ VERSION = "1.0.3"
3
3
  end
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.2
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-07 00:00:00.000000000Z
12
+ date: 2011-12-08 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: ansi
16
- requirement: &9714940 !ruby/object:Gem::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: *9714940
24
+ version_requirements: *18446200
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: hashie
27
- requirement: &9713660 !ruby/object:Gem::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: *9713660
35
+ version_requirements: *18432940
36
36
  description: The last progressbar-library you'll ever need
37
37
  email:
38
38
  - moe@busyloop.net