faraday 1.10.4 → 2.0.0

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.
Files changed (61) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +117 -1
  3. data/README.md +16 -9
  4. data/examples/client_spec.rb +1 -1
  5. data/examples/client_test.rb +2 -2
  6. data/lib/faraday/adapter/test.rb +2 -0
  7. data/lib/faraday/adapter.rb +2 -5
  8. data/lib/faraday/connection.rb +5 -86
  9. data/lib/faraday/encoders/nested_params_encoder.rb +2 -2
  10. data/lib/faraday/error.rb +3 -2
  11. data/lib/faraday/logging/formatter.rb +1 -0
  12. data/lib/faraday/middleware.rb +0 -1
  13. data/lib/faraday/middleware_registry.rb +15 -79
  14. data/lib/faraday/options.rb +3 -3
  15. data/lib/faraday/rack_builder.rb +21 -18
  16. data/lib/faraday/request/authorization.rb +28 -41
  17. data/lib/faraday/request/instrumentation.rb +2 -0
  18. data/lib/faraday/request/url_encoded.rb +2 -0
  19. data/lib/faraday/request.rb +6 -24
  20. data/lib/faraday/response/json.rb +4 -4
  21. data/lib/faraday/response/logger.rb +2 -0
  22. data/lib/faraday/response/raise_error.rb +9 -1
  23. data/lib/faraday/response.rb +7 -20
  24. data/lib/faraday/utils/headers.rb +1 -1
  25. data/lib/faraday/utils.rb +10 -5
  26. data/lib/faraday/version.rb +1 -1
  27. data/lib/faraday.rb +4 -46
  28. data/spec/faraday/connection_spec.rb +102 -51
  29. data/spec/faraday/options/env_spec.rb +2 -2
  30. data/spec/faraday/rack_builder_spec.rb +7 -50
  31. data/spec/faraday/request/authorization_spec.rb +19 -32
  32. data/spec/faraday/request/instrumentation_spec.rb +5 -7
  33. data/spec/faraday/request/url_encoded_spec.rb +0 -1
  34. data/spec/faraday/request_spec.rb +0 -11
  35. data/spec/faraday/response/json_spec.rb +4 -6
  36. data/spec/faraday/response/raise_error_spec.rb +7 -4
  37. data/spec/faraday/utils_spec.rb +62 -1
  38. data/spec/spec_helper.rb +0 -2
  39. data/spec/support/fake_safe_buffer.rb +1 -1
  40. data/spec/support/helper_methods.rb +0 -37
  41. data/spec/support/shared_examples/adapter.rb +0 -1
  42. data/spec/support/shared_examples/request_method.rb +5 -18
  43. metadata +4 -162
  44. data/lib/faraday/adapter/typhoeus.rb +0 -15
  45. data/lib/faraday/autoload.rb +0 -89
  46. data/lib/faraday/dependency_loader.rb +0 -39
  47. data/lib/faraday/deprecate.rb +0 -110
  48. data/lib/faraday/request/basic_authentication.rb +0 -20
  49. data/lib/faraday/request/token_authentication.rb +0 -20
  50. data/spec/faraday/adapter/em_http_spec.rb +0 -49
  51. data/spec/faraday/adapter/em_synchrony_spec.rb +0 -18
  52. data/spec/faraday/adapter/excon_spec.rb +0 -49
  53. data/spec/faraday/adapter/httpclient_spec.rb +0 -73
  54. data/spec/faraday/adapter/net_http_spec.rb +0 -64
  55. data/spec/faraday/adapter/patron_spec.rb +0 -18
  56. data/spec/faraday/adapter/rack_spec.rb +0 -8
  57. data/spec/faraday/adapter/typhoeus_spec.rb +0 -7
  58. data/spec/faraday/composite_read_io_spec.rb +0 -80
  59. data/spec/faraday/deprecate_spec.rb +0 -147
  60. data/spec/faraday/response/middleware_spec.rb +0 -68
  61. data/spec/support/webmock_rack_app.rb +0 -68
