File: //lib/ruby/vendor_ruby/tilt/builder.rb
require 'tilt/template'
require 'builder'
module Tilt
# Builder template implementation. See:
# http://builder.rubyforge.org/
class BuilderTemplate < Template
self.default_mime_type = 'text/xml'
def prepare
options[:indent] ||= 2
end
def evaluate(scope, locals, &block)
xml = (locals[:xml] || ::Builder::XmlMarkup.new(options))
if data.respond_to?(:to_str)
if !locals[:xml]
locals = locals.merge(:xml => xml)
end
return super(scope, locals, &block)
end
data.call(xml)
xml.target!
end
def precompiled_postamble(locals)
"xml.target!"
end
def precompiled_template(locals)
data.to_str
end
end
end