def call(env)
      WebProfiler.reset_data!

      begin
        request = WebProfiler::Request.new(env)
        env[ENV_RUNTIME_START] = Time.now.to_f

        response = WebProfiler::Router.response_for(request)
        return response.finish if response.is_a? Rack::Response

        status, headers, body = @app.call(env)
      rescue => e
        process(request, body, status, headers, e)
        raise
      end

      process(request, body, status, headers)
    end
def call(env)
      WebProfiler.reset_data!

      begin
        request = WebProfiler::Request.new(env)
        env[ENV_RUNTIME_START] = Time.now.to_f

        response = WebProfiler::Router.response_for(request)
        return response.finish if response.is_a? Rack::Response

        status, headers, body = @app.call(env)
      rescue => e
        process(request, body, status, headers, e)
        raise
      end

      process(request, body, status, headers)
    end
Initialize.

 @param app [Proc]
 @option tmp_dir [String]
 Call.

 @param env [Hash]

 @return [Array]