diff options
author | hsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-09-14 03:30:02 +0000 |
---|---|---|
committer | hsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-09-14 03:30:02 +0000 |
commit | 4de117a61517e839f2c45eaf45d56fc243d6d5b2 (patch) | |
tree | 7cb5af7a7eb513e5dddf5e343746b1611e628387 /lib/rubygems/server.rb | |
parent | e548c09d429a5136285ea81aed418685359ed124 (diff) | |
download | ruby-4de117a61517e839f2c45eaf45d56fc243d6d5b2.tar.gz |
* lib/rubygems: Update to RubyGems 2.4.1 master(713ab65)
Complete history at:
https://github.com/rubygems/rubygems/blob/master/History.txt#L3-L216
* test/rubygems: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47582 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/rubygems/server.rb')
-rw-r--r-- | lib/rubygems/server.rb | 37 |
1 files changed, 36 insertions, 1 deletions
diff --git a/lib/rubygems/server.rb b/lib/rubygems/server.rb index ca6dc683f5..7655be22ce 100644 --- a/lib/rubygems/server.rb +++ b/lib/rubygems/server.rb @@ -530,6 +530,36 @@ div.method-source-code pre { color: #ffdead; overflow: hidden; } end end + def prerelease_specs req, res + reset_gems + + res['content-type'] = 'application/x-gzip' + + add_date res + + specs = Gem::Specification.select do |spec| + spec.version.prerelease? + end.sort.map do |spec| + platform = spec.original_platform || Gem::Platform::RUBY + [spec.name, spec.version, platform] + end + + specs = Marshal.dump specs + + if req.path =~ /\.gz$/ then + specs = Gem.gzip specs + res['content-type'] = 'application/x-gzip' + else + res['content-type'] = 'application/octet-stream' + end + + if req.request_method == 'HEAD' then + res['content-length'] = specs.length + else + res.body << specs + end + end + def quick(req, res) reset_gems @@ -537,7 +567,7 @@ 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 + 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 @@ -757,6 +787,11 @@ div.method-source-code pre { color: #ffdead; overflow: hidden; } @server.mount_proc "/latest_specs.#{Gem.marshal_version}.gz", method(:latest_specs) + @server.mount_proc "/prerelease_specs.#{Gem.marshal_version}", + method(:prerelease_specs) + @server.mount_proc "/prerelease_specs.#{Gem.marshal_version}.gz", + method(:prerelease_specs) + @server.mount_proc "/quick/", method(:quick) @server.mount_proc("/gem-server-rdoc-style.css") do |req, res| |