class RoadForest::HTTP::ExconAdapter
Attributes
connection_defaults[R]
Public Class Methods
new(url)
click to toggle source
# File lib/roadforest/http/adapters/excon.rb, line 7 def initialize(url) @root_url = Addressable::URI.parse(url) @connections = Hash.new{|h,k| h[k] = build_site_connection(k)} @connection_defaults = {} end
Public Instance Methods
build_site_connection(site)
click to toggle source
# File lib/roadforest/http/adapters/excon.rb, line 14 def build_site_connection(site) Excon.new(site.to_s, @connection_defaults) end
do_request(request)
click to toggle source
# File lib/roadforest/http/adapters/excon.rb, line 27 def do_request(request) uri = @root_url.join(request.url) connection = site_connection(uri) excon_response = connection.request( :method => request.method, :path => uri.path, :headers => {"Host" => uri.host}.merge(request.headers), :body => request.body ) response = HTTP::Response.new if excon_response.body.is_a? String response.body_string = excon_response.body else response.body = excon_response.body end response.headers = excon_response.headers response.status = excon_response.status return response end
reset_connections()
click to toggle source
# File lib/roadforest/http/adapters/excon.rb, line 18 def reset_connections @connections.clear end
site_connection(uri)
click to toggle source
# File lib/roadforest/http/adapters/excon.rb, line 22 def site_connection(uri) uri = Addressable::URI.parse(uri) @connections[uri.normalized_site] end