class Thor
def help(shell, meth=nil, options={})
skip_inherited:: When true, does not show tasks from superclass.
namespace:: When true, shows the namespace in the output before the usage.
==== Options
meth
==== Parameters
only about the specific task.
Prints help information. If a task name is given, it shows information
def help(shell, meth=nil, options={}) meth, options = nil, meth if meth.is_a?(Hash) if meth task = all_tasks[meth] raise UndefinedTaskError, "task '#{meth}' could not be found in namespace '#{self.namespace}'" unless task shell.say "Usage:" shell.say " #{banner(task, options[:namespace], false)}" shell.say class_options_help(shell, "Class", :Method => task.options.map { |_, o| o }) shell.say task.description else list = (options[:short] ? tasks : all_tasks).map do |_, task| item = [ banner(task, options[:namespace]) ] item << "# #{task.short_description}" if task.short_description item << " " end options[:ident] ||= 2 if options[:short] shell.print_list(list, :ident => options[:ident]) else shell.say "Tasks:" shell.print_list(list, :ident => options[:ident]) end Thor::Util.thor_classes_in(self).each do |subclass| namespace = options[:namespace] == true || subclass.namespace.gsub(/^#{self.namespace}:/, '') subclass.help(shell, options.merge(:short => true, :namespace => namespace)) end class_options_help(shell, "Class") unless options[:short] end end