0
# Array[Merb::Controller, Symbol]::
0
# An array containing the Merb::Controller and the action that was dispatched to.
0
- def handle(rack_env
, response)
0
request = Merb::Request.new(rack_env)
0
Merb.logger.info("Params: #{request.params.inspect}")
0
action = route_params[:action]
0
- controller = dispatch_action(klass, action, request
, response)
0
+ controller = dispatch_action(klass, action, request
)
0
Merb.logger.info controller._benchmarks.inspect
0
Merb.logger.error(Merb.exception(exception))
0
exception = controller_exception(exception)
0
- dispatch_exception(request,
response, exception)
0
+ dispatch_exception(request,
, exception)
0
# Array[Merb::Controller, Symbol]::
0
# An array containing the Merb::Controller and the action that was dispatched to.
0
- def dispatch_action(klass, action, request,
response, status=200)
0
+ def dispatch_action(klass, action, request,
, status=200)
0
- controller = klass.new(request,
response, status)
0
+ controller = klass.new(request,
, status)
0
@@mutex.synchronize { controller._dispatch(action) }
0
# An array containing the Merb::Controller and the name of the exception
0
# that triggrered #dispatch_exception. For instance, a NotFound exception
0
- def dispatch_exception(request,
response, exception)
0
+ def dispatch_exception(request,
, exception)
0
klass = ::Exceptions rescue Merb::Controller
0
request.params[:original_params] = request.params.dup rescue {}
0
request.params[:original_session] = request.session.dup rescue {}
0
request.params[:original_cookies] = request.cookies.dup rescue {}
0
request.params[:exception] = exception
0
request.params[:action] = exception.name
0
- dispatch_action(klass, exception.name, request,
response, exception.class::STATUS)
0
+ dispatch_action(klass, exception.name, request,
, exception.class::STATUS)
0
rescue => dispatch_issue
0
dispatch_issue = controller_exception(dispatch_issue)
0
# when no action/template exist for an exception, or an
0
# ControllerExceptions raised from exception actions are
0
# dispatched back into the Exceptions controller
0
if dispatch_issue.is_a?(Merb::ControllerExceptions::NotFound)
0
- dispatch_default_exception(klass, request,
response, exception)
0
+ dispatch_default_exception(klass, request,
, exception)
0
elsif dispatch_issue.is_a?(Merb::ControllerExceptions::InternalServerError)
0
- dispatch_default_exception(klass, request,
response, dispatch_issue)
0
+ dispatch_default_exception(klass, request,
, dispatch_issue)
0
exception = dispatch_issue
0
# An array containing the Merb::Controller that was dispatched to
0
# and the error's name. For instance, a NotFound error's name is
0
- def dispatch_default_exception(klass, request, response, e)
0
- controller = klass.new(request, response, e.class::STATUS)
0
+ def dispatch_default_exception(klass, request, e)
0
+ controller = klass.new(request, e.class::STATUS)
0
if e.is_a? Merb::ControllerExceptions::Redirection
0
controller.headers.merge!('Location' => e.message)
0
controller.body = %{ } #fix
Comments
No one has commented yet.