module Thor::Base::ClassMethods

def print_options(shell, options, group_name=nil)

Receives a set of options and print them.
def print_options(shell, options, group_name=nil)
  return if options.empty?
  list = []
  padding = options.collect{ |o| o.aliases.size }.max.to_i * 4
  options.each do |option|
    item = [ option.usage(padding) ]
    item.push(option.description ? "# #{option.description}" : "")
    list << item
    list << [ "", "# Default: #{option.default}" ] if option.show_default?
  end
  shell.say(group_name ? "#{group_name} options:" : "Options:")
  shell.print_table(list, :ident => 2)
  shell.say ""
end