Module: Evrone::Common::AMQP::Consumer::Publish

Included in:
ClassMethods
Defined in:
lib/evrone/common/amqp/consumer/publish.rb

Instance Method Summary collapse

Instance Method Details

#publish(message, options = nil) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/evrone/common/amqp/consumer/publish.rb', line 6

def publish(message, options = nil)
  session.open

  options ||= {}
  options[:routing_key]  = routing_key if routing_key && !options.key?(:routing_key)
  options[:headers]      = headers     if headers && !options.key?(:headers)
  options[:content_type] ||= content_type || config.content_type

  x = declare_exchange

  run_callbacks(:publish, message: message, exchange: x, name: consumer_name) do
    m = serialize_message message, options[:content_type]
    x.publish m, options
  end

  debug "published #{message.inspect} to #{x.name}"
  self
end

#serialize_message(message, content_type) ⇒ Object



25
26
27
# File 'lib/evrone/common/amqp/consumer/publish.rb', line 25

def serialize_message(message, content_type)
  Common::AMQP::Formatter.pack(content_type, message)
end