@@ -8,7 +8,7 @@ FakeSafeBuffer = Struct.new(:string) do
8
8
 
9
9
  def gsub(regex)
10
10
  string.gsub(regex) do
11
- match, = $&, '' =~ /a/
11
+ match, = Regexp.last_match(0), '' =~ /a/ # rubocop:disable Performance/StringInclude
12
12
  yield(match)
13
13
  end
14
14
  end
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'multipart_parser/reader'
4
-
5
3
  module Faraday
6
4
  module HelperMethods
7
5
  def self.included(base)
@@ -86,41 +84,6 @@ module Faraday
86
84
  end
87
85
  end
88
86
 
89
- def multipart_file
90
- Faraday::FilePart.new(__FILE__, 'text/x-ruby')
91
- end
92
-
93
- # parse boundary out of a Content-Type header like:
94
- # Content-Type: multipart/form-data; boundary=gc0p4Jq0M2Yt08jU534c0p
95
- def parse_multipart_boundary(ctype)
96
- MultipartParser::Reader.extract_boundary_value(ctype)
97
- end
98
-
99
- # parse a multipart MIME message, returning a hash of any multipart errors
100
- def parse_multipart(boundary, body)
101
- reader = MultipartParser::Reader.new(boundary)
102
- result = { errors: [], parts: [] }
103
- def result.part(name)
104
- hash = self[:parts].detect { |h| h[:part].name == name }
105
- [hash[:part], hash[:body].join]
106
- end
107
-
108
- reader.on_part do |part|
109
- result[:parts] << thispart = {
110
- part: part,
111
- body: []
112
- }
113
- part.on_data do |chunk|
114
- thispart[:body] << chunk
115
- end
116
- end
117
- reader.on_error do |msg|
118
- result[:errors] << msg
119
- end
120
- reader.write(body)
121
- result
122
- end
123
-
124
87
  def method_with_body?(method)
125
88
  self.class.method_with_body?(method)
126
89
  end
@@ -40,7 +40,6 @@ shared_examples 'adapter examples' do |**options|
40
40
  conn_options[:ssl][:ca_file] ||= ENV['SSL_FILE']
41
41
 
42
42
  Faraday.new(remote, conn_options) do |conn|
43
- conn.request :multipart
44
43
  conn.request :url_encoded
45
44
  conn.response :raise_error
46
45
  conn.adapter described_class, *adapter_options
@@ -79,7 +79,7 @@ shared_examples 'a request method' do |http_method|
79
79
 
80
80
  on_feature :request_body_on_query_methods do
81
81
  it 'sends request body' do
82
- request_stub.with(Hash[:body, 'test'])
82
+ request_stub.with({ body: 'test' })
83
83
  res = if query_or_body == :body
84
84
  conn.public_send(http_method, '/', 'test')
85
85
  else
@@ -93,7 +93,7 @@ shared_examples 'a request method' do |http_method|
93
93
 
94
94
  it 'sends url encoded parameters' do
95
95
  payload = { name: 'zack' }
96
- request_stub.with(Hash[query_or_body, payload])
96
+ request_stub.with({ query_or_body => payload })
97
97
  res = conn.public_send(http_method, '/', payload)
98
98
  if query_or_body == :query
99
99
  expect(res.env.request_body).to be_nil
@@ -104,7 +104,7 @@ shared_examples 'a request method' do |http_method|
104
104
 
105
105
  it 'sends url encoded nested parameters' do
106
106
  payload = { name: { first: 'zack' } }
107
- request_stub.with(Hash[query_or_body, payload])
107
+ request_stub.with({ query_or_body => payload })
108
108
  conn.public_send(http_method, '/', payload)
109
109
  end
110
110
 
@@ -126,19 +126,6 @@ shared_examples 'a request method' do |http_method|
126
126
  expect { conn.public_send(http_method, '/') }.to raise_error(exc)
127
127
  end
128
128
 
