diff options
Diffstat (limited to 'ruby_2_2/lib/rubygems/commands/owner_command.rb')
-rw-r--r-- | ruby_2_2/lib/rubygems/commands/owner_command.rb | 99 |
1 files changed, 0 insertions, 99 deletions
diff --git a/ruby_2_2/lib/rubygems/commands/owner_command.rb b/ruby_2_2/lib/rubygems/commands/owner_command.rb deleted file mode 100644 index 322bf6590a..0000000000 --- a/ruby_2_2/lib/rubygems/commands/owner_command.rb +++ /dev/null @@ -1,99 +0,0 @@ -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: - <<-EOF -The owner command lets you add and remove owners of a gem on a push -server (the default is https://rubygems.org). - -The owner of a gem has the permission to push new versions, yank existing -versions or edit the HTML page of the gem. Be careful of who you give push -permission to. - EOF - end - - def arguments # :nodoc: - "GEM gem to manage owners for" - end - - def usage # :nodoc: - "#{program_name} GEM" - end - - 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 - - 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 - - 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 - - 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| - 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 - -end - |