Sha256: 069d9bf5e6ac62c01b946dcabf0bb6ee913d35f2b01eba5a883ecf58c88d0166
Contents?: true
Size: 1.37 KB
Versions: 22
Compression:
Stored size: 1.37 KB
Contents
require 'term/ansicolor' module Hudson class CLI < Thor module Formatting module ClassMethods def task_help(shell, task_name) meth = normalize_task_name(task_name) task = all_tasks[meth] handle_no_task_error(meth) unless task shell.say "usage: #{banner(task)}" shell.say class_options_help(shell, nil => task.options.map { |_, o| o }) # shell.say task.description # shell.say end def print_options(shell, options, grp = nil) return if options.empty? table = options.map do |option| prototype = if option.default " [#{option.default}]" elsif option.boolean? "" elsif option.required? " #{option.banner}" else " [#{option.banner}]" end aliases = option.aliases.empty? ? "" : option.aliases.join(" ") + "," [aliases, "--#{option.name}#{prototype}", "\t",option.description] end shell.print_table(table, :ident => 2) shell.say end end module InstanceMethods def c Term::ANSIColor end end def self.included(receiver) receiver.extend ClassMethods receiver.send :include, InstanceMethods end end end end
Version data entries
22 entries across 22 versions & 1 rubygems