Method: Hanami::Slice::Routing::Middleware::Stack#use
- Defined in:
- lib/hanami/slice/routing/middleware/stack.rb
#use(spec, *args, path_prefix: ::Hanami::Router::DEFAULT_PREFIX, before: nil, after: nil, **kwargs, &blk) ⇒ self
Adds a middleware to the stack.
94 95 96 97 98 99 100 101 102 103 104 105 106 107 |
# File 'lib/hanami/slice/routing/middleware/stack.rb', line 94 def use(spec, *args, path_prefix: ::Hanami::Router::DEFAULT_PREFIX, before: nil, after: nil, **kwargs, &blk) middleware = resolve_middleware_class(spec) item = [middleware, args, kwargs, blk] if before @stack[path_prefix].insert((idx = index_of(before, path_prefix)).zero? ? 0 : idx - 1, item) elsif after @stack[path_prefix].insert(index_of(after, path_prefix) + 1, item) else @stack[path_prefix].push(item) end self end |