129
- # Can't send files on get, head and delete methods
130
- if method_with_body?(http_method)
131
- it 'sends files' do
132
- payload = { uploaded_file: multipart_file }
133
- request_stub.with(headers: { 'Content-Type' => %r{\Amultipart/form-data} }) do |request|
134
- # WebMock does not support matching body for multipart/form-data requests yet :(
135
- # https://github.com/bblimke/webmock/issues/623
136
- request.body.include?('RubyMultipartPost')
137
- end
138
- conn.public_send(http_method, '/', payload)
139
- end
140
- end
141
-
142
129
  on_feature :reason_phrase_parse do
143
130
  it 'parses the reason phrase' do
144
131
  request_stub.to_return(status: [200, 'OK'])
@@ -199,11 +186,11 @@ shared_examples 'a request method' do |http_method|
199
186
  @payload2 = { b: '2' }
200
187
 
201
188
  request_stub
202
- .with(Hash[query_or_body, @payload1])
189
+ .with({ query_or_body => @payload1 })
203
190
  .to_return(body: @payload1.to_json)
204
191
 
205
192
  stub_request(http_method, remote)
206
- .with(Hash[query_or_body, @payload2])
193
+ .with({ query_or_body => @payload2 })
207
194
  .to_return(body: @payload2.to_json)
208
195
 
209
196
  conn.in_parallel do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: faraday
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.10.4
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - "@technoweenie"
@@ -10,148 +10,8 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2024-09-20 00:00:00.000000000 Z
13
+ date: 2022-01-04 00:00:00.000000000 Z
14
14
  dependencies:
