class Middlestack::Stack
Public Class Methods
new(default_app = nil, &block)
click to toggle source
# File lib/middlestack/stack.rb, line 25 def initialize(default_app = nil, &block) @use, @run = [], default_app instance_eval(&block) if block_given? end
Public Instance Methods
call(env)
click to toggle source
# File lib/middlestack/stack.rb, line 40 def call(env) to_app.call(env) end
to_app(app)
click to toggle source
# File lib/middlestack/stack.rb, line 34 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)
click to toggle source
# File lib/middlestack/stack.rb, line 30 def use(middleware, *args, &block) @use << ->(app){ Proxy.new(middleware, app, *args, &block) } end