
Barre d'outils de débogage pour applications Rack implémentée en tant que middleware
Rack::Bug ajoute une barre d'outils de diagnostic aux applications Rack. Lorsqu'elle est activée, elle injecte un div flottant permettant d'explorer les journaux, les requêtes de base de données, les temps de rendu des templates, etc.
script/plugin install git://github.com/brynary/rack-bug.git
Dans config/environments/development.rb, ajoutez :
config.middleware.use "Rack::Bug",
:secret_key => "someverylongandveryhardtoguesspreferablyrandomstring"
Ajoutez le bookmarklet à votre navigateur :
open http://RAILS_APP/__rack_bug__/bookmarklet.html
Utilisez simplement 'use Rack::Bug' comme tout autre middleware. Voir l'application exemple dans le dossier spec/fixtures pour un exemple d'application Sinatra.
Si vous souhaitez utiliser le panneau de journalisation, définissez la constante LOGGER qui est un Logger Ruby ou ActiveSupport::BufferedLogger
Spécifiez l'ensemble des panneaux que vous souhaitez, dans l'ordre d'affichage :
require "rack/bug"
ActionController::Dispatcher.middleware.use Rack::Bug,
:secret_key => "someverylongandveryhardtoguesspreferablyrandomstring",
:panel_classes => [
Rack::Bug::TimerPanel,
Rack::Bug::RequestVariablesPanel,
Rack::Bug::RedisPanel,
Rack::Bug::TemplatesPanel,
Rack::Bug::LogPanel,
Rack::Bug::MemoryPanel
]
Nous avons constaté que Rack::Bug est suffisamment rapide pour être utilisé en production pour des efforts de dépannage spécifiques.
Ajoutez la configuration du middleware à un initializer ou aux fichiers d'environnement appropriés, en tenant compte du reste de cette section.
Restreignez l'accès à des adresses IP spécifiques :
require "ipaddr"
ActionController::Dispatcher.middleware.use "Rack::Bug"
:secret_key => "someverylongandveryhardtoguesspreferablyrandomstring",
:ip_masks => [IPAddr.new("2.2.2.2/0")]
Restreignez l'accès par mot de passe :
ActionController::Dispatcher.middleware.use "Rack::Bug",
:secret_key => "someverylongandveryhardtoguesspreferablyrandomstring",
:password => "yourpassword"
L'inspiration pour Rack::Bug vient principalement de la barre d'outils de débogage de Django. Des idées supplémentaires proviennent des notes de bas de page de Rails, du middleware ShowException de Rack, d'Oink et de Rack::Cache.
Merci à Weplay.com pour avoir soutenu le développement de Rack::Bug
Pour le développement, vous devrez installer les gems suivants : rspec, rack-test, webrat, sinatra
Voir MIT-LICENSE.txt dans ce répertoire.