class Infobar::Timer

def <<(x)

def <<(x)
  @n +=1
  @x += (x - @x) / @n
  @fifo << rate
  self
end

def add(time, count)

def add(time, count)
  case @n
  when 0
    @n += 1
  when 1
    @n -= 1
    duration = time - @time_last
    self << (duration / @count_last)
    self << (duration / count.to_f)
  else
    duration = time - @time_last
    self << (duration / count.to_f)
  end
  @time_last, @count_last = time, count
  self
end

def average_time

def average_time
  @x
end

def initialize

def initialize
  @n    = 0
  @x    = 0.0
  @fifo = Infobar::FIFO.new(30)
end

def rate

def rate
  if @x.zero?
    0.0
  else
    1.0 / @x
  end
end