faraday 0.9.1 → 0.17.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +196 -0
  3. data/LICENSE.md +1 -1
  4. data/README.md +192 -28
  5. data/Rakefile +6 -64
  6. data/lib/faraday/adapter/em_http.rb +17 -11
  7. data/lib/faraday/adapter/em_http_ssl_patch.rb +1 -1
  8. data/lib/faraday/adapter/em_synchrony.rb +19 -5
  9. data/lib/faraday/adapter/excon.rb +13 -11
  10. data/lib/faraday/adapter/httpclient.rb +31 -9
  11. data/lib/faraday/adapter/net_http.rb +36 -14
  12. data/lib/faraday/adapter/net_http_persistent.rb +37 -17
  13. data/lib/faraday/adapter/patron.rb +44 -21
  14. data/lib/faraday/adapter/rack.rb +1 -1
  15. data/lib/faraday/adapter/test.rb +79 -28
  16. data/lib/faraday/adapter/typhoeus.rb +4 -115
  17. data/lib/faraday/adapter.rb +10 -1
  18. data/lib/faraday/autoload.rb +1 -1
  19. data/lib/faraday/connection.rb +72 -20
  20. data/lib/faraday/deprecate.rb +101 -0
  21. data/lib/faraday/error.rb +90 -24
  22. data/lib/faraday/options.rb +43 -20
  23. data/lib/faraday/parameters.rb +56 -39
  24. data/lib/faraday/rack_builder.rb +27 -2
  25. data/lib/faraday/request/authorization.rb +1 -2
  26. data/lib/faraday/request/multipart.rb +7 -2
  27. data/lib/faraday/request/retry.rb +84 -19
  28. data/lib/faraday/request.rb +22 -0
  29. data/lib/faraday/response/logger.rb +29 -8
  30. data/lib/faraday/response/raise_error.rb +7 -3
  31. data/lib/faraday/response.rb +9 -5
  32. data/lib/faraday/utils.rb +32 -3
  33. data/lib/faraday.rb +14 -34
  34. data/spec/faraday/deprecate_spec.rb +69 -0
  35. data/spec/faraday/error_spec.rb +102 -0
  36. data/spec/faraday/response/raise_error_spec.rb +95 -0
  37. data/spec/spec_helper.rb +104 -0
  38. data/test/adapters/em_http_test.rb +10 -0
  39. data/test/adapters/em_synchrony_test.rb +22 -10
  40. data/test/adapters/excon_test.rb +10 -0
  41. data/test/adapters/httpclient_test.rb +14 -1
  42. data/test/adapters/integration.rb +17 -8
  43. data/test/adapters/logger_test.rb +65 -11
  44. data/test/adapters/net_http_persistent_test.rb +96 -2
  45. data/test/adapters/net_http_test.rb +67 -2
  46. data/test/adapters/patron_test.rb +28 -8
  47. data/test/adapters/rack_test.rb +8 -1
  48. data/test/adapters/test_middleware_test.rb +46 -3
  49. data/test/adapters/typhoeus_test.rb +19 -9
  50. data/test/composite_read_io_test.rb +16 -18
  51. data/test/connection_test.rb +294 -78
  52. data/test/env_test.rb +55 -5
  53. data/test/helper.rb +11 -17
  54. data/test/middleware/retry_test.rb +115 -10
  55. data/test/middleware_stack_test.rb +97 -10
  56. data/test/options_test.rb +97 -16
  57. data/test/parameters_test.rb +94 -1
  58. data/test/request_middleware_test.rb +24 -40
  59. data/test/response_middleware_test.rb +4 -4
  60. data/test/utils_test.rb +40 -0
  61. metadata +21 -66
  62. data/.document +0 -6
  63. data/CONTRIBUTING.md +0 -36
  64. data/Gemfile +0 -25
  65. data/faraday.gemspec +0 -34
  66. data/script/cached-bundle +0 -46
  67. data/script/console +0 -7
  68. data/script/generate_certs +0 -42
  69. data/script/package +0 -7
  70. data/script/proxy-server +0 -42
  71. data/script/release +0 -17
  72. data/script/s3-put +0 -71
  73. data/script/server +0 -36
  74. data/script/test +0 -172
