Este artigo é baseado em um post do Akita na lista rails-br!
Quantas vezes você, assim como eu, fez a tosquice de dar um puts ou o flash[:notice] pra ver o valor de uma variavel ou coisa do tipo?
Então, você sabia que existem maneiras mais racionais de fazer isso?
É claro que existe a solução é o Ruby-Debug
Pra instalar é a barbada de sempre, vamos lá:
sudo gem install ruby-debug -y
Ok, instalado direitinho, agora vocês vai até config/environments/development.rb e coloca no final isto aqui:
SCRIPT_LINES__ = {}
require “ruby-debug”
Pronto, no seu código basta inserir uma linha com a palavra debugger e quando ele chegar neste breakpoint vai abrir um prompt no console, agora você pode debugar!
Finalmente, em qualquer lugar do seu código, coloque uma linha com o comando “debugger”, agora, quando você rodar até lá ele vai abrir um prompt no seu console e a partir daí você pode debugar. Os comandos que mais uso:
Aqui uma lista com os comandos que vocês pode usar, retirada e traduzida de http://blog.nanorails.com/articles/2006/07/14/a-better-rails-debugger-ruby-debug
A tradução talvez não seja a melhor, mas creio que de para entender, qualquer coisa deixe um post com a correção e eu irei corrigir aqui!
Comandos Ruby-debug
* b[reak]
Mostra seu breakpoints
* b[reak] [file|class:]LINE|METHOD [if expr]
* b[reak] [class.]LINE|METHOD [if expr]
Define a posição do breakpoint, testando opcionalmente uma expressão if expr == true
* cat[ch]
Mostra o catchpoint
* cat[ch] EXCEPTION
Seta o catchpoint para uma exceção
* disp[lay] EXPRESSION add expression into display expression list
Adicionar expressão dentro da lista de expressão exibida
* undisp[lay][ nnn]
Excluir uma todas as expressões mostradas se não o houver numero da expressão determinado
* del[ete][ nnn]
Excluir alguns ou todos breakpoints (obter o número usando ““break”)
* c[ont]
Roda até programa termina ou encontrar um breakpoint
* r[un]
alias para cont
* s[tep][ nnn]
Entra (em metodos) one line or till line nnn
Passa (para desntro de métodos) para uma linha ou até linha nnn
* n[ext][ nnn]
Vai para a linha ou até a linha nnn
* w[here]
Mostra a pilha
* f[rame]
Alias para where
* l[ist][ (-|nn-mm)]
Lista o programa, - lista para trás, lista as linhas nn-mm. Sem argumentos, mantém a lista
* up[ nn]
Move para o quadro acima
* down[ nn]
Move para o quadro abaixo
* fin[ish]
Retorna para o quadro de fora
* q[uit]
Sair do debugador
* v[ar] g[lobal]
Mostra as variaveis globais
* v[ar] l[ocal]
Mostra as variaveis locais
* v[ar] i[nstance] OBJECT
Mostra as variaveis de instacia do objeto
* v[ar] c[onst] OBJECT
Mostra as constantes do objeto
* m[ethod] i[nstance] OBJECT
Mostra os metodos do objeto
* m[ethod] CLASS|MODULE
Mostra as instancias dos metodos, classes ou modulos
* th[read] l[ist]
Lista todas as threads
* th[read] c[ur[rent]]
Mostra a thread atual
* th[read] [sw[itch]] nnn
Troca o contexto da thread para nnn
* th[read] stop nnn
Para a thread nnn
* th[read] resume nnn
Resume a thread nnn
* p EXPRESSION
Avalia a expressão e mostra o valor
* pp EXPRESSSION
Avalia a expressão e mostra o valor
* h[elp]
Mostra a ajuda
* RETURN KEY
Retorna ao último comando. Conveniente quando usado list, step, next, up, down,
* EVERYHTING ELSE
Avaliar
Tags: