Class: Plop::Queue

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

Overview

Throw messages into a queue.

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(redis = self.class.redis, name: "queue") ⇒ Queue

Returns a new instance of Queue.



7
8
9
# File 'lib/plop.rb', line 7

def initialize(redis = self.class.redis, name: "queue")
  @redis, @name = redis, name
end

Class Method Details

.redisObject

Default redis instance.



35
36
37
# File 'lib/plop.rb', line 35

def self.redis
  Redis.new
end

Instance Method Details

#clearObject

Delete the list key from Redis.



30
31
32
# File 'lib/plop.rb', line 30

def clear
  @redis.del @name
end

#messagesObject

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



21
22
23
24
25
26
27
# File 'lib/plop.rb', line 21

def messages
  Enumerator.new do |y|
    loop do
      y << @redis.blpop(@name).last
    end
  end
end

#push(message) ⇒ Object Also known as: <<, plop

Publish a message to the queue.



12
13
14
# File 'lib/plop.rb', line 12

def push(message)
  @redis.lpush @name, message
end