
Barra de herramientas de depuración para aplicaciones Rack implementada como middleware
Rack::Bug añade una barra de herramientas de diagnóstico a las aplicaciones Rack. Cuando está habilitada, inyecta un div flotante que permite explorar el registro, las consultas a la base de datos, los tiempos de renderizado de plantillas, etc.
script/plugin install git://github.com/brynary/rack-bug.git
En config/environments/development.rb, añade:
config.middleware.use "Rack::Bug",
:secret_key => "someverylongandveryhardtoguesspreferablyrandomstring"
Añade el bookmarklet a tu navegador:
open http://RAILS_APP/__rack_bug__/bookmarklet.html
Simplemente usa 'use Rack::Bug' como cualquier otro middleware. Consulta la aplicación SampleApp en la carpeta spec/fixtures para un ejemplo de aplicación Sinatra.
Si deseas usar el panel de registro, define la constante LOGGER como un Logger de Ruby o ActiveSupport::BufferedLogger
Especifica el conjunto de paneles que deseas, en el orden en que quieres que aparezcan:
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
]
Hemos encontrado que Rack::Bug es lo suficientemente rápido como para ejecutarse en producción para esfuerzos específicos de resolución de problemas.
Añade la configuración del middleware a un inicializador o a los archivos de entorno apropiados, teniendo en cuenta el resto de esta sección.
Restringe el acceso a direcciones IP específicas:
require "ipaddr"
ActionController::Dispatcher.middleware.use "Rack::Bug"
:secret_key => "someverylongandveryhardtoguesspreferablyrandomstring",
:ip_masks => [IPAddr.new("2.2.2.2/0")]
Restringe el acceso mediante una contraseña:
ActionController::Dispatcher.middleware.use "Rack::Bug",
:secret_key => "someverylongandveryhardtoguesspreferablyrandomstring",
:password => "yourpassword"
La inspiración para Rack::Bug proviene principalmente de la barra de herramientas de depuración de Django. Ideas adicionales de Rails footnotes, el middleware ShowException de Rack, Oink y Rack::Cache
Gracias a Weplay.com por apoyar el desarrollo de Rack::Bug
Para el desarrollo, necesitarás instalar las siguientes gemas: rspec, rack-test, webrat, sinatra
Consulta MIT-LICENSE.txt en este directorio.