Sha256: a731ab2c6d06f6268ca90f8d38bbb8148ecddf5cbcb090d6d501ac8fc2880bf4
Contents?: true
Size: 753 Bytes
Versions: 1
Compression:
Stored size: 753 Bytes
Contents
require "redis" require "json" module Juggernaut EVENTS = [ "juggernaut:subscribe", "juggernaut:unsubscribe", "juggernaut:custom" ] def redis_options @redis_options ||= {} end def publish(channels, data, options = {}) message = ({:channels => Array(channels).uniq, :data => data}).merge(options) redis.publish(key, message.to_json) end def subscribe Redis.new(redis_options).subscribe(*EVENTS) do |on| on.message do |type, msg| yield(type.gsub(/^juggernaut:/, "").to_sym, JSON.parse(msg)) end end end protected def redis @redis ||= Redis.new(redis_options) end def key(*args) args.unshift(:juggernaut).join(":") end extend self end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
juggernaut-2.0.1 | lib/juggernaut.rb |