
Barra degli strumenti di debug per applicazioni Rack implementata come middleware
Rack::Bug aggiunge una barra degli strumenti diagnostica alle app Rack. Quando attivata, inietta un div flottante che consente di esplorare log, query al database, tempi di rendering dei template, ecc.
script/plugin install git://github.com/brynary/rack-bug.git
In config/environments/development.rb, aggiungi:
config.middleware.use "Rack::Bug",
:secret_key => "someverylongandveryhardtoguesspreferablyrandomstring"
Aggiungi il bookmarklet al tuo browser:
open http://RAILS_APP/__rack_bug__/bookmarklet.html
Basta usare 'use Rack::Bug' come qualsiasi altro middleware. Vedi SampleApp nella cartella spec/fixtures per un esempio di app Sinatra.
Se desideri utilizzare il pannello logger, definisci la costante LOGGER che sia un Logger ruby o un ActiveSupport::BufferedLogger
Specifica l'insieme di pannelli che desideri, nell'ordine in cui vuoi che appaiano:
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
]
Abbiamo riscontrato che Rack::Bug è abbastanza veloce da poter essere eseguito in produzione per specifici sforzi di risoluzione dei problemi.
Aggiungi la configurazione del middleware a un initializer o ai file di ambiente appropriati, tenendo conto del resto di questa sezione.
Limita l'accesso a specifici indirizzi IP:
require "ipaddr"
ActionController::Dispatcher.middleware.use "Rack::Bug"
:secret_key => "someverylongandveryhardtoguesspreferablyrandomstring",
:ip_masks => [IPAddr.new("2.2.2.2/0")]
Limita l'accesso tramite password:
ActionController::Dispatcher.middleware.use "Rack::Bug",
:secret_key => "someverylongandveryhardtoguesspreferablyrandomstring",
:password => "yourpassword"
L'ispirazione per Rack::Bug proviene principalmente dalla Django debug toolbar. Idee aggiuntive dalle Rails footnotes, dal middleware ShowException di Rack, Oink e Rack::Cache
Grazie a Weplay.com per aver supportato lo sviluppo di Rack::Bug
Per lo sviluppo, è necessario installare le seguenti gem: rspec, rack-test, webrat, sinatra
Vedi MIT-LICENSE.txt in questa directory.