def call(env)
path_info = ::Rack::Utils.unescape(env['PATH_INFO'])
path = ::File.join(@root, path_info)
if ::File.directory?(path) && path_info !~ /\/$/
new_path_info = env['PATH_INFO'] + '/'
return [
302,
{ 'Location' => new_path_info, 'Content-Type' => 'text/html' },
[ "Redirecting you to #{new_path_info}…" ]
]
end
new_env = env.dup
if ::File.directory?(path)
if index_filename = index_file_in(path)
new_env['PATH_INFO'] = ::File.join(path_info, index_filename)
end
end
@app.call(new_env)
end