class UAT::Discovery::Client
A discovery client that uses Diplomat to get urls for a named service @see [UAT::Discovery::IClient]
Public Class Methods
new(diplomat_service, protocol, api, path_provider)
click to toggle source
@param diplomat_service [Class<Diplomat::Service>] the diplomat service class reference @param protocol [String] the protocol that should be prepended to urls_for_service
@param api [#new_uri] a factory method for creating new URIs @param path_provider [UAT::Discovery::Interfaces::IPathProvider] provides path for after host/port
# File lib/uat/discovery/client.rb, line 10 def initialize(diplomat_service, protocol, api, path_provider) @diplomat_service = diplomat_service @protocol = protocol @api = api @path_provider = path_provider end
Public Instance Methods
urls_for_service(service_name)
click to toggle source
@see [UAT::Discovery::IClient]
# File lib/uat/discovery/client.rb, line 18 def urls_for_service(service_name) diplomat_services = @diplomat_service.get(service_name, :all) path = @path_provider.path_to_append_for(service_name) diplomat_services.map {|diplomat_service| @api.new_uri(uri_string(diplomat_service, path)) }.uniq end
Private Instance Methods
uri_string(diplomat_service, path)
click to toggle source
# File lib/uat/discovery/client.rb, line 26 def uri_string(diplomat_service, path) "#{@protocol}://#{diplomat_service.Address.to_s}:#{diplomat_service.ServicePort}#{path}" end