class Plop::Queue

Throw messages into a queue.

Public Class Methods

new(redis = self.class.redis, name: "queue") click to toggle source
# File lib/plop.rb, line 7
def initialize(redis = self.class.redis, name: "queue")
  @redis, @name = redis, name
end
redis() click to toggle source

Default redis instance.

# File lib/plop.rb, line 35
def self.redis
  Redis.new
end

Public Instance Methods

<<(message)
Alias for: push
clear() click to toggle source

Delete the list key from Redis.

# File lib/plop.rb, line 30
def clear
  @redis.del @name
end
messages() click to toggle source

Listen for messages. This will block if there are no messages published to the queue.

# File lib/plop.rb, line 21
def messages
  Enumerator.new do |y|
    loop do
      y << @redis.blpop(@name).last
    end
  end
end
plop(message)

This needs to live up to its namesake.

Alias for: push
push(message) click to toggle source

Publish a message to the queue.

# File lib/plop.rb, line 12
def push(message)
  @redis.lpush @name, message
end
Also aliased as: <<, plop