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