class Deas::HandlerProxy
Attributes
handler_class[R]
handler_class_name[R]
Public Class Methods
new(handler_class_name)
click to toggle source
# File lib/deas/handler_proxy.rb, line 10 def initialize(handler_class_name) @handler_class_name = handler_class_name end
Public Instance Methods
run(server_data, request_data)
click to toggle source
# File lib/deas/handler_proxy.rb, line 18 def run(server_data, request_data) # captures are not part of Deas' intended behavior and route matching - # they are a side-effect of using Sinatra. remove them so they won't # be relied upon in Deas apps. Remove all of this when Sinatra is removed. request_data.params.delete(:captures) request_data.params.delete('captures') # splats that Sinatra provides aren't used by Deas - they are a # side-effect of using Sinatra. remove them so they won't be relied upon # in Deas apps. Remove all of this when Sinatra is removed. request_data.params.delete(:splat) request_data.params.delete('splat') runner = DeasRunner.new(self.handler_class, { :logger => server_data.logger, :router => server_data.router, :template_source => server_data.template_source, :request => request_data.request, :route_path => request_data.route_path, :params => request_data.params }) runner.request.env.tap do |env| # make runner data available to Rack (ie middlewares) # this is specifically needed by the Logging middleware # this is also needed by the Sinatra error handlers so they can provide # error context. This may change when we eventually remove Sinatra. env['deas.route_path'] = runner.route_path env['deas.handler_class'] = self.handler_class env['deas.handler'] = runner.handler env['deas.params'] = runner.params env['deas.splat'] = runner.splat # this handles the verbose logging (it is a no-op if summary logging) env['deas.logging'].call " Route: #{runner.route_path.inspect}" env['deas.logging'].call " Handler: #{self.handler_class.name}" env['deas.logging'].call " Params: #{runner.params.inspect}" env['deas.logging'].call " Splat: #{runner.splat.inspect}" if !runner.splat.nil? end runner.run end
validate!()
click to toggle source
# File lib/deas/handler_proxy.rb, line 14 def validate! raise NotImplementedError end