# File 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
Generated with the Darkfish Rdoc Generator 2.