Class: ApiValve::Middleware
- Inherits:
-
Object
- Object
- ApiValve::Middleware
show all
- Defined in:
- lib/api_valve/middleware.rb,
lib/api_valve/middleware/router.rb,
lib/api_valve/middleware/logging.rb,
lib/api_valve/middleware/error_handling.rb,
lib/api_valve/middleware/permission_check.rb
Defined Under Namespace
Classes: ErrorHandling, Item, Logging, PermissionCheck, Router
Instance Method Summary
collapse
Constructor Details
Returns a new instance of Middleware.
10
11
12
|
# File 'lib/api_valve/middleware.rb', line 10
def initialize
@registry = []
end
|
Instance Method Details
#insert_after(other, middleware, *args, &block) ⇒ Object
14
15
16
|
# File 'lib/api_valve/middleware.rb', line 14
def insert_after(other, middleware, *args, &block)
@registry.insert position(other) + 1, to_item(middleware, *args, &block)
end
|
#insert_before(other, middleware, *args, &block) ⇒ Object
18
19
20
|
# File 'lib/api_valve/middleware.rb', line 18
def insert_before(other, middleware, *args, &block)
@registry.insert position(other), to_item(middleware, *args, &block)
end
|
#to_app(root_app) ⇒ Object
22
23
24
|
# File 'lib/api_valve/middleware.rb', line 22
def to_app(root_app)
@registry.reverse.inject(root_app) { |memo, obj| obj.proc.call memo }
end
|
#to_s ⇒ Object
26
27
28
|
# File 'lib/api_valve/middleware.rb', line 26
def to_s
@registry.map(&:klass).join("\n")
end
|
#use(middleware, *args, &block) ⇒ Object
30
31
32
|
# File 'lib/api_valve/middleware.rb', line 30
def use(middleware, *args, &block)
@registry << to_item(middleware, *args, &block)
end
|