# File lib/rhc/highline_extensions.rb, line 40
  def say(msg)
    if msg.respond_to? :to_str
      separate_blocks

      statement = msg.to_str
      return statement unless statement.present?

      template  = ERB.new(statement, nil, "%")
      statement = template.result(binding)

      if @wrap_at
        statement = statement.chomp.textwrap_ansi(@wrap_at, false)
        if @last_line_open && statement.length > 1
          @last_line_open = false
          @output.puts
        end
        statement = statement.join("#{indentation}\n")
      end
      statement = send(:page_print, statement) unless @page_at.nil?

      @output.print(indentation) unless @last_line_open

      @last_line_open =
        if statement[-1, 1] == " " or statement[-1, 1] == "\t"
          @output.print(statement)
          @output.flush
          #statement.strip_ansi.length + (@last_line_open || 0)
          true
        else
          @output.puts(statement)
          false
        end

    elsif msg.respond_to? :each
      separate_blocks

      @output.print if @last_line_open
      @last_line_open = false

      color = msg.color if msg.respond_to? :color
      @output.print HighLine::Style(color).code if color

      msg.each do |s|
        @output.print indentation
        @output.puts s
      end

      @output.print HighLine::CLEAR if color
      @output.flush
    end

    msg
  end