faraday 0.15.0 → 0.16.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.md +1 -1
  3. data/README.md +19 -345
  4. data/lib/faraday/adapter/em_http.rb +142 -99
  5. data/lib/faraday/adapter/em_http_ssl_patch.rb +23 -17
  6. data/lib/faraday/adapter/em_synchrony/parallel_manager.rb +18 -15
  7. data/lib/faraday/adapter/em_synchrony.rb +104 -60
  8. data/lib/faraday/adapter/excon.rb +100 -52
  9. data/lib/faraday/adapter/httpclient.rb +61 -39
  10. data/lib/faraday/adapter/net_http.rb +110 -42
  11. data/lib/faraday/adapter/net_http_persistent.rb +55 -29
  12. data/lib/faraday/adapter/patron.rb +55 -41
  13. data/lib/faraday/adapter/rack.rb +28 -12
  14. data/lib/faraday/adapter/test.rb +86 -53
  15. data/lib/faraday/adapter/typhoeus.rb +4 -1
  16. data/lib/faraday/adapter.rb +36 -22
  17. data/lib/faraday/adapter_registry.rb +28 -0
  18. data/lib/faraday/autoload.rb +47 -36
  19. data/lib/faraday/connection.rb +321 -179
  20. data/lib/faraday/dependency_loader.rb +37 -0
  21. data/lib/faraday/encoders/flat_params_encoder.rb +94 -0
  22. data/lib/faraday/encoders/nested_params_encoder.rb +171 -0
  23. data/lib/faraday/error.rb +67 -33
  24. data/lib/faraday/file_part.rb +128 -0
  25. data/lib/faraday/logging/formatter.rb +92 -0
  26. data/lib/faraday/middleware.rb +4 -28
  27. data/lib/faraday/middleware_registry.rb +129 -0
  28. data/lib/faraday/options/connection_options.rb +22 -0
  29. data/lib/faraday/options/env.rb +181 -0
  30. data/lib/faraday/options/proxy_options.rb +28 -0
  31. data/lib/faraday/options/request_options.rb +21 -0
  32. data/lib/faraday/options/ssl_options.rb +59 -0
  33. data/lib/faraday/options.rb +35 -185
  34. data/lib/faraday/param_part.rb +53 -0
  35. data/lib/faraday/parameters.rb +4 -196
  36. data/lib/faraday/rack_builder.rb +67 -56
  37. data/lib/faraday/request/authorization.rb +42 -30
  38. data/lib/faraday/request/basic_authentication.rb +14 -7
  39. data/lib/faraday/request/instrumentation.rb +45 -27
  40. data/lib/faraday/request/multipart.rb +79 -48
  41. data/lib/faraday/request/retry.rb +198 -170
  42. data/lib/faraday/request/token_authentication.rb +15 -10
  43. data/lib/faraday/request/url_encoded.rb +41 -23
  44. data/lib/faraday/request.rb +82 -30
  45. data/lib/faraday/response/logger.rb +22 -69
  46. data/lib/faraday/response/raise_error.rb +36 -14
  47. data/lib/faraday/response.rb +23 -16
  48. data/lib/faraday/utils/headers.rb +139 -0
  49. data/lib/faraday/utils/params_hash.rb +61 -0
  50. data/lib/faraday/utils.rb +28 -245
  51. data/lib/faraday.rb +93 -175
  52. data/spec/external_adapters/faraday_specs_setup.rb +14 -0
  53. metadata +21 -5
  54. data/lib/faraday/upload_io.rb +0 -67
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: faraday
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.0
4
+ version: 0.16.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rick Olson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-04-19 00:00:00.000000000 Z
11
+ date: 2019-09-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: multipart-post
@@ -52,11 +52,24 @@ files:
52
52
  - lib/faraday/adapter/rack.rb
53
53
  - lib/faraday/adapter/test.rb
54
54
  - lib/faraday/adapter/typhoeus.rb
55
+ - lib/faraday/adapter_registry.rb
55
56
  - lib/faraday/autoload.rb
56
57
  - lib/faraday/connection.rb
