Flowdock
method

dispatch_cgi

Importance_0
Ruby on Rails latest stable (v4.2.1) - 0 notes - Class: ActionController::CGIHandler
  • 1.0.0
  • 1.1.1
  • 1.1.6
  • 1.2.0
  • 1.2.6
  • 2.0.0
  • 2.0.3
  • 2.1.0
  • 2.2.1
  • 2.3.2 (0)
  • 2.3.8 (0)
  • 3.0.0
  • 3.0.5
  • 3.0.9
  • 3.1.0
  • 3.2.1
  • 3.2.3
  • 3.2.8
  • 3.2.13
  • 4.0.2
  • 4.1.8
  • 4.2.1
  • What's this?

Method deprecated or moved

This method is deprecated or moved on the latest stable version. The last existing version (v2.3.8) is shown here.

dispatch_cgi(app, cgi, out = $stdout) public

No documentation

This method has no description. You can help the Ruby on Rails community by adding new notes.

Hide source
# File actionpack/lib/action_controller/cgi_process.rb, line 21
    def self.dispatch_cgi(app, cgi, out = $stdout)
      env = cgi.__send__(:env_table)
      env.delete "HTTP_CONTENT_LENGTH"

      cgi.stdinput.extend ProperStream

      env["SCRIPT_NAME"] = "" if env["SCRIPT_NAME"] == "/"

      env.update({
        "rack.version" => [0,1],
        "rack.input" => cgi.stdinput,
        "rack.errors" => $stderr,
        "rack.multithread" => false,
        "rack.multiprocess" => true,
        "rack.run_once" => false,
        "rack.url_scheme" => ["yes", "on", "1"].include?(env["HTTPS"]) ? "https" : "http"
      })

      env["QUERY_STRING"] ||= ""
      env["HTTP_VERSION"] ||= env["SERVER_PROTOCOL"]
      env["REQUEST_PATH"] ||= "/"
      env.delete "PATH_INFO" if env["PATH_INFO"] == ""

      status, headers, body = app.call(env)
      begin
        out.binmode if out.respond_to?(:binmode)
        out.sync = false if out.respond_to?(:sync=)

        headers['Status'] = status.to_s

        if headers.include?('Set-Cookie')
          headers['cookie'] = headers.delete('Set-Cookie').split("\n")
        end

        out.write(cgi.header(headers))

        body.each { |part|
          out.write part
          out.flush if out.respond_to?(:flush)
        }
      ensure
        body.close if body.respond_to?(:close)
      end
    end
Register or log in to add new notes.