lib/powerbar.rb in powerbar-1.0.12 vs lib/powerbar.rb in powerbar-1.0.13
- old
+ new
@@ -35,11 +35,11 @@
@@exit_hooked = false
@state = Hashie::Mash.new( {
:time_last_show => Time.at(0), # <- don't mess with us
:time_last_update => Time.at(0), # <- unless you know
:time_start => nil, # <- what you're doing!
- :time_now => nil, # <-
+ :time_now => nil, # <-
:msg => 'PowerBar!',
:done => 0,
:total => :unknown,
:settings => {
:rate_sample_max_interval => 10, # See PowerBar::Rate
@@ -197,11 +197,11 @@
def update(opts={})
state.merge!(opts)
state.time_start ||= Time.now
state.time_now = Time.now
- @rate ||= PowerBar::Rate.new(state.time_now,
+ @rate ||= PowerBar::Rate.new(state.time_now,
state.settings.rate_sample_window,
state.settings.rate_sample_max_interval)
@rate.append(state.time_now, state.done)
end
@@ -307,11 +307,18 @@
def h_done
humanize_quantity(state.done)
end
def terminal_width
- ANSI::Terminal.terminal_width - 1
+ if /solaris/ =~ RUBY_PLATFORM && (`stty` =~ /\brows = (\d+).*\bcolumns = (\d+)/)
+ w, r = [$2, $1]
+ else
+ w, r = `stty size 2>/dev/null`.split.reverse
+ end
+ w = `tput cols` unless w
+ w = w.to_i if w
+ w
end
private
def state
@state
@@ -351,10 +358,10 @@
end
end
HQ_UNITS = %w(b k M G T).freeze
def humanize_quantity(number, format='%n%u')
- return nil if number.nil?
+ return nil if number.nil?
return nil if number.is_a? Float and (number.nan? or number.infinite?)
kilo = settings.kilo
return number if number.to_i < kilo
max_exp = HQ_UNITS.size - 1