faraday 0.11.0 → 1.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/CHANGELOG.md +380 -0
- data/LICENSE.md +1 -1
- data/README.md +25 -229
- data/Rakefile +7 -0
- data/examples/client_spec.rb +65 -0
- data/examples/client_test.rb +79 -0
- data/lib/faraday/adapter/httpclient.rb +83 -59
- data/lib/faraday/adapter/patron.rb +92 -36
- data/lib/faraday/adapter/rack.rb +30 -13
- data/lib/faraday/adapter/test.rb +103 -62
- data/lib/faraday/adapter/typhoeus.rb +7 -115
- data/lib/faraday/adapter.rb +77 -22
- data/lib/faraday/adapter_registry.rb +30 -0
- data/lib/faraday/autoload.rb +42 -36
- data/lib/faraday/connection.rb +351 -167
- data/lib/faraday/dependency_loader.rb +37 -0
- data/lib/faraday/encoders/flat_params_encoder.rb +105 -0
- data/lib/faraday/encoders/nested_params_encoder.rb +176 -0
- data/lib/faraday/error.rb +127 -38
- data/lib/faraday/file_part.rb +128 -0
- data/lib/faraday/logging/formatter.rb +105 -0
- data/lib/faraday/methods.rb +6 -0
- data/lib/faraday/middleware.rb +19 -25
- data/lib/faraday/middleware_registry.rb +129 -0
- data/lib/faraday/options/connection_options.rb +22 -0
- data/lib/faraday/options/env.rb +181 -0
- data/lib/faraday/options/proxy_options.rb +32 -0
- data/lib/faraday/options/request_options.rb +22 -0
- data/lib/faraday/options/ssl_options.rb +59 -0
- data/lib/faraday/options.rb +58 -207
- data/lib/faraday/param_part.rb +53 -0
- data/lib/faraday/parameters.rb +4 -196
- data/lib/faraday/rack_builder.rb +84 -48
- data/lib/faraday/request/authorization.rb +44 -30
- data/lib/faraday/request/basic_authentication.rb +14 -7
- data/lib/faraday/request/instrumentation.rb +45 -27
- data/lib/faraday/request/multipart.rb +88 -45
- data/lib/faraday/request/retry.rb +211 -126
- data/lib/faraday/request/token_authentication.rb +15 -10
- data/lib/faraday/request/url_encoded.rb +43 -23
- data/lib/faraday/request.rb +94 -32
- data/lib/faraday/response/logger.rb +22 -69
- data/lib/faraday/response/raise_error.rb +49 -14
- data/lib/faraday/response.rb +27 -23
- data/lib/faraday/utils/headers.rb +139 -0
- data/lib/faraday/utils/params_hash.rb +61 -0
- data/lib/faraday/utils.rb +38 -238
- data/lib/faraday/version.rb +5 -0
- data/lib/faraday.rb +124 -187
- data/spec/external_adapters/faraday_specs_setup.rb +14 -0
- data/spec/faraday/adapter/em_http_spec.rb +47 -0
- data/spec/faraday/adapter/em_synchrony_spec.rb +16 -0
- data/spec/faraday/adapter/excon_spec.rb +49 -0
- data/spec/faraday/adapter/httpclient_spec.rb +73 -0
- data/spec/faraday/adapter/net_http_spec.rb +64 -0
- data/spec/faraday/adapter/patron_spec.rb +18 -0
- data/spec/faraday/adapter/rack_spec.rb +8 -0
- data/spec/faraday/adapter/test_spec.rb +260 -0
- data/spec/faraday/adapter/typhoeus_spec.rb +7 -0
- data/spec/faraday/adapter_registry_spec.rb +28 -0
- data/spec/faraday/adapter_spec.rb +55 -0
- data/spec/faraday/composite_read_io_spec.rb +80 -0
- data/spec/faraday/connection_spec.rb +736 -0
- data/spec/faraday/error_spec.rb +60 -0
- data/spec/faraday/middleware_spec.rb +52 -0
- data/spec/faraday/options/env_spec.rb +70 -0
- data/spec/faraday/options/options_spec.rb +297 -0
- data/spec/faraday/options/proxy_options_spec.rb +44 -0
- data/spec/faraday/options/request_options_spec.rb +19 -0
- data/spec/faraday/params_encoders/flat_spec.rb +42 -0
- data/spec/faraday/params_encoders/nested_spec.rb +142 -0
- data/spec/faraday/rack_builder_spec.rb +345 -0
- data/spec/faraday/request/authorization_spec.rb +88 -0
- data/spec/faraday/request/instrumentation_spec.rb +76 -0
- data/spec/faraday/request/multipart_spec.rb +302 -0
- data/spec/faraday/request/retry_spec.rb +242 -0
- data/spec/faraday/request/url_encoded_spec.rb +83 -0
- data/spec/faraday/request_spec.rb +120 -0
- data/spec/faraday/response/logger_spec.rb +220 -0
- data/spec/faraday/response/middleware_spec.rb +68 -0
- data/spec/faraday/response/raise_error_spec.rb +169 -0
- data/spec/faraday/response_spec.rb +75 -0
- data/spec/faraday/utils/headers_spec.rb +82 -0
- data/spec/faraday/utils_spec.rb +56 -0
- data/spec/faraday_spec.rb +37 -0
- data/spec/spec_helper.rb +132 -0
- data/spec/support/disabling_stub.rb +14 -0
- data/spec/support/fake_safe_buffer.rb +15 -0
- data/spec/support/helper_methods.rb +133 -0
- data/spec/support/shared_examples/adapter.rb +105 -0
- data/spec/support/shared_examples/params_encoder.rb +18 -0
- data/spec/support/shared_examples/request_method.rb +262 -0
- data/spec/support/streaming_response_checker.rb +35 -0
- data/spec/support/webmock_rack_app.rb +68 -0
- metadata +164 -16
- data/lib/faraday/adapter/em_http.rb +0 -243
- data/lib/faraday/adapter/em_http_ssl_patch.rb +0 -56
- data/lib/faraday/adapter/em_synchrony/parallel_manager.rb +0 -66
- data/lib/faraday/adapter/em_synchrony.rb +0 -106
- data/lib/faraday/adapter/excon.rb +0 -80
- data/lib/faraday/adapter/net_http.rb +0 -135
- data/lib/faraday/adapter/net_http_persistent.rb +0 -50
- data/lib/faraday/upload_io.rb +0 -67
data/lib/faraday/autoload.rb
CHANGED
@@ -1,84 +1,90 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Faraday
|
2
|
-
#
|
4
|
+
# Adds the ability for other modules to manage autoloadable
|
3
5
|
# constants.
|
6
|
+
#
|
7
|
+
# @api private
|
4
8
|
module AutoloadHelper
|
5
|
-
#
|
9
|
+
# Registers the constants to be auto loaded.
|
6
10
|
#
|
7
|
-
# prefix
|
8
|
-
# it will be prefixed with the root path of this loaded
|
9
|
-
# version.
|
10
|
-
# options
|
11
|
+
# @param prefix [String] The require prefix. If the path is inside Faraday,
|
12
|
+
# then it will be prefixed with the root path of this loaded
|
13
|
+
# Faraday version.
|
14
|
+
# @param options [{ Symbol => String }] library names.
|
11
15
|
#
|
12
|
-
#
|
16
|
+
# @example
|
13
17
|
#
|
14
18
|
# Faraday.autoload_all 'faraday/foo',
|
15
|
-
# :
|
19
|
+
# Bar: 'bar'
|
16
20
|
#
|
17
21
|
# # requires faraday/foo/bar to load Faraday::Bar.
|
18
22
|
# Faraday::Bar
|
19
23
|
#
|
20
|
-
#
|
21
|
-
# Returns nothing.
|
24
|
+
# @return [void]
|
22
25
|
def autoload_all(prefix, options)
|
23
|
-
if prefix
|
26
|
+
if prefix.match? %r{^faraday(/|$)}i
|
24
27
|
prefix = File.join(Faraday.root_path, prefix)
|
25
28
|
end
|
29
|
+
|
26
30
|
options.each do |const_name, path|
|
27
31
|
autoload const_name, File.join(prefix, path)
|
28
32
|
end
|
29
33
|
end
|
30
34
|
|
31
|
-
#
|
35
|
+
# Loads each autoloaded constant. If thread safety is a concern,
|
32
36
|
# wrap this in a Mutex.
|
33
37
|
#
|
34
|
-
#
|
38
|
+
# @return [void]
|
35
39
|
def load_autoloaded_constants
|
36
40
|
constants.each do |const|
|
37
41
|
const_get(const) if autoload?(const)
|
38
42
|
end
|
39
43
|
end
|
40
44
|
|
41
|
-
#
|
45
|
+
# Filters the module's contents with those that have been already
|
42
46
|
# autoloaded.
|
43
47
|
#
|
44
|
-
#
|
48
|
+
# @return [Array<Class, Module>]
|
45
49
|
def all_loaded_constants
|
46
|
-
constants
|
47
|
-
|
50
|
+
constants
|
51
|
+
.map { |c| const_get(c) }
|
52
|
+
.select { |a| a.respond_to?(:loaded?) && a.loaded? }
|
48
53
|
end
|
49
54
|
end
|
50
55
|
|
56
|
+
# Adapter is the base class for all Faraday adapters.
|
57
|
+
# @see lib/faraday/adapter.rb Original class location
|
51
58
|
class Adapter
|
52
59
|
extend AutoloadHelper
|
53
60
|
autoload_all 'faraday/adapter',
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
:Patron => 'patron',
|
60
|
-
:Excon => 'excon',
|
61
|
-
:Test => 'test',
|
62
|
-
:Rack => 'rack',
|
63
|
-
:HTTPClient => 'httpclient'
|
61
|
+
Typhoeus: 'typhoeus',
|
62
|
+
Patron: 'patron',
|
63
|
+
Test: 'test',
|
64
|
+
Rack: 'rack',
|
65
|
+
HTTPClient: 'httpclient'
|
64
66
|
end
|
65
67
|
|
68
|
+
# Request represents a single HTTP request for a Faraday adapter to make.
|
69
|
+
# @see lib/faraday/request.rb Original class location
|
66
70
|
class Request
|
67
71
|
extend AutoloadHelper
|
68
72
|
autoload_all 'faraday/request',
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
73
|
+
UrlEncoded: 'url_encoded',
|
74
|
+
Multipart: 'multipart',
|
75
|
+
Retry: 'retry',
|
76
|
+
Authorization: 'authorization',
|
77
|
+
BasicAuthentication: 'basic_authentication',
|
78
|
+
TokenAuthentication: 'token_authentication',
|
79
|
+
Instrumentation: 'instrumentation'
|
76
80
|
end
|
77
81
|
|
82
|
+
# Response represents the returned value of a sent Faraday request.
|
83
|
+
# @see lib/faraday/response.rb Original class location
|
78
84
|
class Response
|
79
85
|
extend AutoloadHelper
|
80
86
|
autoload_all 'faraday/response',
|
81
|
-
|
82
|
-
|
87
|
+
RaiseError: 'raise_error',
|
88
|
+
Logger: 'logger'
|
83
89
|
end
|
84
90
|
end
|