• 0

كيف أحصل على قائمة الملفات التي تم استدعاؤها في روبي؟

أريد الحصول على قائمة الملفات والوحدات التي تم استدعاؤها في بداية السكربت/برنامج روبي عن طريق require فكيف أفعل ذلك؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

لا يمكنك الحصول على جميع الملفات التي يتم استدعاؤها في برنامج روبي معين، لأنه قد يتطلب استدعاء ملف معين استدعاء مزيد من الملفات وروبي لا يمكنها التفريق بين ما قمت أنت باستدعائه والملف الذي استدعاه شخص آخر.
يمكنك استخدام $LOADED_FEATURES للحصول على قائمة جميع الملفات التي تم استدعاءها كما في المثال التالي:

> $LOADED_FEATURES.
   select { |feature| feature.include? 'gems' }.
   map { |feature| File.dirname(feature) }.
   map { |feature| feature.split('/').last }.
   uniq.sort

أو يمكنك استخدام طريقة أخرى حيث ستنشئ ملف جديد (مثلا requires.rb) وتضع فيها التالي:

alias :orig_require :require
def require s
  print "Requires #{s}\n" if orig_require(s)
end

ومن ثم يمكنك استخدامه مع أي تطبيق روبي ليعطيك أسماء الملفات والوحدات التي تم استدعاؤها -بافتراض أن myprogram هو البرنامج المطلوب-:

ruby -r requires.rb myprogram.rb

 

 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن