faraday 0.12.2 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (105) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +350 -0
  3. data/LICENSE.md +1 -1
  4. data/README.md +22 -325
  5. data/Rakefile +7 -0
  6. data/examples/client_spec.rb +65 -0
  7. data/examples/client_test.rb +79 -0
  8. data/lib/faraday.rb +120 -188
  9. data/lib/faraday/adapter.rb +84 -22
  10. data/lib/faraday/adapter/em_http.rb +150 -104
  11. data/lib/faraday/adapter/em_http_ssl_patch.rb +24 -18
  12. data/lib/faraday/adapter/em_synchrony.rb +110 -63
  13. data/lib/faraday/adapter/em_synchrony/parallel_manager.rb +18 -15
  14. data/lib/faraday/adapter/excon.rb +98 -54
  15. data/lib/faraday/adapter/httpclient.rb +83 -59
  16. data/lib/faraday/adapter/net_http_persistent.rb +68 -27
  17. data/lib/faraday/adapter/patron.rb +86 -37
  18. data/lib/faraday/adapter/rack.rb +30 -13
  19. data/lib/faraday/adapter/test.rb +103 -62
  20. data/lib/faraday/adapter/typhoeus.rb +7 -115
  21. data/lib/faraday/adapter_registry.rb +30 -0
  22. data/lib/faraday/autoload.rb +46 -36
  23. data/lib/faraday/connection.rb +336 -177
  24. data/lib/faraday/dependency_loader.rb +37 -0
  25. data/lib/faraday/encoders/flat_params_encoder.rb +105 -0
  26. data/lib/faraday/encoders/nested_params_encoder.rb +176 -0
  27. data/lib/faraday/error.rb +126 -37
  28. data/lib/faraday/file_part.rb +128 -0
  29. data/lib/faraday/logging/formatter.rb +105 -0
  30. data/lib/faraday/methods.rb +6 -0
  31. data/lib/faraday/middleware.rb +19 -25
  32. data/lib/faraday/middleware_registry.rb +129 -0
  33. data/lib/faraday/options.rb +39 -193
  34. data/lib/faraday/options/connection_options.rb +22 -0
  35. data/lib/faraday/options/env.rb +181 -0
  36. data/lib/faraday/options/proxy_options.rb +28 -0
  37. data/lib/faraday/options/request_options.rb +22 -0
  38. data/lib/faraday/options/ssl_options.rb +59 -0
  39. data/lib/faraday/param_part.rb +53 -0
  40. data/lib/faraday/parameters.rb +4 -196
  41. data/lib/faraday/rack_builder.rb +77 -63
  42. data/lib/faraday/request.rb +94 -32
  43. data/lib/faraday/request/authorization.rb +44 -30
  44. data/lib/faraday/request/basic_authentication.rb +14 -7
  45. data/lib/faraday/request/instrumentation.rb +45 -27
  46. data/lib/faraday/request/multipart.rb +86 -48
  47. data/lib/faraday/request/retry.rb +209 -134
  48. data/lib/faraday/request/token_authentication.rb +15 -10
  49. data/lib/faraday/request/url_encoded.rb +43 -23
  50. data/lib/faraday/response.rb +27 -23
  51. data/lib/faraday/response/logger.rb +22 -69
  52. data/lib/faraday/response/raise_error.rb +49 -14
  53. data/lib/faraday/utils.rb +38 -247
  54. data/lib/faraday/utils/headers.rb +139 -0
  55. data/lib/faraday/utils/params_hash.rb +61 -0
  56. data/lib/faraday/version.rb +5 -0
  57. data/spec/external_adapters/faraday_specs_setup.rb +14 -0
  58. data/spec/faraday/adapter/em_http_spec.rb +47 -0
  59. data/spec/faraday/adapter/em_synchrony_spec.rb +16 -0
  60. data/spec/faraday/adapter/excon_spec.rb +49 -0
  61. data/spec/faraday/adapter/httpclient_spec.rb +73 -0
  62. data/spec/faraday/adapter/net_http_persistent_spec.rb +57 -0
  63. data/spec/faraday/adapter/net_http_spec.rb +64 -0
  64. data/spec/faraday/adapter/patron_spec.rb +18 -0
  65. data/spec/faraday/adapter/rack_spec.rb +8 -0
  66. data/spec/faraday/adapter/test_spec.rb +260 -0
  67. data/spec/faraday/adapter/typhoeus_spec.rb +7 -0
  68. data/spec/faraday/adapter_registry_spec.rb +28 -0
  69. data/spec/faraday/adapter_spec.rb +55 -0
  70. data/spec/faraday/composite_read_io_spec.rb +80 -0
  71. data/spec/faraday/connection_spec.rb +691 -0
  72. data/spec/faraday/error_spec.rb +60 -0
  73. data/spec/faraday/middleware_spec.rb +52 -0
  74. data/spec/faraday/options/env_spec.rb +70 -0
  75. data/spec/faraday/options/options_spec.rb +297 -0
  76. data/spec/faraday/options/proxy_options_spec.rb +37 -0
  77. data/spec/faraday/options/request_options_spec.rb +19 -0
  78. data/spec/faraday/params_encoders/flat_spec.rb +42 -0
  79. data/spec/faraday/params_encoders/nested_spec.rb +142 -0
  80. data/spec/faraday/rack_builder_spec.rb +345 -0
  81. data/spec/faraday/request/authorization_spec.rb +88 -0
  82. data/spec/faraday/request/instrumentation_spec.rb +76 -0
  83. data/spec/faraday/request/multipart_spec.rb +302 -0
  84. data/spec/faraday/request/retry_spec.rb +242 -0
  85. data/spec/faraday/request/url_encoded_spec.rb +83 -0
  86. data/spec/faraday/request_spec.rb +120 -0
  87. data/spec/faraday/response/logger_spec.rb +220 -0
  88. data/spec/faraday/response/middleware_spec.rb +68 -0
  89. data/spec/faraday/response/raise_error_spec.rb +169 -0
  90. data/spec/faraday/response_spec.rb +75 -0
  91. data/spec/faraday/utils/headers_spec.rb +82 -0
  92. data/spec/faraday/utils_spec.rb +56 -0
  93. data/spec/faraday_spec.rb +37 -0
  94. data/spec/spec_helper.rb +132 -0
  95. data/spec/support/disabling_stub.rb +14 -0
  96. data/spec/support/fake_safe_buffer.rb +15 -0
  97. data/spec/support/helper_methods.rb +133 -0
  98. data/spec/support/shared_examples/adapter.rb +105 -0
  99. data/spec/support/shared_examples/params_encoder.rb +18 -0
  100. data/spec/support/shared_examples/request_method.rb +262 -0
  101. data/spec/support/streaming_response_checker.rb +35 -0
  102. data/spec/support/webmock_rack_app.rb +68 -0
  103. metadata +109 -10
  104. data/lib/faraday/adapter/net_http.rb +0 -135
  105. data/lib/faraday/upload_io.rb +0 -67
