Class: WorkQueue::BoundedQueue

Inherits:
Object
  • Object
show all
Defined in:
lib/work_queue.rb

Instance Method Summary collapse

Constructor Details

#initialize(limit) ⇒ BoundedQueue

Returns a new instance of BoundedQueue.



88
89
90
91
# File 'lib/work_queue.rb', line 88

def initialize(limit)
  @limit = limit
  @elements = []
end

Instance Method Details

#empty?Boolean

Returns:

  • (Boolean)


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

def empty?
  @elements.empty?
end

#push(task, force:) ⇒ Object

Raises:



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

def push(task, force:)
  raise WorkQueueFull if !force && @elements.size >= @limit
  @elements << task
  nil
end

#shiftObject



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

def shift
  @elements.shift
end

#sizeObject



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

def size
  @elements.size
end