class Volt::MiddlewareStack
Attributes
middlewares[R]
Public Class Methods
new()
click to toggle source
# File lib/volt/server/middleware/middleware_stack.rb, line 9 def initialize # Setup the next app @middlewares = [] end
Public Instance Methods
build()
click to toggle source
Builds a new Rack::Builder with the middleware and the app
# File lib/volt/server/middleware/middleware_stack.rb, line 33 def build @builder = Rack::Builder.new @middlewares.each do |middleware| if middleware[0] == :map @builder.map(middleware[1], &middleware[2]) else @builder.use(*middleware[0], &middleware[1]) end end @builder.run(@app) end
call(env)
click to toggle source
# File lib/volt/server/middleware/middleware_stack.rb, line 47 def call(env) unless @builder build end @builder.call(env) end
map(path, &block)
click to toggle source
# File lib/volt/server/middleware/middleware_stack.rb, line 21 def map(path, &block) @middlewares << [:map, path, block] # invalidate builder @builder = nil end
run(app)
click to toggle source
# File lib/volt/server/middleware/middleware_stack.rb, line 28 def run(app) @app = app end
use(*args, &block)
click to toggle source
# File lib/volt/server/middleware/middleware_stack.rb, line 14 def use(*args, &block) @middlewares << [args, block] # invalidate builder, so it gets built again @builder = nil end