In Files

  • rubygems/commands/push_command.rb

Class/Module Index [+]

Quicksearch

Gem::Commands::PushCommand

Public Class Methods

new() click to toggle source
 
               # File rubygems/commands/push_command.rb, line 21
def initialize
  super 'push', description
  add_proxy_option
  add_key_option

  add_option(
    '--host HOST',
    'Push to another gemcutter-compatible host'
  ) do |value, options|
    options[:host] = value
  end
end
            

Public Instance Methods

execute() click to toggle source
 
               # File rubygems/commands/push_command.rb, line 34
def execute
  sign_in
  send_gem get_one_gem_name
end
            
send_gem(name) click to toggle source
 
               # File rubygems/commands/push_command.rb, line 39
def send_gem name
  args = [:post, "api/v1/gems"]

  args << options[:host] if options[:host]

  if Gem.latest_rubygems_version < Gem::Version.new(Gem::VERSION) then
    alert_error "Using beta/unreleased version of rubygems. Not pushing."
    terminate_interaction 1
  end

  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