لماذا تستخدم منسق روبي هذا
- تنسيق بنمط روفو لكتابة كود روبي متناسق
- يوحد المسافات البادئة، الأسطر الفارغة والتباعد حول المعاملات
- مخرجات ثابتة – إعادة تنسيق نفس الملف تنتج نفس النتيجة
- يحترم دلالات روبي – تغييرات في التخطيط فقط، لا تغييرات في السلوك
- يدعم ملفات .rb و .rake و .gemspec مباشرة
- لا حاجة لإعدادات: تنسيق بنقرة واحدة، لا حاجة لإعدادات معقدة
- يعمل بالكامل في واجهة متصفحك – فقط الصق أو أسقط ملف
- رفيق رائع لـ rubocop/standard كمنسق تخطيط فقط
🛠️ كيفية استخدام منسق Ruby for ruby-formatter
1. الصق أو ارفع كود Ruby الخاص بك
📥 الصق كود Ruby مباشرة في المحرر، أو اسحب وأفلت ملف `.rb` أو `.rake` أو `.gemspec`. الأداة تقرأ المحتوى وتجهزه للتنسيق.
2. انقر على زر التنسيق
✨ اضغط على **تنسيق** لإرسال كودك إلى المنسق على نمط Rufo. يتم توحيد المسافات البادئة، وفواصل الأسطر، والتباعد في خطوة واحدة مع الحفاظ على المنطق الأصلي.
3. راجع النتيجة
🔍 قارن المخرجات المنسقة مع كود Ruby الأصلي الخاص بك. سترى مسافات بادئة متسقة، وكتل أكثر نظافة، وطرق وشروط أكثر قابلية للقراءة.
4. انسخ أو حمّل
📤 بمجرد الرضا، انسخ الكود المنسق مرة أخرى إلى محررك أو حمّله كملف. إنه جاهز للعمليات، أو طلبات السحب، أو النشر للإنتاج.
المواصفات الفنية
محرك التنسيق والنمط
يتبع المنسق قواعد تنسيق Ruby الحاسمة على نمط Rufo للحفاظ على قاعدة التعليمات البرمجية متسقة وسهلة المسح في المراجعات.
| الجانب | السلوك | ملاحظات |
|---|---|---|
| المسافات البادئة | مسافتان لكل مستوى | يتم تحويل علامات الجدولة إلى مسافات لتتناسب مع نمط Ruby الاصطلاحي. |
| الكتل و do/end | محاذاة ومتباعدة بشكل متسق | يساعد في الحفاظ على الكتل المتداخلة (each، map، if، case) قابلة للقراءة. |
| المسافات البيضاء | ينظف المسافات الزائدة | يوحد المسافات حول العوامل، والفوارز، والرموز. |
| الأسطر الفارغة | موحدة بين الطرق والفئات | يحسن فصل الاهتمامات والتجميع البصري. |
| عدم التغير | نفس المدخلات → نفس المخرجات | إعادة تشغيل المُنسِّق بشكل متكرر آمن دائمًا. |
المدخلات المدعومة والحدود
مصمم لمشاريع Ruby الواقعية: gems، تطبيقات Rails، النصوص البرمجية وأدوات داخلية.
| المعامل | الحد / السلوك | ملاحظات |
|---|---|---|
| امتدادات الملفات | .rb, .rake, .gemspec | ملفات Ruby المصدرية النموذجية، مهام Rake ومواصفات gems. |
| أنواع MIME | text/x-ruby | يساعد المحرر في اختيار وضع لغة Ruby وتمييز الصياغة. |
| الحد الأقصى لحجم الإدخال | ≈ 2 ميجابايت من مصدر Ruby | المصادر الكبيرة جدًا أو حزم البائعين يُفضل التعامل معها محليًا عبر CLI. |
| الترميز | يُوصى بـ UTF-8 | للترميزات القديمة، قم بالتحويل إلى UTF-8 قبل التنسيق. |
الأمان والتنفيذ
يعمل التنسيق على خلفية مؤمنة باستخدام مُنسِّق مدرك لـ Ruby.
| الجانب | السلوك | ملاحظات |
|---|---|---|
| التنفيذ | استدعاء API آمن للمُنسِّق | يتم إرسال الكود المصدري والخيارات الأساسية فقط إلى نقطة نهاية التنسيق. |
| المهلة | ≈ 25 ثانية | يتم إيقاف المدخلات الطويلة جدًا أو غير الطبيعية للحفاظ على استجابة واجهة المستخدم. |
| الدلالات | تغييرات التخطيط فقط | تم تصميم المُنسِّق لعدم تغيير سلوك كود Ruby الصالح. |
بدائل سطر الأوامر لتنسيق Ruby
هل تريد نفس النمط في محررك، CI أو خطافات pre-commit؟ استخدم Rufo أو منسقات Ruby الأخرى محليًا.
Linux / 🍎 macOS / 🪟 Windows
تثبيت Rufo عالميًا
gem install rufoيضيف التنفيذي `rufo` إلى بيئة Ruby الخاصة بك.
تنسيق ملف Ruby واحد
rufo app/models/user.rbيعيد كتابة الملف في مكانه باستخدام قواعد Rufo.
تنسيق مشروع كامل
rufo .يقوم بتنسيق جميع ملفات Ruby بشكل متكرر في شجرة المجلد الحالي.
مع pre-commit أو CI
إضافة Rufo عبر pre-commit
repos:
- repo: https://github.com/ruby-formatter/rufo
rev: v0.17.0
hooks:
- id: rufoتشغيل Rufo تلقائياً قبل كل commit (مقتطف YAML لـ `.pre-commit-config.yaml`).
حالات استخدام عملية لمُنسق Ruby
تطبيقات Ruby on Rails
تنظيف المتحكمات والنماذج والمهام قبل مراجعة الكود.
- توحيد النمط عبر فريق يعمل على نفس تطبيق Rails.
- تنسيق الملفات تلقائياً قبل فتح طلبات السحب.
- ترتيب مخرجات السقالات والمولدات لسهولة القراءة طويلة المدى.
class UsersController < ApplicationController
def create
user = User.new(user_params)
if user.save
redirect_to user_path(user)
else
render :new
end
end
end
class UsersController < ApplicationController
def create
user = User.new(user_params)
if user.save
redirect_to user_path(user)
else
render :new
end
end
end
الجواهر وأدوات سطر الأوامر والأدوات الداخلية
الحفاظ على مصدر الجواهر ومهام Rake ونصوص الأتمتة الداخلية مرتبة.
- تطبيق نمط متسق قبل نشر الجوهرة.
- تنظيف ملفات Rake الصاخبة ونصوص النشر.
- جعل أدوات سطر الأوامر الداخلية أسهل في الصيانة والتوسيع.
تعليم وتعلم Ruby
إظهار كيف يبدو Ruby الاصطلاحي دون الخوض في مناقشات حول النمط.
- تنسيق تسليمات الطلاب تلقائياً قبل التقييم للتركيز على المنطق.
- إظهار الفرق بين Ruby الذي "يعمل" وRuby "النظيف".
- استخدام المُنسق في ورش العمل لتوحيد الأمثلة بسرعة.
numbers=[1,2,3]
nums.each do |n| puts n*n end
numbers = [1, 2, 3]
numbers.each do |n|
puts n * n
end
❓ Frequently Asked Questions
❓هل سيغير مُنسق Ruby كيفية عمل الكود الخاص بي؟
🧹كيف يختلف هذا عن RuboCop أو Standard؟
🔒هل من الآمن لصق كود الإنتاج في هذه الأداة؟
📂أي إصدارات من Ruby مدعومة؟
⚡ما مدى سرعة التنسيق؟
Pro Tips
استخدم هذا المُنسِّق قبل فتح طلب سحب حتى يتمكن المراجعون من التركيز على المنطق بدلاً من المسافات البيضاء.
اجمع التنسيق مع أداة فحص مثل RuboCop أو Standard لتغطية كل من التخطيط ومشكلات الجودة الأعمق.
دائمًا قم بتشغيل مجموعة الاختبارات الخاصة بك بعد عمليات التنسيق التلقائي الكبيرة لضمان استمرار كل شيء في العمل بشكل صحيح.
بالنسبة للجواهر، قم بتطبيق التنسيق قبل تحديث الإصدارات لتجنب الاختلافات المزعجة بين الإصدارات.
Additional Resources
Other Tools
- محسن CSS
- محسن HTML
- محسن Javascript
- محسن PHP
- منتقي الألوان
- مستخرج Sprite
- فك تشفير Base64
- تشفير Base64
- منسق Csharp
- منسق CSV
- Dockerfile Formatter
- منسق Elm
- منسق ENV
- منسق Go
- منسق Graphql
- منسق Hcl
- منسق INI
- منسق JSON
- منسق Latex
- منسق Markdown
- منسق Objectivec
- Php Formatter
- منسق Proto
- منسق Python
- منسق Rust
- منسق Scala
- منسق سكريبت Shell
- منسق SQL
- منسق SVG
- منسق Swift
- منسق TOML
- Typescript Formatter
- منسق XML
- منسق YAML
- منسق Yarn
- مختصر CSS
- Html Minifier
- Javascript Minifier
- مختصر JSON
- مصغر XML
- عارض رؤوس HTTP
- PDF إلى نص
- مختبر Regex
- مدقق ترتيب SERP
- بحث Whois