التابع module_eval‎ الخاص بالصنف Module في روبي

من موسوعة حسوب

يُقيّم التابع module_eval السلسلة النصية أو الكتلة المعطاة في سياق الوحدة، إلا أنه عند إعطاء كتلة، البحث عن الثوابت/ الأصناف لن يتأثر .

يمكن استخدام هذا التابع لإضافة توابع لصنف ما.

يعيد التابع module_eval نتيجة تقييم وسائطه. ويحدد الوسيطان الاختياريان filename و lineno نص رسائل الخطأ.

البنية العامة

module_eval(string [, filename [, lineno]])  obj
module_eval {|mod| block } obj

المعاملات

string‎

السلسلة النصية المراد تقييمها.

filename‎ وlineno‎

يحددان نص رسائل الخطأ.

القيمة المُعادة

يعيد التابع module_eval نتيجة تقييم وسائطه.

أمثلة

مثال على استخدام التابع module_eval‎:

class Thing
end
a = %q{def hello() "Hello there!" end}
Thing.module_eval(a)
puts Thing.new.hello()
Thing.module_eval("invalid code", "dummy", 123)

الناتج:

Hello there!
dummy:123:in `module_eval': undefined local variable
    or method `code' for Thing:Class‎

انظر أيضا

  • التابع module_exec: يقيّم الكتلة الممررة في سياق الصنف/الوحدة.

مصادر