
Debugging-Toolbar für Rack-Anwendungen als Middleware implementiert
Rack::Bug fügt Rack-Anwendungen eine Diagnose-Symbolleiste hinzu. Wenn aktiviert, fügt es ein schwebendes Div ein, das Einsicht in Logging, Datenbankabfragen, Rendering-Zeiten von Templates usw. ermöglicht.
script/plugin install git://github.com/brynary/rack-bug.git
In config/environments/development.rb fügen Sie hinzu:
config.middleware.use "Rack::Bug",
:secret_key => "someverylongandveryhardtoguesspreferablyrandomstring"
Fügen Sie das Bookmarklet zu Ihrem Browser hinzu:
open http://RAILS_APP/__rack_bug__/bookmarklet.html
Verwenden Sie einfach use Rack::Bug wie jede andere Middleware. Siehe die SampleApp im Verzeichnis spec/fixtures für eine Beispiel-Sinatra-Anwendung.
Wenn Sie das Logger-Panel verwenden möchten, definieren Sie die Konstante LOGGER, die ein Ruby Logger oder ActiveSupport::BufferedLogger ist.
Geben Sie die gewünschten Panels in der Reihenfolge an, in der sie erscheinen sollen:
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
]
Wir haben festgestellt, dass Rack::Bug schnell genug ist, um für spezifische Fehlerbehebungsmaßnahmen in der Produktion ausgeführt zu werden.
Fügen Sie die Middleware-Konfiguration zu einem Initializer oder den entsprechenden Umgebungsdateien hinzu, unter Berücksichtigung des restlichen Abschnitts.
Beschränken Sie den Zugriff auf bestimmte IP-Adressen:
require "ipaddr"
ActionController::Dispatcher.middleware.use "Rack::Bug"
:secret_key => "someverylongandveryhardtoguesspreferablyrandomstring",
:ip_masks => [IPAddr.new("2.2.2.2/0")]
Beschränken Sie den Zugriff mithilfe eines Passworts:
ActionController::Dispatcher.middleware.use "Rack::Bug",
:secret_key => "someverylongandveryhardtoguesspreferablyrandomstring",
:password => "yourpassword"
Die Inspiration für Rack::Bug stammt hauptsächlich von der Django Debug Toolbar. Weitere Ideen stammen von Rails Footnotes, Rack's ShowException Middleware, Oink und Rack::Cache
Dank an Weplay.com für die Unterstützung der Entwicklung von Rack::Bug
Für die Entwicklung müssen Sie die folgenden Gems installieren: rspec, rack-test, webrat, sinatra
Siehe MIT-LICENSE.txt in diesem Verzeichnis.