15
- - !ruby/object:Gem::Dependency
16
- name: faraday-em_http
17
- requirement: !ruby/object:Gem::Requirement
18
- requirements:
19
- - - "~>"
20
- - !ruby/object:Gem::Version
21
- version: '1.0'
22
- type: :runtime
23
- prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- requirements:
26
- - - "~>"
27
- - !ruby/object:Gem::Version
28
- version: '1.0'
29
- - !ruby/object:Gem::Dependency
30
- name: faraday-em_synchrony
31
- requirement: !ruby/object:Gem::Requirement
32
- requirements:
33
- - - "~>"
34
- - !ruby/object:Gem::Version
35
- version: '1.0'
36
- type: :runtime
37
- prerelease: false
38
- version_requirements: !ruby/object:Gem::Requirement
39
- requirements:
40
- - - "~>"
41
- - !ruby/object:Gem::Version
42
- version: '1.0'
43
- - !ruby/object:Gem::Dependency
44
- name: faraday-excon
45
- requirement: !ruby/object:Gem::Requirement
46
- requirements:
47
- - - "~>"
48
- - !ruby/object:Gem::Version
49
- version: '1.1'
50
- type: :runtime
51
- prerelease: false
52
- version_requirements: !ruby/object:Gem::Requirement
53
- requirements:
54
- - - "~>"
55
- - !ruby/object:Gem::Version
56
- version: '1.1'
57
- - !ruby/object:Gem::Dependency
58
- name: faraday-httpclient
59
- requirement: !ruby/object:Gem::Requirement
60
- requirements:
61
- - - "~>"
62
- - !ruby/object:Gem::Version
63
- version: '1.0'
64
- type: :runtime
65
- prerelease: false
66
- version_requirements: !ruby/object:Gem::Requirement
67
- requirements:
68
- - - "~>"
69
- - !ruby/object:Gem::Version
70
- version: '1.0'
71
- - !ruby/object:Gem::Dependency
72
- name: faraday-multipart
73
- requirement: !ruby/object:Gem::Requirement
74
- requirements:
75
- - - "~>"
76
- - !ruby/object:Gem::Version
77
- version: '1.0'
78
- type: :runtime
79
- prerelease: false
80
- version_requirements: !ruby/object:Gem::Requirement
81
- requirements:
82
- - - "~>"
83
- - !ruby/object:Gem::Version
84
- version: '1.0'
85
- - !ruby/object:Gem::Dependency
86
- name: faraday-net_http
87
- requirement: !ruby/object:Gem::Requirement
88
- requirements:
89
- - - "~>"
90
- - !ruby/object:Gem::Version
91
- version: '1.0'
92
- type: :runtime
93
- prerelease: false
94
- version_requirements: !ruby/object:Gem::Requirement
95
- requirements:
96
- - - "~>"
97
- - !ruby/object:Gem::Version
98
- version: '1.0'
99
- - !ruby/object:Gem::Dependency
100
- name: faraday-net_http_persistent
101
- requirement: !ruby/object:Gem::Requirement
102
- requirements:
103
- - - "~>"
104
- - !ruby/object:Gem::Version
105
- version: '1.0'
106
- type: :runtime
107
- prerelease: false
108
- version_requirements: !ruby/object:Gem::Requirement
109
- requirements:
110
- - - "~>"
111
- - !ruby/object:Gem::Version
112
- version: '1.0'
113
- - !ruby/object:Gem::Dependency
114
- name: faraday-patron
115
- requirement: !ruby/object:Gem::Requirement
116
- requirements:
117
- - - "~>"
118
- - !ruby/object:Gem::Version
119
- version: '1.0'
120
- type: :runtime
121
- prerelease: false
122
- version_requirements: !ruby/object:Gem::Requirement
123
- requirements:
124
- - - "~>"
125
- - !ruby/object:Gem::Version
126
- version: '1.0'
127
- - !ruby/object:Gem::Dependency
128
- name: faraday-rack
129
- requirement: !ruby/object:Gem::Requirement
130
- requirements:
131
- - - "~>"
132
- - !ruby/object:Gem::Version
133
- version: '1.0'
134
- type: :runtime
135
- prerelease: false
136
- version_requirements: !ruby/object:Gem::Requirement
137
- requirements:
138
- - - "~>"
139
- - !ruby/object:Gem::Version
140
- version: '1.0'
141
- - !ruby/object:Gem::Dependency
142
- name: faraday-retry
143
- requirement: !ruby/object:Gem::Requirement
144
- requirements:
145
- - - "~>"
146
- - !ruby/object:Gem::Version
147
- version: '1.0'
148
- type: :runtime
149
- prerelease: false
150
- version_requirements: !ruby/object:Gem::Requirement
151
- requirements:
152
- - - "~>"
153
- - !ruby/object:Gem::Version
154
- version: '1.0'
155
15
  - !ruby/object:Gem::Dependency
156
16
  name: ruby2_keywords
157
17
  requirement: !ruby/object:Gem::Requirement
@@ -181,12 +41,8 @@ files:
181
41
  - lib/faraday.rb
182
42
  - lib/faraday/adapter.rb
183
43
  - lib/faraday/adapter/test.rb
184
- - lib/faraday/adapter/typhoeus.rb
185
44
  - lib/faraday/adapter_registry.rb
186
- - lib/faraday/autoload.rb
187
45
  - lib/faraday/connection.rb
188
- - lib/faraday/dependency_loader.rb
189
- - lib/faraday/deprecate.rb
190
46
  - lib/faraday/encoders/flat_params_encoder.rb
191
47
  - lib/faraday/encoders/nested_params_encoder.rb
192
48
  - lib/faraday/error.rb
@@ -204,10 +60,8 @@ files:
204
60
  - lib/faraday/rack_builder.rb
205
61
  - lib/faraday/request.rb
206
62
  - lib/faraday/request/authorization.rb
207
- - lib/faraday/request/basic_authentication.rb
208
63
  - lib/faraday/request/instrumentation.rb
209
64
  - lib/faraday/request/json.rb
210
- - lib/faraday/request/token_authentication.rb
211
65
  - lib/faraday/request/url_encoded.rb
212
66
  - lib/faraday/response.rb
213
67
  - lib/faraday/response/json.rb
@@ -218,20 +72,10 @@ files:
218
72
  - lib/faraday/utils/params_hash.rb