@@ -1,4 +1,5 @@
1
1
  require File.expand_path("../helper", __FILE__)
2
+ require "rack/utils"
2
3
 
3
4
  class TestParameters < Faraday::TestCase
4
5
  # emulates ActiveSupport::SafeBuffer#gsub
@@ -55,10 +56,102 @@ class TestParameters < Faraday::TestCase
55
56
  end
56
57
 
57
58
  def test_encode_nil_nested
58
- assert_equal "a=", Faraday::NestedParamsEncoder.encode("a" => nil)
59
+ assert_equal "a", Faraday::NestedParamsEncoder.encode("a" => nil)
59
60
  end
60
61
 
61
62
  def test_encode_nil_flat
62
63
  assert_equal "a", Faraday::FlatParamsEncoder.encode("a" => nil)
63
64
  end
65
+
66
+ def test_decode_nested_array_rack_compat
67
+ query = "a[][one]=1&a[][two]=2&a[][one]=3&a[][two]=4"
68
+ expected = Rack::Utils.parse_nested_query(query)
69
+ assert_equal expected, Faraday::NestedParamsEncoder.decode(query)
70
+ end
71
+
72
+ def test_decode_nested_array_mixed_types
73
+ query = "a[][one]=1&a[]=2&a[]=&a[]"
74
+ expected = Rack::Utils.parse_nested_query(query)
75
+ assert_equal expected, Faraday::NestedParamsEncoder.decode(query)
76
+ end
77
+
78
+ def test_decode_nested_ignores_invalid_array
79
+ query = "[][a]=1&b=2"
80
+ expected = {"a" => "1", "b" => "2"}
81
+ assert_equal expected, Faraday::NestedParamsEncoder.decode(query)
82
+ end
83
+
84
+ def test_decode_nested_ignores_repeated_array_notation
85
+ query = "a[][][]=1"
86
+ expected = {"a" => ["1"]}
87
+ assert_equal expected, Faraday::NestedParamsEncoder.decode(query)
88
+ end
89
+
90
+ def test_decode_nested_ignores_malformed_keys
91
+ query = "=1&[]=2"
92
+ expected = {}
93
+ assert_equal expected, Faraday::NestedParamsEncoder.decode(query)
94
+ end
95
+
96
+ def test_decode_nested_subkeys_dont_have_to_be_in_brackets
97
+ query = "a[b]c[d]e=1"
98
+ expected = {"a" => {"b" => {"c" => {"d" => {"e" => "1"}}}}}
99
+ assert_equal expected, Faraday::NestedParamsEncoder.decode(query)
100
+ end
101
+
102
+ def test_decode_nested_raises_error_when_expecting_hash
103
+ error = assert_raises TypeError do
104
+ Faraday::NestedParamsEncoder.decode("a=1&a[b]=2")
105
+ end
106
+ assert_equal "expected Hash (got String) for param `a'", error.message
107
+
108
+ error = assert_raises TypeError do
109
+ Faraday::NestedParamsEncoder.decode("a[]=1&a[b]=2")
110
+ end
111
+ assert_equal "expected Hash (got Array) for param `a'", error.message
112
+
113
+ error = assert_raises TypeError do
114
+ Faraday::NestedParamsEncoder.decode("a[b]=1&a[]=2")
115
+ end
116
+ assert_equal "expected Array (got Hash) for param `a'", error.message
117
+
118
+ error = assert_raises TypeError do
119
+ Faraday::NestedParamsEncoder.decode("a=1&a[]=2")
120
+ end
121
+ assert_equal "expected Array (got String) for param `a'", error.message
122
+
123
+ error = assert_raises TypeError do
124
+ Faraday::NestedParamsEncoder.decode("a[b]=1&a[b][c]=2")
125
+ end
126
+ assert_equal "expected Hash (got String) for param `b'", error.message
127
+ end
128
+
129
+ def test_decode_nested_final_value_overrides_any_type
130
+ query = "a[b][c]=1&a[b]=2"
131
+ expected = {"a" => {"b" => "2"}}
132
+ assert_equal expected, Faraday::NestedParamsEncoder.decode(query)
133
+ end
134
+
135
+ def test_encode_rack_compat_nested
136
+ params = { :a => [{:one => "1", :two => "2"}, "3", ""] }
137
+ expected = Rack::Utils.build_nested_query(params)
138
+ assert_equal expected.split("&").sort,
139
+ Faraday::Utils.unescape(Faraday::NestedParamsEncoder.encode(params)).split("&").sort
140
+ end
141
+
142
+ def test_encode_empty_string_array_value
143
+ expected = 'baz=&foo%5Bbar%5D='
144
+ assert_equal expected, Faraday::NestedParamsEncoder.encode(foo: {bar: ''}, baz: '')
145
+ end
146
+
147
+ def test_encode_nil_array_value
148
+ expected = 'baz&foo%5Bbar%5D'
149
+ assert_equal expected, Faraday::NestedParamsEncoder.encode(foo: {bar: nil}, baz: nil)
150
+ end
151
+
152
+ def test_encode_empty_array_value
153
+ expected = 'baz%5B%5D&foo%5Bbar%5D%5B%5D'
154
+ Faraday::NestedParamsEncoder.encode(foo: { bar: [] }, baz: [])
155
+ assert_equal expected, Faraday::NestedParamsEncoder.encode(foo: { bar: [] }, baz: [])
156
+ end
64
157
  end
