| 12345678910111213141516171819202122232425262728293031323334353637383940 | require 'tilt/template'module Tilt   # Builder template implementation. See:  # http://builder.rubyforge.org/  class BuilderTemplate < Template    self.default_mime_type = 'text/xml'    def self.engine_initialized?      defined? ::Builder    end    def initialize_engine      require_template_library 'builder'    end    def prepare; end    def evaluate(scope, locals, &block)      return super(scope, locals, &block) if data.respond_to?(:to_str)      xml = ::Builder::XmlMarkup.new(:indent => 2)      data.call(xml)      xml.target!    end    def precompiled_preamble(locals)      return super if locals.include? :xml      "xml = ::Builder::XmlMarkup.new(:indent => 2)\n#{super}"    end    def precompiled_postamble(locals)      "xml.target!"    end    def precompiled_template(locals)      data.to_str    end  endend
 |