Sha256: 375a143606eb714f880c3d5a04b0109ad52d094263178a88da80b7ab0dc212b4

Contents?: true

Size: 589 Bytes

Versions: 4

Compression:

Stored size: 589 Bytes

Contents

require 'action_dispatch/middleware/stack'

module Acfs
  class Service
    module Middleware
      class Stack < ActionDispatch::MiddlewareStack
        MUTEX = Mutex.new
        IDENTITY = -> (i) { i }

        def build!
          MUTEX.synchronize do
            return if @stack

            @stack = build
          end
        end

        def build(app = IDENTITY)
          super
        end

        def call(request)
          build! unless @stack

          @stack.call request
        end

        def clear
          middlewares.clear
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
acfs-0.48.0 lib/acfs/service/middleware/stack.rb
acfs-0.47.0 lib/acfs/service/middleware/stack.rb
acfs-0.46.0 lib/acfs/service/middleware/stack.rb
acfs-0.45.0 lib/acfs/service/middleware/stack.rb