@@ -4,8 +4,8 @@ require File.expand_path('../helper', __FILE__)
4
4
  Faraday::CompositeReadIO.class_eval { attr_reader :ios }
5
5
 
6
6
  class RequestMiddlewareTest < Faraday::TestCase
7
- def setup
8
- @conn = Faraday.new do |b|
7
+ def conn
8
+ Faraday.new do |b|
9
9
  b.request :multipart
10
10
  b.request :url_encoded
11
11
  b.adapter :test do |stub|
@@ -17,53 +17,39 @@ class RequestMiddlewareTest < Faraday::TestCase
17
17
  end
18
18
  end
19
19
 
20
- def with_utf8
21
- if defined?(RUBY_VERSION) && RUBY_VERSION.match(/1.8.\d/)
22
- begin
23
- previous_kcode = $KCODE
24
- $KCODE = "UTF8"
25
- yield
26
- ensure
27
- $KCODE = previous_kcode
28
- end
29
- else
30
- yield
31
- end
32
- end
33
-
34
20
  def test_does_nothing_without_payload
35
- response = @conn.post('/echo')
21
+ response = conn.post('/echo')
36
22
  assert_nil response.headers['Content-Type']
37
23
  assert response.body.empty?
38
24
  end
39
25
 
40
26
  def test_ignores_custom_content_type
41
- response = @conn.post('/echo', { :some => 'data' }, 'content-type' => 'application/x-foo')
27
+ response = conn.post('/echo', { :some => 'data' }, 'content-type' => 'application/x-foo')
42
28
  assert_equal 'application/x-foo', response.headers['Content-Type']
43
29
  assert_equal({ :some => 'data' }, response.body)
44
30
  end
45
31
 
46
32
  def test_url_encoded_no_header
47
- response = @conn.post('/echo', { :fruit => %w[apples oranges] })
33
+ response = conn.post('/echo', { :fruit => %w[apples oranges] })
48
34
  assert_equal 'application/x-www-form-urlencoded', response.headers['Content-Type']
49
35
  assert_equal 'fruit%5B%5D=apples&fruit%5B%5D=oranges', response.body
50
36
  end
51
37
 
52
38
  def test_url_encoded_with_header
53
- response = @conn.post('/echo', {'a'=>123}, 'content-type' => 'application/x-www-form-urlencoded')
39
+ response = conn.post('/echo', {'a'=>123}, 'content-type' => 'application/x-www-form-urlencoded')
54
40
  assert_equal 'application/x-www-form-urlencoded', response.headers['Content-Type']
