Me gustaría que MyMiddleware
se ejecute en mi aplicación Rack, pero solo para ciertas rutas. Esperaba usar Rack::Builder
o al menos Rack::URLMap
, pero no puedo entender cómo.¿Cómo uso un middleware Rack solo para ciertas rutas?
Esto es lo que pensé que trabajar, pero no:
# in my rackup file or Rails environment.rb:
map '/foo' do
use MyMiddleware, { :some => 'options' }
end
O, mejor aún, con una expresión regular:
map /^foo/ do
use MyMiddleware, { :some => 'options' }
end
Pero map
parece exigir una aplicación en el extremo ; no recurrirá simplemente a pasar el control a su padre. (El error real es "undefined method 'each' for nil:NilClass
" de cuando en rack intenta dar vuelta al final de ese do...end
bloque en un app
.)
¿Existe un middleware por ahí que toma una matriz de middleware y un camino y sólo los ejecuta si el coincide con el camino?
estúpido error tipográfico - ¡gracias por corregir eso, AnthonyWJones! :: cuelga la cabeza en la vergüenza :: –