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/laris/router.rb, line 4
def initialize(pattern, http_method, controller_class, action_name)
  @pattern, @http_method, @controller_class, @action_name =
    pattern, http_method, controller_class, action_name
end

Public Instance Methods

matches?(req) click to toggle source
# File lib/laris/router.rb, line 9
def matches?(req)
  pattern =~ req.path &&
    http_method == req.request_method.downcase.to_sym
end
run(req, res) click to toggle source
# File lib/laris/router.rb, line 14
def run(req, res)
  match_data = pattern.match(req.path)
  route_params = Hash[match_data.names.zip(match_data.captures)]

  controller = controller_class.new(req, res, route_params)
  controller.invoke_action(action_name, http_method)
end