aboutsummaryrefslogtreecommitdiffstats
path: root/lib/rubygems/server.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rubygems/server.rb')
-rw-r--r--lib/rubygems/server.rb16
1 files changed, 4 insertions, 12 deletions
diff --git a/lib/rubygems/server.rb b/lib/rubygems/server.rb
index df4eb566d3..93b3af36f8 100644
--- a/lib/rubygems/server.rb
+++ b/lib/rubygems/server.rb
@@ -573,19 +573,11 @@ div.method-source-code pre { color: #ffdead; overflow: hidden; }
add_date res
case req.request_uri.path
- when %r|^/quick/(Marshal.#{Regexp.escape Gem.marshal_version}/)?(.*?)-([0-9.]+[^-]*?)(-.*?)?\.gemspec\.rz$| then
- marshal_format, name, version, platform = $1, $2, $3, $4
- specs = Gem::Specification.find_all_by_name name, version
+ when %r|^/quick/(Marshal.#{Regexp.escape Gem.marshal_version}/)?(.*?)\.gemspec\.rz$| then
+ marshal_format, full_name = $1, $2
+ specs = Gem::Specification.find_all_by_full_name(full_name)
- selector = [name, version, platform].map(&:inspect).join ' '
-
- platform = if platform then
- Gem::Platform.new platform.sub(/^-/, '')
- else
- Gem::Platform::RUBY
- end
-
- specs = specs.select { |s| s.platform == platform }
+ selector = full_name.inspect
if specs.empty? then
res.status = 404