55
41
  assert_equal 'a=123', response.body
56
42
  end
57
43
 
58
44
  def test_url_encoded_nested
59
- response = @conn.post('/echo', { :user => {:name => 'Mislav', :web => 'mislav.net'} })
45
+ response = conn.post('/echo', { :user => {:name => 'Mislav', :web => 'mislav.net'} })
60
46
  assert_equal 'application/x-www-form-urlencoded', response.headers['Content-Type']
61
47
  expected = { 'user' => {'name' => 'Mislav', 'web' => 'mislav.net'} }
62
48
  assert_equal expected, Faraday::Utils.parse_nested_query(response.body)
63
49
  end
64
50
 
65
51
  def test_url_encoded_non_nested
66
- response = @conn.post('/echo', { :dimensions => ['date', 'location']}) do |req|
52
+ response = conn.post('/echo', { :dimensions => ['date', 'location']}) do |req|
67
53
  req.options.params_encoder = Faraday::FlatParamsEncoder
68
54
  end
69
55
  assert_equal 'application/x-www-form-urlencoded', response.headers['Content-Type']
@@ -74,24 +60,14 @@ class RequestMiddlewareTest < Faraday::TestCase
74
60
 
75
61
  def test_url_encoded_unicode
76
62
  err = capture_warnings {
77
- response = @conn.post('/echo', {:str => "eé cç aã aâ"})
63
+ response = conn.post('/echo', {:str => "eé cç aã aâ"})
78
64
  assert_equal "str=e%C3%A9+c%C3%A7+a%C3%A3+a%C3%A2", response.body
79
65
  }
80
66
  assert err.empty?, "stderr did include: #{err}"
81
67
  end
82
68
 
83
- def test_url_encoded_unicode_with_kcode_set
84
- with_utf8 do
85
- err = capture_warnings {
86
- response = @conn.post('/echo', {:str => "eé cç aã aâ"})
87
- assert_equal "str=e%C3%A9+c%C3%A7+a%C3%A3+a%C3%A2", response.body
88
- }
89
- assert err.empty?, "stderr did include: #{err}"
90
- end
91
- end
92
-
93
69
  def test_url_encoded_nested_keys
94
- response = @conn.post('/echo', {'a'=>{'b'=>{'c'=>['d']}}})
70
+ response = conn.post('/echo', {'a'=>{'b'=>{'c'=>['d']}}})
95
71
  assert_equal "a%5Bb%5D%5Bc%5D%5B%5D=d", response.body
96
72
  end
97
73
 
@@ -103,11 +79,12 @@ class RequestMiddlewareTest < Faraday::TestCase
103
79
  /name=\"b\[d\]\"/]
104
80
 
105
81
  payload = {:a => 1, :b => {:c => Faraday::UploadIO.new(__FILE__, 'text/x-ruby'), :d => 2}}
106
- response = @conn.post('/echo', payload)
82
+ response = conn.post('/echo', payload)
107
83
 
108
84
  assert_kind_of Faraday::CompositeReadIO, response.body
109
- assert_equal "multipart/form-data; boundary=%s" % Faraday::Request::Multipart::DEFAULT_BOUNDARY,
110
- response.headers['Content-Type']
85
+ assert response.headers['Content-Type'].start_with?(
86
+ "multipart/form-data; boundary=%s" % Faraday::Request::Multipart::DEFAULT_BOUNDARY_PREFIX,
87
+ )
111
88
 
112
89
  response.body.send(:ios).map{|io| io.read}.each do |io|
113
90
  if re = regexes.detect { |r| io =~ r }
@@ -125,11 +102,12 @@ class RequestMiddlewareTest < Faraday::TestCase
125
102
  /name=\"b\[\]\[d\]\"/]
126
103
 
127
104
  payload = {:a => 1, :b =>[{:c => Faraday::UploadIO.new(__FILE__, 'text/x-ruby'), :d => 2}]}
128
- response = @conn.post('/echo', payload)
105
+ response = conn.post('/echo', payload)
129
106
 
