Class: BioDSL::Channel
- Inherits:
-
Object
- Object
- BioDSL::Channel
- Includes:
- Enumerable
- Defined in:
- lib/BioDSL/stream.rb
Class Method Summary collapse
Instance Method Summary collapse
- #each ⇒ Object
-
#initialize(queue) ⇒ Channel
constructor
A new instance of Channel.
- #read ⇒ Object
- #terminate ⇒ Object
- #write(obj) ⇒ Object (also: #<<)
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
.pair ⇒ Object
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
#each ⇒ Object
93 94 95 96 97 |
# File 'lib/BioDSL/stream.rb', line 93 def each while (obj = read) yield obj end end |
#read ⇒ Object
99 100 101 |
# File 'lib/BioDSL/stream.rb', line 99 def read @queue.pop end |
#terminate ⇒ Object
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 |