Sha256: 2fb8bc354a38fbcbb8a27eed3e0f9f6cb83dfb0ba22ca915bfb90d407bb9a39d

Contents?: true

Size: 1.28 KB

Versions: 7

Compression:

Stored size: 1.28 KB

Contents

require 'optparse'
require 'oauth/cli/base_command'
require 'oauth/cli/help_command'
require 'oauth/cli/query_command'
require 'oauth/cli/authorize_command'
require 'oauth/cli/sign_command'
require 'oauth/cli/version_command'
require 'active_support/core_ext/string/inflections'

module OAuth
  class CLI
    def self.puts_red(string)
      puts "\033[0;91m#{string}\033[0m"
    end

    ALIASES = {
      'h' => 'help',
      'v' => 'version',
      'q' => 'query',
      'a' => 'authorize',
      's' => 'sign',
    }

    def initialize(stdout, stdin, stderr, command, arguments)
      klass = get_command_class(parse_command(command))
      @command = klass.new(stdout, stdin, stderr, arguments)
      @help_command = HelpCommand.new(stdout, stdin, stderr, [])
    end

    def run
      @command.run
    end

    private

    def get_command_class(command)
      Object.const_get("OAuth::CLI::#{command.camelize}Command")
    end

    def parse_command(command)
      case command = command.to_s.downcase
      when '--version', '-v'
        'version'
      when '--help', '-h', nil, ''
        'help'
      when *ALIASES.keys
        ALIASES[command]
      when *ALIASES.values
        command
      else
        OAuth::CLI.puts_red "Command '#{command}' not found"
        'help'
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 2 rubygems

Version Path
tdiary-5.1.6 vendor/bundle/ruby/2.7.0/gems/oauth-0.5.6/lib/oauth/cli.rb
oauth-0.5.6 lib/oauth/cli.rb
oauth-0.5.5 lib/oauth/cli.rb
tdiary-5.0.8 vendor/bundle/gems/oauth-0.5.4/lib/oauth/cli.rb
oauth-0.5.4 lib/oauth/cli.rb
tdiary-5.0.5 vendor/bundle/gems/oauth-0.5.3/lib/oauth/cli.rb
oauth-0.5.3 lib/oauth/cli.rb