130
107
  assert_kind_of Faraday::CompositeReadIO, response.body
131
- assert_equal "multipart/form-data; boundary=%s" % Faraday::Request::Multipart::DEFAULT_BOUNDARY,
132
- response.headers['Content-Type']
108
+ assert response.headers['Content-Type'].start_with?(
109
+ "multipart/form-data; boundary=%s" % Faraday::Request::Multipart::DEFAULT_BOUNDARY_PREFIX,
110
+ )
133
111
 
134
112
  response.body.send(:ios).map{|io| io.read}.each do |io|
135
113
  if re = regexes.detect { |r| io =~ r }
@@ -139,4 +117,10 @@ class RequestMiddlewareTest < Faraday::TestCase
139
117
  assert_equal [], regexes
140
118
  end
141
119
 
120
+ def test_multipart_unique_boundary
121
+ payload = {:a => 1, :b =>[{:c => Faraday::UploadIO.new(__FILE__, 'text/x-ruby'), :d => 2}]}
122
+ response1 = conn.post('/echo', payload)
123
+ response2 = conn.post('/echo', payload)
124
+ assert response1.headers['Content-Type'] != response2.headers['Content-Type']
125
+ end
142
126
  end
@@ -23,7 +23,7 @@ class ResponseMiddlewareTest < Faraday::TestCase
23
23
  end
24
24
 
25
25
  def test_raises_not_found
26
- error = assert_raises Faraday::Error::ResourceNotFound do
26
+ error = assert_raises Faraday::ResourceNotFound do
27
27
  @conn.get('not-found')
28
28
  end
29
29
  assert_equal 'the server responded with status 404', error.message
@@ -31,7 +31,7 @@ class ResponseMiddlewareTest < Faraday::TestCase
31
31
  end
32
32
 
33
33
  def test_raises_error
34
- error = assert_raises Faraday::Error::ClientError do
34
+ error = assert_raises Faraday::ClientError do
35
35
  @conn.get('error')
36
36
  end
37
37
  assert_equal 'the server responded with status 500', error.message
@@ -63,10 +63,10 @@ class ResponseNoBodyMiddleWareTest < Faraday::TestCase
63
63
  end
64
64
 
65
65
  def test_204
66
- assert_equal nil, @conn.get('no_content').body
66
+ assert_nil @conn.get('no_content').body
67
67
  end
68
68
 
69
69
  def test_304
70
- assert_equal nil, @conn.get('not_modified').body
70
+ assert_nil @conn.get('not_modified').body
71
71
  end
72
72
  end
data/test/utils_test.rb CHANGED
@@ -1,6 +1,25 @@
1
1
  require File.expand_path('../helper', __FILE__)
2
2
 
3
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
+
4
23
  def setup
5
24
  @url = "http://example.com/abc"
6
25
  end
@@ -41,6 +60,15 @@ class TestUtils < Faraday::TestCase
41
60
  end
42
61
  end
43
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
+
44
72
  def normalize(url)
45
73
  Faraday::Utils::URI(url)
46
74
  end
@@ -54,5 +82,17 @@ class TestUtils < Faraday::TestCase
54
82
  Faraday::Utils.default_uri_parser = old_parser
55
83
  end
56
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
57
97
  end
58
98
 
metadata CHANGED
@@ -1,14 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: faraday
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.1
4
+ version: 0.17.1
5
5
  platform: ruby
6
6
  authors:
7
- - Rick Olson
7
+ - "@technoweenie"
8
+ - "@iMacTia"
9
+ - "@olleolleolle"
8
10
  autorequire:
9
11
  bindir: bin
10
12
  cert_chain: []
11
- date: 2015-01-07 00:00:00.000000000 Z
13
+ date: 2019-11-27 00:00:00.000000000 Z
12
14
  dependencies:
13
15
  - !ruby/object:Gem::Dependency
14
16
  name: multipart-post
@@ -30,34 +32,16 @@ dependencies:
30
32
  - - "<"
31
33
  - !ruby/object:Gem::Version
32
34
  version: '3'
