Я хочу, чтобы MyMiddleware запускался в моем приложении Rack, но только для определенных путей. Я надеялся использовать Rack::Builder или, по крайней мере, Rack::URLMap, но я не могу понять, как это сделать.
Это то, что я думал, будет работать, но не делает:
# in my rackup file or Rails environment.rb:
map '/foo' do
use MyMiddleware, { :some => 'options' }
end
Или, еще лучше, с Regexp:
map /^foo/ do
use MyMiddleware, { :some => 'options' }
end
Но map, кажется, требует приложения в конце; он не будет возвращаться к простому контролю до своего родителя. (Фактическая ошибка: "undefined method 'each' for nil:NilClass", когда Rack пытается превратить конец этого блока do...end в app.)
Существует ли промежуточное ПО, которое принимает массив промежуточных элементов и путь и запускает их только в том случае, если путь соответствует?