class Columbo::Client::AMQP
Public Class Methods
new(connection_uri)
click to toggle source
# File lib/columbo/clients/amqp.rb, line 6 def initialize(connection_uri) @connection_uri = connection_uri end
Public Instance Methods
exchange(name) { |exchange_options| ... }
click to toggle source
# File lib/columbo/clients/amqp.rb, line 24 def exchange(name) raise ArgumentError, 'Please provide a name for the AMQP exchange' if name.nil? @channel = connection.create_channel if block_given? exchange_options = OpenStruct.new(arguments: {}) yield exchange_options type = exchange_options.delete_field(:type) @exchange = @channel.send(type, name, exchange_options.to_h) else raise ArgumentError, 'Please provide a block to configure the exchange' end end
publish(event, options = {})
click to toggle source
# File lib/columbo/clients/amqp.rb, line 10 def publish(event, options = {}) begin publish_event(event, options) true rescue Exception => e Columbo.logger.warn(e.message) false end end
publish!(event, options = {})
click to toggle source
# File lib/columbo/clients/amqp.rb, line 20 def publish!(event, options = {}) publish_event(event, options) end
Private Instance Methods
connection()
click to toggle source
# File lib/columbo/clients/amqp.rb, line 48 def connection @connection ||= Bunny.new(@connection_uri).start end
publish_event(event, options = {})
click to toggle source
# File lib/columbo/clients/amqp.rb, line 42 def publish_event(event, options = {}) raise 'No exchange has been configurated for the Columbo Client' if @exchange.nil? @exchange.publish(event.to_json, options) end