module Vx::Lib::Consumer::Publish
Public Instance Methods
messages()
click to toggle source
# File lib/vx/lib/consumer/testing.rb, line 37 def messages Testing.messages[params.exchange_name] end
messages_and_options()
click to toggle source
# File lib/vx/lib/consumer/testing.rb, line 41 def messages_and_options Testing.messages_and_options[params.exchange_name] end
publish(payload, options = {})
click to toggle source
# File lib/vx/lib/consumer/publish.rb, line 8 def publish(payload, options = {}) session.open options ||= {} options[:routing_key] = params.routing_key if params.routing_key && !options.key?(:routing_key) options[:headers] = params.headers if params.headers && !options.key?(:headers) options[:content_type] ||= params.content_type || configuration.content_type options[:message_id] ||= SecureRandom.uuid name = params.exchange_name env = { payload: payload, exchange: name, consumer: params.consumer_name, properties: options, } with_middlewares :pub, env do session.with_pub_channel do |ch| encoded = encode_payload(payload, options[:content_type]) x = session.declare_exchange ch, name, params.exchange_options x.publish encoded, options end end end
Private Instance Methods
encode_payload(payload, content_type)
click to toggle source
# File lib/vx/lib/consumer/publish.rb, line 38 def encode_payload(payload, content_type) Serializer.pack(content_type, payload) end