module Bundler::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.map { |o| o.aliases.size }.max.to_i * 4
  options.each do |option|
    unless option.hide
      item = [option.usage(padding)]
      item.push(option.description ? "# #{option.description}" : "")
      list << item
      list << ["", "# Default: #{option.default}"] if option.show_default?
      list << ["", "# Possible values: #{option.enum.join(', ')}"] if option.enum
    end
  end
  shell.say(group_name ? "#{group_name} options:" : "Options:")
  shell.print_table(list, :indent => 2)
  shell.say ""
end