Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

restore jruby support #1294

Merged
merged 2 commits into from Jul 11, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
6 changes: 3 additions & 3 deletions Gemfile
Expand Up @@ -4,7 +4,7 @@ source 'https://rubygems.org'

ruby RUBY_VERSION

gem 'jruby-openssl', '~> 0.8.8', platforms: :jruby
gem 'jruby-openssl', '~> 0.10.7', platforms: :jruby

group :development, :test do
gem 'pry'
Expand All @@ -20,8 +20,8 @@ end

group :test, :development do
gem 'coveralls_reborn', require: false
gem 'em-http-request', '>= 1.1', require: 'em-http'
gem 'em-synchrony', '>= 1.0.3', require: %w[em-synchrony em-synchrony/em-http]
gem 'em-http-request', '>= 1.1', require: 'em-http', platform: :ruby
gem 'em-synchrony', '>= 1.0.3', require: %w[em-synchrony em-synchrony/em-http], platform: :ruby
gem 'excon', '>= 0.27.4'
gem 'httpclient', '>= 2.2'
gem 'multipart-parser'
Expand Down
6 changes: 4 additions & 2 deletions lib/faraday.rb
Expand Up @@ -27,8 +27,10 @@
require 'faraday/file_part'
require 'faraday/param_part'

require 'faraday/em_http'
require 'faraday/em_synchrony'
unless defined?(JRUBY_VERSION)
require 'faraday/em_http'
require 'faraday/em_synchrony'
end
require 'faraday/excon'
require 'faraday/httpclient'
require 'faraday/net_http'
Expand Down
76 changes: 39 additions & 37 deletions spec/faraday/adapter/em_http_spec.rb
@@ -1,47 +1,49 @@
# frozen_string_literal: true

RSpec.describe Faraday::Adapter::EMHttp, unless: defined?(JRUBY_VERSION) do
features :request_body_on_query_methods, :reason_phrase_parse, :trace_method,
:skip_response_body_on_head, :parallel, :local_socket_binding
unless defined?(JRUBY_VERSION)
RSpec.describe Faraday::Adapter::EMHttp do
features :request_body_on_query_methods, :reason_phrase_parse, :trace_method,
:skip_response_body_on_head, :parallel, :local_socket_binding

it_behaves_like 'an adapter'
it_behaves_like 'an adapter'

it 'allows to provide adapter specific configs' do
url = URI('https://example.com:1234')
adapter = described_class.new nil, inactivity_timeout: 20
req = adapter.create_request(url: url, request: {})
it 'allows to provide adapter specific configs' do
url = URI('https://example.com:1234')
adapter = described_class.new nil, inactivity_timeout: 20
req = adapter.create_request(url: url, request: {})

expect(req.connopts.inactivity_timeout).to eq(20)
end

context 'Options' do
let(:request) { Faraday::RequestOptions.new }
let(:env) { { request: request } }
let(:options) { {} }
let(:adapter) { Faraday::Adapter::EMHttp.new }

it 'configures timeout' do
request.timeout = 5
adapter.configure_timeout(options, env)
expect(options[:inactivity_timeout]).to eq(5)
expect(options[:connect_timeout]).to eq(5)
end

it 'configures timeout and open_timeout' do
request.timeout = 5
request.open_timeout = 1
adapter.configure_timeout(options, env)
expect(options[:inactivity_timeout]).to eq(5)
expect(options[:connect_timeout]).to eq(1)
expect(req.connopts.inactivity_timeout).to eq(20)
end

it 'configures all timeout settings' do
request.timeout = 5
request.read_timeout = 3
request.open_timeout = 1
adapter.configure_timeout(options, env)
expect(options[:inactivity_timeout]).to eq(3)
expect(options[:connect_timeout]).to eq(1)
context 'Options' do
let(:request) { Faraday::RequestOptions.new }
let(:env) { { request: request } }
let(:options) { {} }
let(:adapter) { Faraday::Adapter::EMHttp.new }

it 'configures timeout' do
request.timeout = 5
adapter.configure_timeout(options, env)
expect(options[:inactivity_timeout]).to eq(5)
expect(options[:connect_timeout]).to eq(5)
end

it 'configures timeout and open_timeout' do
request.timeout = 5
request.open_timeout = 1
adapter.configure_timeout(options, env)
expect(options[:inactivity_timeout]).to eq(5)
expect(options[:connect_timeout]).to eq(1)
end

it 'configures all timeout settings' do
request.timeout = 5
request.read_timeout = 3
request.open_timeout = 1
adapter.configure_timeout(options, env)
expect(options[:inactivity_timeout]).to eq(3)
expect(options[:connect_timeout]).to eq(1)
end
end
end
end
20 changes: 11 additions & 9 deletions spec/faraday/adapter/em_synchrony_spec.rb
@@ -1,16 +1,18 @@
# frozen_string_literal: true

RSpec.describe Faraday::Adapter::EMSynchrony, unless: defined?(JRUBY_VERSION) do
features :request_body_on_query_methods, :reason_phrase_parse,
:skip_response_body_on_head, :parallel, :local_socket_binding
unless defined?(JRUBY_VERSION)
RSpec.describe Faraday::Adapter::EMSynchrony do
features :request_body_on_query_methods, :reason_phrase_parse,
:skip_response_body_on_head, :parallel, :local_socket_binding

it_behaves_like 'an adapter'
it_behaves_like 'an adapter'

it 'allows to provide adapter specific configs' do
url = URI('https://example.com:1234')
adapter = described_class.new nil, inactivity_timeout: 20
req = adapter.create_request(url: url, request: {})
it 'allows to provide adapter specific configs' do
url = URI('https://example.com:1234')
adapter = described_class.new nil, inactivity_timeout: 20
req = adapter.create_request(url: url, request: {})

expect(req.connopts.inactivity_timeout).to eq(20)
expect(req.connopts.inactivity_timeout).to eq(20)
end
end
end