class PhusionPassenger::ClassicRails::RequestHandler
A request handler for Ruby on Rails applications.
def initialize(owner_pipe, options = {})
def initialize(owner_pipe, options = {}) super(owner_pipe, options) NINJA_PATCHING_LOCK.synchronize do ninja_patch_action_controller end end
def ninja_patch_action_controller
def ninja_patch_action_controller if !@@ninja_patched_action_controller && defined?(::ActionController::Base) \ && ::ActionController::Base.private_method_defined?(:perform_action) @@ninja_patched_action_controller = true ::ActionController::Base.class_eval do alias passenger_orig_perform_action perform_action def perform_action(*whatever) headers[X_POWERED_BY] = @passenger_header passenger_orig_perform_action(*whatever) end private :perform_action end end end
def perform_action(*whatever)
def perform_action(*whatever) headers[X_POWERED_BY] = @passenger_header passenger_orig_perform_action(*whatever) end
def process_request(headers, input, output, status_line_desired)
def process_request(headers, input, output, status_line_desired) # FIXME: how to print status line? headers[CONTENT_LENGTH] = headers[HTTP_CONTENT_LENGTH] cgi = CGIFixed.new(headers, input, output) ::Dispatcher.dispatch(cgi, ::ActionController::CgiRequest::DEFAULT_SESSION_OPTIONS, cgi.stdoutput) end