219
73
  - lib/faraday/version.rb
220
74
  - spec/external_adapters/faraday_specs_setup.rb
221
- - spec/faraday/adapter/em_http_spec.rb
222
- - spec/faraday/adapter/em_synchrony_spec.rb
223
- - spec/faraday/adapter/excon_spec.rb
224
- - spec/faraday/adapter/httpclient_spec.rb
225
- - spec/faraday/adapter/net_http_spec.rb
226
- - spec/faraday/adapter/patron_spec.rb
227
- - spec/faraday/adapter/rack_spec.rb
228
75
  - spec/faraday/adapter/test_spec.rb
229
- - spec/faraday/adapter/typhoeus_spec.rb
230
76
  - spec/faraday/adapter_registry_spec.rb
231
77
  - spec/faraday/adapter_spec.rb
232
- - spec/faraday/composite_read_io_spec.rb
233
78
  - spec/faraday/connection_spec.rb
234
- - spec/faraday/deprecate_spec.rb
235
79
  - spec/faraday/error_spec.rb
236
80
  - spec/faraday/middleware_spec.rb
237
81
  - spec/faraday/options/env_spec.rb
@@ -248,7 +92,6 @@ files:
248
92
  - spec/faraday/request_spec.rb
249
93
  - spec/faraday/response/json_spec.rb
250
94
  - spec/faraday/response/logger_spec.rb
251
- - spec/faraday/response/middleware_spec.rb
252
95
  - spec/faraday/response/raise_error_spec.rb
253
96
  - spec/faraday/response_spec.rb
254
97
  - spec/faraday/utils/headers_spec.rb
@@ -262,13 +105,12 @@ files:
262
105
  - spec/support/shared_examples/params_encoder.rb
263
106
  - spec/support/shared_examples/request_method.rb
264
107
  - spec/support/streaming_response_checker.rb
265
- - spec/support/webmock_rack_app.rb
266
108
  homepage: https://lostisland.github.io/faraday
267
109
  licenses:
268
110
  - MIT
269
111
  metadata:
270
112
  homepage_uri: https://lostisland.github.io/faraday
271
- changelog_uri: https://github.com/lostisland/faraday/releases/tag/v1.10.4
113
+ changelog_uri: https://github.com/lostisland/faraday/releases/tag/v2.0.0
272
114
  source_code_uri: https://github.com/lostisland/faraday
273
115
  bug_tracker_uri: https://github.com/lostisland/faraday/issues
274
116
  post_install_message:
@@ -280,7 +122,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
280
122
  requirements:
281
123
  - - ">="
282
124
  - !ruby/object:Gem::Version
283
- version: '2.4'
125
+ version: '2.6'
284
126
  required_rubygems_version: !ruby/object:Gem::Requirement
285
127
  requirements:
