def push_text(text, tab_change, dont_tab_up)
      if @tabulation > 0
        # Have to push every line in by the extra user set tabulation.
        # Don't push lines with just whitespace, though,
        # because that screws up precompiled indentation.
        text.gsub!(/^(?!\s+$)/m, tabs)
        text.sub!(tabs, '') if dont_tab_up
      end

      @real_tabs += tab_change
      @buffer << text
    end
def push_text(text, tab_change, dont_tab_up)
      if @tabulation > 0
        # Have to push every line in by the extra user set tabulation.
        # Don't push lines with just whitespace, though,
        # because that screws up precompiled indentation.
        text.gsub!(/^(?!\s+$)/m, tabs)
        text.sub!(tabs, '') if dont_tab_up
      end

      @real_tabs += tab_change
      @buffer << text
    end
@param upper [Buffer] The parent buffer
 @param options [{Symbol => Object}] An options hash.
   See {Haml::Engine#options\_for\_buffer}
 Appends text to the buffer, properly tabulated.
 Also modifies the document's indentation.

 @param text [String] The text to append
 @param tab_change [Fixnum] The number of tabs by which to increase
   or decrease the document's indentation
 @param dont_tab_up [Boolean] If true, don't indent the first line of `text`