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
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
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?