class GiantClient::ExconAdapter
Public Instance Methods
normalize_response(response)
click to toggle source
# File lib/giant_client/excon_adapter.rb, line 31 def normalize_response(response) status_code = response.status headers = normalize_header_hash(response.headers) body = response.body Response.new(status_code, headers, body) end
request(method, opts)
click to toggle source
# 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