Como uso um middleware de rack apenas para determinados caminhos?
Eu gostaria de terMyMiddleware
executado no meu aplicativo Rack, mas apenas para certos caminhos. Eu esperava usarRack::Builder
ou pelo menosRack::URLMap
, mas não consigo entender com
Isto é o que eu pensei que iria funcionar, mas não:
# in my rackup file or Rails environment.rb:
map '/foo' do
use MyMiddleware, { :some => 'options' }
end
Ou, melhor ainda, com um Regexp:
map /^foo/ do
use MyMiddleware, { :some => 'options' }
end
Masmap
parece exigir um aplicativo no final; não voltará a passar o controle de volta para o pai. (O erro real é "undefined method 'each' for nil:NilClass
"a partir do momento em que o Rack tentar terminar odo...end
bloco em umapp
.)
Existe um middleware por aí que pega uma variedade de middlewares e um caminho e os executa apenas se o caminho corresponde