Class: InThreads::QueueEnum

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

Overview

Enum out of queue

Instance Method Summary collapse

Constructor Details

#initialize(size = nil) ⇒ QueueEnum

Returns a new instance of QueueEnum.



152
153
154
# File 'lib/in_threads.rb', line 152

def initialize(size = nil)
  @queue = size ? SizedQueue.new(size) : Queue.new
end

Instance Method Details

#close(clear = false) ⇒ Object



167
168
169
170
171
# File 'lib/in_threads.rb', line 167

def close(clear = false)
  @closed = true
  @queue.clear if clear
  @queue.push(nil)
end

#each(&block) ⇒ Object



156
157
158
159
160
161
# File 'lib/in_threads.rb', line 156

def each(&block)
  while (args = @queue.pop)
    block.call(*args)
  end
  nil # non reusable
end

#push(*args) ⇒ Object



163
164
165
# File 'lib/in_threads.rb', line 163

def push(*args)
  @queue.push(args) unless @closed
end