كيفية استخدام مترجم Ruby عبر الإنترنت
- اكتب شيفرة Ruby أو الصقها في المحرر. ويعيد الزر إعادة ضبط المثال البرنامج الابتدائي.
- اضغط تشغيل أو استخدم Ctrl + Enter (⌘ + Enter على جهاز Mac).
- يظهر الناتج من
putsوprintوpفي لوحة المخرجات. وتُميَّز الاستثناءات والرسائل المكتوبة إلى$stderrعلى أنها أخطاء. - اختر الحدّ الزمني وهو 5 أو 15 أو 60 ثانية. يُوقَف تلقائيًا أي تشغيل يستغرق أطول من ذلك، ويُنهيه الزر إيقاف فورًا.
ينزّل التشغيل الأول بيئة تشغيل Ruby ومكتبتها القياسية، وحجمهما نحو 36 MB، فقد يستغرق ذلك بعض الوقت مع اتصال بطيء. يخزّنها متصفحك مؤقتًا، فتبدأ الزيارات اللاحقة أسرع بكثير. استخدم نسخ أو main.rb لحفظ برنامجك.
تعمل Ruby في Web Worker داخل متصفحك أنت. لا تُرفع شيفرتك أبدًا ولا تُخزَّن على خوادمنا. ويتذكر المحرر آخر برنامج لك في التخزين المحلي لمتصفحك، ولا يتذكره في أي مكان آخر.
ما المدعوم
يستخدم المترجم Ruby 3.3 عبر النسخة الرسمية ruby.wasm، وهي مفسّر CRuby (MRI) مترجَم إلى WebAssembly.
- لغة Ruby 3.3 كاملة: الأصناف والوحدات (modules) والخلائط (mixins) والكتل (blocks) وprocs وlambdas، ومطابقة الأنماط بـ
case/in، والدوال بلا end (endless methods) (def name = ...)، والوسائط المسماة، والتحسينات (refinements). - الأصناف الأساسية مثل
StringوArrayوHashوRangeوEnumerableوEnumeratorوStructوComparable. - المكتبة القياسية: تُحمَّل
require "json"و"set"و"date"و"time"و"securerandom"و"digest"وغيرها من المكتبات المضمَّنة كالمعتاد.
القيود:
- لا تثبيت لحزم gem. لا تتوفر إلا المكتبات المرفقة مع Ruby، ولا يعمل
gem installولا Bundler. - لا وصول إلى الشبكة ولا إدخال قياسي. اكتب بيانات الاختبار مباشرة في شيفرتك بدلًا من قراءتها بـ
gets. - يُعاد استخدام المفسّر بين التشغيلات. تظل الأصناف والثوابت التي عرّفتها سابقًا موجودة في التشغيل التالي. اضغط إيقاف لتبدأ من جديد بمفسّر نظيف.
مرجع سريع لـ Ruby
require "json"
Book = Struct.new(:title, :year)
books = [
Book.new("Eloquent Ruby", 2011),
Book.new("Practical Object-Oriented Design", 2012),
]
recent = books.select { |b| b.year >= 2012 }.map(&:title)
puts "Recent: #{recent.join(', ')}"
result = { status: "ok", count: books.size }
case result
in { status: "ok", count: Integer => n }
puts "Found #{n} books"
end
puts books.map(&:to_h).to_json
| المهمة | الصياغة |
|---|---|
| الطباعة مع سطر جديد | puts "Hello" |
| فحص قيمة | p [1, :a, nil] |
| الاستيفاء داخل النص | "Total: #{sum}" |
| التكرار بكتلة | items.each { |x| puts x } |
| Hash بمفاتيح من نوع symbol | { name: "Ada", age: 36 } |
| التنقل الآمن | user&.email |
نصائح
- استخدم
pبدلًا منputsعند تصحيح الأخطاء. فهي تعرض الصيغة المفحوصة، فتستطيع التمييز بينnilو""و"nil". - سلسِل طرائق
Enumerableمثلmapوselectوgroup_byوtallyوeach_sliceلتحويل البيانات دون حلقات يدوية. - إذا رأيت
warning: already initialized constantفإن المفسّر ما زال يتذكر تشغيلًا سابقًا. اضغط إيقاف، ثم شغّل مرة أخرى. - افحص JSON المولَّدة بـ منسّق JSON وأداة التحقق منه، واختبر التعابير النمطية بـ أداة اختبار Regex. وصياغة JavaScript فيها تغطي معظم أنماط Ruby اليومية.
الأسئلة الشائعة
هل هذه Ruby حقيقية؟
نعم. ruby.wasm هو النسخة الرسمية من CRuby المنقولة إلى WebAssembly، ويُصان ضمن مشروع Ruby. وتتصرف اللغة والأصناف الأساسية فيه مثلما تتصرف على جهازك.
لماذا يكون التحميل الأول بطيئًا؟
يبلغ حجم المفسّر ومكتبته القياسية نحو 36 MB. ويحدث التنزيل مرة واحدة، ثم تُقدَّم الملفات من الذاكرة المؤقتة لمتصفحك.
هل يمكنني استخدام حزم gem مثل Rails أو Nokogiri؟
لا. المكتبة القياسية وحدها مضمّنة، ولا يمكن تثبيت حزم gem في المتصفح. وهذه الأداة أنسب لتعلّم Ruby والتدرّب على الخوارزميات واختبار المقتطفات البرمجية.
ما اللغات الأخرى التي يمكنني تشغيلها؟
جرّب مترجم Python عبر الإنترنت، أو مترجمات Lua وPHP وJavaScript وTypeScript وSQL، وكلها تعمل أيضًا في متصفحك.
آخر تحديث