Sha256: a6eda9b348fb6992177e9a883f8d04ac72ff88d49cb683db3f18880b8912bf13

Contents?: true

Size: 392 Bytes

Versions: 7

Compression:

Stored size: 392 Bytes

Contents

module Apiture
  class MiddlewareStack

    def initialize(middlewares)
      cur = ->(env){}
      middlewares.reverse.each do |(klass, options)|
        cur = if klass.instance_method(:initialize).arity == 1
          klass.new(cur)
        else
          klass.new(cur, options)
        end
      end
      @first = cur
    end

    def call(env)
      @first.call(env)
    end

  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
apiture-0.2.6 lib/apiture/middleware_stack.rb
apiture-0.2.5 lib/apiture/middleware_stack.rb
apiture-0.2.4 lib/apiture/middleware_stack.rb
apiture-0.2.3 lib/apiture/middleware_stack.rb
apiture-0.2.2 lib/apiture/middleware_stack.rb
apiture-0.2.1 lib/apiture/middleware_stack.rb
apiture-0.2.0 lib/apiture/middleware_stack.rb