public
Description: Rack::Debug is middleware that provides a simple interface to ruby-debug. Helps debug apps running in Passenger.
Homepage: http://ddollar.github.com/rack-debug
Clone URL: git://github.com/ddollar/rack-debug.git
Click here to lend your support to: rack-debug and make a donation at www.pledgie.com !
rack-debug / README.rdoc
100644 52 lines (35 sloc) 1.027 kb

Install

 $ gem install rack-debug

Rails

 # config/environments/development.rb
 config.gem 'rack-debug'
 config.middleware.use 'Rack::Debug'

 # RAILS_ROOT/Rakefile
 require 'rack-debug/tasks'

Middleware

 # add a use line to your builder
 require 'rack/debug'
 Rack::Builder.new do
   use Rack::Debug
   run MyApp.new
 end

 # can optionally specify where to put the sockets
 use Rack::Debug, :socket_path => '/tmp/rack-debug'

 # Rakefile
 require 'rack-debug/tasks'

Add breakpoints to your code

 @user = User.find(params[:id])
 debugger
 render :show

Debugging:

 # run the rake task,
 $ rake debug
 Connected.

 # refresh a page in your browser, your app will break at debugger statements
 (rdb:1) p @user
 #<User id: 1, name: "David Dollar", email: "ddollar@gmail.com", created_at: "...", updated_at: "...">

 # can specify the socket path
 SOCKET_PATH=/tmp/rack-debug rake debug

Thanks to:

  Rack::Bug for a good example of Rack middleware in Rails
  Ben Scofield for making me want to build some Rack middleware