Sha256: 3bbc1841745655bb1dd5a5369bf095af015d7a7e4da54ce018245b448ff5b32d

Contents?: true

Size: 391 Bytes

Versions: 5

Compression:

Stored size: 391 Bytes

Contents

module Diesel
  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

5 entries across 5 versions & 1 rubygems

Version Path
diesel-api-dsl-0.1.5 lib/diesel/middleware_stack.rb
diesel-api-dsl-0.1.3 lib/diesel/middleware_stack.rb
diesel-api-dsl-0.1.2 lib/diesel/middleware_stack.rb
diesel-api-dsl-0.1.1 lib/diesel/middleware_stack.rb
diesel-api-dsl-0.1.0 lib/diesel/middleware_stack.rb