require 'optparse' module PerfMonger module CLI class Runner def self.register_command(command_name, klass) @@commands ||= Hash.new @@aliases ||= Hash.new @@commands[command_name] = klass end def self.register_alias(alias_name, command_name) if @@commands.nil? raise RuntimeError.new("No command is registered yet.") end if ! @@commands.has_key?(command_name) raise RuntimeError.new("Command '#{command_name}' is not registered.") end @@aliases[alias_name] = command_name end def initialize end def run(argv = ARGV) parser = OptionParser.new parser.banner = < 0 str += "\n" + " " + (" " * max_len) + " " + "Aliases: " + command.aliases.join(", ") end str end.join("\n") subcommand_list = <