class Panda::Application
Attributes
routes[R]
Public Class Methods
new()
click to toggle source
# File lib/panda.rb, line 13 def initialize @routes = Routing::Router.new end
Public Instance Methods
call(env)
click to toggle source
# File lib/panda.rb, line 17 def call(env) return [500, {}, []] if env["PATH_INFO"] == "/favicon.ico" request = Rack::Request.new(env) handler = mapper.perform(request) if handler call_controller_action(request, handler[:target]) else process_invalid_request(request) end end
Private Instance Methods
call_controller_action(request, target)
click to toggle source
# File lib/panda.rb, line 30 def call_controller_action(request, target) controller = Object.const_get("#{target[0]}Controller") controller.new(request).dispatch(target[1]) end
mapper()
click to toggle source
# File lib/panda.rb, line 43 def mapper @mapper ||= Routing::Mapper.new(routes.endpoints) end
process_invalid_request(request)
click to toggle source
# File lib/panda.rb, line 35 def process_invalid_request(request) [ 404, {}, ["Oops! No route for #{request.request_method} #{request.path_info}"] ] end