diff options
Diffstat (limited to 'lib/rubygems/server.rb')
-rw-r--r-- | lib/rubygems/server.rb | 16 |
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 |