class Rester::Client::Adapters::HttpAdapter::Connection
Constants
- DEFAULT_DATA_HEADERS
Attributes
timeout[R]
url[R]
Public Class Methods
new(url, opts={})
click to toggle source
# File lib/rester/client/adapters/http_adapter/connection.rb, line 15 def initialize(url, opts={}) @url = url.is_a?(String) ? URI(url) : url @url.path = @url.path[0..-2] if @url.path[-1] == '/' @timeout = opts[:timeout] end
Public Instance Methods
request(verb, path, params={})
click to toggle source
# File lib/rester/client/adapters/http_adapter/connection.rb, line 21 def request(verb, path, params={}) _request( verb, _path(path, params[:query]), _headers(verb, params[:headers]), params[:data] ) end
Private Instance Methods
_headers(verb, headers)
click to toggle source
# File lib/rester/client/adapters/http_adapter/connection.rb, line 45 def _headers(verb, headers) if [:post, :put].include?(verb) _prepare_data_headers(headers) else _prepare_headers(headers) end end
_http()
click to toggle source
# File lib/rester/client/adapters/http_adapter/connection.rb, line 57 def _http Net::HTTP.new(url.hostname, url.port).tap { |http| if (http.use_ssl=url.is_a?(URI::HTTPS)) http.verify_mode = OpenSSL::SSL::VERIFY_PEER http.cert_store = OpenSSL::X509::Store.new.tap { |s| s.set_default_paths } end http.open_timeout = http.read_timeout = timeout } end
_path(path, query=nil)
click to toggle source
# File lib/rester/client/adapters/http_adapter/connection.rb, line 38 def _path(path, query=nil) u = url.dup u.path = Utils.join_paths(u.path, path) u.query = query if query u.request_uri end
_prepare_data_headers(headers)
click to toggle source
# File lib/rester/client/adapters/http_adapter/connection.rb, line 53 def _prepare_data_headers(headers) DEFAULT_DATA_HEADERS.merge(_prepare_headers(headers)) end
_prepare_headers(headers)
click to toggle source
# File lib/rester/client/adapters/http_adapter/connection.rb, line 71 def _prepare_headers(headers) Hash[(headers || {}).map { |k, v| [k.to_s, v.to_s] }] end
_request(verb, path, headers, data)
click to toggle source
# File lib/rester/client/adapters/http_adapter/connection.rb, line 32 def _request(verb, path, headers, data) _http.public_send(verb, *[path, data, headers].compact) rescue Net::ReadTimeout, Net::OpenTimeout fail Errors::TimeoutError end