class Raamen::Router

Attributes

routes[R]

Public Class Methods

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

Public Instance Methods

add_route(pattern, method, controller_class, action_name) click to toggle source
# File lib/raamen/router.rb, line 32
def add_route(pattern, method, controller_class, action_name)
  self.routes.push(Route.new(pattern, method, controller_class, action_name))
end
draw(&proc) click to toggle source
# File lib/raamen/router.rb, line 36
def draw(&proc)
  self.instance_eval(&proc)
end
match(req) click to toggle source
# File lib/raamen/router.rb, line 46
def match(req)
  self.routes.each do |route|
    return route if route.matches?(req)
  end
  nil
end
run(req, res) click to toggle source
# File lib/raamen/router.rb, line 53
def run(req, res)
  matching_route = match(req)
  unless matching_route
    res.status = 404
    return
  end
  matching_route.run(req, res)
end