avoid using URI.escape directly

This commit is contained in:
HoneyryderChuck 2020-11-07 15:03:48 +00:00
parent 86f1db5bf0
commit 8f495f37d2
3 changed files with 8 additions and 11 deletions

View File

@ -36,9 +36,4 @@ Style/Documentation:
Naming/AccessorMethodName:
Enabled: false
Lint/UriEscapeUnescape:
Enabled: false
Gemspec/RequiredRubyVersion:
Enabled: false

View File

@ -61,13 +61,13 @@ module HTTPX
end
if RUBY_VERSION < "2.2"
# rubocop: disable Lint/UriEscapeUnescape:
URIParser = URI::DEFAULT_PARSER
def initialize_with_escape(verb, uri, options = {})
initialize_without_escape(verb, URI.escape(uri.to_s), options)
initialize_without_escape(verb, URIParser.escape(uri.to_s), options)
end
alias_method :initialize_without_escape, :initialize
alias_method :initialize, :initialize_with_escape
# rubocop: enable Lint/UriEscapeUnescape:
end
def merge_headers(h)

View File

@ -23,12 +23,14 @@ module HTTPX
end
else
URIParser = URI::RFC2396_Parser.new
def uri(uri)
return Kernel.URI(uri) unless uri.is_a?(String) && !uri.ascii_only?
uri = Kernel.URI(URI.escape(uri))
uri = Kernel.URI(URIParser.escape(uri))
non_ascii_hostname = URI.unescape(uri.host)
non_ascii_hostname = URIParser.unescape(uri.host)
idna_hostname = DomainName.new(non_ascii_hostname).hostname