Method: Faraday::Connection#initialize

Defined in:
lib/faraday/connection.rb

#initialize(url = nil, options = nil) {|_self| ... } ⇒ Connection

Public: Initializes a new Faraday::Connection.

url - URI or String base URL to use as a prefix for all

requests (optional).

options - Hash or Faraday::ConnectionOptions.

:url     - URI or String base URL (default: "http:/").
:params  - Hash of URI query unencoded key/value pairs.
:headers - Hash of unencoded HTTP header key/value pairs.
:request - Hash of request options.
:ssl     - Hash of SSL options.
:proxy   - URI, String or Hash of HTTP proxy options
          (default: "http_proxy" environment variable).
          :uri      - URI or String
          :user     - String (optional)
          :password - String (optional)

Yields:

  • (_self)

Yield Parameters:



57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# File 'lib/faraday/connection.rb', line 57

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
    # pass an empty block to Builder so it doesn't assume default middleware
    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