From 47f0248b0858898dd24d1e654cedf174059ca677 Mon Sep 17 00:00:00 2001 From: drbrain Date: Tue, 9 Jul 2013 23:21:36 +0000 Subject: * lib/rubygems: Import RubyGems 2.1 * test/rubygems: Ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41873 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- lib/rubygems/uri_formatter.rb | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 lib/rubygems/uri_formatter.rb (limited to 'lib/rubygems/uri_formatter.rb') diff --git a/lib/rubygems/uri_formatter.rb b/lib/rubygems/uri_formatter.rb new file mode 100644 index 0000000000..deac3bfe75 --- /dev/null +++ b/lib/rubygems/uri_formatter.rb @@ -0,0 +1,39 @@ +require 'uri' + +class Gem::UriFormatter + attr_reader :uri + + def initialize uri + @uri = uri + end + + def escape + return unless @uri + escaper.escape @uri + end + + ## + # Normalize the URI by adding "http://" if it is missing. + + def normalize + (@uri =~ /^(https?|ftp|file):/i) ? @uri : "http://#{@uri}" + end + + def unescape + return unless @uri + escaper.unescape @uri + end + + private + + def escaper + @uri_parser ||= + begin + URI::Parser.new + rescue NameError + URI + end + end + +end + -- cgit v1.2.3