data/Rakefile ADDED
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rspec/core/rake_task'
4
+
5
+ RSpec::Core::RakeTask.new(:spec)
6
+
7
+ task default: :spec
@@ -0,0 +1,65 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Requires Ruby with rspec and faraday gems.
4
+ # rspec client_spec.rb
5
+
6
+ require 'faraday'
7
+ require 'json'
8
+
9
+ # Example API client
10
+ class Client
11
+ def initialize(conn)
12
+ @conn = conn
13
+ end
14
+
15
+ def sushi(jname)
16
+ res = @conn.get("/#{jname}")
17
+ data = JSON.parse(res.body)
18
+ data['name']
19
+ end
20
+ end
21
+
22
+ RSpec.describe Client do
23
+ let(:stubs) { Faraday::Adapter::Test::Stubs.new }
24
+ let(:conn) { Faraday.new { |b| b.adapter(:test, stubs) } }
25
+ let(:client) { Client.new(conn) }
26
+
27
+ it 'parses name' do
28
+ stubs.get('/ebi') do |env|
29
+ # optional: you can inspect the Faraday::Env
30
+ expect(env.url.path).to eq('/ebi')
31
+ [
32
+ 200,
33
+ { 'Content-Type': 'application/javascript' },
34
+ '{"name": "shrimp"}'
35
+ ]
36
+ end
37
+
38
+ # uncomment to trigger stubs.verify_stubbed_calls failure
39
+ # stubs.get('/unused') { [404, {}, ''] }
40
+
41
+ expect(client.sushi('ebi')).to eq('shrimp')
42
+ stubs.verify_stubbed_calls
43
+ end
44
+
45
+ it 'handles 404' do
46
+ stubs.get('/ebi') do
47
+ [
48
+ 404,
49
+ { 'Content-Type': 'application/javascript' },
50
+ '{}'
51
+ ]
52
+ end
53
+ expect(client.sushi('ebi')).to be_nil
54
+ stubs.verify_stubbed_calls
55
+ end
56
+
57
+ it 'handles exception' do
58
+ stubs.get('/ebi') do
59
+ raise Faraday::ConnectionFailed, nil
60
+ end
61
+
62
+ expect { client.sushi('ebi') }.to raise_error(Faraday::ConnectionFailed)
63
+ stubs.verify_stubbed_calls
64
+ end
65
+ end
@@ -0,0 +1,79 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Requires Ruby with test-unit and faraday gems.
4
+ # ruby client_test.rb
5
+
6
+ require 'faraday'
7
+ require 'json'
8
+ require 'test/unit'
9
+
10
+ # Example API client
11
+ class Client
12
+ def initialize(conn)
13
+ @conn = conn
14
+ end
15
+
16
+ def sushi(jname)
17
+ res = @conn.get("/#{jname}")
18
+ data = JSON.parse(res.body)
19
+ data['name']
20
+ end
21
+ end
22
+
23
+ # Example API client test
24
+ class ClientTest < Test::Unit::TestCase
25
+ def test_sushi_name
26
+ stubs = Faraday::Adapter::Test::Stubs.new
27
+ stubs.get('/ebi') do |env|
28
+ # optional: you can inspect the Faraday::Env
29
+ assert_equal '/ebi', env.url.path
30
+ [
31
+ 200,
32
+ { 'Content-Type': 'application/javascript' },
33
+ '{"name": "shrimp"}'
34
+ ]
35
+ end
36
+
37
+ # uncomment to trigger stubs.verify_stubbed_calls failure
38
+ # stubs.get('/unused') { [404, {}, ''] }
39
+
40
+ cli = client(stubs)
41
+ assert_equal 'shrimp', cli.sushi('ebi')
42
+ stubs.verify_stubbed_calls
43
+ end
44
+
45
+ def test_sushi_404
46
+ stubs = Faraday::Adapter::Test::Stubs.new
47
+ stubs.get('/ebi') do
48
+ [
49
+ 404,
50
+ { 'Content-Type': 'application/javascript' },
51
+ '{}'
52
+ ]
53
+ end
54
+
55
+ cli = client(stubs)
56
+ assert_nil cli.sushi('ebi')
57
+ stubs.verify_stubbed_calls
58
+ end
59
+
60
+ def test_sushi_exception
61
+ stubs = Faraday::Adapter::Test::Stubs.new
62
+ stubs.get('/ebi') do
63
+ raise Faraday::ConnectionFailed, nil
64
+ end
65
+
66
+ cli = client(stubs)
67
+ assert_raise Faraday::ConnectionFailed do
68
+ cli.sushi('ebi')
69
+ end
70
+ stubs.verify_stubbed_calls
71
+ end
72
+
73
+ def client(stubs)
74
+ conn = Faraday.new do |builder|
75
+ builder.adapter :test, stubs
76
+ end
77
+ Client.new(conn)
78
+ end
79
+ end
data/lib/faraday.rb CHANGED
@@ -1,244 +1,176 @@
1
- require 'thread'
1
+ # frozen_string_literal: true
2
+
2
3
  require 'cgi'
