class EmmyExtends::HTTPI::Adapter
Attributes
client[R]
Public Class Methods
new(request)
click to toggle source
# File lib/emmy_extends/httpi/adapter.rb, line 7 def initialize(request) @request = request end
Public Instance Methods
build_request_url(url)
click to toggle source
# File lib/emmy_extends/httpi/adapter.rb, line 57 def build_request_url(url) "%s://%s:%s%s" % [url.scheme, url.host, url.port, url.path] end
proxy_options()
click to toggle source
# File lib/emmy_extends/httpi/adapter.rb, line 18 def proxy_options { :host => @request.proxy.host, :port => @request.proxy.port, :authorization => [@request.proxy.user, @request.proxy.password] } end
request(type)
click to toggle source
# File lib/emmy_extends/httpi/adapter.rb, line 26 def request(type) if @request.on_body raise NotSupportedError, "EM-HTTP-Request does not support response streaming" end if @request.ssl? ssl = { cert_chain_file: @request.auth.ssl.ca_cert_file, verify_peer: @request.auth.ssl.verify_mode, ssl_version: @request.auth.ssl.ssl_version } end @http_request = EmmyHttp::Request.new( url: build_request_url(@request.url), type: type, timeouts: { connect: @request.open_timeout, inactivity: @request.read_timeout }, headers: @request.headers.to_hash, body: @request.body, ssl: ssl ) # FIXME: proxy support # proxy_options if @request.proxy #setup_proxy(options) if @request.proxy setup_http_auth if @request.auth.http? @http_operation = EmmyHttp::Operation.new(@http_request, EmmyExtends::EmHttpRequest::Adapter.new) @operation = HTTPI::Operation.new(@http_operation) @operation end
setup_http_auth()
click to toggle source
# File lib/emmy_extends/httpi/adapter.rb, line 11 def setup_http_auth unless @request.auth.type == :basic raise NotSupportedError, "EM-HTTP-Request does only support HTTP basic auth" end @http_request.headers[:authorization] = @request.auth.credentials end