faraday 0.12.2 → 0.13.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +8 -5
- data/lib/faraday.rb +1 -1
- data/lib/faraday/adapter/net_http.rb +2 -2
- data/lib/faraday/adapter/net_http_persistent.rb +6 -2
- data/lib/faraday/connection.rb +37 -19
- data/lib/faraday/utils.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 35295b9b568c043b6a43f3074c811fb901f16476
|
4
|
+
data.tar.gz: 379f16be0a414f7d18b3012a83a204c53de0ac29
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7273cd3b89bea73f73ad25804cd275035db74ceec823102816a6ba9710f4dbb43e9a5a5aa4c6367cdfe33a6eb029f3634bfedbe49f9f427a01bae3a008bc70ab
|
7
|
+
data.tar.gz: a3e0d40b1c36a8d03d39f46f0cccc76df5d6554f76a2c1179ae8ff19e49d8ef7f69e9ff0cd6d15a221370f168ca7a1cc47d430a1841135f91fdb76ceed219d96
|
data/README.md
CHANGED
@@ -2,6 +2,8 @@
|
|
2
2
|
|
3
3
|
[![Gem Version](https://badge.fury.io/rb/faraday.svg)](https://rubygems.org/gems/faraday)
|
4
4
|
[![Build Status](https://travis-ci.org/lostisland/faraday.svg)](https://travis-ci.org/lostisland/faraday)
|
5
|
+
[![Coverage Status](https://coveralls.io/repos/github/lostisland/faraday/badge.svg?branch=master)](https://coveralls.io/github/lostisland/faraday?branch=master)
|
6
|
+
[![Code Climate](https://codeclimate.com/github/lostisland/faraday/badges/gpa.svg)](https://codeclimate.com/github/lostisland/faraday)
|
5
7
|
[![Gitter](https://badges.gitter.im/lostisland/faraday.svg)](https://gitter.im/lostisland/faraday?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
|
6
8
|
|
7
9
|
|
@@ -313,11 +315,6 @@ resp = test.get '/else' #=> raises "no such stub" error
|
|
313
315
|
stubs.verify_stubbed_calls
|
314
316
|
```
|
315
317
|
|
316
|
-
## TODO
|
317
|
-
|
318
|
-
* support streaming requests/responses
|
319
|
-
* better stubbing API
|
320
|
-
|
321
318
|
## Supported Ruby versions
|
322
319
|
|
323
320
|
This library aims to support and is [tested against][travis] the following Ruby
|
@@ -340,6 +337,12 @@ implementation, you will be responsible for providing patches in a timely
|
|
340
337
|
fashion. If critical issues for a particular implementation exist at the time
|
341
338
|
of a major release, support for that Ruby version may be dropped.
|
342
339
|
|
340
|
+
## Contribute
|
341
|
+
|
342
|
+
Do you want to contribute to Faraday?
|
343
|
+
Open the issues page and check for the `any volunteer?` label!
|
344
|
+
But before you start coding, please read our [Contributing Guide](https://github.com/lostisland/faraday/blob/master/CONTRIBUTING.md)
|
345
|
+
|
343
346
|
## Copyright
|
344
347
|
|
345
348
|
Copyright (c) 2009-2017 [Rick Olson](mailto:technoweenie@gmail.com), Zack Hobson.
|
data/lib/faraday.rb
CHANGED
@@ -87,10 +87,10 @@ module Faraday
|
|
87
87
|
|
88
88
|
def net_http_connection(env)
|
89
89
|
if proxy = env[:request][:proxy]
|
90
|
-
Net::HTTP::Proxy(proxy[:uri].
|
90
|
+
Net::HTTP::Proxy(proxy[:uri].hostname, proxy[:uri].port, proxy[:user], proxy[:password])
|
91
91
|
else
|
92
92
|
Net::HTTP
|
93
|
-
end.new(env[:url].
|
93
|
+
end.new(env[:url].hostname, env[:url].port || (env[:url].scheme == 'https' ? 443 : 80))
|
94
94
|
end
|
95
95
|
|
96
96
|
def configure_ssl(http, ssl)
|
@@ -8,6 +8,7 @@ module Faraday
|
|
8
8
|
dependency 'net/http/persistent'
|
9
9
|
|
10
10
|
def net_http_connection(env)
|
11
|
+
proxy_uri = nil
|
11
12
|
if (proxy = env[:request][:proxy])
|
12
13
|
proxy_uri = ::URI::HTTP === proxy[:uri] ? proxy[:uri].dup : ::URI.parse(proxy[:uri].to_s)
|
13
14
|
proxy_uri.user = proxy_uri.password = nil
|
@@ -16,10 +17,13 @@ module Faraday
|
|
16
17
|
define_method(:user) { proxy[:user] }
|
17
18
|
define_method(:password) { proxy[:password] }
|
18
19
|
end if proxy[:user]
|
19
|
-
return Net::HTTP::Persistent.new 'Faraday', proxy_uri
|
20
20
|
end
|
21
21
|
|
22
|
-
Net::HTTP::Persistent.
|
22
|
+
if Net::HTTP::Persistent.instance_method(:initialize).parameters.first == [:key, :name]
|
23
|
+
Net::HTTP::Persistent.new(name: 'Faraday', proxy: proxy_uri)
|
24
|
+
else
|
25
|
+
Net::HTTP::Persistent.new('Faraday', proxy_uri)
|
26
|
+
end
|
23
27
|
end
|
24
28
|
|
25
29
|
def perform_request(http, env)
|
data/lib/faraday/connection.rb
CHANGED
@@ -39,6 +39,9 @@ module Faraday
|
|
39
39
|
# Public: Sets the default parallel manager for this connection.
|
40
40
|
attr_writer :default_parallel_manager
|
41
41
|
|
42
|
+
# Public: Gets or Sets the Hash proxy options.
|
43
|
+
# attr_reader :proxy
|
44
|
+
|
42
45
|
# Public: Initializes a new Faraday::Connection.
|
43
46
|
#
|
44
47
|
# url - URI or String base URL to use as a prefix for all
|
@@ -79,23 +82,8 @@ module Faraday
|
|
79
82
|
@params.update(options.params) if options.params
|
80
83
|
@headers.update(options.headers) if options.headers
|
81
84
|
|
82
|
-
@proxy =
|
83
|
-
proxy
|
84
|
-
uri = nil
|
85
|
-
if URI.parse("").respond_to?(:find_proxy)
|
86
|
-
case url
|
87
|
-
when String
|
88
|
-
uri = URI.parse(url).find_proxy
|
89
|
-
when URI
|
90
|
-
uri = url.find_proxy
|
91
|
-
when nil
|
92
|
-
uri = find_default_proxy
|
93
|
-
end
|
94
|
-
else
|
95
|
-
uri = find_default_proxy
|
96
|
-
end
|
97
|
-
uri
|
98
|
-
})
|
85
|
+
@proxy = options.proxy ? ProxyOptions.from(options.proxy) : proxy_from_env(url)
|
86
|
+
@temp_proxy = @proxy
|
99
87
|
|
100
88
|
yield(self) if block_given?
|
101
89
|
|
@@ -292,9 +280,15 @@ module Faraday
|
|
292
280
|
# Public: Gets or Sets the Hash proxy options.
|
293
281
|
def proxy(arg = nil)
|
294
282
|
return @proxy if arg.nil?
|
283
|
+
warn 'Warning: use of proxy(new_value) to set connection proxy have been DEPRECATED and will be removed in Faraday 1.0'
|
295
284
|
@proxy = ProxyOptions.from(arg)
|
296
285
|
end
|
297
286
|
|
287
|
+
# Public: Sets the Hash proxy options.
|
288
|
+
def proxy=(new_value)
|
289
|
+
@proxy = ProxyOptions.from(new_value)
|
290
|
+
end
|
291
|
+
|
298
292
|
def_delegators :url_prefix, :scheme, :scheme=, :host, :host=, :port, :port=
|
299
293
|
def_delegator :url_prefix, :path, :path_prefix
|
300
294
|
|
@@ -376,7 +370,14 @@ module Faraday
|
|
376
370
|
raise ArgumentError, "unknown http method: #{method}"
|
377
371
|
end
|
378
372
|
|
373
|
+
# Resets temp_proxy
|
374
|
+
@temp_proxy = self.proxy
|
375
|
+
|
376
|
+
# Set temporary proxy if request url is absolute
|
377
|
+
@temp_proxy = proxy_from_env(url) if url && URI(url).absolute?
|
378
|
+
|
379
379
|
request = build_request(method) do |req|
|
380
|
+
req.options = req.options.merge(:proxy => @temp_proxy)
|
380
381
|
req.url(url) if url
|
381
382
|
req.headers.update(headers) if headers
|
382
383
|
req.body = body if body
|
@@ -393,7 +394,7 @@ module Faraday
|
|
393
394
|
Request.create(method) do |req|
|
394
395
|
req.params = self.params.dup
|
395
396
|
req.headers = self.headers.dup
|
396
|
-
req.options = self.options
|
397
|
+
req.options = self.options
|
397
398
|
yield(req) if block_given?
|
398
399
|
end
|
399
400
|
end
|
@@ -443,8 +444,25 @@ module Faraday
|
|
443
444
|
headers[Faraday::Request::Authorization::KEY] = header
|
444
445
|
end
|
445
446
|
|
447
|
+
def proxy_from_env(url)
|
448
|
+
uri = nil
|
449
|
+
if URI.parse('').respond_to?(:find_proxy)
|
450
|
+
case url
|
451
|
+
when String
|
452
|
+
uri = URI.parse(url).find_proxy
|
453
|
+
when URI
|
454
|
+
uri = url.find_proxy
|
455
|
+
when nil
|
456
|
+
uri = find_default_proxy
|
457
|
+
end
|
458
|
+
else
|
459
|
+
warn 'no_proxy is unsupported' if ENV['no_proxy'] || ENV['NO_PROXY']
|
460
|
+
uri = find_default_proxy
|
461
|
+
end
|
462
|
+
ProxyOptions.from(uri) if uri
|
463
|
+
end
|
464
|
+
|
446
465
|
def find_default_proxy
|
447
|
-
warn 'no_proxy is unsupported' if ENV['no_proxy'] || ENV['NO_PROXY']
|
448
466
|
uri = ENV['http_proxy']
|
449
467
|
if uri && !uri.empty?
|
450
468
|
uri = 'http://' + uri if uri !~ /^http/i
|
data/lib/faraday/utils.rb
CHANGED
@@ -109,7 +109,7 @@ module Faraday
|
|
109
109
|
headers = header_string.split(/\r\n/)
|
110
110
|
|
111
111
|
# Find the last set of response headers.
|
112
|
-
start_index = headers.rindex { |x| x.match(/^HTTP\//) }
|
112
|
+
start_index = headers.rindex { |x| x.match(/^HTTP\//) } || 0
|
113
113
|
last_response = headers.slice(start_index, headers.size)
|
114
114
|
|
115
115
|
last_response.
|
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.
|
4
|
+
version: 0.13.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: 2017-
|
11
|
+
date: 2017-08-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: multipart-post
|