class MicroBunny::Event
Attributes
channel[R]
Public Class Methods
exchange(name)
click to toggle source
# File lib/microbunny/event.rb, line 7 def self.exchange(name) define_method(:exchange) do name.to_sym end end
new(channel)
click to toggle source
# File lib/microbunny/event.rb, line 13 def initialize(channel) @channel = channel end
Public Instance Methods
name()
click to toggle source
# File lib/microbunny/event.rb, line 30 def name self.class.name.gsub(/Event$/, '') end
publish(message, record_id = nil)
click to toggle source
# File lib/microbunny/event.rb, line 17 def publish(message, record_id = nil) x = channel.topic(self.exchange) payload = build_payload(name, message) if record_id record = Record.new(record_id) payload.record = record.id x.publish(payload.serialize, routing_key: record.routing_key_for(self)) else x.publish(payload.serialize, routing_key: name) end end
Private Instance Methods
build_payload(name, message)
click to toggle source
# File lib/microbunny/event.rb, line 38 def build_payload(name, message) Payload.new(event: name, message: message) end
serialize(payload)
click to toggle source
# File lib/microbunny/event.rb, line 42 def serialize(payload) payload.to_json end