module Haml::Precompiler
def flush_merged_text
def flush_merged_text return if @to_merge.empty? text, tab_change = @to_merge.inject(["", 0]) do |(str, mtabs), (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 << "\#{#{val}}", 0] else raise SyntaxError.new("[HAML BUG] Undefined entry in Haml::Precompiler@to_merge.") end end @precompiled << if @options[:ugly] "_hamlout.buffer << \"#{text}\";" else "_hamlout.push_text(\"#{text}\", #{tab_change}, #{@dont_tab_up_next_text.inspect});" end @to_merge = [] @dont_tab_up_next_text = false end