
Панель отладки для Rack-приложений, реализованная в виде промежуточного ПО
Rack::Bug добавляет панель диагностики к Rack-приложениям. При включении он внедряет плавающий div, позволяющий исследовать логи, запросы к базе данных, время рендеринга шаблонов и т.д.
script/plugin install git://github.com/brynary/rack-bug.git
В config/environments/development.rb добавьте:
config.middleware.use "Rack::Bug",
:secret_key => "someverylongandveryhardtoguesspreferablyrandomstring"
Добавьте букмарклет в ваш браузер:
open http://RAILS_APP/__rack_bug__/bookmarklet.html
Просто используйте 'use Rack::Bug' как любое другое middleware. Смотрите SampleApp в папке spec/fixtures для примера Sinatra-приложения.
Если вы хотите использовать панель лога, определите константу LOGGER, которая является ruby Logger или ActiveSupport::BufferedLogger
Укажите набор панелей, которые вы хотите, в том порядке, в котором они должны отображаться:
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
]
Мы обнаружили, что Rack::Bug достаточно быстр для работы в production для конкретных усилий по устранению неполадок.
Добавьте конфигурацию middleware в инициализатор или соответствующие файлы окружения, принимая во внимание остальную часть этого раздела.
Ограничьте доступ к определенным IP-адресам:
require "ipaddr"
ActionController::Dispatcher.middleware.use "Rack::Bug"
:secret_key => "someverylongandveryhardtoguesspreferablyrandomstring",
:ip_masks => [IPAddr.new("2.2.2.2/0")]
Ограничьте доступ с помощью пароля:
ActionController::Dispatcher.middleware.use "Rack::Bug",
:secret_key => "someverylongandveryhardtoguesspreferablyrandomstring",
:password => "yourpassword"
Вдохновение для Rack::Bug в первую очередь от Django debug toolbar. Дополнительные идеи от Rails footnotes, Rack's ShowException middleware, Oink и Rack::Cache
Спасибо Weplay.com за поддержку разработки Rack::Bug
Для разработки вам понадобится установить следующие гемы: rspec, rack-test, webrat, sinatra
Смотрите MIT-LICENSE.txt в этом каталоге.