class Gem::Uri

def self.parse!(uri)

def self.parse!(uri)
  require_relative "vendor/uri/lib/uri"
  raise Gem::URI::InvalidURIError unless uri
  return uri unless uri.is_a?(String)
  # 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
    Gem::URI.parse(uri)
  rescue Gem::URI::InvalidURIError
    Gem::URI.parse(Gem::URI::RFC2396_PARSER.escape(uri))
  end
end