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 미들웨어 스택 출력