Sha256: 5d19e0ab1f8308bd40cc134875cc80d8ada25c4d2070c36dd3d18351b0acb363

Contents?: true

Size: 1.13 KB

Versions: 13

Compression:

Stored size: 1.13 KB

Contents

module Relish
  module Command
    class Collab < Base
      include ResourceMethods
      resource_path :memberships

      desc    'list the collaborators for a project'
      command :default do
        puts format(resource[resource_path_for_no_option].get(:accept => :json))
      end

      usage   'collab:add <project>:<collaborator handle or email>'
      desc    'add a collaborator to a project',
              'example: relish collab:add rspec/rspec-core:justin'
      command :add do
        puts resource[resource_path_for_option].post(:handle_or_email => handle_or_email)
      end

      usage   'collab:remove <project>:<collaborator handle or email>'
      desc    'remove a collaborator from a project',
              'example: relish collab:remove rspec/rspec-core:justin'
      command :remove do
        puts resource["#{resource_path_for_option}/#{handle_or_email}"].delete
      end

    private

      def handle_or_email
        @param.extract_option
      end

      def format(response)
        json_parse(response) do |hash|
          "#{hash['user']['handle']} (#{hash['user']['email']})"
        end
      end

    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
relish-0.7.1 lib/relish/commands/collab.rb
relish-0.7 lib/relish/commands/collab.rb
relish-0.6 lib/relish/commands/collab.rb
relish-0.5.3 lib/relish/commands/collab.rb
relish-0.5.2 lib/relish/commands/collab.rb
relish-0.5.1 lib/relish/commands/collab.rb
relish-0.5.0 lib/relish/commands/collab.rb
relish-0.4.0 lib/relish/commands/collab.rb
relish-0.3.0 lib/relish/commands/collab.rb
relish-0.3.0.pre lib/relish/commands/collab.rb
relish-0.2.3 lib/relish/commands/collab.rb
relish-0.2.2 lib/relish/commands/collab.rb
relish-0.2.1 lib/relish/commands/collab.rb