التابع require
الخاص بالصنف Kernel
في روبي
بحمل التابع require المُعطى name
،ويعيد true
في حال نجح في ذلك، أو false
إذا كانت الميزة مُحملة (feature) .سلفًا
إذا لم يكن بالإمكان حل اسم الملف إلى مسار مطلق (absolute path)، فسيتم البحث عنه في المجلدات االمدرجة في $LOAD_PATH
($:
).
إذا كان لاسم الملف الامتداد ".rb" ، فسيُحمّل كملف مصدري؛ وإذا كان الامتداد ".so" أو ".o" أو ".dll" أو الامتداد الافتراضي للمكتبات المشتركة لنظام التشغيل الحالي، فستُحمّل روبي المكتبة المشتركة كإضافة. خلاف ذلك، ستحاول روبي أن تضيف للاسم الامتدادات ".rb" أو ".so" ...، وهكذا حتى تعثر على الملف. إذا تعذر العثور على الملف المسمى، سيُطلق LoadError
.
بالنسبة لملحقات روبي، قد يستخدم اسم الملف المُعطى أي امتداد من امتدادات المكتبة المشتركة. على سبيل المثال ، في نظام لينيكس، الامتداد هو "socket.so" وسيحمّل التابع require 'socket.dll'
الملحقة socket .
يُضاف المسار المطلق للملف المحمّل إلى $LOADED_FEATURES
($"
). لن يتم تحميل الملف مرة أخرى إذا كان مساره موجودًا سلفًا في $"
. على سبيل المثال، لن يقوم require 'a'; require './a'
بتحميل a.rb
مرة أخرى.
ستكون كل الثوابت والمتغيرات الكلية (globals) الموجودة في الملف المصدري المحمل متاحة في مجال أسماء البرنامج المُستدعي. ومع ذلك، لن تنتشر المتغيرات المحلية في بيئة التحميل.
البنية العامة
require(name) → true or false
المعاملات
name
القيمة المُعادة
أمثلة
مثال على استخدام التابع require
:
require "my-library.rb"
require "db-driver"
انظر أيضا
- التابع
readlines
: يعيد التابع readlines مصفوفة تحتوي الأسطر المُعادة من استدعاءKernel.gets( sep )
حتى نهاية الملف. - التابع
require_relative
: عند استدعاء هذا التابع ستحاول روبي تحميل المكتبة المسماة في الوسيط المعطى string نسبة إلى مسار الملف المطلوب. إذا تعذر تحديد مسار الملف، سيُطلق خطأLoadError
. إذا تم تحميل ملف ستُعاد القيمةtrue
، وإلا فستُعاد false على خلاف ذلك.