faraday 0.17.6 → 1.0.0.pre.rc1

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 (88) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.md +1 -1
  3. data/README.md +18 -358
  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 +97 -57
  9. data/lib/faraday/adapter/httpclient.rb +61 -39
  10. data/lib/faraday/adapter/net_http.rb +103 -51
  11. data/lib/faraday/adapter/net_http_persistent.rb +49 -28
  12. data/lib/faraday/adapter/patron.rb +54 -35
  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 +21 -79
  24. data/lib/faraday/logging/formatter.rb +92 -0
  25. data/lib/faraday/middleware.rb +4 -28
  26. data/lib/faraday/middleware_registry.rb +129 -0
  27. data/lib/faraday/options/connection_options.rb +22 -0
  28. data/lib/faraday/options/env.rb +181 -0
  29. data/lib/faraday/options/proxy_options.rb +28 -0
  30. data/lib/faraday/options/request_options.rb +21 -0
  31. data/lib/faraday/options/ssl_options.rb +59 -0
  32. data/lib/faraday/options.rb +33 -184
  33. data/lib/faraday/parameters.rb +4 -197
  34. data/lib/faraday/rack_builder.rb +66 -55
  35. data/lib/faraday/request/authorization.rb +42 -30
  36. data/lib/faraday/request/basic_authentication.rb +14 -7
  37. data/lib/faraday/request/instrumentation.rb +45 -27
  38. data/lib/faraday/request/multipart.rb +72 -49
  39. data/lib/faraday/request/retry.rb +197 -171
  40. data/lib/faraday/request/token_authentication.rb +15 -10
  41. data/lib/faraday/request/url_encoded.rb +41 -23
  42. data/lib/faraday/request.rb +68 -38
  43. data/lib/faraday/response/logger.rb +22 -69
  44. data/lib/faraday/response/raise_error.rb +36 -18
  45. data/lib/faraday/response.rb +22 -15
  46. data/lib/faraday/upload_io.rb +31 -30
  47. data/lib/faraday/utils/headers.rb +139 -0
  48. data/lib/faraday/utils/params_hash.rb +61 -0
  49. data/lib/faraday/utils.rb +28 -245
  50. data/lib/faraday.rb +93 -174
  51. data/spec/external_adapters/faraday_specs_setup.rb +14 -0
  52. metadata +25 -51
  53. data/CHANGELOG.md +0 -232
  54. data/Rakefile +0 -13
  55. data/lib/faraday/deprecate.rb +0 -109
  56. data/spec/faraday/deprecate_spec.rb +0 -147
  57. data/spec/faraday/error_spec.rb +0 -102
  58. data/spec/faraday/response/raise_error_spec.rb +0 -106
  59. data/spec/spec_helper.rb +0 -105
  60. data/test/adapters/default_test.rb +0 -14
  61. data/test/adapters/em_http_test.rb +0 -30
  62. data/test/adapters/em_synchrony_test.rb +0 -32
  63. data/test/adapters/excon_test.rb +0 -30
  64. data/test/adapters/httpclient_test.rb +0 -34
  65. data/test/adapters/integration.rb +0 -263
  66. data/test/adapters/logger_test.rb +0 -136
  67. data/test/adapters/net_http_persistent_test.rb +0 -114
  68. data/test/adapters/net_http_test.rb +0 -79
  69. data/test/adapters/patron_test.rb +0 -40
  70. data/test/adapters/rack_test.rb +0 -38
  71. data/test/adapters/test_middleware_test.rb +0 -157
  72. data/test/adapters/typhoeus_test.rb +0 -38
  73. data/test/authentication_middleware_test.rb +0 -65
  74. data/test/composite_read_io_test.rb +0 -109
  75. data/test/connection_test.rb +0 -738
  76. data/test/env_test.rb +0 -268
  77. data/test/helper.rb +0 -75
  78. data/test/live_server.rb +0 -67
  79. data/test/middleware/instrumentation_test.rb +0 -88
  80. data/test/middleware/retry_test.rb +0 -282
  81. data/test/middleware_stack_test.rb +0 -260
  82. data/test/multibyte.txt +0 -1
  83. data/test/options_test.rb +0 -333
  84. data/test/parameters_test.rb +0 -157
  85. data/test/request_middleware_test.rb +0 -126
  86. data/test/response_middleware_test.rb +0 -72
  87. data/test/strawberry.rb +0 -2
  88. data/test/utils_test.rb +0 -98
