Class: Rivulet::SumWindow

Inherits:
Window
  • Object
show all
Defined in:
lib/rivulet/sum_window.rb

Instance Method Summary collapse

Methods inherited from Window

#empty?, #size

Constructor Details

#initializeSumWindow

Returns a new instance of SumWindow.



5
6
7
8
9
10
# File 'lib/rivulet/sum_window.rb', line 5

def initialize
  super
  @sum = 0
  @items = []
  @front = 0
end

Instance Method Details

#add(value) ⇒ Object



12
13
14
15
16
# File 'lib/rivulet/sum_window.rb', line 12

def add(value)
  @sum += value
  @items.push(value)
  super
end

#averageObject



28
29
30
# File 'lib/rivulet/sum_window.rb', line 28

def average
  @sum.fdiv(size) unless empty?
end

#evictObject



18
19
20
21
22
23
24
# File 'lib/rivulet/sum_window.rb', line 18

def evict
  if @front < @items.size
    @sum -= @items[@front]
    @front += 1
  end
  super
end

#sumObject



26
# File 'lib/rivulet/sum_window.rb', line 26

def sum = @sum