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