0Pricing
Ruby Academy · درس

تهيئة YAML

تحميل YAML وتفريغه

تهيئة YAML درس مجاني في Ruby Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Ruby Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Ruby Academy 4 دروس في المجموع.

ما هو YAML؟

إنّ YAML (YAML Ain't Markup Language) تنسيق بيانات سهل القراءة للبشر، ويُستخدم على نطاق واسع في الإعدادات. وتقرأه Ruby عبر مكتبة yaml المبنية على Psych.

require 'yaml'
text = "name: Ruby\nyear: 1995"
p YAML.load(text)

تحميل YAML

يحلّل YAML.load سلسلة YAML إلى كائنات Ruby. وتصبح التعيينات Hashes، وتصبح التسلسلات Arrays.

require 'yaml'
cfg = YAML.load("port: 8081\ndebug: true")
puts(cfg['port'])
puts(cfg['debug'])

المسافة البادئة تحدد البنية

يستخدم YAML المسافة البادئة (المسافات، وليس علامات التبويب مطلقًا) للتعبير عن التداخل. ويكون كل مستوى أعمق أكثر إزاحةً.

require 'yaml'
text = "server:\n  host: localhost\n  port: 8081"
cfg = YAML.load(text)
puts(cfg['server']['port'])

القوائم في YAML

يُكتب التسلسل باستخدام شرطات في بدايته، ويُحلَّل إلى Ruby Array.

require 'yaml'
text = "tags:\n  - fun\n  - oop\n  - dynamic"
p YAML.load(text)['tags']

تسلسل البيانات إلى YAML

تُسلسل YAML.dump (أو to_yaml) كائنات Ruby مجددًا إلى نص YAML.

require 'yaml'
data = { 'name' => 'Ruby', 'tags' => ['fun', 'oop'] }
puts(YAML.dump(data))

الأنواع المفردة

يستنتج YAML الأنواع تلقائيًا: إذ تُحوَّل الأرقام والقيم المنطقية (true/false) وnull إلى قيم Ruby المطابقة.

require 'yaml'
cfg = YAML.load("count: 3\nactive: false\nnote: null")
puts(cfg['count'].class)
puts(cfg['note'].inspect)

مفاتيح Symbol

عند تحميل مفتاح مكتوب مسبوقًا بنقطتين، يتحول إلى Ruby Symbol.

require 'yaml'
cfg = YAML.load(":env: production")
p cfg

مستندات متعددة

يمكن لملف YAML واحد أن يحتوي على عدة مستندات تفصل بينها ---. وتُعيد YAML.load_stream جميع هذه المستندات.

require 'yaml'
text = "a: 1\n---\nb: 2"
docs = YAML.load_stream(text)
puts(docs.length)

كتابة ملف إعدادات

احفظ Hash للإعدادات في ملف YAML سهل القراءة.

require 'yaml'
require 'tmpdir'
path = File.join(Dir.tmpdir, 'config.yml')
File.write(path, { 'port' => 8081 }.to_yaml)
puts(File.read(path))

قراءة ملف إعدادات

تقرأ YAML.load_file ملفًا وتحلله باستدعاء واحد، وهي الطريقة المعتادة لتحميل التطبيقات لإعداداتها.

require 'yaml'
require 'tmpdir'
path = File.join(Dir.tmpdir, 'app.yml')
File.write(path, "name: AppPanel\nport: 8081")
cfg = YAML.load_file(path)
puts(cfg['name'])

التحميل الآمن

قد يكون تحميل YAML غير الموثوق به غير آمن. تقيّد YAML.safe_load التحميل بالأنواع الأساسية افتراضيًا، مما يحمي من حمولات ضارة.

require 'yaml'
cfg = YAML.safe_load("port: 8081\nname: app")
puts(cfg['port'])

اختبار سريع

ما الذي يستخدمه YAML للتعبير عن التداخل والبنية؟

مراجعة: إعدادات YAML

يمكنك إدارة الإعدادات باستخدام YAML:

  • YAML.load / load_file للقراءة
  • to_yaml / YAML.dump للكتابة
  • تحدد المسافات البادئة التداخل، وتُنشئ الشرطات القوائم
  • تستنتج القيم المفردة الأرقام والقيم المنطقية وnull
  • فضّل safe_load عند التعامل مع مدخلات غير موثوقة
require 'yaml'
puts(YAML.load("x: 5")['x'] * 2)

الأسئلة الشائعة

هل درس «تهيئة YAML» مجاني؟

نعم — نص درس «تهيئة YAML» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Ruby Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Ruby Academy 4 دروس في المجموع.

ماذا ستتعلم في «تهيئة YAML»؟

تحميل YAML وتفريغه تتمرن على Ruby Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Ruby Academy؟

لا تُشترط خبرة سابقة. Ruby Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.

كم من الوقت يستغرق درس «تهيئة YAML»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Ruby Academy هذا؟

نعم. كل درس في Ruby Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. قراءة JSON وكتابته
  2. التعامل مع CSV
  3. تهيئة YAML
  4. اختيار التنسيق
← العودة إلى Ruby Academy