class Tilt::Template
def evaluate(scope, locals, &block)
is guaranteed to be performed in the scope object with the locals
evaluated with instance_eval. In any case, template executation
does not mix in the CompileSite module, the template source is
reused given identical locals keys. When the scope object
the Tilt::CompileSite module, the template is compiled to a method and
Process the template and return the result. When the scope mixes in
def evaluate(scope, locals, &block) if scope.respond_to?(:__tilt__) method_name = compiled_method_name(locals.keys) if scope.respond_to?(method_name) scope.send(method_name, locals, &block) else compile_template_method(method_name, locals) scope.send(method_name, locals, &block) end else evaluate_source(scope, locals, &block) end end