class Aggro::Node
Public: Represents an aggro server node.
Public Instance Methods
client()
click to toggle source
# File lib/aggro/node.rb, line 4 def client @client ||= Aggro::Client.new(endpoint) end
publisher_endpoint()
click to toggle source
# File lib/aggro/node.rb, line 8 def publisher_endpoint @publisher_endpoint ||= discover_publisher_endpoint end
to_s()
click to toggle source
# File lib/aggro/node.rb, line 12 def to_s id end
Private Instance Methods
discover_publisher_endpoint()
click to toggle source
# File lib/aggro/node.rb, line 18 def discover_publisher_endpoint message = Message::PublisherEndpointInquiry.new(Aggro.local_node.id) response = client.post(message) if response.is_a? Message::Endpoint port = URI.parse(response.endpoint).port URI.parse(endpoint).tap { |uri| uri.port = port }.to_s else fail "Could not discover publisher endpoint for #{id}" end end