Class: BioDSL::Channel

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/BioDSL/stream.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(queue) ⇒ Channel

Returns a new instance of Channel.



89
90
91
# File 'lib/BioDSL/stream.rb', line 89

def initialize(queue)
  @queue = queue
end

Class Method Details

.pairObject



83
84
85
86
87
# File 'lib/BioDSL/stream.rb', line 83

def self.pair
  queue = Queue.new

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

Instance Method Details

#eachObject



93
94
95
96
97
# File 'lib/BioDSL/stream.rb', line 93

def each
  while (obj = read)
    yield obj
  end
end

#readObject



99
100
101
# File 'lib/BioDSL/stream.rb', line 99

def read
  @queue.pop
end

#terminateObject



107
108
109
# File 'lib/BioDSL/stream.rb', line 107

def terminate
  @queue << nil
end

#write(obj) ⇒ Object Also known as: <<



103
104
105
# File 'lib/BioDSL/stream.rb', line 103

def write(obj)
  @queue << obj
end