mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* lib/rubygems: update to 1.3.6.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26728 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
65544f575b
commit
b551e8c8b3
119 changed files with 2735 additions and 2613 deletions
75
lib/rubygems/commands/owner_command.rb
Normal file
75
lib/rubygems/commands/owner_command.rb
Normal file
|
@ -0,0 +1,75 @@
|
|||
require 'rubygems/command'
|
||||
require 'rubygems/local_remote_options'
|
||||
require 'rubygems/gemcutter_utilities'
|
||||
|
||||
class Gem::Commands::OwnerCommand < Gem::Command
|
||||
include Gem::LocalRemoteOptions
|
||||
include Gem::GemcutterUtilities
|
||||
|
||||
def description # :nodoc:
|
||||
'Manage gem owners on RubyGems.org.'
|
||||
end
|
||||
|
||||
def arguments # :nodoc:
|
||||
"GEM gem to manage owners for"
|
||||
end
|
||||
|
||||
def initialize
|
||||
super 'owner', description
|
||||
add_proxy_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
|
||||
end
|
||||
|
||||
def execute
|
||||
sign_in
|
||||
name = get_one_gem_name
|
||||
|
||||
add_owners name, options[:add]
|
||||
remove_owners name, options[:remove]
|
||||
show_owners name
|
||||
end
|
||||
|
||||
def show_owners name
|
||||
response = rubygems_api_request :get, "api/v1/gems/#{name}/owners.yaml" do |request|
|
||||
request.add_field "Authorization", Gem.configuration.rubygems_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
|
||||
|
||||
def add_owners name, owners
|
||||
manage_owners :post, name, owners
|
||||
end
|
||||
|
||||
def remove_owners name, owners
|
||||
manage_owners :delete, name, owners
|
||||
end
|
||||
|
||||
def manage_owners method, name, owners
|
||||
owners.each do |owner|
|
||||
response = rubygems_api_request method, "api/v1/gems/#{name}/owners" do |request|
|
||||
request.set_form_data 'email' => owner
|
||||
request.add_field "Authorization", Gem.configuration.rubygems_api_key
|
||||
end
|
||||
|
||||
with_response response
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue