aboutsummaryrefslogtreecommitdiffstats
path: root/lib/rubygems/uri_formatter.rb
diff options
context:
space:
mode:
authordrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-10-20 01:33:19 +0000
committerdrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-10-20 01:33:19 +0000
commit3f15d35f83dc91e1e5af6d98e6f6fcd52abd1649 (patch)
treef677f8d0bff97ded1c0995f27158fb91d32966dd /lib/rubygems/uri_formatter.rb
parent8552f7aa680e1f1a31d76dc9038d80248a445960 (diff)
downloadruby-3f15d35f83dc91e1e5af6d98e6f6fcd52abd1649.tar.gz
* lib/rubygems: Update RubyGems to master 0886307. This commit
improves documentation and should bring ruby above 75% documented on rubyci. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43369 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
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