Sha256: 7ee09f0ed7244a6064cc16c0a609be1eba2486a122c31342bdfe6650f7b4608f
Contents?: true
Size: 676 Bytes
Versions: 1
Compression:
Stored size: 676 Bytes
Contents
require "redis" require "json" module Juggernaut 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(key(:subscribe), key(:unsubscribe)) 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.0.beta3 | lib/juggernaut.rb |