aboutsummaryrefslogtreecommitdiffstats
path: root/lib/rubygems/uri_formatter.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rubygems/uri_formatter.rb')
-rw-r--r--lib/rubygems/uri_formatter.rb20
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