Pry è una potente console di sviluppo runtime e alternativa a IRB per Ruby con supporto a browsing del codice ed evidenziazione sintattica.
Navigazione di base e cambio di contesto
# Cambia ambito in un oggetto o classe (come navigare tra cartelle)
[1] pry(main)> cd Array
[2] pry(Array):1> cd- ..
[3] pry(main)> cd User.first
# Controlla la profondità di annidamento corrente
[4] pry(User):2> nesting
Introspezione di codice e documentazione
# Visualizza il codice sorgente di un metodo nella console
show-source Array#select
show-source User#full_name
# Visualizza la documentazione YARD / RDoc di un metodo
show-doc Array#compact
# Cerca metodi corrispondenti a un pattern
find-method each
Ispezione di variabili e metodi (ls)
ls # Elenca metodi, variabili locali e d'istanza
ls -m # Elenca i metodi d'istanza sull'oggetto corrente
ls -M # Elenca i metodi di classe definiti sulla classe corrente
ls -l # Elenca variabili locali
ls -i # Elenca variabili d'istanza (@vars)
ls -c # Elenca costanti definite nell'ambito
ls -G regex # Filtra l'output con espressioni regolari
Debug in sessione
# Accedi a Pry da qualsiasi riga di codice Ruby
require 'pry'
binding.pry
wtf?: Stampa il backtrace dell'eccezione più recente.hist: Mostra la cronologia dei comandi immessi.edit Object#method: Apre la definizione del metodo direttamente nel tuo$EDITOR.
Integrazione con Rails (pry-rails)
Aggiungi pry-rails al tuo Gemfile:
group :development, :test do
gem 'pry-rails'
end
In rails console:
show-models # Stampa tutti gli schemi e le relazioni del database
show-routes # Stampa la tabella di routing
show-middleware # Stampa lo stack dei middleware Rack