Class: ActionController::CgiResponse
- Inherits:
-
AbstractResponse
- Object
- AbstractResponse
- ActionController::CgiResponse
- Defined in:
- lib/action_controller/cgi_process.rb
Overview
:nodoc:
Constant Summary
Constants inherited from AbstractResponse
AbstractResponse::DEFAULT_HEADERS
Instance Attribute Summary
Attributes inherited from AbstractResponse
#assigns, #body, #cookies, #headers, #layout, #redirected_to, #redirected_to_method_params, #request, #session, #template
Instance Method Summary collapse
-
#initialize(cgi) ⇒ CgiResponse
constructor
A new instance of CgiResponse.
- #out(output = $stdout) ⇒ Object
Methods inherited from AbstractResponse
#assign_default_content_type_and_charset!, #charset, #charset=, #content_type, #content_type=, #etag, #etag=, #etag?, #last_modified, #last_modified=, #last_modified?, #location, #location=, #prepare!, #redirect, #sending_file?, #status, #status=
Constructor Details
#initialize(cgi) ⇒ CgiResponse
Returns a new instance of CgiResponse.
156 157 158 159 |
# File 'lib/action_controller/cgi_process.rb', line 156 def initialize(cgi) @cgi = cgi super() end |
Instance Method Details
#out(output = $stdout) ⇒ Object
161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 |
# File 'lib/action_controller/cgi_process.rb', line 161 def out(output = $stdout) output.binmode if output.respond_to?(:binmode) output.sync = false if output.respond_to?(:sync=) begin output.write(@cgi.header(@headers)) if @cgi.__send__(:env_table)['REQUEST_METHOD'] == 'HEAD' return elsif @body.respond_to?(:call) # Flush the output now in case the @body Proc uses # #syswrite. output.flush if output.respond_to?(:flush) @body.call(self, output) else output.write(@body) end output.flush if output.respond_to?(:flush) rescue Errno::EPIPE, Errno::ECONNRESET # lost connection to parent process, ignore output end end |