# File lib/rack/file.rb, line 42 def _call(env) unless ALLOWED_VERBS.include? env["REQUEST_METHOD"] return fail(405, "Method Not Allowed") end @path_info = Utils.unescape(env["PATH_INFO"]) parts = @path_info.split SEPS clean = [] parts.each do |part| next if part.empty? || part == '.' part == '..' ? clean.pop : clean << part end @path = F.join(@root, *clean) available = begin F.file?(@path) && F.readable?(@path) rescue SystemCallError false end if available serving(env) else fail(404, "File not found: #{@path_info}") end end