data/test/utils_test.rb DELETED
@@ -1,98 +0,0 @@
1
- require File.expand_path('../helper', __FILE__)
2
-
3
- class TestUtils < Faraday::TestCase
4
-
5
- # Headers parsing
6
-
7
- def test_headers
8
- "HTTP/1.x 500 OK\r\nContent-Type: text/html; charset=UTF-8\r\n" \
9
- "HTTP/1.x 200 OK\r\nContent-Type: application/json; charset=UTF-8\r\n\r\n"
10
- end
11
-
12
- def test_headers_parsing_for_aggregated_responses
13
- headers = Faraday::Utils::Headers.new()
14
- headers.parse(test_headers)
15
-
16
- result = headers.to_hash
17
-
18
- assert_equal result["Content-Type"], "application/json; charset=UTF-8"
19
- end
20
-
21
- # URI parsing
22
-
23
- def setup
24
- @url = "http://example.com/abc"
25
- end
26
-
27
- # emulates ActiveSupport::SafeBuffer#gsub
28
- FakeSafeBuffer = Struct.new(:string) do
29
- def to_s() self end
30
- def gsub(regex)
31
- string.gsub(regex) {
32
- match, = $&, '' =~ /a/
33
- yield(match)
34
- }
35
- end
36
- end
37
-
38
- def test_escaping_safe_buffer
39
- str = FakeSafeBuffer.new('$32,000.00')
40
- assert_equal '%2432%2C000.00', Faraday::Utils.escape(str)
41
- end
42
-
43
- def test_parses_with_default
44
- with_default_uri_parser(nil) do
45
- uri = normalize(@url)
46
- assert_equal 'example.com', uri.host
47
- end
48
- end
49
-
50
- def test_parses_with_URI
51
- with_default_uri_parser(::URI) do
52
- uri = normalize(@url)
53
- assert_equal 'example.com', uri.host
54
- end
55
- end
56
-
57
- def test_parses_with_block
58
- with_default_uri_parser(lambda {|u| "booya#{"!" * u.size}" }) do
59
- assert_equal 'booya!!!!!!!!!!!!!!!!!!!!!!', normalize(@url)
60
- end
61
- end
62
-
63
- def test_replace_header_hash
64
- headers = Faraday::Utils::Headers.new('authorization' => 't0ps3cr3t!')
65
- assert headers.include?('authorization')
66
-
67
- headers.replace({'content-type' => 'text/plain'})
68
-
69
- assert !headers.include?('authorization')
70
- end
71
-
72
- def normalize(url)
73
- Faraday::Utils::URI(url)
74
- end
75
-
76
- def with_default_uri_parser(parser)
77
- old_parser = Faraday::Utils.default_uri_parser
78
- begin
79
- Faraday::Utils.default_uri_parser = parser
80
- yield
81
- ensure
82
- Faraday::Utils.default_uri_parser = old_parser
83
- end
84
- end
85
-
86
- # YAML parsing
87
-
88
- def test_headers_yaml_roundtrip
89
- headers = Faraday::Utils::Headers.new('User-Agent' => 'safari', 'Content-type' => 'text/html')
90
- result = YAML.load(headers.to_yaml)
91
-
92
- assert result.include?('user-agent'), 'Unable to hydrate to a correct Headers'
93
- assert result.include?('content-type'), 'Unable to hydrate to a correct Headers'
94
- assert result['user-agent'] == 'safari', 'Unable to access rehydrated Headers'
95
- assert result['content-type'] == 'text/html', 'Unable to access rehydrated Headers'
96
- end
97
- end
98
-