Skip to content

Commit f8892b1

Browse files
olleolleolleiMacTia
authored andcommitted
Adapter support for Net::HTTP::Persistent v3.0.0 (#619)
1 parent 923f905 commit f8892b1

File tree

4 files changed

+15
-16
lines changed

4 files changed

+15
-16
lines changed

.travis.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
sudo: false
22
language: ruby
3+
before_install: gem install bundler
34
script: bundle exec script/test
45
cache: bundler
56

Gemfile

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
source 'https://rubygems.org'
22

3+
ruby RUBY_VERSION
4+
35
gem 'ffi-ncurses', '~> 0.3', :platforms => :jruby
46
gem 'jruby-openssl', '~> 0.8.8', :platforms => :jruby
57
gem 'rake'
@@ -13,24 +15,13 @@ group :test do
1315
gem 'httpclient', '>= 2.2'
1416
gem 'mime-types', '~> 1.25', :platforms => [:jruby, :ruby_18]
1517
gem 'minitest', '>= 5.0.5'
16-
gem 'net-http-persistent', '~> 2.9.4'
18+
gem 'net-http-persistent'
1719
gem 'patron', '>= 0.4.2', :platforms => :ruby
1820
gem 'rack-test', '>= 0.6', :require => 'rack/test'
1921
gem 'rest-client', '~> 1.6.0', :platforms => [:jruby, :ruby_18]
2022
gem 'simplecov'
2123
gem 'sinatra', '~> 1.3'
2224
gem 'typhoeus', '~> 0.3.3', :platforms => [:ruby_18, :ruby_19, :ruby_20, :ruby_21]
23-
24-
# Below are dependencies of the gems we actually care about that have
25-
# dropped support for older Rubies. Because they are not first-level
26-
# dependencies, we don't need to specify an unconstrained version, so we can
27-
# lump them together here.
28-
29-
if RUBY_VERSION < '2'
30-
gem 'json', '< 2'
31-
gem 'tins', '< 1.7.0'
32-
gem 'term-ansicolor', '< 1.4'
33-
end
3425
end
3526

3627
gemspec

lib/faraday/adapter/net_http_persistent.rb

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ class NetHttpPersistent < NetHttp
88
dependency 'net/http/persistent'
99

1010
def net_http_connection(env)
11+
proxy_uri = nil
1112
if (proxy = env[:request][:proxy])
1213
proxy_uri = ::URI::HTTP === proxy[:uri] ? proxy[:uri].dup : ::URI.parse(proxy[:uri].to_s)
1314
proxy_uri.user = proxy_uri.password = nil
@@ -16,10 +17,13 @@ def net_http_connection(env)
1617
define_method(:user) { proxy[:user] }
1718
define_method(:password) { proxy[:password] }
1819
end if proxy[:user]
19-
return Net::HTTP::Persistent.new 'Faraday', proxy_uri
2020
end
2121

22-
Net::HTTP::Persistent.new 'Faraday'
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
2327
end
2428

2529
def perform_request(http, env)

test/adapters/net_http_persistent_test.rb

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,11 @@ def setup
1010
if defined?(Net::HTTP::Persistent)
1111
# work around problems with mixed SSL certificates
1212
# https://github.com/drbrain/net-http-persistent/issues/45
13-
http = Net::HTTP::Persistent.new('Faraday')
14-
http.ssl_cleanup(4)
13+
if Net::HTTP::Persistent.instance_method(:initialize).parameters.first == [:key, :name]
14+
Net::HTTP::Persistent.new(name: 'Faraday').reconnect_ssl
15+
else
16+
Net::HTTP::Persistent.new('Faraday').ssl_cleanup(4)
17+
end
1518
end
1619
end if ssl_mode?
1720
end

0 commit comments

Comments
 (0)