def to_s
heads = options.reject(&:tail?)
tails = (options - heads)
opts = (heads + tails).select(&:help).map(&:to_s)
optstr = opts.each_with_index.map { |o, i|
(str = @separators[i + 1]) ? [o, str].join("\n") : o
}.join("\n")
if @commands.any?
optstr << "\n" if !optstr.empty?
optstr << "\nAvailable commands:\n\n"
optstr << commands_to_help
optstr << "\n\nSee `<command> --help` for more information on a specific command."
end
banner = config[:banner]
if banner.nil?
banner = "Usage: #{File.basename($0, '.*')}"
banner << " #{@command}" if @command
banner << " [command]" if @commands.any?
banner << " [options]"
end
if banner
"#{banner}\n#{@separators[0] ? "#{@separators[0]}\n" : ''}#{optstr}"
else
optstr
end
end