def process_template name, src, type, called_from = nil, file_name = nil
case type
when :erb
result = ErbTemplateProcessor.new(@tracker, name, called_from, file_name).process src
when :haml
result = HamlTemplateProcessor.new(@tracker, name, called_from, file_name).process src
when :erubis
result = ErubisTemplateProcessor.new(@tracker, name, called_from, file_name).process src
when :slim
result = SlimTemplateProcessor.new(@tracker, name, called_from, file_name).process src
else
abort "Unknown template type: #{type} (#{name})"
end
if called_from
name = ("#{name}.#{called_from}").to_sym
end
@tracker.templates[name].src = result
@tracker.templates[name].type = type
end