class Route
Attributes
action_name[R]
controller_class[R]
http_method[R]
pattern[R]
Public Class Methods
new(pattern, http_method, controller_class, action_name)
click to toggle source
# File lib/router.rb, line 4 def initialize(pattern, http_method, controller_class, action_name) @pattern = pattern @http_method = http_method @controller_class, @action_name = controller_class, action_name end
Public Instance Methods
matches?(req)
click to toggle source
# File lib/router.rb, line 10 def matches?(req) pattern =~ req.path && http_method == req.request_method.downcase.to_sym end
run(req, res)
click to toggle source
# File lib/router.rb, line 14 def run(req, res) raise 'no action' unless matches?(req) route_matches = @pattern.match(req.path) route_params = {} route_matches.names.each do |name| route_params[name] = route_matches[name] end controller = controller_class.new(req,res,route_params) controller.invoke_action(action_name) end