4
+ require 'date'
3
5
  require 'set'
4
6
  require 'forwardable'
7
+ require 'faraday/middleware_registry'
8
+ require 'faraday/dependency_loader'
9
+
10
+ unless defined?(::Faraday::Timer)
11
+ require 'timeout'
12
+ ::Faraday::Timer = Timeout
13
+ end
5
14
 
6
- # Public: This is the main namespace for Faraday. You can either use it to
7
- # create Faraday::Connection objects, or access it directly.
15
+ require 'faraday/version'
16
+ require 'faraday/methods'
17
+ require 'faraday/utils'
18
+ require 'faraday/options'
19
+ require 'faraday/connection'
20
+ require 'faraday/rack_builder'
21
+ require 'faraday/parameters'
22
+ require 'faraday/middleware'
23
+ require 'faraday/adapter'
24
+ require 'faraday/request'
25
+ require 'faraday/response'
26
+ require 'faraday/error'
27
+ require 'faraday/file_part'
28
+ require 'faraday/param_part'
29
+
30
+ require 'faraday/net_http'
31
+
32
+ # This is the main namespace for Faraday.
8
33
  #
9
- # Examples
34
+ # It provides methods to create {Connection} objects, and HTTP-related
35
+ # methods to use directly.
10
36
  #
37
+ # @example Helpful class methods for easy usage
11
38
  # Faraday.get "http://faraday.com"
