Pry هي وحدة تحكم تشغيل تفاعلية متقدمة وبديل قوي لـ IRB في Ruby، تقدم استعراض الكود المصدري وإبراز الصياغة والتنقل في الحالة.
التنقل الأساسي والتبديل بين السياقات
# تغيير النطاق للدخول إلى كائن أو فئة (مثل تصفح المجلدات)
[1] pry(main)> cd Array
[2] pry(Array):1> cd- ..
[3] pry(main)> cd User.first
# فحص عمق التداخل الحالي للربط
[4] pry(User):2> nesting
فحص الكود والتوثيق (Introspection)
# عرض الكود المصدري لدالة معينة مباشرة داخل الـ console
show-source Array#select
show-source User#full_name
# عرض توثيق YARD / RDoc للدالة
show-doc Array#compact
# البحث عن الدوال المطابقة لعبارة البحث
find-method each
فحص المتغيرات والدوال (ls)
ls # سرد الدوال والمتغيرات المحلية ومتغيرات النسخة
ls -m # سرد دوال النسخة (instance methods) المعرفة على الكائن الحالي
ls -M # سرد دوال الفئة (class methods) المعرفة على الفئة الحالية
ls -l # سرد المتغيرات المحلية
ls -i # سرد متغيرات النسخة (@vars)
ls -c # سرد الثوابت المعرفة ضمن النطاق
ls -G regex # تصفية المخرجات بناءً على تعبير نمطي (regex)
تصحيح الأخطاء أثناء الجلسة (In-Session Debugging)
# الدخول إلى Pry من أي مكان داخل كود Ruby
require 'pry'
binding.pry
wtf?: طباعة تتبع المكدس (backtrace) لآخر استثناء حدث.hist: عرض سجل الأوامر المدخلة.edit Object#method: فتح تعريف الدالة مباشرة في محرر النصوص$EDITORالمفضل لديك.
التكامل مع Rails (pry-rails)
أضف pry-rails إلى ملف Gemfile:
group :development, :test do
gem 'pry-rails'
end
في rails console:
show-models # طباعة جميع مخططات قواعد البيانات والعلاقات
show-routes # طباعة جدول المسارات (routing table)
show-middleware # طباعة طبقات Rack middleware