class Qless::ClientEvents

A class for interacting with events. Not meant to be instantiated directly, it's accessed through Client#events

Constants

EVENTS

Public Class Methods

new(redis) click to toggle source
# File lib/qless.rb, line 148
def initialize(redis)
  @redis   = redis
  @actions = {}
end

Public Instance Methods

listen() { |self| ... } click to toggle source
# File lib/qless.rb, line 153
def listen
  yield(self) if block_given?
  channels = EVENTS.map { |event| "ql:#{event}" }
  @redis.subscribe(channels) do |on|
    on.message do |channel, message|
      callback = @actions[channel.sub('ql:', '').to_sym]
      callback.call(message) unless callback.nil?
    end
  end
end
stop() click to toggle source
# File lib/qless.rb, line 164
def stop
  @redis.unsubscribe
end