┐─ تحليل الملف ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── ┌
│ المطور : Yukihiro Matsumoto
│ الفئة : شفرة
│ نوع MIME : text/x-ruby
┘ ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── └
ما هو ملف RB؟
ملفات .rb تحتوي على شفرة مصدرية بلغة Ruby، لغة برمجة ديناميكية مفسَّرة أنشأها Yukihiro “Matz” Matsumoto وأصدرها عام 1995. صُممت Ruby بفلسفة “مبدأ الدهشة الأقل” (Principle of Least Astonishment) — يجب أن تتصرف اللغة بالطريقة التي يتوقعها المبرمج.
في Ruby، كل شيء كائن — الأعداد والنصوص والقيم المنطقية والـ nil كلها كائنات لها دوال. تدعم البرمجة الكائنية والوظيفية والإجرائية، وتشتهر بتعبيريتها العالية وإنتاجيتها. إطار Ruby on Rails (2004) أحدث ثورة في تطوير الويب وجعل Ruby مشهورةً عالمياً.
كيفية فتح ملفات RB
- VS Code مع إضافة Ruby LSP (ويندوز، ماك، لينكس) — IntelliSense واكتشاف الأخطاء
- RubyMine (ويندوز، ماك، لينكس) — IDE متكامل من JetBrains
- مفسر Ruby —
ruby script.rbلتنفيذ مباشر - irb (Interactive Ruby) — بيئة Ruby تفاعلية مدمجة
- أي محرر نصوص — ملفات RB نص عادي
المواصفات التقنية
| الخاصية | القيمة |
|---|---|
| نظام الأنواع | ديناميكي، قوي، مكشوف (Duck Typing) |
| النموذج | كائني التوجه بالكامل |
| المفسرات | CRuby/MRI (الرسمية)، JRuby (على JVM)، TruffleRuby |
| مدير الحزم | RubyGems (gem) |
| إدارة التبعيات | Bundler (Gemfile) |
| إدارة الإصدارات | rbenv أو RVM |
الاستخدامات الشائعة
- تطوير الويب مع Rails: GitHub وShopify وAirbnb وGitLab بُنيت على Ruby on Rails
- البرمجة النصية وأتمتة المهام: Ruby قوية للسكريبتات بفضل مكتباتها الوفيرة
- DevOps: Chef وVagrant وFastlane مكتوبة بـ Ruby
- اختبار البرمجيات: RSpec وCucumber لاختبار بـ Ruby بصياغة قريبة من اللغة الطبيعية
- معالجة البيانات: Nokogiri لتحليل HTML/XML، إضافة إلى ملفات CSV والنصوص
مثال برنامج Ruby
# مثال: تطبيق ويب بسيط مع Sinatra
require 'sinatra'
require 'json'
# قاعدة بيانات في الذاكرة
users = []
get '/users' do
content_type :json
users.to_json
end
post '/users' do
content_type :json
data = JSON.parse(request.body.read)
user = { id: users.length + 1, name: data['name'] }
users << user
status 201
user.to_json
end
Ruby في سطر الأوامر
# تشغيل سكريبت
ruby script.rb
# سطر واحد (one-liner)
ruby -e 'puts "مرحبا بالعالم!"'
# معالجة ملف نصي
ruby -pe 'gsub(/hello/, "مرحبا")' input.txt
# تثبيت حزمة
gem install rails
# تشغيل اختبارات RSpec
bundle exec rspec
Ruby on Rails بسرعة
# إنشاء تطبيق Rails جديد
rails new myapp --database=postgresql
# إنشاء موارد تلقائياً (scaffold)
rails generate scaffold Article title:string body:text
# تشغيل التطبيق
rails server