class Travis::CLI::Help
def api_commands
def api_commands CLI.commands.select do |cmd| cmd.ancestors.include?(CLI::ApiCommand) && !cmd.ancestors.include?(CLI::RepoCommand) end.sort_by { |c| c.command_name } end
def cmd_group_header(title)
def cmd_group_header(title) say " #{color(title, :green)}" end
def other_commands
def other_commands CLI.commands.reject do |cmd| cmd.ancestors.include? CLI::ApiCommand end.sort_by { |c| c.command_name } end
def repo_commands
def repo_commands CLI.commands.select do |cmd| cmd.ancestors.include? CLI::RepoCommand end.sort_by { |c| c.command_name } end
def run(command = nil)
def run(command = nil) if command say CLI.command(command).new.help else api_cmds = CommandGroup.new(api_commands, 'API commands') repo_cmds = CommandGroup.new(repo_commands, 'Repo commands') other_cmds = CommandGroup.new(other_commands, 'non-API commands') say "Usage: travis COMMAND ...\n\nAvailable commands:\n\n" [other_cmds, api_cmds, repo_cmds].each do |cmd_grp| say " #{cmd_grp.header}" cmd_grp.cmds.each do |cmd| say " #{color(cmd.command_name, :command).ljust(25)} #{color(cmd.description, :info)}" end end say "\nrun `#{$PROGRAM_NAME} help COMMAND` for more info" end end