12
39
  #
40
+ # @example Helpful class method `.new` to create {Connection} objects.
13
41
  # conn = Faraday.new "http://faraday.com"
14
42
  # conn.get '/'
15
43
  #
16
44
  module Faraday
17
- VERSION = "0.12.2"
18
-
19
45
  class << self
20
- # Public: Gets or sets the root path that Faraday is being loaded from.
21
- # This is the root from where the libraries are auto-loaded from.
46
+ # The root path that Faraday is being loaded from.
47
+ #
48
+ # This is the root from where the libraries are auto-loaded.
49
+ #
50
+ # @return [String]
22
51
  attr_accessor :root_path
23
52
 
24
- # Public: Gets or sets the path that the Faraday libs are loaded from.
53
+ # Gets or sets the path that the Faraday libs are loaded from.
54
+ # @return [String]
25
55
  attr_accessor :lib_path
26
56
 
27
- # Public: Gets or sets the Symbol key identifying a default Adapter to use
28
- # for the default Faraday::Connection.
57
+ # @overload default_adapter
58
+ # Gets the Symbol key identifying a default Adapter to use
59
+ # for the default {Faraday::Connection}. Defaults to `:net_http`.
60
+ # @return [Symbol] the default adapter
61
+ # @overload default_adapter=(adapter)
62
+ # Updates default adapter while resetting {.default_connection}.
63
+ # @return [Symbol] the new default_adapter.
29
64
  attr_reader :default_adapter
30
65
 
31
- # Public: Sets the default Faraday::Connection for simple scripts that
32
- # access the Faraday constant directly.
33
- #
34
- # Faraday.get "https://faraday.com"
66
+ # Documented below, see default_connection
35
67
  attr_writer :default_connection
36
68
 
37
- # Public: Initializes a new Faraday::Connection.
38
- #
39
- # url - The optional String base URL to use as a prefix for all
40
- # requests. Can also be the options Hash.
41
- # options - The optional Hash used to configure this Faraday::Connection.
42
- # Any of these values will be set on every request made, unless
43
- # overridden for a specific request.
44
- # :url - String base URL.
45
- # :params - Hash of URI query unencoded key/value pairs.
46
- # :headers - Hash of unencoded HTTP header key/value pairs.
47
- # :request - Hash of request options.
48
- # :ssl - Hash of SSL options.
49
- # :proxy - Hash of Proxy options.
50
- #
51
- # Examples
52
- #
69
+ # Tells Faraday to ignore the environment proxy (http_proxy).
70
+ # Defaults to `false`.
71
+ # @return [Boolean]
72
+ attr_accessor :ignore_env_proxy
73
+
74
+ # Initializes a new {Connection}.
75
+ #
76
+ # @param url [String,Hash] The optional String base URL to use as a prefix
77
+ # for all requests. Can also be the options Hash. Any of these
78
+ # values will be set on every request made, unless overridden
79
+ # for a specific request.
80
+ # @param options [Hash]
81
+ # @option options [String] :url Base URL
82
+ # @option options [Hash] :params Hash of unencoded URI query params.
83
+ # @option options [Hash] :headers Hash of unencoded HTTP headers.
84
+ # @option options [Hash] :request Hash of request options.
85
+ # @option options [Hash] :ssl Hash of SSL options.
86
+ # @option options [Hash] :proxy Hash of Proxy options.
87
+ # @return [Faraday::Connection]
88
+ #
89
+ # @example With an URL argument
53
90
  # Faraday.new 'http://faraday.com'
