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

new(configuration) click to toggle source

@param configuration [UAT::Discovery::Configuration]

# File lib/uat/discovery/api.rb, line 7
def initialize(configuration)
  @configuration = configuration
end

Public Instance Methods

new_client() click to toggle source

@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
new_mock_client() click to toggle source

@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
new_real_client() click to toggle source

@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
new_uri(uri_string) click to toggle source

@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

configure_diplomat() click to toggle source

@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
new_configured_path_provider() click to toggle source

@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
new_diplomat_service() click to toggle source

@return [Diplomat::Service] @private

# File lib/uat/discovery/api.rb, line 67
def new_diplomat_service
  configure_diplomat
  Diplomat::Service
end
new_discovery_path_provider() click to toggle source

@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
new_path_provider() click to toggle source

@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