286
128
  - - ">="
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Faraday
4
- class Adapter
5
- # Typhoeus adapter. This class is just a stub, the real adapter is in
6
- # https://github.com/typhoeus/typhoeus/blob/master/lib/typhoeus/adapters/faraday.rb
7
- class Typhoeus < Faraday::Adapter
8
- # Needs to define this method in order to support Typhoeus <= 1.3.0
9
- def call; end
10
-
11
- dependency 'typhoeus'
12
- dependency 'typhoeus/adapters/faraday'
13
- end
14
- end
15
- end
@@ -1,89 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Faraday
4
- # Adds the ability for other modules to manage autoloadable
5
- # constants.
6
- #
7
- # @api private
8
- module AutoloadHelper
9
- # Registers the constants to be auto loaded.
10
- #
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.
15
- #
16
- # @example
17
- #
18
- # Faraday.autoload_all 'faraday/foo',
19
- # Bar: 'bar'
20
- #
21
- # # requires faraday/foo/bar to load Faraday::Bar.
22
- # Faraday::Bar
23
- #
24
- # @return [void]
25
- def autoload_all(prefix, options)
26
- if prefix.match? %r{^faraday(/|$)}i
27
- prefix = File.join(Faraday.root_path, prefix)
28
- end
29
-
30
- options.each do |const_name, path|
31
- autoload const_name, File.join(prefix, path)
32
- end
33
- end
34
-
35
- # Loads each autoloaded constant. If thread safety is a concern,
36
- # wrap this in a Mutex.
37
- #
38
- # @return [void]
39
- def load_autoloaded_constants
40
- constants.each do |const|
41
- const_get(const) if autoload?(const)
42
- end
43
- end
44
-
45
- # Filters the module's contents with those that have been already
46
- # autoloaded.
47
- #
48
- # @return [Array<Class, Module>]
49
- def all_loaded_constants
50
- constants
51
- .map { |c| const_get(c) }
52
- .select { |a| a.respond_to?(:loaded?) && a.loaded? }
53
- end
54
- end
55
-
56
- # Adapter is the base class for all Faraday adapters.
57
- # @see lib/faraday/adapter.rb Original class location
58
- class Adapter
59
- extend AutoloadHelper
60
- autoload_all 'faraday/adapter',
61
- Typhoeus: 'typhoeus',
62
- Test: 'test'
63
- end
64
-
65
- # Request represents a single HTTP request for a Faraday adapter to make.
66
- # @see lib/faraday/request.rb Original class location
67
- class Request
68
- extend AutoloadHelper
69
- autoload_all 'faraday/request',
70
- Authorization: 'authorization',
71
- BasicAuthentication: 'basic_authentication',
72
- Instrumentation: 'instrumentation',
73
- Json: 'json',
74
- Multipart: 'multipart',
75
- Retry: 'retry',
76
- TokenAuthentication: 'token_authentication',
77
- UrlEncoded: 'url_encoded'
78
- end
79
-
80
- # Response represents the returned value of a sent Faraday request.
81
- # @see lib/faraday/response.rb Original class location
82
- class Response
83
- extend AutoloadHelper
84
- autoload_all 'faraday/response',
85
- Json: 'json',
86
- Logger: 'logger',
87
- RaiseError: 'raise_error'
88
- end
89
- end
@@ -1,39 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'ruby2_keywords'
4
-
5
- module Faraday
6
- # DependencyLoader helps Faraday adapters and middleware load dependencies.
7
- module DependencyLoader
8
- attr_reader :load_error
9
-
10
- # Executes a block which should try to require and reference dependent
11
- # libraries
12
- def dependency(lib = nil)
13
- lib ? require(lib) : yield
14
- rescue LoadError, NameError => e
15
- self.load_error = e
16
- end
17
-
18
- ruby2_keywords def new(*)
19
- unless loaded?
20
- raise "missing dependency for #{self}: #{load_error.message}"
21
- end
22
-
23
- super
24
- end
25
-
26
- def loaded?
27
- load_error.nil?
28
- end
29
-
30
- def inherited(subclass)
31
- super
32
- subclass.send(:load_error=, load_error)
33
- end
34
-
35
- private
36
-
37
- attr_writer :load_error
38
- end
39
- end
@@ -1,110 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Faraday
4
- # @param new_klass [Class] new Klass to use
5
- #
6
- # @return [Class] A modified version of new_klass that warns on
7
- # usage about deprecation.
8
- # @see Faraday::Deprecate
9
- module DeprecatedClass
10
- def self.proxy_class(origclass, ver = '1.0')
11
- proxy = Class.new(origclass) do
12
- const_set('ORIG_CLASS', origclass)
13
-
14
- class << self
15
- extend Faraday::Deprecate
16
-
17
- def ===(other)
18
- (superclass == const_get('ORIG_CLASS') && other.is_a?(superclass)) || super
19
- end
20
- end
21
- end
22
- proxy.singleton_class.send(:deprecate, :new, "#{origclass}.new", ver)
23
- proxy.singleton_class.send(:deprecate, :inherited, origclass.name, ver)
24
- proxy
25
- end
26
- end
27
-
28
- # Deprecation using semver instead of date, based on Gem::Deprecate
29
- # Provides a single method +deprecate+ to be used to declare when
30
- # something is going away.
31
- #
32
- # class Legacy
33
- # def self.klass_method
34
- # # ...
35
- # end
36
- #
37
- # def instance_method
38
- # # ...
39
- # end
40
- #
41
- # extend Faraday::Deprecate
42
- # deprecate :instance_method, "X.z", '1.0'
43
- #
44
- # class << self
45
- # extend Faraday::Deprecate
46
- # deprecate :klass_method, :none, '1.0'
47
- # end
48
- # end
49
- module Deprecate
50
- def self.skip # :nodoc:
51
- @skip ||= begin
52
- case ENV['FARADAY_DEPRECATE'].to_s.downcase
53
- when '1', 'warn' then :warn
54
- else :skip
55
- end
56
- end
57
- @skip == :skip
58
- end
59
-
60
- def self.skip=(value) # :nodoc:
61
- @skip = value ? :skip : :warn
62
- end
63
-
64
- # Temporarily turn off warnings. Intended for tests only.
65
- def skip_during
66
- original = Faraday::Deprecate.skip
67
- Faraday::Deprecate.skip = true
68
- yield
69
- ensure
70
- Faraday::Deprecate.skip = original
71
- end
72
-
73
- # Simple deprecation method that deprecates +name+ by wrapping it up
74
- # in a dummy method. It warns on each call to the dummy method
75
- # telling the user of +repl+ (unless +repl+ is :none) and the
76
- # semver that it is planned to go away.
77
- # @param name [Symbol] the method symbol to deprecate
78
- # @param repl [#to_s, :none] the replacement to use, when `:none` it will
79
- # alert the user that no replacement is present.
80
- # @param ver [String] the semver the method will be removed.
81
- def deprecate(name, repl, ver, custom_message = nil)
82
- class_eval do
83
- gem_ver = Gem::Version.new(ver)
84
- old = "_deprecated_#{name}"
85
- alias_method old, name
86
- define_method name do |*args, &block|
87
- mod = is_a? Module
88
- target = mod ? "#{self}." : "#{self.class}#"
89
- target_message = if name == :inherited
90
- "Inheriting #{self}"
91
- else
92
- "#{target}#{name}"
93
- end
94
-
95
- msg = [
96
- "NOTE: #{target_message} is deprecated",
97
- repl == :none ? ' with no replacement' : "; use #{repl} instead. ",
98
- "It will be removed in or after version #{gem_ver} ",
99
- custom_message,
100
- "\n#{target}#{name} called from #{Gem.location_of_caller.join(':')}"
101
- ]
102
- warn "#{msg.join}." unless Faraday::Deprecate.skip
103
- send old, *args, &block
104
- end
105
- end
106
- end
107
-
108
- module_function :deprecate, :skip_during
109
- end
110
- end
@@ -1,20 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'base64'
4
-
5
- module Faraday
6
- class Request
7
- # Authorization middleware for Basic Authentication.
8
- class BasicAuthentication < load_middleware(:authorization)
9
- # @param login [String]
10
- # @param pass [String]
11
- #
12
- # @return [String] a Basic Authentication header line
13
- def self.header(login, pass)
14
- value = Base64.encode64([login, pass].join(':'))
15
- value.delete!("\n")
16
- super(:Basic, value)
17
- end
18
- end
19
- end
20
- end
@@ -1,20 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Faraday
4
- class Request
5
- # TokenAuthentication is a middleware that adds a 'Token' header to a
6
- # Faraday request.
7
- class TokenAuthentication < load_middleware(:authorization)
8
- # Public
9
- def self.header(token, options = nil)
10
- options ||= {}
11
- options[:token] = token
12
- super(:Token, options)
13
- end
14
-
15
- def initialize(app, token, options = nil)
16
- super(app, token, options)
17
- end
18
- end
19
- end
20
- end