class BioDSL::Channel

Public Class Methods

new(queue) click to toggle source
# File lib/BioDSL/stream.rb, line 89
def initialize(queue)
  @queue = queue
end
pair() click to toggle source
# File lib/BioDSL/stream.rb, line 83
def self.pair
  queue = Queue.new

  [new(queue), new(queue)]
end

Public Instance Methods

<<(obj)
Alias for: write
each() { |obj| ... } click to toggle source
# File lib/BioDSL/stream.rb, line 93
def each
  while (obj = read)
    yield obj
  end
end
read() click to toggle source
# File lib/BioDSL/stream.rb, line 99
def read
  @queue.pop
end
terminate() click to toggle source
# File lib/BioDSL/stream.rb, line 107
def terminate
  @queue << nil
end
write(obj) click to toggle source
# File lib/BioDSL/stream.rb, line 103
def write(obj)
  @queue << obj
end
Also aliased as: <<