58
+ - lib/faraday/dependency_loader.rb
59
+ - lib/faraday/encoders/flat_params_encoder.rb
60
+ - lib/faraday/encoders/nested_params_encoder.rb
57
61
  - lib/faraday/error.rb
62
+ - lib/faraday/file_part.rb
63
+ - lib/faraday/logging/formatter.rb
58
64
  - lib/faraday/middleware.rb
65
+ - lib/faraday/middleware_registry.rb
59
66
  - lib/faraday/options.rb
67
+ - lib/faraday/options/connection_options.rb
68
+ - lib/faraday/options/env.rb
69
+ - lib/faraday/options/proxy_options.rb
70
+ - lib/faraday/options/request_options.rb
71
+ - lib/faraday/options/ssl_options.rb
72
+ - lib/faraday/param_part.rb
60
73
  - lib/faraday/parameters.rb
61
74
  - lib/faraday/rack_builder.rb
62
75
  - lib/faraday/request.rb
@@ -70,8 +83,10 @@ files:
70
83
  - lib/faraday/response.rb
71
84
  - lib/faraday/response/logger.rb
72
85
  - lib/faraday/response/raise_error.rb
73
- - lib/faraday/upload_io.rb
74
86
  - lib/faraday/utils.rb
87
+ - lib/faraday/utils/headers.rb
88
+ - lib/faraday/utils/params_hash.rb
89
+ - spec/external_adapters/faraday_specs_setup.rb
75
90
  homepage: https://github.com/lostisland/faraday
76
91
  licenses:
77
92
  - MIT
@@ -80,11 +95,12 @@ post_install_message:
80
95
  rdoc_options: []
81
96
  require_paths:
82
97
  - lib
98
+ - spec/external_adapters
83
99
  required_ruby_version: !ruby/object:Gem::Requirement
84
100
  requirements:
85
101
  - - ">="
86
102
  - !ruby/object:Gem::Version
87
- version: '1.9'
103
+ version: '2.3'
88
104
  required_rubygems_version: !ruby/object:Gem::Requirement
89
105
  requirements:
90
106
  - - ">="
@@ -92,7 +108,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
92
108
  version: '0'
93
109
  requirements: []
94
110
  rubyforge_project:
95
- rubygems_version: 2.7.6
111
+ rubygems_version: 2.7.6.2
96
112
  signing_key:
97
113
  specification_version: 4
98
114
  summary: HTTP/REST API client library.
@@ -1,67 +0,0 @@
1
- begin
2
- require 'composite_io'
3
- require 'parts'
4
- require 'stringio'
5
- rescue LoadError
6
- $stderr.puts "Install the multipart-post gem."
7
- raise
8
- end
9
-
10
- module Faraday
11
- # Similar but not compatible with ::CompositeReadIO provided by multipart-post.
12
- class CompositeReadIO
13
- def initialize(*parts)
14
- @parts = parts.flatten
15
- @ios = @parts.map { |part| part.to_io }
16
- @index = 0
17
- end
18
-
19
- def length
20
- @parts.inject(0) { |sum, part| sum + part.length }
21
- end
22
-
23
- def rewind
24
- @ios.each { |io| io.rewind }
25
- @index = 0
26
- end
27
-
28
- # Read from IOs in order until `length` bytes have been received.
29
- def read(length = nil, outbuf = nil)
30
- got_result = false
31
- outbuf = outbuf ? outbuf.replace("") : ""
32
-
33
- while io = current_io
34
- if result = io.read(length)
35
- got_result ||= !result.nil?
36
- result.force_encoding("BINARY") if result.respond_to?(:force_encoding)
37
- outbuf << result
38
- length -= result.length if length
39
- break if length == 0
40
- end
41
- advance_io
42
- end
43
- (!got_result && length) ? nil : outbuf
44
- end
45
-
46
- def close
47
- @ios.each { |io| io.close }
48
- end
49
-
50
- def ensure_open_and_readable
51
- # Rubinius compatibility
52
- end
53
-
54
- private
55
-
56
- def current_io
57
- @ios[@index]
58
- end
59
-
60
- def advance_io
61
- @index += 1
62
- end
63
- end
64
-
65
- UploadIO = ::UploadIO
66
- Parts = ::Parts
67
- end