¿Cómo uso un middleware Rack solo para ciertas rutas?

Me gustaría tenerMyMiddleware ejecutar en mi aplicación Rack, pero solo para ciertos caminos. Esperaba usarRack::Builder o al menosRack::URLMap, pero no puedo entender cómo.

Esto es lo que pensé que funcionaría, pero no:

# in my rackup file or Rails environment.rb:
map '/foo' do
  use MyMiddleware, { :some => 'options' }
end

O, mejor aún, con un Regexp:

map /^foo/ do
  use MyMiddleware, { :some => 'options' }
end

Peromap parece exigir una aplicación al final; no recurrirá simplemente pasando el control a su padre. (El error real es "undefined method 'each' for nil:NilClass "de cuando Rack intenta cambiar el final de esado...end bloque en unaapp.)

¿Hay un middleware por ahí que toma una variedad de middlewares y una ruta y solo los ejecuta si la ruta coincide?

Respuestas a la pregunta(4)

Su respuesta a la pregunta