class Haml::Buffer

def push_script(result, preserve_script, in_tag = false, preserve_tag = false,

instance_eval.
Properly formats the output of a script that was run in the
def push_script(result, preserve_script, in_tag = false, preserve_tag = false,
                escape_html = false, nuke_inner_whitespace = false)
  tabulation = @real_tabs
  if preserve_tag
    result = Haml::Helpers.preserve(result)
  elsif preserve_script
    result = Haml::Helpers.find_and_preserve(result, options[:preserve])
  end
  result = result.to_s.rstrip
  result = html_escape(result) if escape_html
  has_newline = result.include?("\n")
  if in_tag && !nuke_inner_whitespace && (@options[:ugly] || !has_newline || preserve_tag)
    @buffer << result
    @real_tabs -= 1
    return
  end
  @buffer << "\n" if in_tag && !nuke_inner_whitespace
  # Precompiled tabulation may be wrong
  if @tabulation > 0 && !in_tag
    result = tabs + result
  end
  if has_newline && !@options[:ugly]
    result = result.gsub "\n", "\n" + tabs(tabulation)
    # Add tabulation if it wasn't precompiled
    result = tabs(tabulation) + result if in_tag && !nuke_inner_whitespace
  end
  @buffer << "#{result}"
  @buffer << "\n" unless nuke_inner_whitespace
  if in_tag && !nuke_inner_whitespace
    # We never get here if @options[:ugly] is true
    @buffer << tabs(tabulation-1)
    @real_tabs -= 1
  end
  nil
end