123456789_123456789_123456789_123456789_123456789_

Class: Gem::UriParser

Relationships & Source Files
Inherits: Object
Defined in: lib/rubygems/uri_parser.rb

Overview

The UriParser handles parsing URIs.

Instance Method Summary

  • #parse(uri)

    Parses the #uri, returning the original uri if it’s invalid.

  • #parse!(uri)

    Parses the #uri, raising if it’s invalid.

Instance Method Details

#parse(uri)

Parses the #uri, returning the original uri if it’s invalid

[ GitHub ]

  
# File 'lib/rubygems/uri_parser.rb', line 30

def parse(uri)
  parse!(uri)
rescue URI::InvalidURIError
  uri
end

#parse!(uri)

Parses the #uri, raising if it’s invalid

Raises:

  • (URI::InvalidURIError)
[ GitHub ]

  
# File '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