diff options
Diffstat (limited to 'lib/rubygems/uri_formatter.rb')
-rw-r--r-- | lib/rubygems/uri_formatter.rb | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/lib/rubygems/uri_formatter.rb b/lib/rubygems/uri_formatter.rb index 935d9b52ed..68aacc6369 100644 --- a/lib/rubygems/uri_formatter.rb +++ b/lib/rubygems/uri_formatter.rb @@ -1,13 +1,30 @@ require 'cgi' require 'uri' +## +# The UriFormatter handles URIs from user-input and escaping. +# +# uf = Gem::UriFormatter.new 'example.com' +# +# p uf.normalize #=> 'http://example.com' + class Gem::UriFormatter + + ## + # The URI to be formatted. + attr_reader :uri + ## + # Creates a new URI formatter for +uri+. + def initialize uri @uri = uri end + ## + # Escapes the #uri for use as a CGI parameter + def escape return unless @uri CGI.escape @uri @@ -20,6 +37,9 @@ class Gem::UriFormatter (@uri =~ /^(https?|ftp|file):/i) ? @uri : "http://#{@uri}" end + ## + # Unescapes the #uri which came from a CGI parameter + def unescape return unless @uri CGI.unescape @uri |