Class: Walle::Robot::Router

Inherits:
Object
  • Object
show all
Includes:
Middlewares::Helper
Defined in:
lib/walle/robot/router.rb,
lib/walle/robot/router/route.rb,
lib/walle/robot/router/builder.rb

Defined Under Namespace

Classes: Builder, Route

Constant Summary collapse

DEFAULT_CONTROLLER =
-> (*_) {}
DEFAULT_ROUTER =
Route.new(regexp: /.*/, controller: DEFAULT_CONTROLLER)

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Middlewares::Helper

#use

Constructor Details

#initialize(&block) ⇒ Router

Returns a new instance of Router.



14
15
16
17
18
# File 'lib/walle/robot/router.rb', line 14

def initialize(&block)
  @routes = []
  @default = { true => DEFAULT_ROUTER, false => DEFAULT_ROUTER }
  run_builder!(block)
end

Instance Attribute Details

#defaultObject (readonly)

Returns the value of attribute default.



12
13
14
# File 'lib/walle/robot/router.rb', line 12

def default
  @default
end

#middlewaresObject (readonly)

Returns the value of attribute middlewares.



12
13
14
# File 'lib/walle/robot/router.rb', line 12

def middlewares
  @middlewares
end

#routesObject (readonly)

Returns the value of attribute routes.



12
13
14
# File 'lib/walle/robot/router.rb', line 12

def routes
  @routes
end

Instance Method Details

#call(env) ⇒ Object



20
21
22
23
24
# File 'lib/walle/robot/router.rb', line 20

def call(env)
  run_middlewares(env) do |env|
    lookup_route(env).call(env)
  end
end