La fonctionnalité que je recherche est similaire à la commande rake middleware
dans Rails, à l'exception d'une application de rack générique.Obtenir la liste ordonnée de middleware dans une application de baie générique?
Répondre
Cela renvoie une liste de toutes les applications en rack (y compris 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)
c'est attendue depuis longtemps, je sais
here's a nice thread, la réponse définitive est le dernier message
MISE À JOUR selon le commentaire de Marc-André:
Voici le dernier message de ce link
Rack n'a pas de mécanisme pour cela et puisque tous les middleware ne sont pas ajoutés via @middleware, Sinatra ne peut pas vous dire quel middleware est utilisé. Ni les rails, btw, il peut juste vous dire ce qui est possible. L'intergiciel ne doit pas être une liste linéaire (c'est-à-dire lorsqu'il utilise un routeur Rack ou quelque chose).
-1. Le but de SO n'est pas d'avoir à passer par la liste des messages. Copiez et améliorez la bonne réponse et ajoutez ce lien en tant que source. –
> 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 description, il est clair qu'il sait au sujet de 'rake middleware'. Il veut cela pour une application non-Rails. –
- 1. décoration Zend_Form_Element_MultiCheckbox dans une liste non ordonnée
- 2. Marquage de la liste de définition ordonnée
- 3. Obtenir type de type générique dans une liste en Java
- 4. Comment obtenir une liste ordonnée de lignes dans la valeur 0 avec sql?
- 5. Problème de présentation dans une liste non ordonnée
- 6. Comment obtenir une vue ordonnée?
- 7. Incompatibilité de rendu de la liste ordonnée dans IE7
- 8. Résolution de catégories ambiguës dans une liste ordonnée
- 9. Une liste générique de génériques
- 10. Analyse de la baie d'objets JSON
- 11. extrait liste générique de la liste générique LINQ
- 12. Comment obtenir « non ordonnée choisir deux » permutation dans une liste de chaînes en C#
- 13. Comment obtenir le dernier objet dans une liste générique?
- 14. Liste générique dans une interface
- 15. Utilisez jQuery pour connaître le nombre d'éléments de la liste dans une liste non ordonnée
- 16. Comment obtenir la liste de valeurs du dictionnaire générique
- 17. Possibilité de lancer une liste générique de type vers une liste générique de son super type?
- 18. sfWidgetFormChoice rendus comme une liste non ordonnée
- 19. C# obtenir l'index actuel de la liste générique
- 20. Comment faire une liste générique égale une autre liste générique
- 21. C# Créer une liste HTML non ordonnée à partir de la liste en utilisant la récursivité
- 22. Android - comment afficher une liste d'éléments dans une liste ordonnée de type HTML?
- 23. Comment définir la clé de cette baie?
- 24. jQuery: obtenir cliqué ancrage à l'intérieur liste non ordonnée
- 25. Accès à la baie de surcharge VB.NET?
- 26. Comment générer dynamiquement des éléments de liste dans une liste non ordonnée dans ASP.NET?
- 27. La structure de données la plus appropriée pour une liste ordonnée dans un SGBDR?
- 28. PHP: liste ordonnée du répertoire
- 29. jQuery: ajouter des numéros dans une liste ordonnée
- 30. fermeture d'une liste non ordonnée
+1 a travaillé comme un charme. J'ai mis tout cela dans un script 'test-rack.rb' et l'ai exécuté via' ruby test-rack.rb'. (question éditée pour ajouter le support absent manquant;) –