Class: FunCi::Cli

Inherits:
Object
  • Object
show all
Defined in:
lib/fun_ci/cli.rb

Constant Summary collapse

ROUTES =
{
  "trigger" => :run_trigger,
  "console" => :run_console,
  "init" => :run_init,
  "install-hooks" => :run_install_hooks,
  "check" => :run_check
}.freeze

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(stdout:, stderr:, handlers:) ⇒ Cli

Returns a new instance of Cli.



20
21
22
23
24
# File 'lib/fun_ci/cli.rb', line 20

def initialize(stdout:, stderr:, handlers:)
  @stdout = stdout
  @stderr = stderr
  @handlers = handlers
end

Class Method Details

.run(args, stdout: $stdout, stderr: $stderr, handlers: {}) ⇒ Object



16
17
18
# File 'lib/fun_ci/cli.rb', line 16

def self.run(args, stdout: $stdout, stderr: $stderr, handlers: {})
  new(stdout: stdout, stderr: stderr, handlers: handlers).run(args)
end

Instance Method Details

#run(args) ⇒ Object



26
27
28
29
30
31
32
33
34
35
# File 'lib/fun_ci/cli.rb', line 26

def run(args)
  subcommand = args.first
  return help(0) if %w[-h --help].include?(subcommand)
  return version if subcommand == "--version"
  unless ROUTES.key?(subcommand)
    print_error(subcommand)
    return 1
  end
  dispatch(subcommand, args.drop(1))
end