class UAT::Discovery::API
An instance of this API
should be used to create all objects needed from this gem The configuration with which it is instantiated controls all instances
Public Class Methods
@param configuration [UAT::Discovery::Configuration]
# File lib/uat/discovery/api.rb, line 7 def initialize(configuration) @configuration = configuration end
Public Instance Methods
@return [UAT::Discovery::Interfaces::IClient] returns a client implementation based on configuration
# File lib/uat/discovery/api.rb, line 12 def new_client @configuration.local_mode? ? new_mock_client : new_real_client end
@return [UAT::Discovery::MockClient]
# File lib/uat/discovery/api.rb, line 27 def new_mock_client MockClient.new( @configuration.local_service_urls_keyed_by_service_name, self ) end
@return [UAT::Discovery::Client]
# File lib/uat/discovery/api.rb, line 17 def new_real_client Client.new( new_diplomat_service, @configuration.protocol, self, new_path_provider ) end
@param uri_string the uri string that should be converted to a URI object @return [URI::Generic]
# File lib/uat/discovery/api.rb, line 36 def new_uri(uri_string) URI(uri_string) end
Private Instance Methods
@return [Void] configures diplomat to use the configured discovery_url @private
# File lib/uat/discovery/api.rb, line 74 def configure_diplomat Diplomat.configure do |config| config.url = @configuration.url end end
@return [UAT::Discovery::ConfiguredSinglePathProvider] @private
# File lib/uat/discovery/api.rb, line 61 def new_configured_path_provider ConfiguredSinglePathProvider.new(@configuration.append_service_path) end
@return [Diplomat::Service] @private
# File lib/uat/discovery/api.rb, line 67 def new_diplomat_service configure_diplomat Diplomat::Service end
@return [UAT::Discovery::ConsulPathProvider] @private
# File lib/uat/discovery/api.rb, line 50 def new_discovery_path_provider ConsulPathProvider.new( Diplomat, @configuration.service_metadata_key_value_prefix, JSON, @configuration.metadata_property_for_path ) end
@return [UAT::Discovery::Interfaces::IPathProvider] @private
# File lib/uat/discovery/api.rb, line 44 def new_path_provider @configuration.discover_paths? ? new_discovery_path_provider : new_configured_path_provider end