La funcionalidad que estoy buscando es similar al comando rake middleware
en Rails, excepto por una aplicación de rack genérica.¿Recibe la lista ordenada de middleware en una aplicación de rack genérica?
Respuesta
Esto devolverá una lista de todas las aplicaciones de rack (incluyendo middleware):
require 'rack'
def middleware_classes(app)
r = [app]
while ((next_app = r.last.instance_variable_get(:@app)) != nil)
r << next_app
end
r.map{|e| e.instance_variable_defined?(:@app) ? e.class : e }
end
app = Rack::Builder.parse_file('config.ru').first
p middleware_classes(app)
esto es desde hace mucho tiempo, sé
here's a nice thread, la respuesta definitiva es el último mensaje
actualiza por el comentario de Marc-Andre:
El siguiente es el último mensaje de este link
El rack no tiene un mecanismo para eso y dado que no todo el middleware se agrega a través de @middleware, Sinatra no puede decirle qué middleware se usa. Tampoco pueden los rieles, por cierto, puede decirte lo que es posible. Middleware no tiene que ser una lista lineal (es decir, cuando se utiliza un enrutador Rack o algo así).
-1. El objetivo de SO no es tener que pasar por la lista de publicaciones. Copie y mejore la respuesta correcta y agregue ese enlace como fuente. –
> rake middleware
use ActionDispatch::Static
use Rack::Lock
use #<ActiveSupport::Cache::Strategy::LocalCache::Middleware:0x007ffd148f9468>
use Rack::Runtime
use Rack::MethodOverride
use ActionDispatch::RequestId
use Rails::Rack::Logger
use ActionDispatch::ShowExceptions
use ActionDispatch::DebugExceptions
use ActionDispatch::RemoteIp
use ActionDispatch::Reloader
use ActionDispatch::Callbacks
use ActiveRecord::Migration::CheckPending
use ActiveRecord::ConnectionAdapters::ConnectionManagement
use ActiveRecord::QueryCache
use ActionDispatch::Cookies
use ActionDispatch::Session::CookieStore
use ActionDispatch::Flash
use ActionDispatch::ParamsParser
use Rack::Head
use Rack::ConditionalGet
use Rack::ETag
run RackTest::Application.routes
http://pothibo.com/2013/11/ruby-on-rails-inside-actiondispatch-and-rack/
De la descripción, está claro que sabe sobre 'middleware de rake'. Él quiere esto para una aplicación que no sea de Rails. –
- 1. Middleware Trigger Rack en rutas Rails específicas
- 2. ¿Dónde coloca sus archivos de middleware Rack y requiere?
- 3. ¿Cambiar la numeración en una lista ordenada?
- 4. ¿Buscar en una lista ordenada?
- 5. ¿Cómo usar las cookies en un middleware Rack?
- 6. Creación de una lista ordenada al azar de una lista ordenada
- 7. ¿Cómo aleatorizar una lista ordenada?
- 8. ¿Recibe una lista de informes de SSRS?
- 9. ¿Cómo uso un middleware Rack solo para ciertas rutas?
- 10. WPF mantiene una lista de TreeView ordenada
- 11. Obtenga sumas ordenadas de una lista ordenada
- 12. Una lista genérica de genéricos
- 13. ¿Cómo configuro una cookie con un componente de middleware de rack (ruby)?
- 14. Como respuesta con formato JSON usando Rubí rack middleware
- 15. Inicialización de una lista genérica en C#
- 16. ¿cómo comparto la autenticación en una aplicación Rails/rack con una instancia de node.js?
- 17. invocando una acción de controlador con argumento desde middleware de rack
- 18. ¿Cómo hacer una lista genérica igual otra lista genérica
- 19. ¿Anida los elementos de la lista dentro de los elementos de lista de una lista ordenada?
- 20. cómo mapear la lista ordenada en nhibernate?
- 21. y la lista genérica
- 22. Lista ordenada, recursiva, ordenada, legible, de los archivos más grandes
- 23. Aplicación vs desarrollo de middleware en Android
- 24. Matriz de lista genérica
- 25. ordenar una lista genérica de dobles
- 26. ¿Lista ordenada de pares de valores clave?
- 27. ¿Cómo configuro/obtengo los valores de sesión en una aplicación Rack?
- 28. Obteniendo la posición ordenada ¿Lista ordenable JQuery?
- 29. Horizontal lista ordenada (e IE)
- 30. C# - Rellene la lista genérica de SqlDataReader
+1 funcionaba como un amuleto. Puse todo esto en un script 'test-rack.rb' y lo ejecuté a través de' ruby test-rack.rb'. (la pregunta editada para agregar el bastidor faltante requiere;) –