Sha256: f7d44de2ac22832de2aa06f5f464fc8d1260f491da34738970b0b6aa87cf5b5f

Contents?: true

Size: 1.12 KB

Versions: 1

Compression:

Stored size: 1.12 KB

Contents

require 'choice'
require 'gembank_client/resource'
require 'singleton'

module GembankClient
  class CLI
    include Singleton

    def self.run
      instance.run
    end

    def run
      Choice.options do
        banner('Usage: gembank_client ACTION --key=KEY --file=GEM_FILE [--url=URL]')
        header('Available actions: release')
        header('Options:')
        option(:key, :required => true) do
          short('-k')
          long('--key=KEY')
          desc('Push key (required)')
        end
        option(:file, :required => true) do
          short('-f')
          long('--file=FILE')
          desc('Gem file (required)')
        end
        option(:url) do
          short('-u')
          long('--url=URL')
          desc('Gembank URL')
        end
      end

      action = ARGV.first
      puts(Choice.help) unless action

      resource = GembankClient::Resource.new(Choice.choices[:key], Choice.choices[:file],
          Choice.choices[:url])

      case action
      when 'release'
        resource.release
      else
        puts("Unknown action '#{action}'\n")
        puts(Choice.help)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
gembank_client-0.0.2 lib/gembank_client/cli.rb