Skip to content

Commit

Permalink
Extract common logic to a mixin
Browse files Browse the repository at this point in the history
  • Loading branch information
deivid-rodriguez committed Dec 8, 2019
1 parent 361e080 commit c669214
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 27 deletions.
1 change: 1 addition & 0 deletions Manifest.txt
Expand Up @@ -494,6 +494,7 @@ lib/rubygems/text.rb
lib/rubygems/uninstaller.rb
lib/rubygems/uri_formatter.rb
lib/rubygems/uri_parser.rb
lib/rubygems/uri_parsing.rb
lib/rubygems/user_interaction.rb
lib/rubygems/util.rb
lib/rubygems/util/licenses.rb
Expand Down
32 changes: 5 additions & 27 deletions lib/rubygems/remote_fetcher.rb
Expand Up @@ -4,7 +4,7 @@
require 'rubygems/request/connection_pools'
require 'rubygems/s3_uri_signer'
require 'rubygems/uri_formatter'
require 'rubygems/uri_parser'
require 'rubygems/uri_parsing'
require 'rubygems/user_interaction'
require 'resolv'
require 'rubygems/deprecate'
Expand All @@ -18,12 +18,16 @@ class Gem::RemoteFetcher
include Gem::UserInteraction
extend Gem::Deprecate

include Gem::UriParsing

##
# A FetchError exception wraps up the various possible IO and HTTP failures
# that could happen while downloading from the internet.

class FetchError < Gem::Exception

include Gem::UriParsing

##
# The URI which was being accessed when the exception happened.

Expand All @@ -43,20 +47,6 @@ def to_s # :nodoc:
"#{super} (#{uri})"
end

private

def parse_uri(source_uri)
return source_uri unless source_uri.is_a?(String)

uri_parser.parse(source_uri)
end

def uri_parser
require "uri"

Gem::UriParser.new
end

end

##
Expand Down Expand Up @@ -356,18 +346,6 @@ def close_all

private

def parse_uri(source_uri)
return source_uri unless source_uri.is_a?(String)

uri_parser.parse!(source_uri)
end

def uri_parser
require "uri"

@uri_parser ||= Gem::UriParser.new
end

def proxy_for(proxy, uri)
Gem::Request.proxy_uri(proxy || Gem::Request.get_proxy_from_env(uri.scheme))
end
Expand Down
23 changes: 23 additions & 0 deletions lib/rubygems/uri_parsing.rb
@@ -0,0 +1,23 @@
# frozen_string_literal: true

require "rubygems/uri_parser"

module Gem::UriParsing

def parse_uri(source_uri)
return source_uri unless source_uri.is_a?(String)

uri_parser.parse(source_uri)
end

private :parse_uri

def uri_parser
require "uri"

Gem::UriParser.new
end

private :uri_parser

end

0 comments on commit c669214

Please sign in to comment.