class Thor::Shell::Basic

def print_wrapped(message, options = {})


indent:: Indent each line of the printed paragraph by indent value.
==== Options

String
==== Parameters

terminal display. Ideal for printing heredocs.
Prints a long string, word-wrapping the text to the current width of the
def print_wrapped(message, options = {})
  indent = options[:indent] || 0
  width = terminal_width - indent
  paras = message.split("\n\n")
  paras.map! do |unwrapped|
    counter = 0
    unwrapped.split(" ").inject do |memo, word|
      word = word.gsub(/\n\005/, "\n").gsub(/\005/, "\n")
      counter = 0 if word.include? "\n"
      if (counter + word.length + 1) < width
        memo = "#{memo} #{word}"
        counter += (word.length + 1)
      else
        memo = "#{memo}\n#{word}"
        counter = word.length
      end
      memo
    end
  end.compact!
  paras.each do |para|
    para.split("\n").each do |line|
      stdout.puts line.insert(0, " " * indent)
    end
    stdout.puts unless para == paras.last
  end
end