class Burrow::Client
Attributes
connection[R]
request[R]
Public Class Methods
new(queue)
click to toggle source
# File lib/burrow/client.rb, line 5 def initialize(queue) @connection = Burrow::Connection.new(queue) end
Public Instance Methods
publish(method, params={})
click to toggle source
# File lib/burrow/client.rb, line 9 def publish(method, params={}) @request = Burrow::Request.new(method, params) publish_request subscribe_response end
Protected Instance Methods
publish_request()
click to toggle source
# File lib/burrow/client.rb, line 17 def publish_request connection.exchange.publish( request.json, { correlation_id: request.id, reply_to: connection.return_queue.name, routing_key: connection.queue.name } ) end
subscribe_response()
click to toggle source
# File lib/burrow/client.rb, line 27 def subscribe_response response = nil connection.return_queue.subscribe(block: true) do |delivery_info, properties, payload| if properties[:correlation_id] == request.id response = payload delivery_info.consumer.cancel end end JSON.parse(response) end