summaryrefslogtreecommitdiff
path: root/lib/rubygems/server.rb
diff options
context:
space:
mode:
authorhsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-01-24 02:38:57 +0000
committerhsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-01-24 02:38:57 +0000
commit5d438215365e1a5dc3da7172a511a335aa58a5b4 (patch)
tree72ac80942856be3a5370dea6458f3b6dfce671e4 /lib/rubygems/server.rb
parent6219b68fb53a77a221f615d47dde83fea0a7e7c8 (diff)
Update Rubygems 2.6.10
* https://github.com/rubygems/rubygems/commit/2ee5bf9fd3bd7649d3e244bc40107ff32070ef47 * https://github.com/rubygems/rubygems/commit/be510dd4097e65c6a256a6e173d6b724a3a96472 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57412 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/rubygems/server.rb')
-rw-r--r--lib/rubygems/server.rb15
1 files changed, 11 insertions, 4 deletions
diff --git a/lib/rubygems/server.rb b/lib/rubygems/server.rb
index 63dfe31b35..81df0e608e 100644
--- a/lib/rubygems/server.rb
+++ b/lib/rubygems/server.rb
@@ -2,6 +2,7 @@
require 'webrick'
require 'zlib'
require 'erb'
+require 'uri'
require 'rubygems'
require 'rubygems/rdoc'
@@ -68,7 +69,7 @@ class Gem::Server
<h1>Summary</h1>
<p>There are <%=values["gem_count"]%> gems installed:</p>
<p>
- <%= values["specs"].map { |v| "<a href\"##{u v["name"]}\">#{h v["name"]}</a>" }.join ', ' %>.
+ <%= values["specs"].map { |v| "<a href=\"##{u v["name"]}\">#{h v["name"]}</a>" }.join ', ' %>.
<h1>Gems</h1>
<dl>
@@ -81,20 +82,20 @@ class Gem::Server
<b><%=h spec["name"]%> <%=h spec["version"]%></b>
<% if spec["ri_installed"] || spec["rdoc_installed"] then %>
- <a href="<%=u spec["doc_path"]%>">[rdoc]</a>
+ <a href="<%=spec["doc_path"]%>">[rdoc]</a>
<% else %>
<span title="rdoc not installed">[rdoc]</span>
<% end %>
<% if spec["homepage"] then %>
- <a href="<%=u spec["homepage"]%>" title="<%=h spec["homepage"]%>">[www]</a>
+ <a href="<%=uri_encode spec["homepage"]%>" title="<%=h spec["homepage"]%>">[www]</a>
<% else %>
<span title="no homepage available">[www]</span>
<% end %>
<% if spec["has_deps"] then %>
- depends on
- <%= spec["dependencies"].map { |v| "<a href=\"##{u v["name"]}>#{h v["name"]}</a>" }.join ', ' %>.
+ <%= spec["dependencies"].map { |v| "<a href=\"##{u v["name"]}\">#{h v["name"]}</a>" }.join ', ' %>.
<% end %>
</dt>
<dd>
@@ -455,6 +456,12 @@ div.method-source-code pre { color: #ffdead; overflow: hidden; }
end.max
end
+ def uri_encode(str)
+ str.gsub(URI::UNSAFE) do |match|
+ match.each_byte.map { |c| sprintf('%%%02X', c.ord) }.join
+ end
+ end
+
def doc_root gem_name
if have_rdoc_4_plus? then
"/doc_root/#{u gem_name}/"