Class: Tzispa::Middleware
- Inherits:
-
Object
- Object
- Tzispa::Middleware
- Defined in:
- lib/tzispa/middleware.rb
Instance Method Summary collapse
- #call(env) ⇒ Object
-
#initialize(app) ⇒ Middleware
constructor
A new instance of Middleware.
- #load! ⇒ Object
- #map(mount_path, builder) ⇒ Object
- #use(middleware, *args, &blk) ⇒ Object
Constructor Details
#initialize(app) ⇒ Middleware
Returns a new instance of Middleware.
10 11 12 13 |
# File 'lib/tzispa/middleware.rb', line 10 def initialize(app) @stack = [] @application = app end |
Instance Method Details
#call(env) ⇒ Object
30 31 32 |
# File 'lib/tzispa/middleware.rb', line 30 def call(env) @builder.call(env) end |
#load! ⇒ Object
15 16 17 18 19 20 21 |
# File 'lib/tzispa/middleware.rb', line 15 def load! @builder = ::Rack::Builder.new load_default_stack @stack.each { |m, args, block| @builder.use load_middleware(m), *args, &block } @builder.run @application.class.router self end |
#map(mount_path, builder) ⇒ Object
23 24 25 26 27 28 |
# File 'lib/tzispa/middleware.rb', line 23 def map(mount_path, builder) app = @application builder.map mount_path do run app.load! end end |
#use(middleware, *args, &blk) ⇒ Object
34 35 36 |
# File 'lib/tzispa/middleware.rb', line 34 def use(middleware, *args, &blk) @stack.unshift [middleware, args, blk] end |