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
Defined Under Namespace
Classes: ErrorHandling, Item, Logging, Router
Instance Method Summary
collapse
Constructor Details
Returns a new instance of Middleware.
9
10
11
|
# File 'lib/api_valve/middleware.rb', line 9
def initialize
@registry = []
end
|
Instance Method Details
#insert_after(other, middleware, *args, &block) ⇒ Object
13
14
15
|
# File 'lib/api_valve/middleware.rb', line 13
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
17
18
19
|
# File 'lib/api_valve/middleware.rb', line 17
def insert_before(other, middleware, *args, &block)
@registry.insert position(other), to_item(middleware, *args, &block)
end
|
#to_app(root_app) ⇒ Object
21
22
23
|
# File 'lib/api_valve/middleware.rb', line 21
def to_app(root_app)
@registry.reverse.inject(root_app) { |memo, obj| obj.proc.call memo }
end
|
#to_s ⇒ Object
25
26
27
|
# File 'lib/api_valve/middleware.rb', line 25
def to_s
@registry.map(&:klass).join("\n")
end
|
#use(middleware, *args, &block) ⇒ Object
29
30
31
|
# File 'lib/api_valve/middleware.rb', line 29
def use(middleware, *args, &block)
@registry << to_item(middleware, *args, &block)
end
|