class RequestQueue::Queue

Public Class Methods

new() click to toggle source
# File lib/request_queue/queue.rb, line 5
def initialize
  @queue = Set.new
end

Public Instance Methods

<<(message) click to toggle source
# File lib/request_queue/queue.rb, line 9
def <<(message)
  @queue << message
end
process()
Alias for: process!
process!() click to toggle source
# File lib/request_queue/queue.rb, line 13
def process!
  filter.each(&:call)
end
Also aliased as: process

Private Instance Methods

filter() click to toggle source
# File lib/request_queue/queue.rb, line 20
def filter
  klasses = @queue.map(&:class).to_a.uniq

  klasses.inject(@queue) do |acc, klass|
    if klass.respond_to?(:filter)
      klass.filter(acc)
    else
      acc
    end
  end
end