Debug: domínio de binding.irb
O curso trata do binding.irb, uma linha de Ruby que pausa um método em execução e abre um prompt IRB dentro do escopo dele. Ele compara essa abordagem com o debug por puts, em que cada pergunta precisa ser planejada antes de rodar o programa de novo. Mostra como Kernel#binding captura o escopo local e como Binding#irb abre uma sessão aninhada. Também cobre a inspeção de locais, self e variáveis de instância, a retomada com continue ou exit e o passo a passo com next pela gem debug. No fim, usa o binding.irb dentro de um app Rails via bin/rails runner.
O que você vai aprender
- ✓Por que o debug com puts obriga a planejar cada pergunta antes de rodar de novo
- ✓Como Kernel#binding e Binding#irb se combinam para abrir um prompt no escopo de um método
- ✓Inspecionar variáveis locais, parâmetros, self e variáveis de instância numa linha pausada
- ✓Retomar com continue ou exit e avançar linha por linha com next
- ✓Quando usar binding.irb e quando usar puts ou logging
- ✓Usar binding.irb com models reais dentro de um app Rails via bin/rails runner
Além do puts: inspeção de estado ao vivo
Um primeiro movimento típico de debug: espalhar chamadas de puts pelo método e rodar o programa inteiro de novo. Você lê o que foi impresso, decide que não basta, adiciona mais puts e roda outra vez.
Ler a aula completa grátis →Currículo
7 aulasAlém do puts: inspeção de estado ao vivo
Compara o ciclo de puts e nova execução com o binding.irb, que pausa o método para consultar o estado ao vivo.
O que binding.irb realmente é
Explica que binding captura o escopo local e Binding#irb abre uma sessão IRB aninhada, sem precisar de Rails.
Locais, variáveis de instância e self, ao vivo
Mostra que locais, parâmetros, self e variáveis de instância respondem direto na linha pausada, em qualquer ordem.
next, continue e andando passo a passo
Apresenta continue e exit para retomar a execução, e next para avançar uma linha com a gem debug.
binding.irb vs. puts, lado a lado
Compara as duas abordagens num mesmo bug e mostra quando cada uma serve: investigação ao vivo ou log sem supervisão.
binding.irb dentro de uma app Rails
Usa binding.irb via bin/rails runner para inspecionar um Catalog::Course real e explica a relação com o reload!.
Juntando tudo: uma sessão de debug ao vivo
Repassa todas as aulas sobre uma linha pausada e compara o binding.irb com o prompt do bin/rails console.