0Pricing
Ruby Academy · درس

بنية Gem

الملفات وgemspec

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

ما هو Gem؟

الـ gem هو مكتبة أو تطبيق Ruby مُغلّف يمكن تثبيته وإدارة إصداراته ومشاركته عبر RubyGems. تكاد كل أداة Ruby تستخدمها تكون gem.

  • يجمع gem الشيفرة والبيانات الوصفية والتبعيات في حزمة واحدة.
  • توجد البيانات الوصفية في ملف gemspec.
  • تدير أدوات مثل bundler وgem ملفات gems.

إنشاء هيكل ابتدائي

أسرع طريقة للبدء هي استخدام bundle gem mygem. إذ ينشئ الهيكل القياسي للمجلدات، وملف gemspec، ومجلدًا للاختبارات، وملف README، وملف ترخيص. بعد ذلك تملأ الشيفرة بنفسك.

الهيكل القياسي

يبدو gem نموذجي اسمه mygem كما يلي:

  • lib/mygem.rb ملف الدخول.
  • lib/mygem/ ملفات المصدر الإضافية.
  • lib/mygem/version.rb ثابت الإصدار.
  • mygem.gemspec البيانات الوصفية.
  • test/ أو spec/ الاختبارات.
  • README.md وملف ترخيص.

ملف الدخول

يُحمّل lib/mygem.rb عندما ينفذ أحدهم require 'mygem'. وعادةً ما يتطلب ملف الإصدار وبقية المكتبة، ويعرّف الوحدة ذات المستوى الأعلى.

module Mygem
  def self.greet(name)
    "Hello, " + name
  end
end

puts Mygem.greet("world")

ملف الإصدار

يتيح وضع الإصدار في ملف مستقل لكلٍّ من gemspec والشيفرة قراءته. convention هو وضع ثابت VERSION داخل وحدة gem.

module Mygem
  VERSION = "0.1.0"
end

puts "Current version: " + Mygem::VERSION

ما هو Gemspec؟

إن gemspec هو ملف Ruby يصف gem: اسمه، وإصداره، ومؤلفه، وملخصه، وملفاته، وتبعياته. يقرأه RubyGems لإنشاء الحزمة ونشرها.

إنه شيفرة Ruby عادية، لذا يمكنك حساب القيم فيه، لكن احرص على إبقائه بسيطًا وتصريحيًا.

Gemspec أدنى

الحقول الأساسية هي الاسم، والإصدار، والمؤلفون، والملخص، والملفات. إليك البنية، مكتوبة بصيغة Ruby عادية يمكنك وضعها في mygem.gemspec.

require "ostruct"

spec = OpenStruct.new
spec.name = "mygem"
spec.version = "0.1.0"
spec.authors = ["Your Name"]
spec.summary = "A tiny example gem"

puts spec.name + " " + spec.version

إدراج الملفات

يجب أن يصرّح gemspec بالملفات التي ستُضمّن في gem. وتطلب العديد من ملفات gemspec من git قائمة الملفات المتتبعة حتى لا يُنسى أي ملف:

spec.files = Dir['lib/**/*.rb'] + ['README.md']

لا تُحزّم إلا الملفات المدرجة، لذا فإن نسيان ملف يؤدي إلى تثبيت معطّل.

التصريح بالتبعيات

يوجد نوعان من التبعيات في gemspec:

  • add_dependency للاحتياجات وقت التشغيل التي يجب على المستخدمين تثبيتها.
  • add_development_dependency للأدوات المستخدمة أثناء التطوير فقط، مثل أطر الاختبار.

استخدم قيود الإصدارات مثل '~> 1.2' للحفاظ على التوافق.

إصدار Ruby المطلوب

اضبط spec.required_ruby_version حتى يحصل المستخدمون الذين يستخدمون إصدارًا قديمًا جدًا من Ruby على رسالة خطأ واضحة بدلًا من تعطل مربك. املأ أيضًا homepage وlicense وmetadata لجعل gem متكاملًا.

required = ">= 3.0.0"
current = RUBY_VERSION
puts "Requires Ruby " + required
puts "Running Ruby " + current

إنشاء Gem

بعد أن يصبح gemspec جاهزًا، ينشئ gem build mygem.gemspec ملفًا بامتداد .gem. ويمكنك تثبيته محليًا باستخدام gem install ./mygem-0.1.0.gem لاختباره قبل نشره.

تحقق سريع

اختبر مدى فهمك لبنية gem.

مراجعة: بنية Gem

لقد تعلمت كيفية تنظيم gem:

  • ينشئ bundle gem الهيكل الأولي.
  • يُعد lib/mygem.rb نقطة الدخول.
  • يوجد الإصدار في ملف مستقل.
  • يحتوي gemspec على البيانات الوصفية والملفات والتبعيات.
  • تُحزّمه gem build.

سننظم بعد ذلك الشيفرة الفعلية داخل gem.

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

هل درس «بنية Gem» مجاني؟

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

ماذا ستتعلم في «بنية Gem»؟

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

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

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

كم من الوقت يستغرق درس «بنية Gem»؟

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

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

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

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

  1. بنية Gem
  2. كتابة الشيفرة
  3. الاختبار وإدارة الإصدارات
  4. النشر إلى RubyGems
← العودة إلى Ruby Academy