module Haml::Precompiler
def flush_merged_text
def flush_merged_text return if @to_merge.empty? str = "" mtabs = 0 newlines = 0 @to_merge.each do |type, val, tabs| case type when :text str << val.inspect[1...-1] mtabs += tabs when :script if mtabs != 0 && !@options[:ugly] val = "_hamlout.adjust_tabs(#{mtabs}); " + val end str << "\#{#{"\n" * newlines}#{val}}" mtabs = 0 newlines = 0 when :newlines newlines += val else raise SyntaxError.new("[HAML BUG] Undefined entry in Haml::Precompiler@to_merge.") end end @precompiled << if @options[:ugly] "_hamlout.buffer << \"#{str}\";" else "_hamlout.push_text(\"#{str}\", #{mtabs}, #{@dont_tab_up_next_text.inspect});" end @precompiled << "\n" * newlines @to_merge = [] @dont_tab_up_next_text = false end