feat(middleware): add middleware stack builder

This commit is contained in:
dualfroz committed 2026-08-26 14:20:00 +02:00
1 parent 56c01089db
commit a00dd619c1
1 file changed
+25
+25
View File
@@ -0,0 +1,25 @@
module Prism
class MiddlewareStack
def initialize
@entries = []
end
def use(middleware, *args, **kwargs, &block)
@entries << [middleware, args, kwargs, block]
end
def build(app)
@entries.reverse.reduce(app) do |inner, (middleware, args, kwargs, block)|
if kwargs.empty?
middleware.new(inner, *args, &block)
else
middleware.new(inner, *args, **kwargs, &block)
end
end
end
def empty?
@entries.empty?
end
end
end