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.



177
178
179
# File 'lib/in_threads.rb', line 177

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

Instance Method Details

#close(clear = false) ⇒ Object



192
193
194
195
196
# File 'lib/in_threads.rb', line 192

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

#each(&block) ⇒ Object



181
182
183
184
185
186
# File 'lib/in_threads.rb', line 181

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

#push(*args) ⇒ Object



188
189
190
# File 'lib/in_threads.rb', line 188

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