process_request

in asf-site-src/ruby27_fix_uri.rb [37:74]


  def process_request(env, req, res) 
    start_time = Time.now

    request_path = WEBrick::HTTPUtils.unescape(env['PATH_INFO'].dup)
    request_path.force_encoding('UTF-8') if request_path.respond_to? :force_encoding
    request_path = ::Middleman::Util.full_path(request_path, @middleman)
    full_request_path = File.join(env['SCRIPT_NAME'], request_path) 

    
    @middleman.execute_callbacks(:before)

    
    resource = @middleman.sitemap.find_resource_by_destination_path(request_path.gsub(' ', '%20'))

    
    return not_found(res, full_request_path) unless resource && !resource.ignored?

    
    return send_file(resource, env) if resource.binary?

    res['Content-Type'] = resource.content_type || 'text/plain'

    begin
      
      res.write resource.render({}, rack: { request: req })

      
      res.status = 200
    rescue Middleman::TemplateRenderer::TemplateNotFound => e
      res.write "Error: #{e.message}"
      res.status = 500
    end

    
    logger.debug "== Finishing Request: #{resource.destination_path} (#{(Time.now - start_time).round(2)}s)" 
    halt res.finish
  end