def call(env)
@staticmatic.load_helpers
path_info = env["PATH_INFO"]
file_dir, file_name, file_ext = expand_path(path_info)
file_dir.gsub!(/^\/stylesheets\/?/, "")
file_dir = CGI::unescape(file_dir)
file_name = CGI::unescape(file_name)
unless file_ext && ["html", "css"].include?(file_ext) &&
@staticmatic.template_exists?(file_name, file_dir) &&
File.basename(file_name) !~ /^\_/
return @files.call(env)
end
res = Rack::Response.new
res.header["Content-Type"] = "text/#{file_ext}"
begin
if file_ext == "css"
res.write @staticmatic.generate_css(file_name, file_dir)
else
res.write @staticmatic.generate_html_with_layout(file_name, file_dir)
end
rescue StaticMatic::Error => e
res.write e.message
end
res.finish
end