class Gem::Commands::HelpCommand

def show_commands # :nodoc:

:nodoc:
def show_commands # :nodoc:
  out = []
  out << "GEM commands are:"
  out << nil
  margin_width = 4
  desc_width = @command_manager.command_names.map(&:size).max + 4
  summary_width = 80 - margin_width - desc_width
  wrap_indent = " " * (margin_width + desc_width)
  format = "#{" " * margin_width}%-#{desc_width}s%s"
  @command_manager.command_names.each do |cmd_name|
    command = @command_manager[cmd_name]
    next if command&.deprecated?
    summary =
      if command
        command.summary
      else
        "[No command found for #{cmd_name}]"
      end
    summary = wrap(summary, summary_width).split "\n"
    out << format(format, cmd_name, summary.shift)
    until summary.empty? do
      out << "#{wrap_indent}#{summary.shift}"
    end
  end
  out << nil
  out << "For help on a particular command, use 'gem help COMMAND'."
  out << nil
  out << "Commands may be abbreviated, so long as they are unambiguous."
  out << "e.g. 'gem i rake' is short for 'gem install rake'."
  say out.join("\n")
end