class Frappuccino::Zip

Public Class Methods

new(left, right) click to toggle source
# File lib/frappuccino/stream/zip.rb, line 3
def initialize(left, right)
  @left_buffer = []
  @right_buffer = []
  left.add_observer(self, :left_update)
  right.add_observer(self, :right_update)
end

Public Instance Methods

left_update(event) click to toggle source
# File lib/frappuccino/stream/zip.rb, line 10
def left_update(event)
  if @right_buffer.length > 0
    occur([event, @right_buffer.shift])
  else
    @left_buffer << event
  end
end
right_update(event) click to toggle source
# File lib/frappuccino/stream/zip.rb, line 18
def right_update(event)
  if @left_buffer.length > 0
    occur([@left_buffer.shift, event])
  else
    @right_buffer << event
  end
end