Sha256: 6a1624ad4eedddf41d1f7729abf58cafdaadfe510359992e42da1ad645983c9e
Contents?: true
Size: 990 Bytes
Versions: 4
Compression:
Stored size: 990 Bytes
Contents
require 'routemaster/cli/helper' require 'routemaster/cli/token' require 'routemaster/cli/pub' require 'routemaster/cli/sub' module Routemaster module CLI class Toplevel SUBCOMMANDS = [ Token::Add, Token::Del, Token::List, Pub, Sub::Add, Sub::Del, Sub::List, ] def initialize(stderr: STDERR, stdout: STDOUT) @stderr = stderr @stdout = stdout end 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 def bad_subcommand! log "Usage:" SUBCOMMANDS.each do |kls| log kls.syntax log kls.descr end raise Exit, 1 end def log(message) @stderr.puts(message) end end end end
Version data entries
4 entries across 4 versions & 1 rubygems