module Sinapse::Publishable
Public Class Methods
included(klass)
click to toggle source
# File lib/sinapse/publishable.rb, line 6 def self.included(klass) klass.__send__ :alias_method, :publish, :sinapse_publish unless klass.respond_to?(:publish) end
Private Class Methods
pack(message, options)
click to toggle source
# File lib/sinapse/publishable.rb, line 21 def self.pack(message, options) data = options.is_a?(Hash) && options[:event] ? [options[:event].to_s, message.to_s] : message.to_s MessagePack.pack(data) end
Public Instance Methods
sinapse_channel()
click to toggle source
# File lib/sinapse/publishable.rb, line 15 def sinapse_channel [self.class.name.underscore.singularize, self.to_param].join(':') end
sinapse_publish(message, options = nil)
click to toggle source
# File lib/sinapse/publishable.rb, line 10 def sinapse_publish(message, options = nil) data = Publishable.pack(message, options) Sinapse.redis { |redis| redis.publish(sinapse_channel, data) } end