Fork me on GitHub

Keep Learning Conhecimento nunca é o bastante

Postado em
10 September 2009 @ 17:06

Tag(s)
Rails

Utilizando rack-debug para debugging com Passenger

Desenvolver aplicações Rails utilizando o Phusion Passenger (principalmente no Mac OS X com o Passenger preference pane) é muito prático. Porém, uma coisa que logo senti falta foi a possibilidade de utilizar a gem ruby-debug quando precisava de breakpoints para debuggar o código.

Uma maneira de conseguir isso é através da gem/plugin rack-debug. Para utilizá-la, segui os passos abaixo.

1. Instalação

 $ script/plugin install git://github.com/ddollar/rack-debug.git
 
 # config/environments/development.rb
 config.middleware.use "Rack::Debug"

2. Chamar o debugger onde necessário:

  def create
    @status = current_user.statuses.create(params[:status])
    debugger
    if @status.valid?
...

3. Conectar-se ao debugger

 # No diretório da aplicação, chamar a task rake
 $ rake debug
 Connected.

4. Ao executar a linha onde o debugger foi chamado, a aplicação para e você tem acesso ao console do debugger

 (rdb:1) p @status
 #<status id: 231, text: "Testing rack-debug", user_id: 4, ...>

Pronto. Happy debugging! 🙂

Update: ao chamar a task rake, pode ocorrer um erro com a mensagem “Server is not running or Passenger has spooled down”. Neste caso, reinicie o Apache e tudo deve funcionar normalmente.


2 Comentários

Comentário por
Nando Vieira
10 September 2009 @ 17:33

Simples assim? Esse era um dos motivos principais de eu não usar o Passenger para desenvolvimento. Na verdade, não. Prefiro subir só o server que vou trabalhar com `script/server`. 😛


Comentário por
Lucas Húngaro
11 September 2009 @ 14:05

Usando o Passenger, não precisa nem dar comando pra iniciar. Basta abrir o browser e usar a app direto. 🙂


Deixe um comentário