Pry は、ソースコード閲覧やシンタックスハイライト、オブジェクト状態遷移を備えたRubyの高機能なランタイム開発コンソール(IRB代替)です。
基本的なナビゲーションとコンテキスト切り替え
# オブジェクトやクラスの内部へスコープを移動(ディレクトリ移動のような感覚)
[1] pry(main)> cd Array
[2] pry(Array):1> cd- ..
[3] pry(main)> cd User.first
# 現在のバインディングのネスト深度を確認
[4] pry(User):2> nesting
コードとドキュメントの内省 (Introspection)
# メソッドのソースコードをコンソール上で直接閲覧
show-source Array#select
show-source User#full_name
# メソッドの YARD / RDoc ドキュメントを表示
show-doc Array#compact
# 名前に一致するメソッドを検索
find-method each
変数とメソッドの一覧確認 (ls)
ls # メソッド、ローカル変数、インスタンス変数を一覧表示
ls -m # 現在のオブジェクトに定義されているインスタンスメソッドを表示
ls -M # 現在のクラスに定義されているクラスメソッドを表示
ls -l # ローカル変数の一覧表示
ls -i # インスタンス変数 (@vars) の一覧表示
ls -c # スコープ内に定義された定数を表示
ls -G regex # 正規表現で出力を絞り込み
セッション内のデバッグ
# Rubyコード内の任意の場所でPryコンソールを起動
require 'pry'
binding.pry
wtf?: 直近に発生した例外のバックトレースを表示。hist: 入力履歴を表示。edit Object#method: 設定された$EDITORでメソッド定義ファイルを直接開く。
Rails との統合 (pry-rails)
Gemfile に pry-rails を追加:
group :development, :test do
gem 'pry-rails'
end
rails console 内で利用可能なコマンド:
show-models # データベーススキーマとモデルのリレーションを一覧表示
show-routes # アプリケーションのルーティング一覧を表示
show-middleware # Rackミドルウェアスタックを表示