class Routemaster::CLI::Toplevel

Constants

SUBCOMMANDS

Public Class Methods

new(stderr: STDERR, stdout: STDOUT) click to toggle source
# File routemaster/cli/top_level.rb, line 15
def initialize(stderr: STDERR, stdout: STDOUT)
  @stderr = stderr
  @stdout = stdout
end

Public Instance Methods

run(argv) click to toggle source
# File routemaster/cli/top_level.rb, line 20
def run(argv)
  handler = SUBCOMMANDS.find do |kls|
    argv.take(kls.prefix.length) == kls.prefix
  end

  bad_subcommand! if handler.nil?

  subargv = argv[handler.prefix.length..-1]
  handler.new(stderr: @stderr, stdout: @stdout).run(subargv)
end

Private Instance Methods

bad_subcommand!() click to toggle source
# File routemaster/cli/top_level.rb, line 33
def bad_subcommand!
  log "Usage:"
  SUBCOMMANDS.each do |kls|
    log kls.syntax
    log kls.descr
  end
  raise Exit, 1
end
log(message) click to toggle source
# File routemaster/cli/top_level.rb, line 42
def log(message)
  @stderr.puts(message)
end