def initialize(url = nil, options = nil)
if url.is_a?(Hash)
options = ConnectionOptions.from(url)
url = options.url
else
options = ConnectionOptions.from(options)
end
@parallel_manager = nil
@headers = Utils::Headers.new
@params = Utils::ParamsHash.new
@options = options.request
@ssl = options.ssl
@default_parallel_manager = options.parallel_manager
@builder = options.builder || begin
options.new_builder(block_given? ? Proc.new { |b| } : nil)
end
self.url_prefix = url || 'http:/'
@params.update(options.params) if options.params
@headers.update(options.headers) if options.headers
@proxy = nil
proxy(options.fetch(:proxy) {
uri = ENV['http_proxy']
if uri && !uri.empty?
uri = 'http://' + uri if uri !~ /^http/i
uri
end
})
yield(self) if block_given?
@headers[:user_agent] ||= "Faraday v#{VERSION}"
end