def compile(template)
mustache_class = mustache_class_from_template(template)
mustache_class.template_file = mustache_template_file(template)
"mustache = ::\#{mustache_class}.new\nmustache.view = self\nmustache[:yield] = content_for(:layout)\nmustache.context.update(local_assigns)\nvariables = controller.instance_variable_names\nvariables -= %w[@template]\n\nif controller.respond_to?(:protected_instance_variables)\nvariables -= controller.protected_instance_variables\nend\n\nvariables.each do |name|\nmustache.instance_variable_set(name, controller.instance_variable_get(name))\nend\n\n# Declaring an +attr_reader+ for each instance variable in the\n# Mustache::Rails subclass makes them available to your templates.\nmustache.class.class_eval do\nattr_reader *variables.map { |name| name.sub(/^@/, '').to_sym }\nend\n\nmustache.render\n"
end