lib/url_canonicalize/uri.rb in url_canonicalize-0.1.9 vs lib/url_canonicalize/uri.rb in url_canonicalize-0.1.10
- old
+ new
@@ -2,12 +2,13 @@
module URLCanonicalize
# Manage the URL into a URI with local exception handling
class URI
class << self
def parse(url)
- uri = ::URI.parse(url)
- uri if valid?(uri)
+ # uri = ::URI.parse decorate(url)
+ uri = ::URI.parse 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
@@ -18,9 +19,15 @@
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
+ def decorate(url)
+ return url if url.include? COLON
+ "http://#{url}" # Add protocol if we just receive a host name
+ end
+
VALID_CLASSES = [::URI::HTTP, ::URI::HTTPS].freeze
+ COLON = ':'
end
end
end