class Router

Attributes

routes[R]

Public Class Methods

new() click to toggle source
# File lib/router.rb, line 34
def initialize
  @routes = []
end

Public Instance Methods

draw(&proc) click to toggle source
# File lib/router.rb, line 38
def draw(&proc)
  self.instance_eval(&proc)
end
run(req, res) click to toggle source
# File lib/router.rb, line 48
def run(req, res)
  matched_route = match(req)

  if matched_route
    res.status = 200
    matched_route.run(req, res)
  else
    res.status = 404
  end
end

Private Instance Methods

add_route(pattern, method, controller_class, action_name) click to toggle source
# File lib/router.rb, line 64
def add_route(pattern, method, controller_class, action_name)
  route = Route.new(pattern, method, controller_class, action_name)
  @routes << route
end
match(req) click to toggle source
# File lib/router.rb, line 60
def match(req)
  routes.find { |route| route.matches?(req) }
end