Class
The UriParser
handles parsing URIs.
Instance Methods
lib/rubygems/uri_parser.rb
View on GitHub
# File tmp/rubies/ruby-2.7.6/lib/rubygems/uri_parser.rb, line 30
def parse(uri)
parse!(uri)
rescue URI::InvalidURIError
uri
end
Parses the uri, returning the original uri if it’s invalid
lib/rubygems/uri_parser.rb
View on GitHub
# File tmp/rubies/ruby-2.7.6/lib/rubygems/uri_parser.rb, line 12
def parse!(uri)
raise URI::InvalidURIError unless uri
# Always escape URI's to deal with potential spaces and such
# It should also be considered that source_uri may already be
# a valid URI with escaped characters. e.g. "{DESede}" is encoded
# as "%7BDESede%7D". If this is escaped again the percentage
# symbols will be escaped.
begin
URI.parse(uri)
rescue URI::InvalidURIError
URI.parse(URI::DEFAULT_PARSER.escape(uri))
end
end
Parses the uri, raising if it’s invalid