class Burrow::Server

Attributes

connection[R]

Public Class Methods

new(queue) click to toggle source
# File lib/burrow/server.rb, line 5
def initialize(queue)
  @connection = Burrow::Connection.new(queue)
end

Public Instance Methods

subscribe() { |request, request| ... } click to toggle source
# File lib/burrow/server.rb, line 9
def subscribe
  connection.queue.subscribe(block: true) do |delivery_info, properties, payload|
    request  = JSON.parse(payload)
    result   = yield [request['method'], request['params']]
    response = Burrow::Response.new(request['id'], result)
    publish_response(response, properties)
  end
end

Protected Instance Methods

publish_response(response, properties) click to toggle source
# File lib/burrow/server.rb, line 20
def publish_response(response, properties)
  connection.exchange.publish(
    response.json, {
      routing_key:    properties.reply_to,
      correlation_id: properties.correlation_id
    }
  )
end