# File rubygems/commands/owner_command.rb, line 28
def initialize
super 'owner', 'Manage gem owners of a gem on the push server'
add_proxy_option
add_key_option
defaults.merge! :add => [], :remove => []
add_option '-a', '--add EMAIL', 'Add an owner' do |value, options|
options[:add] << value
end
add_option '-r', '--remove EMAIL', 'Remove an owner' do |value, options|
options[:remove] << value
end
add_option '-h', '--host HOST', 'Use another gemcutter-compatible host' do |value, options|
options[:host] = value
end
end
# File rubygems/commands/owner_command.rb, line 73
def add_owners name, owners
manage_owners :post, name, owners
end
# File rubygems/commands/owner_command.rb, line 47
def execute
@host = options[:host]
sign_in
name = get_one_gem_name
add_owners name, options[:add]
remove_owners name, options[:remove]
show_owners name
end
# File rubygems/commands/owner_command.rb, line 81
def manage_owners method, name, owners
owners.each do |owner|
begin
response = rubygems_api_request method, "api/v1/gems/#{name}/owners" do |request|
request.set_form_data 'email' => owner
request.add_field "Authorization", api_key
end
action = method == :delete ? "Removing" : "Adding"
with_response response, "#{action} #{owner}"
rescue
# ignore
end
end
end
# File rubygems/commands/owner_command.rb, line 77
def remove_owners name, owners
manage_owners :delete, name, owners
end
# File rubygems/commands/owner_command.rb, line 58
def show_owners name
response = rubygems_api_request :get, "api/v1/gems/#{name}/owners.yaml" do |request|
request.add_field "Authorization", api_key
end
with_response response do |resp|
owners = YAML.load resp.body
say "Owners for gem: #{name}"
owners.each do |owner|
say "- #{owner['email']}"
end
end
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 visit Documenting-ruby.org.