# File rubygems/commands/push_command.rb, line 35
def execute
@host = options[:host]
sign_in @host
send_gem get_one_gem_name
end
# File rubygems/commands/push_command.rb, line 43
def send_gem name
args = [:post, "api/v1/gems"]
latest_rubygems_version = Gem.latest_rubygems_version
if latest_rubygems_version < Gem.rubygems_version and
Gem.rubygems_version.prerelease? and
Gem::Version.new('2.0.0.rc.2') != Gem.rubygems_version then
alert_error <<-ERROR
You are using a beta release of RubyGems (#{Gem::VERSION}) which is not
allowed to push gems. Please downgrade or upgrade to a release version.
The latest released RubyGems version is #{latest_rubygems_version}
You can upgrade or downgrade to the latest release version with:
gem update --system=#{latest_rubygems_version}
ERROR
terminate_interaction 1
end
unless @host then
if gem_data = Gem::Package.new(name) then
@host = gem_data.spec.metadata['default_gem_server']
end
end
args << @host if @host
say "Pushing gem to #{@host || Gem.host}..."
response = rubygems_api_request(*args) do |request|
request.body = Gem.read_binary name
request.add_field "Content-Length", request.body.size
request.add_field "Content-Type", "application/octet-stream"
request.add_field "Authorization", api_key
end
with_response response
end
Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.
If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.
If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.
If you want to help improve the Ruby documentation, please see Improve the docs, or visit Documenting-ruby.org.