Class: Artery::Browser::Router

Inherits:
Object
  • Object
show all
Defined in:
lib/artery/browser/router.rb

Defined Under Namespace

Classes: Route

Constant Summary collapse

NoMatch =
Class.new(StandardError)

Instance Method Summary collapse

Constructor Details

#initializeRouter

Returns a new instance of Router.



38
39
40
# File 'lib/artery/browser/router.rb', line 38

def initialize
  @routes = []
end

Instance Method Details

#add_route(request_method, pattern, &block) ⇒ Object



42
43
44
# File 'lib/artery/browser/router.rb', line 42

def add_route(request_method, pattern, &block)
  routes << Route.new(request_method, pattern, &block)
end

#handle(request) ⇒ Object

Raises:



46
47
48
49
50
51
52
# File 'lib/artery/browser/router.rb', line 46

def handle(request)
  routes.each do |route|
    route_params = route.match(request)
    return route.call(request.params.merge(route_params), request) if route_params
  end
  raise NoMatch
end