54
- #
55
- # # http://faraday.com?page=1
56
- # Faraday.new 'http://faraday.com', :params => {:page => 1}
57
- #
58
- # # same
59
- #
60
- # Faraday.new :url => 'http://faraday.com',
61
- # :params => {:page => 1}
62
- #
63
- # Returns a Faraday::Connection.
64
- def new(url = nil, options = nil)
65
- block = block_given? ? Proc.new : nil
66
- options = options ? default_connection_options.merge(options) : default_connection_options
91
+ # # => Faraday::Connection to http://faraday.com
92
+ #
93
+ # @example With an URL argument and an options hash
94
+ # Faraday.new 'http://faraday.com', params: { page: 1 }
95
+ # # => Faraday::Connection to http://faraday.com?page=1
96
+ #
97
+ # @example With everything in an options hash
98
+ # Faraday.new url: 'http://faraday.com',
99
+ # params: { page: 1 }
100
+ # # => Faraday::Connection to http://faraday.com?page=1
101
+ def new(url = nil, options = {}, &block)
102
+ options = default_connection_options.merge(options)
67
103
  Faraday::Connection.new(url, options, &block)
68
104
  end
69
105
 
106
+ # @private
70
107
  # Internal: Requires internal Faraday libraries.
71
108
  #
72
- # *libs - One or more relative String names to Faraday classes.
73
- #
74
- # Returns nothing.
109
+ # @param libs [Array] one or more relative String names to Faraday classes.
110
+ # @return [void]
75
111
  def require_libs(*libs)
76
112
  libs.each do |lib|
77
113
  require "#{lib_path}/#{lib}"
78
114
  end
79
115
  end
80
116
 
81
- # Public: Updates default adapter while resetting
82
- # #default_connection.
83
- #
84
- # Returns the new default_adapter.
117
+ alias require_lib require_libs
118
+
119
+ # Documented elsewhere, see default_adapter reader
85
120
  def default_adapter=(adapter)
86
121
  @default_connection = nil
87
122
  @default_adapter = adapter
88
123
  end
89
124
 
90
- alias require_lib require_libs
91
-
92
- def respond_to?(symbol, include_private = false)
125
+ def respond_to_missing?(symbol, include_private = false)
93
126
  default_connection.respond_to?(symbol, include_private) || super
94
127
  end
95
128
 
96
- private
97
- # Internal: Proxies method calls on the Faraday constant to
98
- # #default_connection.
99
- def method_missing(name, *args, &block)
100
- default_connection.send(name, *args, &block)
129
+ # @overload default_connection
130
+ # Gets the default connection used for simple scripts.
131
+ # @return [Faraday::Connection] a connection configured with
132
+ # the default_adapter.
133
+ # @overload default_connection=(connection)
134
+ # @param connection [Faraday::Connection]
135
+ # Sets the default {Faraday::Connection} for simple scripts that
136
+ # access the Faraday constant directly, such as
137
+ # <code>Faraday.get "https://faraday.com"</code>.
138
+ def default_connection
139
+ @default_connection ||= Connection.new(default_connection_options)
101
140
  end
102
- end
103
-
104
- self.root_path = File.expand_path "..", __FILE__
105
- self.lib_path = File.expand_path "../faraday", __FILE__
106
- self.default_adapter = :net_http
107
-
108
- # Gets the default connection used for simple scripts.
109
- #
110
- # Returns a Faraday::Connection, configured with the #default_adapter.
111
- def self.default_connection
112
- @default_connection ||= Connection.new(default_connection_options)
113
- end
114
-
115
- # Gets the default connection options used when calling Faraday#new.
116
- #
117
- # Returns a Faraday::ConnectionOptions.
118
- def self.default_connection_options
119
- @default_connection_options ||= ConnectionOptions.new
120
- end
121
-
122
- # Public: Sets the default options used when calling Faraday#new.
123
- def self.default_connection_options=(options)
124
- @default_connection = nil
125
- @default_connection_options = ConnectionOptions.from(options)
126
- end
127
141
 
128
- unless const_defined? :Timer
129
- require 'timeout'
130
- Timer = Timeout
131
- end
132
-
133
- # Public: Adds the ability for other modules to register and lookup
134
- # middleware classes.
135
- module MiddlewareRegistry
136
- # Public: Register middleware class(es) on the current module.
137
- #
138
- # mapping - A Hash mapping Symbol keys to classes. Classes can be expressed
139
- # as fully qualified constant, or a Proc that will be lazily
140
- # called to return the former.
141
- #
142
- # Examples
142
+ # Gets the default connection options used when calling {Faraday#new}.
143
143
  #
