From f799b5398c76ae602209cc3306932bfcf29b7c13 Mon Sep 17 00:00:00 2001 From: Olle Jonsson Date: Mon, 3 Feb 2020 20:51:06 +0100 Subject: [PATCH 1/3] Fully qualify constants to be checked - This relates to the issue https://github.com/lostisland/faraday/issues/974 - This tries to make the single consistent fix mentioned in that ticket --- lib/faraday.rb | 2 +- lib/faraday/adapter/em_http.rb | 3 ++- lib/faraday/adapter/httpclient.rb | 3 ++- lib/faraday/adapter/net_http.rb | 6 ++++-- lib/faraday/request/authorization.rb | 4 +++- lib/faraday/request/multipart.rb | 2 +- lib/faraday/request/url_encoded.rb | 4 +++- 7 files changed, 16 insertions(+), 8 deletions(-) diff --git a/lib/faraday.rb b/lib/faraday.rb index 3e99aeca4..5a192bef3 100644 --- a/lib/faraday.rb +++ b/lib/faraday.rb @@ -153,7 +153,7 @@ def self.default_connection_options=(options) @default_connection_options = ConnectionOptions.from(options) end - unless const_defined? :Timer + unless defined?(::Faraday::Timer) require 'timeout' Timer = Timeout end diff --git a/lib/faraday/adapter/em_http.rb b/lib/faraday/adapter/em_http.rb index acadc35ff..156da5a52 100644 --- a/lib/faraday/adapter/em_http.rb +++ b/lib/faraday/adapter/em_http.rb @@ -142,7 +142,8 @@ def perform_request(env) raise Faraday::ConnectionFailed, e rescue StandardError => e - if defined?(OpenSSL) && e.is_a?(OpenSSL::SSL::SSLError) + if defined?(::OpenSSL::SSL::SSLError) && \ + e.is_a?(::OpenSSL::SSL::SSLError) raise Faraday::SSLError, e end diff --git a/lib/faraday/adapter/httpclient.rb b/lib/faraday/adapter/httpclient.rb index 539c15aaa..cc563f13e 100644 --- a/lib/faraday/adapter/httpclient.rb +++ b/lib/faraday/adapter/httpclient.rb @@ -66,7 +66,8 @@ def call(env) rescue Errno::EADDRNOTAVAIL, Errno::ECONNREFUSED, IOError, SocketError raise Faraday::ConnectionFailed, $ERROR_INFO rescue StandardError => e - if defined?(OpenSSL) && e.is_a?(OpenSSL::SSL::SSLError) + if defined?(::OpenSSL::SSL::SSLError) && \ + e.is_a?(::OpenSSL::SSL::SSLError) raise Faraday::SSLError, e end diff --git a/lib/faraday/adapter/net_http.rb b/lib/faraday/adapter/net_http.rb index 191568dd4..48f673f39 100644 --- a/lib/faraday/adapter/net_http.rb +++ b/lib/faraday/adapter/net_http.rb @@ -30,8 +30,10 @@ class NetHttp < Faraday::Adapter Zlib::GzipFile::Error ] - exceptions << OpenSSL::SSL::SSLError if defined?(OpenSSL) - exceptions << Net::OpenTimeout if defined?(Net::OpenTimeout) + if defined?(::OpenSSL::SSL::SSLError) + exceptions << ::OpenSSL::SSL::SSLError + end + exceptions << ::Net::OpenTimeout if defined?(::Net::OpenTimeout) NET_HTTP_EXCEPTIONS = exceptions.freeze diff --git a/lib/faraday/request/authorization.rb b/lib/faraday/request/authorization.rb index 5797016d7..f9b56c871 100644 --- a/lib/faraday/request/authorization.rb +++ b/lib/faraday/request/authorization.rb @@ -4,7 +4,9 @@ module Faraday class Request # Request middleware for the Authorization HTTP header class Authorization < Faraday::Middleware - KEY = 'Authorization' unless defined? KEY + unless defined?(::Faraday::Request::Authorization::KEY) + KEY = 'Authorization' + end # @param type [String, Symbol] # @param token [String, Symbol, Hash] diff --git a/lib/faraday/request/multipart.rb b/lib/faraday/request/multipart.rb index 399c434f4..9046aef66 100644 --- a/lib/faraday/request/multipart.rb +++ b/lib/faraday/request/multipart.rb @@ -8,7 +8,7 @@ class Request # Middleware for supporting multi-part requests. class Multipart < UrlEncoded self.mime_type = 'multipart/form-data' - unless defined? DEFAULT_BOUNDARY_PREFIX + unless defined?(::Faraday::Request::Multipart::DEFAULT_BOUNDARY_PREFIX) DEFAULT_BOUNDARY_PREFIX = '-----------RubyMultipartPost' end diff --git a/lib/faraday/request/url_encoded.rb b/lib/faraday/request/url_encoded.rb index 7534b267d..00cc973dd 100644 --- a/lib/faraday/request/url_encoded.rb +++ b/lib/faraday/request/url_encoded.rb @@ -4,7 +4,9 @@ module Faraday class Request # Middleware for supporting urlencoded requests. class UrlEncoded < Faraday::Middleware - CONTENT_TYPE = 'Content-Type' unless defined? CONTENT_TYPE + unless defined?(::Faraday::Request::UrlEncoded::CONTENT_TYPE) + CONTENT_TYPE = 'Content-Type' + end class << self attr_accessor :mime_type From 0676dc22919ab8eaf9a2aac1c84119a19ec208fc Mon Sep 17 00:00:00 2001 From: Olle Jonsson Date: Mon, 3 Feb 2020 21:18:31 +0100 Subject: [PATCH 2/3] Spec for Faraday::Adapter::Rack - skip --- spec/faraday/adapter/rack_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/faraday/adapter/rack_spec.rb b/spec/faraday/adapter/rack_spec.rb index 4fe6cba28..ab0b17ed4 100644 --- a/spec/faraday/adapter/rack_spec.rb +++ b/spec/faraday/adapter/rack_spec.rb @@ -4,5 +4,5 @@ features :request_body_on_query_methods, :trace_method, :skip_response_body_on_head - it_behaves_like 'an adapter', adapter_options: WebmockRackApp.new + it_behaves_like 'an adapter', adapter_options: WebmockRackApp.new, skip: true end From e6de567e36b4bdbb03e68005e24a54d3ea1ac040 Mon Sep 17 00:00:00 2001 From: Olle Jonsson Date: Fri, 7 Feb 2020 16:15:52 +0100 Subject: [PATCH 3/3] Re-enable rack tests --- spec/faraday/adapter/rack_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/faraday/adapter/rack_spec.rb b/spec/faraday/adapter/rack_spec.rb index ab0b17ed4..4fe6cba28 100644 --- a/spec/faraday/adapter/rack_spec.rb +++ b/spec/faraday/adapter/rack_spec.rb @@ -4,5 +4,5 @@ features :request_body_on_query_methods, :trace_method, :skip_response_body_on_head - it_behaves_like 'an adapter', adapter_options: WebmockRackApp.new, skip: true + it_behaves_like 'an adapter', adapter_options: WebmockRackApp.new end