Class: GiantClient::ExconAdapter
Instance Method Summary
collapse
#delete, #encode_query, #get, #head, #normalize_header, #normalize_header_hash, #post, #prepend_question_mark, #put, #stringify_query, #url_from_opts
Instance Method Details
#normalize_response(response) ⇒ Object
31
32
33
34
35
36
|
# File 'lib/giant_client/excon_adapter.rb', line 31
def normalize_response(response)
status_code = response.status
= (response.)
body = response.body
Response.new(status_code, , body)
end
|
#request(method, opts) ⇒ Object
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
# File 'lib/giant_client/excon_adapter.rb', line 7
def request(method, opts)
if BODYLESS_METHODS.include?(method)
raise GiantClient::Error::NotImplemented unless opts[:body] == ''
end
url = url_from_opts(opts)
params = {}
params[:method] = method.to_s
params[:headers] = opts[:headers]
params[:body] = opts[:body]
params[:read_timeout] = opts[:timeout]
params[:connect_timeout] = opts[:timeout]
params[:write_timeout] = opts[:timeout]
begin
response = Excon.new(url).request(params)
rescue Excon::Errors::Timeout
raise GiantClient::Error::Timeout, "the request timed out (timeout: #{opts[:timeout]}"
end
normalize_response(response)
end
|