faraday 0.6.0 → 0.8.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.
- data/Gemfile +22 -15
- data/{LICENSE → LICENSE.md} +1 -1
- data/README.md +216 -146
- data/Rakefile +14 -58
- data/config.ru +6 -0
- data/faraday.gemspec +31 -38
- data/lib/faraday/adapter/em_http.rb +204 -0
- data/lib/faraday/adapter/em_synchrony/parallel_manager.rb +66 -0
- data/lib/faraday/adapter/em_synchrony.rb +67 -16
- data/lib/faraday/adapter/excon.rb +1 -2
- data/lib/faraday/adapter/net_http.rb +82 -39
- data/lib/faraday/adapter/net_http_persistent.rb +37 -0
- data/lib/faraday/adapter/patron.rb +42 -8
- data/lib/faraday/adapter/rack.rb +59 -0
- data/lib/faraday/adapter/test.rb +49 -9
- data/lib/faraday/adapter/typhoeus.rb +70 -15
- data/lib/faraday/adapter.rb +41 -18
- data/lib/faraday/builder.rb +34 -16
- data/lib/faraday/connection.rb +177 -115
- data/lib/faraday/error.rb +4 -2
- data/lib/faraday/middleware.rb +18 -10
- data/lib/faraday/request/authorization.rb +40 -0
- data/lib/faraday/request/basic_authentication.rb +13 -0
- data/lib/faraday/request/multipart.rb +5 -6
- data/lib/faraday/request/retry.rb +21 -0
- data/lib/faraday/request/token_authentication.rb +15 -0
- data/lib/faraday/request/url_encoded.rb +1 -3
- data/lib/faraday/request.rb +48 -38
- data/lib/faraday/response/raise_error.rb +1 -1
- data/lib/faraday/response.rb +6 -5
- data/lib/faraday/upload_io.rb +1 -1
- data/lib/faraday/utils.rb +196 -29
- data/lib/faraday.rb +69 -13
- data/test/adapters/default_test.rb +14 -0
- data/test/adapters/em_http_test.rb +14 -0
- data/test/adapters/em_synchrony_test.rb +14 -0
- data/test/adapters/excon_test.rb +23 -0
- data/test/adapters/integration.rb +190 -0
- data/test/adapters/logger_test.rb +2 -2
- data/test/adapters/net_http_persistent_test.rb +11 -0
- data/test/adapters/net_http_test.rb +37 -21
- data/test/adapters/patron_test.rb +17 -0
- data/test/adapters/rack_test.rb +26 -0
- data/test/adapters/test_middleware_test.rb +28 -1
- data/test/adapters/typhoeus_test.rb +14 -0
- data/test/authentication_middleware_test.rb +65 -0
- data/test/connection_test.rb +211 -81
- data/test/env_test.rb +80 -31
- data/test/helper.rb +23 -13
- data/test/live_server.rb +38 -29
- data/test/middleware/retry_test.rb +25 -0
- data/test/middleware_stack_test.rb +85 -4
- data/test/request_middleware_test.rb +42 -19
- data/test/response_middleware_test.rb +30 -3
- metadata +104 -110
- data/lib/faraday/adapter/action_dispatch.rb +0 -30
- data/lib/faraday/request/json.rb +0 -31
- data/test/adapters/live_test.rb +0 -186
data/test/live_server.rb
CHANGED
|
@@ -1,41 +1,50 @@
|
|
|
1
|
-
require 'sinatra'
|
|
2
|
-
set :logging, false
|
|
1
|
+
require 'sinatra/base'
|
|
3
2
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
class FaradayTestServer < Sinatra::Base
|
|
4
|
+
set :logging => false,
|
|
5
|
+
:show_exceptions => false
|
|
7
6
|
|
|
8
|
-
get
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
[:get, :post, :put, :patch, :delete, :options].each do |method|
|
|
8
|
+
send(method, '/echo') do
|
|
9
|
+
kind = request.request_method.downcase
|
|
10
|
+
out = kind.dup
|
|
11
|
+
out << ' ?' << request.GET.inspect if request.GET.any?
|
|
12
|
+
out << ' ' << request.POST.inspect if request.POST.any?
|
|
12
13
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
params[:uploaded_file][:filename],
|
|
17
|
-
params[:uploaded_file][:type]]
|
|
18
|
-
else
|
|
19
|
-
status 400
|
|
14
|
+
content_type 'text/plain'
|
|
15
|
+
return out
|
|
16
|
+
end
|
|
20
17
|
end
|
|
21
|
-
end
|
|
22
18
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
19
|
+
get '/echo_header' do
|
|
20
|
+
header = "HTTP_#{params[:name].tr('-', '_').upcase}"
|
|
21
|
+
request.env.fetch(header) { 'NONE' }
|
|
26
22
|
end
|
|
27
|
-
end
|
|
28
23
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
24
|
+
post '/file' do
|
|
25
|
+
if params[:uploaded_file].respond_to? :each_key
|
|
26
|
+
"file %s %s" % [
|
|
27
|
+
params[:uploaded_file][:filename],
|
|
28
|
+
params[:uploaded_file][:type]]
|
|
29
|
+
else
|
|
30
|
+
status 400
|
|
31
|
+
end
|
|
32
32
|
end
|
|
33
|
-
end
|
|
34
33
|
|
|
35
|
-
|
|
36
|
-
|
|
34
|
+
get '/multi' do
|
|
35
|
+
[200, { 'Set-Cookie' => 'one, two' }, '']
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
get '/slow' do
|
|
39
|
+
sleep 10
|
|
40
|
+
[200, {}, 'ok']
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
error do |e|
|
|
44
|
+
"#{e.class}\n#{e.to_s}\n#{e.backtrace.join("\n")}"
|
|
45
|
+
end
|
|
37
46
|
end
|
|
38
47
|
|
|
39
|
-
|
|
40
|
-
|
|
48
|
+
if $0 == __FILE__
|
|
49
|
+
FaradayTestServer.run!
|
|
41
50
|
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
require File.expand_path(File.join(File.dirname(__FILE__), "..", "helper"))
|
|
2
|
+
|
|
3
|
+
module Middleware
|
|
4
|
+
class RetryTest < Faraday::TestCase
|
|
5
|
+
def setup
|
|
6
|
+
@stubs = Faraday::Adapter::Test::Stubs.new
|
|
7
|
+
@conn = Faraday.new do |b|
|
|
8
|
+
b.request :retry, 2
|
|
9
|
+
b.adapter :test, @stubs
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def test_retries
|
|
14
|
+
times_called = 0
|
|
15
|
+
|
|
16
|
+
@stubs.post("/echo") do
|
|
17
|
+
times_called += 1
|
|
18
|
+
raise "Error occurred"
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
@conn.post("/echo") rescue nil
|
|
22
|
+
assert_equal times_called, 3
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -12,22 +12,24 @@ class MiddlewareStackTest < Faraday::TestCase
|
|
|
12
12
|
class Orange < Handler; end
|
|
13
13
|
class Banana < Handler; end
|
|
14
14
|
|
|
15
|
+
class Broken < Faraday::Middleware
|
|
16
|
+
dependency 'zomg/i_dont/exist'
|
|
17
|
+
end
|
|
18
|
+
|
|
15
19
|
def setup
|
|
16
20
|
@conn = Faraday::Connection.new
|
|
17
21
|
@builder = @conn.builder
|
|
18
22
|
end
|
|
19
23
|
|
|
20
24
|
def test_sets_default_adapter_if_none_set
|
|
21
|
-
default_middleware = Faraday::Request.
|
|
22
|
-
default_adapter_klass = Faraday::Adapter.
|
|
25
|
+
default_middleware = Faraday::Request.lookup_middleware :url_encoded
|
|
26
|
+
default_adapter_klass = Faraday::Adapter.lookup_middleware Faraday.default_adapter
|
|
23
27
|
assert @builder[0] == default_middleware
|
|
24
28
|
assert @builder[1] == default_adapter_klass
|
|
25
29
|
end
|
|
26
30
|
|
|
27
31
|
def test_allows_rebuilding
|
|
28
32
|
build_stack Apple
|
|
29
|
-
assert_handlers %w[Apple]
|
|
30
|
-
|
|
31
33
|
build_stack Orange
|
|
32
34
|
assert_handlers %w[Orange]
|
|
33
35
|
end
|
|
@@ -67,12 +69,86 @@ class MiddlewareStackTest < Faraday::TestCase
|
|
|
67
69
|
assert_handlers %w[Orange]
|
|
68
70
|
end
|
|
69
71
|
|
|
72
|
+
def test_stack_is_locked_after_making_requests
|
|
73
|
+
build_stack Apple
|
|
74
|
+
assert !@builder.locked?
|
|
75
|
+
@conn.get('/')
|
|
76
|
+
assert @builder.locked?
|
|
77
|
+
|
|
78
|
+
assert_raises Faraday::Builder::StackLocked do
|
|
79
|
+
@conn.use Orange
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
def test_duped_stack_is_unlocked
|
|
84
|
+
build_stack Apple
|
|
85
|
+
assert !@builder.locked?
|
|
86
|
+
@builder.lock!
|
|
87
|
+
assert @builder.locked?
|
|
88
|
+
|
|
89
|
+
duped_connection = @conn.dup
|
|
90
|
+
assert_equal @builder, duped_connection.builder
|
|
91
|
+
assert !duped_connection.builder.locked?
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
def test_handler_comparison
|
|
95
|
+
build_stack Apple
|
|
96
|
+
assert_equal @builder.handlers.first, Apple
|
|
97
|
+
assert_equal @builder.handlers[0,1], [Apple]
|
|
98
|
+
assert_equal @builder.handlers.first, Faraday::Builder::Handler.new(Apple)
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
def test_unregistered_symbol
|
|
102
|
+
err = assert_raise(RuntimeError) { build_stack :apple }
|
|
103
|
+
assert_equal ":apple is not registered on Faraday::Middleware", err.message
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
def test_registered_symbol
|
|
107
|
+
Faraday.register_middleware :apple => Apple
|
|
108
|
+
begin
|
|
109
|
+
build_stack :apple
|
|
110
|
+
assert_handlers %w[Apple]
|
|
111
|
+
ensure
|
|
112
|
+
unregister_middleware Faraday::Middleware, :apple
|
|
113
|
+
end
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
def test_registered_symbol_with_proc
|
|
117
|
+
Faraday.register_middleware :apple => lambda { Apple }
|
|
118
|
+
begin
|
|
119
|
+
build_stack :apple
|
|
120
|
+
assert_handlers %w[Apple]
|
|
121
|
+
ensure
|
|
122
|
+
unregister_middleware Faraday::Middleware, :apple
|
|
123
|
+
end
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
def test_registered_symbol_with_type
|
|
127
|
+
Faraday.register_middleware :request, :orange => Orange
|
|
128
|
+
begin
|
|
129
|
+
build_stack {|b| b.request :orange }
|
|
130
|
+
assert_handlers %w[Orange]
|
|
131
|
+
ensure
|
|
132
|
+
unregister_middleware Faraday::Request, :orange
|
|
133
|
+
end
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
def test_missing_dependencies
|
|
137
|
+
build_stack Broken
|
|
138
|
+
err = assert_raises RuntimeError do
|
|
139
|
+
@conn.get('/')
|
|
140
|
+
end
|
|
141
|
+
assert_match "missing dependency for MiddlewareStackTest::Broken: ", err.message
|
|
142
|
+
assert_match "zomg/i_dont/exist", err.message
|
|
143
|
+
end
|
|
144
|
+
|
|
70
145
|
private
|
|
71
146
|
|
|
72
147
|
# make a stack with test adapter that reflects the order of middleware
|
|
73
148
|
def build_stack(*handlers)
|
|
74
149
|
@builder.build do |b|
|
|
75
150
|
handlers.each { |handler| b.use(*handler) }
|
|
151
|
+
yield b if block_given?
|
|
76
152
|
|
|
77
153
|
b.adapter :test do |stub|
|
|
78
154
|
stub.get '/' do |env|
|
|
@@ -88,4 +164,9 @@ class MiddlewareStackTest < Faraday::TestCase
|
|
|
88
164
|
echoed_list.shift if echoed_list.first == ''
|
|
89
165
|
assert_equal list, echoed_list
|
|
90
166
|
end
|
|
167
|
+
|
|
168
|
+
def unregister_middleware(component, key)
|
|
169
|
+
# TODO: unregister API?
|
|
170
|
+
component.instance_variable_get('@registered_middleware').delete(key)
|
|
171
|
+
end
|
|
91
172
|
end
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
1
2
|
require File.expand_path(File.join(File.dirname(__FILE__), 'helper'))
|
|
2
|
-
require 'rack/utils'
|
|
3
3
|
|
|
4
|
-
Faraday::CompositeReadIO.
|
|
4
|
+
Faraday::CompositeReadIO.class_eval { attr_reader :ios }
|
|
5
5
|
|
|
6
6
|
class RequestMiddlewareTest < Faraday::TestCase
|
|
7
7
|
def setup
|
|
8
8
|
@conn = Faraday.new do |b|
|
|
9
9
|
b.request :multipart
|
|
10
10
|
b.request :url_encoded
|
|
11
|
-
b.request :json
|
|
12
11
|
b.adapter :test do |stub|
|
|
13
12
|
stub.post('/echo') do |env|
|
|
14
13
|
posted_as = env[:request_headers]['Content-Type']
|
|
@@ -30,22 +29,10 @@ class RequestMiddlewareTest < Faraday::TestCase
|
|
|
30
29
|
assert_equal({ :some => 'data' }, response.body)
|
|
31
30
|
end
|
|
32
31
|
|
|
33
|
-
def test_json_encodes_hash
|
|
34
|
-
response = @conn.post('/echo', { :fruit => %w[apples oranges] }, 'content-type' => 'application/json')
|
|
35
|
-
assert_equal 'application/json', response.headers['Content-Type']
|
|
36
|
-
assert_equal '{"fruit":["apples","oranges"]}', response.body
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
def test_json_skips_encoding_for_strings
|
|
40
|
-
response = @conn.post('/echo', '{"a":"b"}', 'content-type' => 'application/json')
|
|
41
|
-
assert_equal 'application/json', response.headers['Content-Type']
|
|
42
|
-
assert_equal '{"a":"b"}', response.body
|
|
43
|
-
end
|
|
44
|
-
|
|
45
32
|
def test_url_encoded_no_header
|
|
46
33
|
response = @conn.post('/echo', { :fruit => %w[apples oranges] })
|
|
47
34
|
assert_equal 'application/x-www-form-urlencoded', response.headers['Content-Type']
|
|
48
|
-
assert_equal 'fruit
|
|
35
|
+
assert_equal 'fruit%5B%5D=apples&fruit%5B%5D=oranges', response.body
|
|
49
36
|
end
|
|
50
37
|
|
|
51
38
|
def test_url_encoded_with_header
|
|
@@ -58,7 +45,20 @@ class RequestMiddlewareTest < Faraday::TestCase
|
|
|
58
45
|
response = @conn.post('/echo', { :user => {:name => 'Mislav', :web => 'mislav.net'} })
|
|
59
46
|
assert_equal 'application/x-www-form-urlencoded', response.headers['Content-Type']
|
|
60
47
|
expected = { 'user' => {'name' => 'Mislav', 'web' => 'mislav.net'} }
|
|
61
|
-
assert_equal expected,
|
|
48
|
+
assert_equal expected, Faraday::Utils.parse_nested_query(response.body)
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def test_url_encoded_unicode
|
|
52
|
+
err = capture_warnings {
|
|
53
|
+
response = @conn.post('/echo', {:str => "eé cç aã aâ"})
|
|
54
|
+
assert_equal "str=e%C3%A9+c%C3%A7+a%C3%A3+a%C3%A2", response.body
|
|
55
|
+
}
|
|
56
|
+
assert err.empty?
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def test_url_encoded_nested_keys
|
|
60
|
+
response = @conn.post('/echo', {'a'=>{'b'=>{'c'=>['d']}}})
|
|
61
|
+
assert_equal "a%5Bb%5D%5Bc%5D%5B%5D=d", response.body
|
|
62
62
|
end
|
|
63
63
|
|
|
64
64
|
def test_multipart
|
|
@@ -74,12 +74,35 @@ class RequestMiddlewareTest < Faraday::TestCase
|
|
|
74
74
|
assert_kind_of Faraday::CompositeReadIO, response.body
|
|
75
75
|
assert_equal "multipart/form-data;boundary=%s" % Faraday::Request::Multipart::DEFAULT_BOUNDARY,
|
|
76
76
|
response.headers['Content-Type']
|
|
77
|
-
|
|
78
|
-
response.body.send(:ios).map
|
|
77
|
+
|
|
78
|
+
response.body.send(:ios).map{|io| io.read}.each do |io|
|
|
79
|
+
if re = regexes.detect { |r| io =~ r }
|
|
80
|
+
regexes.delete re
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
assert_equal [], regexes
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
def test_multipart_with_arrays
|
|
87
|
+
# assume params are out of order
|
|
88
|
+
regexes = [
|
|
89
|
+
/name\=\"a\"/,
|
|
90
|
+
/name=\"b\[\]\[c\]\"\; filename\=\"request_middleware_test\.rb\"/,
|
|
91
|
+
/name=\"b\[\]\[d\]\"/]
|
|
92
|
+
|
|
93
|
+
payload = {:a => 1, :b =>[{:c => Faraday::UploadIO.new(__FILE__, 'text/x-ruby'), :d => 2}]}
|
|
94
|
+
response = @conn.post('/echo', payload)
|
|
95
|
+
|
|
96
|
+
assert_kind_of Faraday::CompositeReadIO, response.body
|
|
97
|
+
assert_equal "multipart/form-data;boundary=%s" % Faraday::Request::Multipart::DEFAULT_BOUNDARY,
|
|
98
|
+
response.headers['Content-Type']
|
|
99
|
+
|
|
100
|
+
response.body.send(:ios).map{|io| io.read}.each do |io|
|
|
79
101
|
if re = regexes.detect { |r| io =~ r }
|
|
80
102
|
regexes.delete re
|
|
81
103
|
end
|
|
82
104
|
end
|
|
83
105
|
assert_equal [], regexes
|
|
84
106
|
end
|
|
107
|
+
|
|
85
108
|
end
|
|
@@ -23,7 +23,7 @@ class ResponseMiddlewareTest < Faraday::TestCase
|
|
|
23
23
|
@conn.get('ok')
|
|
24
24
|
end
|
|
25
25
|
end
|
|
26
|
-
|
|
26
|
+
|
|
27
27
|
def test_raises_not_found
|
|
28
28
|
error = assert_raises Faraday::Error::ResourceNotFound do
|
|
29
29
|
@conn.get('not-found')
|
|
@@ -31,7 +31,7 @@ class ResponseMiddlewareTest < Faraday::TestCase
|
|
|
31
31
|
assert_equal 'the server responded with status 404', error.message
|
|
32
32
|
assert_equal 'because', error.response[:headers]['X-Reason']
|
|
33
33
|
end
|
|
34
|
-
|
|
34
|
+
|
|
35
35
|
def test_raises_error
|
|
36
36
|
error = assert_raises Faraday::Error::ClientError do
|
|
37
37
|
@conn.get('error')
|
|
@@ -39,9 +39,36 @@ class ResponseMiddlewareTest < Faraday::TestCase
|
|
|
39
39
|
assert_equal 'the server responded with status 500', error.message
|
|
40
40
|
assert_equal 'bailout', error.response[:headers]['X-Error']
|
|
41
41
|
end
|
|
42
|
-
|
|
42
|
+
|
|
43
43
|
def test_upcase
|
|
44
44
|
@conn.builder.insert(0, ResponseUpcaser)
|
|
45
45
|
assert_equal '<BODY></BODY>', @conn.get('ok').body
|
|
46
46
|
end
|
|
47
47
|
end
|
|
48
|
+
|
|
49
|
+
class ResponseNoBodyMiddleWareTest < Faraday::TestCase
|
|
50
|
+
def setup
|
|
51
|
+
@conn = Faraday.new do |b|
|
|
52
|
+
b.response :raise_error
|
|
53
|
+
b.adapter :test do |stub|
|
|
54
|
+
stub.get('not_modified') { [304, nil, nil] }
|
|
55
|
+
stub.get('no_content') { [204, nil, nil] }
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
@conn.builder.insert(0, NotCalled)
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
class NotCalled < Faraday::Response::Middleware
|
|
62
|
+
def parse(body)
|
|
63
|
+
raise "this should not be called"
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def test_204
|
|
68
|
+
assert_equal nil, @conn.get('no_content').body
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def test_304
|
|
72
|
+
assert_equal nil, @conn.get('not_modified').body
|
|
73
|
+
end
|
|
74
|
+
end
|
metadata
CHANGED
|
@@ -1,113 +1,93 @@
|
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: faraday
|
|
3
|
-
version: !ruby/object:Gem::Version
|
|
4
|
-
|
|
5
|
-
prerelease:
|
|
6
|
-
segments:
|
|
7
|
-
- 0
|
|
8
|
-
- 6
|
|
9
|
-
- 0
|
|
10
|
-
version: 0.6.0
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.8.0
|
|
5
|
+
prerelease:
|
|
11
6
|
platform: ruby
|
|
12
|
-
authors:
|
|
7
|
+
authors:
|
|
13
8
|
- Rick Olson
|
|
14
9
|
autorequire:
|
|
15
10
|
bindir: bin
|
|
16
11
|
cert_chain: []
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
name: rake
|
|
23
|
-
prerelease: false
|
|
24
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
|
12
|
+
date: 2012-04-23 00:00:00.000000000 Z
|
|
13
|
+
dependencies:
|
|
14
|
+
- !ruby/object:Gem::Dependency
|
|
15
|
+
name: multipart-post
|
|
16
|
+
requirement: &70331771782880 !ruby/object:Gem::Requirement
|
|
25
17
|
none: false
|
|
26
|
-
requirements:
|
|
18
|
+
requirements:
|
|
27
19
|
- - ~>
|
|
28
|
-
- !ruby/object:Gem::Version
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
20
|
+
- !ruby/object:Gem::Version
|
|
21
|
+
version: '1.1'
|
|
22
|
+
type: :runtime
|
|
23
|
+
prerelease: false
|
|
24
|
+
version_requirements: *70331771782880
|
|
25
|
+
- !ruby/object:Gem::Dependency
|
|
26
|
+
name: rake
|
|
27
|
+
requirement: &70331771781000 !ruby/object:Gem::Requirement
|
|
28
|
+
none: false
|
|
29
|
+
requirements:
|
|
30
|
+
- - ! '>='
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '0'
|
|
34
33
|
type: :development
|
|
35
|
-
version_requirements: *id001
|
|
36
|
-
- !ruby/object:Gem::Dependency
|
|
37
|
-
name: addressable
|
|
38
34
|
prerelease: false
|
|
39
|
-
|
|
35
|
+
version_requirements: *70331771781000
|
|
36
|
+
- !ruby/object:Gem::Dependency
|
|
37
|
+
name: simplecov
|
|
38
|
+
requirement: &70331771779420 !ruby/object:Gem::Requirement
|
|
40
39
|
none: false
|
|
41
|
-
requirements:
|
|
42
|
-
- -
|
|
43
|
-
- !ruby/object:Gem::Version
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
- 2
|
|
47
|
-
- 2
|
|
48
|
-
- 4
|
|
49
|
-
version: 2.2.4
|
|
50
|
-
type: :runtime
|
|
51
|
-
version_requirements: *id002
|
|
52
|
-
- !ruby/object:Gem::Dependency
|
|
53
|
-
name: multipart-post
|
|
40
|
+
requirements:
|
|
41
|
+
- - ! '>='
|
|
42
|
+
- !ruby/object:Gem::Version
|
|
43
|
+
version: '0'
|
|
44
|
+
type: :development
|
|
54
45
|
prerelease: false
|
|
55
|
-
|
|
46
|
+
version_requirements: *70331771779420
|
|
47
|
+
- !ruby/object:Gem::Dependency
|
|
48
|
+
name: test-unit
|
|
49
|
+
requirement: &70331771778040 !ruby/object:Gem::Requirement
|
|
56
50
|
none: false
|
|
57
|
-
requirements:
|
|
58
|
-
- -
|
|
59
|
-
- !ruby/object:Gem::Version
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
- 1
|
|
63
|
-
- 1
|
|
64
|
-
- 0
|
|
65
|
-
version: 1.1.0
|
|
66
|
-
type: :runtime
|
|
67
|
-
version_requirements: *id003
|
|
68
|
-
- !ruby/object:Gem::Dependency
|
|
69
|
-
name: rack
|
|
51
|
+
requirements:
|
|
52
|
+
- - ! '>='
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: '0'
|
|
55
|
+
type: :development
|
|
70
56
|
prerelease: false
|
|
71
|
-
|
|
57
|
+
version_requirements: *70331771778040
|
|
58
|
+
- !ruby/object:Gem::Dependency
|
|
59
|
+
name: webmock
|
|
60
|
+
requirement: &70331771775860 !ruby/object:Gem::Requirement
|
|
72
61
|
none: false
|
|
73
|
-
requirements:
|
|
74
|
-
- -
|
|
75
|
-
- !ruby/object:Gem::Version
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
version: 1.1.0
|
|
82
|
-
- - <
|
|
83
|
-
- !ruby/object:Gem::Version
|
|
84
|
-
hash: 7
|
|
85
|
-
segments:
|
|
86
|
-
- 2
|
|
87
|
-
version: "2"
|
|
88
|
-
type: :runtime
|
|
89
|
-
version_requirements: *id004
|
|
90
|
-
description: HTTP/REST API client library.
|
|
62
|
+
requirements:
|
|
63
|
+
- - ! '>='
|
|
64
|
+
- !ruby/object:Gem::Version
|
|
65
|
+
version: '0'
|
|
66
|
+
type: :development
|
|
67
|
+
prerelease: false
|
|
68
|
+
version_requirements: *70331771775860
|
|
69
|
+
description:
|
|
91
70
|
email: technoweenie@gmail.com
|
|
92
71
|
executables: []
|
|
93
|
-
|
|
94
72
|
extensions: []
|
|
95
|
-
|
|
96
73
|
extra_rdoc_files: []
|
|
97
|
-
|
|
98
|
-
files:
|
|
74
|
+
files:
|
|
99
75
|
- Gemfile
|
|
100
|
-
- LICENSE
|
|
76
|
+
- LICENSE.md
|
|
101
77
|
- README.md
|
|
102
78
|
- Rakefile
|
|
79
|
+
- config.ru
|
|
103
80
|
- faraday.gemspec
|
|
104
81
|
- lib/faraday.rb
|
|
105
82
|
- lib/faraday/adapter.rb
|
|
106
|
-
- lib/faraday/adapter/
|
|
83
|
+
- lib/faraday/adapter/em_http.rb
|
|
107
84
|
- lib/faraday/adapter/em_synchrony.rb
|
|
85
|
+
- lib/faraday/adapter/em_synchrony/parallel_manager.rb
|
|
108
86
|
- lib/faraday/adapter/excon.rb
|
|
109
87
|
- lib/faraday/adapter/net_http.rb
|
|
88
|
+
- lib/faraday/adapter/net_http_persistent.rb
|
|
110
89
|
- lib/faraday/adapter/patron.rb
|
|
90
|
+
- lib/faraday/adapter/rack.rb
|
|
111
91
|
- lib/faraday/adapter/test.rb
|
|
112
92
|
- lib/faraday/adapter/typhoeus.rb
|
|
113
93
|
- lib/faraday/builder.rb
|
|
@@ -115,68 +95,82 @@ files:
|
|
|
115
95
|
- lib/faraday/error.rb
|
|
116
96
|
- lib/faraday/middleware.rb
|
|
117
97
|
- lib/faraday/request.rb
|
|
118
|
-
- lib/faraday/request/
|
|
98
|
+
- lib/faraday/request/authorization.rb
|
|
99
|
+
- lib/faraday/request/basic_authentication.rb
|
|
119
100
|
- lib/faraday/request/multipart.rb
|
|
101
|
+
- lib/faraday/request/retry.rb
|
|
102
|
+
- lib/faraday/request/token_authentication.rb
|
|
120
103
|
- lib/faraday/request/url_encoded.rb
|
|
121
104
|
- lib/faraday/response.rb
|
|
122
105
|
- lib/faraday/response/logger.rb
|
|
123
106
|
- lib/faraday/response/raise_error.rb
|
|
124
107
|
- lib/faraday/upload_io.rb
|
|
125
108
|
- lib/faraday/utils.rb
|
|
126
|
-
- test/adapters/
|
|
109
|
+
- test/adapters/default_test.rb
|
|
110
|
+
- test/adapters/em_http_test.rb
|
|
111
|
+
- test/adapters/em_synchrony_test.rb
|
|
112
|
+
- test/adapters/excon_test.rb
|
|
113
|
+
- test/adapters/integration.rb
|
|
127
114
|
- test/adapters/logger_test.rb
|
|
115
|
+
- test/adapters/net_http_persistent_test.rb
|
|
128
116
|
- test/adapters/net_http_test.rb
|
|
117
|
+
- test/adapters/patron_test.rb
|
|
118
|
+
- test/adapters/rack_test.rb
|
|
129
119
|
- test/adapters/test_middleware_test.rb
|
|
120
|
+
- test/adapters/typhoeus_test.rb
|
|
121
|
+
- test/authentication_middleware_test.rb
|
|
130
122
|
- test/connection_test.rb
|
|
131
123
|
- test/env_test.rb
|
|
132
124
|
- test/helper.rb
|
|
133
125
|
- test/live_server.rb
|
|
126
|
+
- test/middleware/retry_test.rb
|
|
134
127
|
- test/middleware_stack_test.rb
|
|
135
128
|
- test/request_middleware_test.rb
|
|
136
129
|
- test/response_middleware_test.rb
|
|
137
|
-
|
|
138
|
-
homepage: http://github.com/technoweenie/faraday
|
|
130
|
+
homepage: https://github.com/technoweenie/faraday
|
|
139
131
|
licenses: []
|
|
140
|
-
|
|
141
132
|
post_install_message:
|
|
142
133
|
rdoc_options: []
|
|
143
|
-
|
|
144
|
-
require_paths:
|
|
134
|
+
require_paths:
|
|
145
135
|
- lib
|
|
146
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
|
136
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
147
137
|
none: false
|
|
148
|
-
requirements:
|
|
149
|
-
- -
|
|
150
|
-
- !ruby/object:Gem::Version
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
- 0
|
|
154
|
-
version: "0"
|
|
155
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
138
|
+
requirements:
|
|
139
|
+
- - ! '>='
|
|
140
|
+
- !ruby/object:Gem::Version
|
|
141
|
+
version: '0'
|
|
142
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
156
143
|
none: false
|
|
157
|
-
requirements:
|
|
158
|
-
- -
|
|
159
|
-
- !ruby/object:Gem::Version
|
|
160
|
-
hash: 17
|
|
161
|
-
segments:
|
|
162
|
-
- 1
|
|
163
|
-
- 3
|
|
164
|
-
- 5
|
|
144
|
+
requirements:
|
|
145
|
+
- - ! '>='
|
|
146
|
+
- !ruby/object:Gem::Version
|
|
165
147
|
version: 1.3.5
|
|
166
148
|
requirements: []
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
rubygems_version: 1.3.7
|
|
149
|
+
rubyforge_project:
|
|
150
|
+
rubygems_version: 1.8.10
|
|
170
151
|
signing_key:
|
|
171
152
|
specification_version: 2
|
|
172
153
|
summary: HTTP/REST API client library.
|
|
173
|
-
test_files:
|
|
174
|
-
- test/adapters/
|
|
154
|
+
test_files:
|
|
155
|
+
- test/adapters/default_test.rb
|
|
156
|
+
- test/adapters/em_http_test.rb
|
|
157
|
+
- test/adapters/em_synchrony_test.rb
|
|
158
|
+
- test/adapters/excon_test.rb
|
|
159
|
+
- test/adapters/integration.rb
|
|
175
160
|
- test/adapters/logger_test.rb
|
|
161
|
+
- test/adapters/net_http_persistent_test.rb
|
|
176
162
|
- test/adapters/net_http_test.rb
|
|
163
|
+
- test/adapters/patron_test.rb
|
|
164
|
+
- test/adapters/rack_test.rb
|
|
177
165
|
- test/adapters/test_middleware_test.rb
|
|
166
|
+
- test/adapters/typhoeus_test.rb
|
|
167
|
+
- test/authentication_middleware_test.rb
|
|
178
168
|
- test/connection_test.rb
|
|
179
169
|
- test/env_test.rb
|
|
170
|
+
- test/helper.rb
|
|
171
|
+
- test/live_server.rb
|
|
172
|
+
- test/middleware/retry_test.rb
|
|
180
173
|
- test/middleware_stack_test.rb
|
|
181
174
|
- test/request_middleware_test.rb
|
|
182
175
|
- test/response_middleware_test.rb
|
|
176
|
+
has_rdoc:
|