class Redd::Clients::Base::Stream::PRAWBoundedQueueSet

A class similar to PRAW's implementation of a BoundedSet.

Public Class Methods

new(max, *args, &block) click to toggle source
Calls superclass method
# File lib/redd/clients/base/stream.rb, line 10
def initialize(max, *args, &block)
  @max = max
  @queue = []
  super(*args, &block)
end

Public Instance Methods

deq()
Alias for: dequeue
dequeue() click to toggle source

Remove the last element of the queue. @return The removed element.

# File lib/redd/clients/base/stream.rb, line 41
def dequeue
  element = @queue.shift
  delete(element)
  element
end
Also aliased as: deq
enq(element)
Alias for: enqueue
enq?(element)
Alias for: enqueue?
enqueue(element) click to toggle source

Add an element to the front if it isn't already in the queue. @param element @return [PRAWBoundedQueueSet] self

# File lib/redd/clients/base/stream.rb, line 19
def enqueue(element)
  @queue.push(element) if add?(element)
  dequeue! if size > @max
  self
end
Also aliased as: enq
enqueue?(element) click to toggle source

Add an element to the front if it isn't already in the queue. @param element @return [Boolean] Whether the element was added to the queue.

# File lib/redd/clients/base/stream.rb, line 29
def enqueue?(element)
  added = add?(element)
  if added
    @queue.push(element)
    dequeue if size > @max
  end
  added
end
Also aliased as: enq?