144
- # module Faraday
145
- # class Whatever
146
- # # Middleware looked up by :foo returns Faraday::Whatever::Foo.
147
- # register_middleware :foo => Foo
148
- #
149
- # # Middleware looked up by :bar returns Faraday::Whatever.const_get(:Bar)
150
- # register_middleware :bar => :Bar
151
- #
152
- # # Middleware looked up by :baz requires 'baz' and returns Faraday::Whatever.const_get(:Baz)
153
- # register_middleware :baz => [:Baz, 'baz']
154
- # end
155
- # end
156
- #
157
- # Returns nothing.
158
- def register_middleware(autoload_path = nil, mapping = nil)
159
- if mapping.nil?
160
- mapping = autoload_path
161
- autoload_path = nil
162
- end
163
- middleware_mutex do
164
- @middleware_autoload_path = autoload_path if autoload_path
165
- (@registered_middleware ||= {}).update(mapping)
166
- end
144
+ # @return [Faraday::ConnectionOptions]
145
+ def default_connection_options
146
+ @default_connection_options ||= ConnectionOptions.new
167
147
  end
168
148
 
169
- # Public: Lookup middleware class with a registered Symbol shortcut.
170
- #
171
- # key - The Symbol key for the registered middleware.
172
- #
173
- # Examples
149
+ # Sets the default options used when calling {Faraday#new}.
174
150
  #
175
- # module Faraday
176
- # class Whatever
177
- # register_middleware :foo => Foo
178
- # end
179
- # end
180
- #
181
- # Faraday::Whatever.lookup_middleware(:foo)
182
- # # => Faraday::Whatever::Foo
183
- #
184
- # Returns a middleware Class.
185
- def lookup_middleware(key)
186
- load_middleware(key) ||
187
- raise(Faraday::Error.new("#{key.inspect} is not registered on #{self}"))
188
- end
189
-
190
- def middleware_mutex(&block)
191
- @middleware_mutex ||= begin
192
- require 'monitor'
193
- Monitor.new
194
- end
195
- @middleware_mutex.synchronize(&block)
151
+ # @param options [Hash, Faraday::ConnectionOptions]
152
+ def default_connection_options=(options)
153
+ @default_connection = nil
154
+ @default_connection_options = ConnectionOptions.from(options)
196
155
  end
197
156
 
198
- def fetch_middleware(key)
199
- defined?(@registered_middleware) && @registered_middleware[key]
200
- end
157
+ private
201
158
 
202
- def load_middleware(key)
203
- value = fetch_middleware(key)
204
- case value
205
- when Module
206
- value
207
- when Symbol, String
208
- middleware_mutex do
209
- @registered_middleware[key] = const_get(value)
210
- end
211
- when Proc
212
- middleware_mutex do
213
- @registered_middleware[key] = value.call
214
- end
215
- when Array
216
- middleware_mutex do
217
- const, path = value
218
- if root = @middleware_autoload_path
219
- path = "#{root}/#{path}"
220
- end
221
- require(path)
222
- @registered_middleware[key] = const
223
- end
224
- load_middleware(key)
159
+ # Internal: Proxies method calls on the Faraday constant to
160
+ # .default_connection.
161
+ def method_missing(name, *args, &block)
162
+ if default_connection.respond_to?(name)
163
+ default_connection.send(name, *args, &block)
164
+ else
165
+ super
225
166
  end
226
167
  end
227
168
  end
228
169
 
229
- def self.const_missing(name)
230
- if name.to_sym == :Builder
231
- warn "Faraday::Builder is now Faraday::RackBuilder."
232
- const_set name, RackBuilder
233
- else
234
- super
235
- end
236
- end
237
-
238
- require_libs "utils", "options", "connection", "rack_builder", "parameters",
239
- "middleware", "adapter", "request", "response", "upload_io", "error"
170
+ self.ignore_env_proxy = false
171
+ self.root_path = File.expand_path __dir__
172
+ self.lib_path = File.expand_path 'faraday', __dir__
173
+ self.default_adapter = :net_http
240
174
 
241
- if !ENV["FARADAY_NO_AUTOLOAD"]
242
- require_lib 'autoload'
243
- end
175
+ require_lib 'autoload' unless ENV['FARADAY_NO_AUTOLOAD']
244
176
  end