faraday 0.11.0 → 1.4.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|