33
- - !ruby/object:Gem::Dependency
34
- name: bundler
35
- requirement: !ruby/object:Gem::Requirement
36
- requirements:
37
- - - "~>"
38
- - !ruby/object:Gem::Version
39
- version: '1.0'
40
- type: :development
41
- prerelease: false
42
- version_requirements: !ruby/object:Gem::Requirement
43
- requirements:
44
- - - "~>"
45
- - !ruby/object:Gem::Version
46
- version: '1.0'
47
35
  description:
48
36
  email: technoweenie@gmail.com
49
37
  executables: []
50
38
  extensions: []
51
39
  extra_rdoc_files: []
52
40
  files:
53
- - ".document"
54
41
  - CHANGELOG.md
55
- - CONTRIBUTING.md
56
- - Gemfile
57
42
  - LICENSE.md
58
43
  - README.md
59
44
  - Rakefile
60
- - faraday.gemspec
61
45
  - lib/faraday.rb
62
46
  - lib/faraday/adapter.rb
63
47
  - lib/faraday/adapter/em_http.rb
@@ -74,6 +58,7 @@ files:
74
58
  - lib/faraday/adapter/typhoeus.rb
75
59
  - lib/faraday/autoload.rb
76
60
  - lib/faraday/connection.rb
61
+ - lib/faraday/deprecate.rb
77
62
  - lib/faraday/error.rb
78
63
  - lib/faraday/middleware.rb
79
64
  - lib/faraday/options.rb
@@ -92,15 +77,10 @@ files:
92
77
  - lib/faraday/response/raise_error.rb
93
78
  - lib/faraday/upload_io.rb
94
79
  - lib/faraday/utils.rb
95
- - script/cached-bundle
96
- - script/console
97
- - script/generate_certs
98
- - script/package
99
- - script/proxy-server
100
- - script/release
101
- - script/s3-put
102
- - script/server
103
- - script/test
80
+ - spec/faraday/deprecate_spec.rb
81
+ - spec/faraday/error_spec.rb
82
+ - spec/faraday/response/raise_error_spec.rb
83
+ - spec/spec_helper.rb
104
84
  - test/adapters/default_test.rb
105
85
  - test/adapters/em_http_test.rb
106
86
  - test/adapters/em_synchrony_test.rb
@@ -130,10 +110,14 @@ files:
130
110
  - test/response_middleware_test.rb
131
111
  - test/strawberry.rb
132
112
  - test/utils_test.rb
133
- homepage: https://github.com/lostisland/faraday
113
+ homepage: https://lostisland.github.io/faraday
134
114
  licenses:
135
115
  - MIT
136
- metadata: {}
116
+ metadata:
117
+ homepage_uri: https://lostisland.github.io/faraday
118
+ changelog_uri: https://github.com/lostisland/faraday/blob/master/CHANGELOG.md
119
+ source_code_uri: https://github.com/lostisland/faraday/
120
+ bug_tracker_uri: https://github.com/lostisland/faraday/issues
137
121
  post_install_message:
138
122
  rdoc_options: []
139
123
  require_paths:
@@ -142,44 +126,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
142
126
  requirements:
143
127
  - - ">="
144
128
  - !ruby/object:Gem::Version
145
- version: '0'
129
+ version: '1.9'
146
130
  required_rubygems_version: !ruby/object:Gem::Requirement
147
131
  requirements:
148
132
  - - ">="
149
133
  - !ruby/object:Gem::Version
150
- version: 1.3.5
134
+ version: '0'
151
135
  requirements: []
152
- rubyforge_project:
153
- rubygems_version: 2.2.2
136
+ rubygems_version: 3.0.3
154
137
  signing_key:
155
- specification_version: 2
138
+ specification_version: 4
156
139
  summary: HTTP/REST API client library.
