Module: Yao::Client

Defined in:
lib/yao/client.rb

Defined Under Namespace

Classes: ClientSet

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.default_clientYao::Client::ClientSet



91
92
93
# File 'lib/yao/client.rb', line 91

def default_client
  @default_client
end

Class Method Details

.client_generatorYao::Plugins::DefaultClientGenerator



94
95
96
# File 'lib/yao/client.rb', line 94

def client_generator
  Plugins::Registry.instance[:client_generator][Yao.config.client_generator].new
end

.client_optionsHash

generate Hash options for Faraday.new

Returns:

  • (Hash)


119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
# File 'lib/yao/client.rb', line 119

def client_options
  opt = {}

  if Yao.config.timeout
    opt.merge!({ request: { timeout: Yao.config.timeout }})
  end

  # Client Certificate Authentication
  if Yao.config.client_cert && Yao.config.client_key
    cert = OpenSSL::X509::Certificate.new(File.read(Yao.config.client_cert))
    key  = OpenSSL::PKey.read(File.read(Yao.config.client_key))
    h = {
      client_cert: cert,
      client_key:  key,
    }

    h[:ca_file] = Yao.config.ca_cert if Yao.config.ca_cert
    opt.merge!(ssl: h)
  end
  opt
end

.gen_client(endpoint, token: nil) ⇒ Faraday::Connection

Parameters:

  • endpoint (String)
  • token (String) (defaults to: nil)

Returns:

  • (Faraday::Connection)


101
102
103
104
105
# File 'lib/yao/client.rb', line 101

def gen_client(endpoint, token: nil)
  Faraday.new( endpoint, client_options ) do |f|
    client_generator.call(f, token)
  end
end

.reset_client(new_endpoint = nil) ⇒ Object

Parameters:

  • (String)


108
109
110
111
112
113
114
115
# File 'lib/yao/client.rb', line 108

def reset_client(new_endpoint=nil)
  set = ClientSet.new
  endpoint = {
    "default" => {public_url: new_endpoint || Yao.config.endpoint}
  }
  set.register_endpoints(endpoint)
  self.default_client = set
end