Class: Walle::Middlewares::Builder
- Inherits:
-
Object
- Object
- Walle::Middlewares::Builder
- Defined in:
- lib/walle/middlewares/builder.rb
Defined Under Namespace
Classes: Proxy
Instance Method Summary collapse
- #call(env) ⇒ Object
-
#initialize(default_app = nil, &block) ⇒ Builder
constructor
A new instance of Builder.
- #to_app(app) ⇒ Object
- #use(middleware, *args, &block) ⇒ Object
Constructor Details
#initialize(default_app = nil, &block) ⇒ Builder
Returns a new instance of Builder.
26 27 28 29 |
# File 'lib/walle/middlewares/builder.rb', line 26 def initialize(default_app = nil, &block) @use, @run = [], default_app instance_eval(&block) if block_given? end |
Instance Method Details
#call(env) ⇒ Object
41 42 43 |
# File 'lib/walle/middlewares/builder.rb', line 41 def call(env) to_app.call(env) end |
#to_app(app) ⇒ Object
35 36 37 38 39 |
# File 'lib/walle/middlewares/builder.rb', line 35 def to_app(app) app ||= @run fail 'missing run statement' unless app @use.reverse.inject(app){|a, e| e[a] } end |
#use(middleware, *args, &block) ⇒ Object
31 32 33 |
# File 'lib/walle/middlewares/builder.rb', line 31 def use(middleware, *args, &block) @use << ->(app){ Proxy.new(middleware, app, *args, &block) } end |