class URLCanonicalize::URI

Manage the URL into a URI with local exception handling

Constants

COLON
VALID_CLASSES

Public Class Methods

parse(url) click to toggle source
# File lib/url_canonicalize/uri.rb, line 7
def parse(url)
  uri = ::URI.parse decorate(url)
  uri if valid? uri
rescue ::URI::InvalidURIError => e
  new_exception = URLCanonicalize::Exception::URI.new("#{e.class}: #{e.message}")
  new_exception.set_backtrace e.backtrace
  raise new_exception
end

Private Class Methods

decorate(url) click to toggle source
# File lib/url_canonicalize/uri.rb, line 24
def decorate(url)
  return url if url.include? COLON
  "http://#{url}" # Add protocol if we just receive a host name
end
valid?(uri) click to toggle source
# File lib/url_canonicalize/uri.rb, line 18
def valid?(uri)
  raise URLCanonicalize::Exception::URI, "#{uri} must be http or https" unless VALID_CLASSES.include?(uri.class)
  raise URLCanonicalize::Exception::URI, "Missing host name in #{uri}" unless uri.host
  true
end