class Ros::Sdk::Client

Attributes

domain[RW]
force_path_style[RW]
host[RW]
port[RW]
scheme[RW]
service[RW]

Public Class Methods

configure(scheme: 'https', host: nil, domain: nil, port: nil, force_path_style: false, service: nil, connection_type: 'host') click to toggle source
# File lib/ros_sdk/sdk.rb, line 58
def configure(scheme: 'https', host: nil, domain: nil, port: nil, force_path_style: false, service: nil, connection_type: 'host')
  if descendants.any?
    descendants.map(&:to_s).sort.each do |client|
      client.constantize.configure(scheme: scheme, host: host, domain: domain, port: port, force_path_style: force_path_style, service: service)
      port += 1 if connection_type.eql? 'port'
    end
    return
  end
  self.scheme = scheme
  self.host = host
  self.domain = domain
  self.port = port
  self.force_path_style = force_path_style
  self.service = (service || parent.name.split('::').last).downcase
  Ros::Sdk.configured_services ||= {}
  Ros::Sdk.configured_services[self.service] = parent
  parent::Base.site = endpoint
  parent::Base.connection.use Ros::Sdk::Middleware
  Ros::Sdk.configured_services[self.service]
end
endpoint() click to toggle source
# File lib/ros_sdk/sdk.rb, line 79
def endpoint
  path = force_path_style ? "/#{service}" : nil
  chost = force_path_style ? host : (host || service)
  chost = [chost, domain].compact.join('.')
  "URI::#{scheme.upcase}".constantize.build({ host: chost, port: port, path: path }).to_s
rescue
  raise 'ClientConfigurationError'
end