157
- test_files:
158
- - test/adapters/default_test.rb
159
- - test/adapters/em_http_test.rb
160
- - test/adapters/em_synchrony_test.rb
161
- - test/adapters/excon_test.rb
162
- - test/adapters/httpclient_test.rb
163
- - test/adapters/integration.rb
164
- - test/adapters/logger_test.rb
165
- - test/adapters/net_http_persistent_test.rb
166
- - test/adapters/net_http_test.rb
167
- - test/adapters/patron_test.rb
168
- - test/adapters/rack_test.rb
169
- - test/adapters/test_middleware_test.rb
170
- - test/adapters/typhoeus_test.rb
171
- - test/authentication_middleware_test.rb
172
- - test/composite_read_io_test.rb
173
- - test/connection_test.rb
174
- - test/env_test.rb
175
- - test/helper.rb
176
- - test/live_server.rb
177
- - test/middleware/instrumentation_test.rb
178
- - test/middleware/retry_test.rb
179
- - test/middleware_stack_test.rb
180
- - test/options_test.rb
181
- - test/parameters_test.rb
182
- - test/request_middleware_test.rb
183
- - test/response_middleware_test.rb
184
- - test/strawberry.rb
185
- - test/utils_test.rb
140
+ test_files: []
data/.document DELETED
@@ -1,6 +0,0 @@
1
- CONTRIBUTING.md
2
- LICENSE.md
3
- README.md
4
- bin/*
5
- lib/**/*.rb
6
- test/**/*.rb
data/CONTRIBUTING.md DELETED
@@ -1,36 +0,0 @@
1
- ## Contributing
2
-
3
- You can run the test suite against a live server by running `script/test`. It
4
- automatically starts a test server in background. Only tests in
5
- `test/adapters/*_test.rb` require a server, though.
6
-
7
- ``` sh
8
- # run the whole suite
9
- $ script/test
10
-
11
- # run only specific files
12
- $ script/test excon typhoeus
13
-
14
- # run tests using SSL
15
- $ SSL=yes script/test
16
- ```
17
-
18
- We will accept middleware that:
19
-
20
- 1. is useful to a broader audience, but can be implemented relatively
21
- simple; and
22
- 2. which isn't already present in [faraday_middleware][] project.
23
-
24
- We will accept adapters that:
25
-
26
- 1. support SSL & streaming;
27
- 1. are proven and may have better performance than existing ones; or
28
- 2. if they have features not present in included adapters.
29
-
30
- We are pushing towards a 1.0 release, when we will have to follow [Semantic
31
- Versioning][semver]. If your patch includes changes to break compatibility,
32
- note that so we can add it to the [Changelog][].
33
-
34
- [semver]: http://semver.org/
35
- [changelog]: https://github.com/lostisland/faraday/wiki/Changelog
36
- [faraday_middleware]: https://github.com/lostisland/faraday_middleware/wiki
data/Gemfile DELETED
@@ -1,25 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gem 'ffi-ncurses', '~> 0.3', :platforms => :jruby
4
- gem 'jruby-openssl', '~> 0.8.8', :platforms => :jruby
5
- gem 'rake'
6
-
7
- group :test do
8
- gem 'coveralls', :require => false
9
- gem 'em-http-request', '>= 1.1', :require => 'em-http'
10
- gem 'em-synchrony', '>= 1.0.3', :require => ['em-synchrony', 'em-synchrony/em-http']
11
- gem 'excon', '>= 0.27.4'
12
- gem 'httpclient', '>= 2.2'
13
- gem 'leftright', '>= 0.9', :require => false
14
- gem 'mime-types', '~> 1.25', :platforms => [:jruby, :ruby_18]
15
- gem 'minitest', '>= 5.0.5'
16
- gem 'net-http-persistent', '>= 2.9.4'
17
- gem 'patron', '>= 0.4.2', :platforms => :ruby
18
- gem 'rack-test', '>= 0.6', :require => 'rack/test'
19
- gem 'rest-client', '~> 1.6.0', :platforms => [:jruby, :ruby_18]
20
- gem 'simplecov'
21
- gem 'sinatra', '~> 1.3'
22
- gem 'typhoeus', '~> 0.3.3', :platforms => :ruby
23
- end
24
-
25
- gemspec
data/faraday.gemspec DELETED
@@ -1,34 +0,0 @@
1
- lib = "faraday"
2
- lib_file = File.expand_path("../lib/#{lib}.rb", __FILE__)
3
- File.read(lib_file) =~ /\bVERSION\s*=\s*["'](.+?)["']/
4
- version = $1
5
-
6
- Gem::Specification.new do |spec|
7
- spec.specification_version = 2 if spec.respond_to? :specification_version=
8
- spec.required_rubygems_version = '>= 1.3.5'
9
-
10
- spec.name = lib
11
- spec.version = version
12
-
13
- spec.summary = "HTTP/REST API client library."
14
-
15
- spec.authors = ["Rick Olson"]
16
- spec.email = 'technoweenie@gmail.com'
17
- spec.homepage = 'https://github.com/lostisland/faraday'
18
- spec.licenses = ['MIT']
19
-
20
- spec.add_dependency 'multipart-post', '>= 1.2', '< 3'
21
- spec.add_development_dependency 'bundler', '~> 1.0'
22
-
23
- spec.files = %w(.document CHANGELOG.md CONTRIBUTING.md Gemfile LICENSE.md README.md Rakefile)
24
- spec.files << "#{lib}.gemspec"
25
- spec.files += Dir.glob("lib/**/*.rb")
26
- spec.files += Dir.glob("test/**/*.{rb,txt}")
27
- spec.files += Dir.glob("script/*")
28
-
29
- dev_null = File.exist?('/dev/null') ? '/dev/null' : 'NUL'
30
- git_files = `git ls-files -z 2>#{dev_null}`
31
- spec.files &= git_files.split("\0") if $?.success?
32
-
33
- spec.test_files = Dir.glob("test/**/*.rb")
34
- end
data/script/cached-bundle DELETED
@@ -1,46 +0,0 @@
1
- #!/usr/bin/env bash
2
- # Usage: cached-bundle install --deployment
3
- #
4
- # After running `bundle`, caches the `./bundle` directory to S3.
5
- # On the next run, restores the cached directory before running `bundle`.
6
- # When `Gemfile` changes, the cache gets rebuilt.
7
- #
8
- # Requirements:
9
- # - Gemfile
10
- # - TRAVIS_REPO_SLUG
11
- # - TRAVIS_RUBY_VERSION
12
- # - AMAZON_S3_BUCKET
13
- # - script/s3-put
14
- # - bundle
15
- # - curl
16
- #
17
- # Author: Mislav Marohnić
18
-
19
- set -e
20
-
21
- compute_md5() {
22
- local output="$(openssl md5)"
23
- echo "${output##* }"
24
- }
25
-
26
- download() {
27
- curl --tcp-nodelay -qsfL "$1" -o "$2"
28
- }
29
-
30
- bundle_path="bundle"
31
- gemfile_hash="$(compute_md5 <"${BUNDLE_GEMFILE:-Gemfile}")"
32
- cache_name="${TRAVIS_RUBY_VERSION}-${gemfile_hash}.tgz"
33
- fetch_url="http://${AMAZON_S3_BUCKET}.s3.amazonaws.com/${TRAVIS_REPO_SLUG}/${cache_name}"
34
-
35
- if download "$fetch_url" "$cache_name"; then
36
- echo "Reusing cached bundle ${cache_name}"
37
- tar xzf "$cache_name"
38
- fi
39
-
40
- bundle "$@"
41
-
42
- if [ ! -f "$cache_name" ] && [ -n "$AMAZON_SECRET_ACCESS_KEY" ]; then
43
- echo "Caching \`${bundle_path}' to S3"
44
- tar czf "$cache_name" "$bundle_path"
45
- script/s3-put "$cache_name" "${AMAZON_S3_BUCKET}:${TRAVIS_REPO_SLUG}/${cache_name}"
46
- fi
data/script/console DELETED
@@ -1,7 +0,0 @@
1
- #!/usr/bin/env bash
2
- # Usage: script/console
3
- # Starts an IRB console with this library loaded.
4
-
5
- gemspec="$(ls *.gemspec | head -1)"
6
-
7
- exec bundle exec irb -r "${gemspec%.*}"