Class: Diogenes::Cli

Inherits:
Object
  • Object
show all
Defined in:
lib/diogenes/cli.rb,
lib/diogenes/cli/init.rb

Defined Under Namespace

Classes: Init

Constant Summary collapse

COMMANDS =
{
  "init" => Init
}.freeze

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(argv:, out:, err:) ⇒ Cli

: (argv: Array, out: IO, err: IO) -> void



18
19
20
21
22
# File 'lib/diogenes/cli.rb', line 18

def initialize(argv:, out:, err:)
  @argv = argv.dup #: Array[String]
  @out = out #: IO
  @err = err #: IO
end

Class Method Details

.run(argv = ARGV, out: $stdout, err: $stderr) ⇒ Object

: (?Array argv, ?out: IO, ?err: IO) -> Integer



13
14
15
# File 'lib/diogenes/cli.rb', line 13

def self.run(argv = ARGV, out: $stdout, err: $stderr)
  new(argv: argv, out: out, err: err).run
end

Instance Method Details

#runObject

: () -> Integer



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/diogenes/cli.rb', line 25

def run
  command, *args = @argv

  case command
  when nil, "help", "-h", "--help"
    print_help
  when "version", "-v", "--version"
    print_version
  when *COMMANDS.keys
    run_command(COMMANDS.fetch(command), args)
  else
    raise UserError, unknown_command_message(command)
  end
rescue OptionParser::ParseError, UserError => e
  @err.puts e.message
  1
end