صفحة الصنف Module
في روبي
توابع الصنف العامة (Public Class Methods)
التابع constants
في الشكل الأول، يعيد مصفوفة مكونة أسماء كل الثوابت التي يمكن الوصول إليها لحظة الاستدعاء. تتضمن تلك المصفوفة أسماء جميع الوحدات (modules) والأصناف المعرفة في النطاق الكلي.
التابع constants
في الشكل الأول، يعيد مصفوفة مكونة أسماء كل الثوابت التي يمكن الوصول إليها لحظة الاستدعاء. تتضمن تلك المصفوفة أسماء جميع الوحدات (modules) والأصناف المعرفة في النطاق الكلي.
التابع nesting
يعيد قائمة من الوحدات (Modules
) المتشعبة لحظة الاستدعاء.
التابع new
ينشئ وحدة مجهولة (anonymous module) جديدة. في حال إعطاء كتلة، فسيٌمرر إليها الوحدة (module)، وستُقيم الكتلة في سياق هذه الوحدة مثل module_eval
.
التابع used_modules
يعيد مصفوفة تحتوي جميع الوحدات (constant) المستخدمة في النطاق الحالي. ترتيب الوحدات في المصفوفة الناتجة غير محدد. .
التابع <
يعد القيمة true إن كان الوسيط mod صنفًا فرعيا من other. أو يعيدnil
إن لم تكن بينهما أي علاقة. (فكر في العلاقة من حيث تعريف الصنف: "الفئة A <B" يستلزم "A <B".)
التابع <=
يعيد القيمة true إن كان الوسيط mod صنفًا فرعيًا من other أو كان يساويه. أو يعد nil
إذا لم تكن بينهما أي علاقة. (فكر في هذه العلاقة من منظور تعريف الصنف: "الصنف A <B" يستلزم "A <B".)
التابع <=>
يجري عملية المقارنة - حيث يعيد إحدى القيم -1 أو 0 أو +1 أو nil اعتمادًا على ما إذا كان module
يتضمن other_module
، أو يتساويان، أو إذا كان module
متضمَّنًا في other_module
X.
التابع ==
معامل التساوي - في المستوى Object
، يعي المعامل ==
القيمة true
فقط إن كان obj
و other
نفس الكائن. بشكل عام، يٌعاد تعريف هذا التابع في الأصناف المنحدرة (descendant classes) لتخصيصه للصنف.
التابع ===
يعيد القيمة true
إن كان الوسيط obj نسخة (instance ) من الوسيط mod أو من أحد الأصناف المنحدرة منه. استخدامه مع الوحدات (modules) محدود، ولكن يمكن استخدامه في عبارات case
لتصنيف الكائنات بحسب الصنف.
التابع >
يعيد القيمة true إن كان الوسيط mod سلفًا (ancestor) للوسيط other. أو يعيد القيمة nil
إن لم تكن بينهما أي علاقة. (فكر في العلاقة من منظور تعريف الأصناف: "الصنف A <B" يستلزم "B> A".)
التابع >=
يعيد القيمة true إن كان الوسيط mod سلفًا (ancestor) للوسيط other، أو إن كانت الوحدتان متساويتين. يعيد القيمة nil
إن لم تكن بينها أي علاقة. (فكر في العلاقة من منظور تعريف الأصناف: "الصنف A <B" يستلزم "B> A".)
التابع alias_method
يجعل الوسيط new_name نسخة جديدة من التابع old_name. يمكن استخدام هذا للاحتفاظ بإمكانية بالوصول إلى التوابع التي أُعيد تعريفها.
التابع ancestors
يعيد قائمة مكونة الوحدات المُتضمنة / المضافة إلى الوحدة (بما في ذلك الوحدة نفسها).
التابع append_features
عندما تكون هذه الوحدة مُضمّنة في وحدة أخرى، فستستدعي روبي append_features
في هذه الوحدة، ويمرر إليه وحدة الاستقبال (receiving module) في الوسيط المعطى mod . الإعداد الافتراضي لروبي هو إضافة ثوابت، وتوابع، ومتغيرات هذه الوحدة إلى الوسيط mod إذا لم تكن هذه الوحدة مضافة سلفًا إلى mod أو أحد أسلافه (ancestors). انظر أيضا صفحة Module#include
.
التابع attr
الشكل الأول مكافئ لـ attr_reader
. أما الشكل الثاني فيكافئ attr_accessor(name)
ولكنه مُتجاوز الآن. الشكل الأخير يكافئ attr_reader(name)
لكن متجاوز هو أيضًا.
التابع attr_accessor
يحدد خاصية مسماة (named attribute) لهذه الوحدة ، حيث يكون الاسم هو الرمز.id2name
، وينشئ متغير (@name
) وتابع لقراءته. ينشئ أيضًا تابعا يُسمى name=
لتعيين الخاصية. يتم تحويل الوسائط String
إلى رموز.
التابع attr_reader
ينشئ متغيرات نسخ (instance variables) والتوابع المقابلة التي تعيد قيمة كل متغير نسخ. وهو مكافئ لاستدعاء "attr
:name" على كل الاسم بالتتابع. تُحوّل الوسائط String
إلى رموز.
التابع attr_writer
ينشئ مدخلًا (accessor method) للسماح بتعيين قيم attribute.id2name
. تُحول الوسائط String
إلى رموز.
التابع autoload
يُُسجل اسم الملف المراد تحميله (باستخدام Kernel::require
) في أول مرة يتم فيها الدخول إلى الوحدة و(التي قد تكون سلسلة نصية أو رمزًا) في مجال أسماء الوحدة .
التابع autoload?
يعيد اسم الملف الذي سيُحمل إن كان الوسيط المعطى مسجلًا كـ autoload
في مجال أسماء الوحدة .
التابع class_eval
يُقبّم السلسلة النصية أو الكتلة المعطاة في سياق الوحدة ، إلا أنه عند إعطاء كتلة، لن يتأثر البحث عن متغيراالأصناف والثوابت. يمكن استخدام هذا لإضافة توابع إلى صنف. يعيد module_eval
نتيجة تقييم الوسيط الممرر إليه. يحدد الوسيطان الاختياريات filename و lineno نص رسائل الخطأ.
التابع class_exec
يقيم الكتلة المعطاة في سياق الصنف/الوحدة. التابع المعرف في الكتلة ستنتمي إلى المستقبِل (receiver). ستُمرر كل الوسائط المعطاة إلى التابع إلى الكتلة. يمكن استخدام هذا إذا كانت الكتلة تحتاج إلى الوصول إلى متغيرات النسخ (instance variables).
التابع class_variable_defined?
يعيد القيمة true
إن كان متغير الصنف (class variable) المعطى مٌعرّفا في obj. تُحوّل الوسائط String
إلى رموز.
التابع class_variable_get
يعيد قيمة متغير الصنف المعطى (أو يطلق استثناء NameError
). يجب تضمين الجزء @@
من اسم المتغير بالنسبة متغيرات الصنف العادية. تُحوّل الوسائط String
إلى رموز.
التابع class_variable_set
يضبط قيمة متغير الصنف المحدد بالوسيط symbol ويحيل إليه الكائن المعطى obj. إذا تم تمرير اسم متغير الصنف كسلسلة نصية، قستُحوّل تلك السلسلة إلى رمز.
التابع class_variables
يعيد مصفوفة مكونة من أسماء متغيرات الصنف في الوحدة . يشمل ذلك أسماء متغيرات الصنف في كل الوحدات المُضمّنة، ما لم يتم تعيين الوسيط inherit عند القيمة false
.
التابع const_defined?
يتحقق مما إذا كانت للوحدة أو أحد أسلافها (ancestors) ثابت بالاسم المعطى:
التابع const_get
يتحقق من وجود ثابت بالاسم المحدد في الوحدة . في حال تعيين inherit
، فسيشمل البحث الأسلاف أيضًا (وكذلك Object
إن كانت الوحدة من النوع Module
).
التابع const_missing
يُستدعى عند محاولة استخدام ثابت غير معرف في الوحدة. يُمرّر إليه رمز sym يمثل الثابتة غير المعرفة، ويعيد قيمة ليتم استخدامها بدل ذلك الثابت. الشيفرة التالية مثال على ذلك:
التابع const_set
يضبط قيمة الثابت المعطى عند الكائن المحدد ، ثم يعيد ذلك الكائن. في حال لم يكن هناك ثابت يحمل الاسم المعطى، فسينشئ ثابتة جديدة.
التابع constants
في الشلك الأول، يعيد مصفوفة من أسماء كل الثوابت التي يمكن الوصول إليها لحظة الاستدعاء. هناك تابع يحمل نفس الأسم، اضفه إلى الموسوعة الآن؟؟؟ تتضمن هذه القائمة أسماء جميع الوحدات والأصناف المحددة في النطاق الكلي (global scope).
التابع define_method
يعرف تابع نُسخ (instance method) في المُستقبِل (receiver). الوسيط المعطى parameter يمكن أن يكون من النوع Proc
أو Method
أو UnboundMethod
. في حال تمرير كتلة، فستُستخدم كمتن (body) للتابع. تُقيّم هذه الكتلة باستخدام instance_eval
، وهو أمر قد يكون مُشكلًا على البعض، لأن define_method
خاصة. (لهذا سنحتال ونستخدم send
في هذا المثال.)
التابع deprecate_constant
يضع قائمة بالثوابت الموجودة المُتجاوزة.
التابع extend_object
يوسع الكائن المعطى بإضافة ثوابت و توابع هذه الوحدة (التي تُضاف كتوابع فردية [singleton methods]). هذا هو التابع المستخدم من قبل Object#extend
.
التابع extended
يكافئ included
، إلا أنه يُستخدم مع الوحدات الموسعة (extended modules).
التابع freeze
يمنع إجراء المزيد من التعديلات على الوحدة.
التابع include
يستدعي التابع Module.append_features
على كل الوسائط الممررة بترتيب عكسي.
التابع include?
يعيد القيمة true
إن كانت الوحدة المعطاة module مُضمّنة في الوحدة أو أحد أسلافها (ancestors).
التابع included
يُستدعى في كل مرة يتم تضمين المتلقي (receiver) في وحدة أو صنف آخر. يُقضل استخدام هذا على Module.append_features
إن كن تريد تنفيذ بعض الإجراءات عند تضمين وحدة في أخرى.
التابع included_modules
يعيد قائمة بالوحدات المضمنة في الوحدة .
التابع inspect
التابع instance_method
يعيد كائن UnboundMethod
يمثل تابع النسخة (instance method) المعطى في الوحدة .
التابع instance_methods
يعيد مصفوفة تحتوي على أسماء توابع النسخ (instance methods) العامة والمحمية (protected) في المستقبِل (receiver). بالنسبة للوحدات، فهي التوابع العامة والمحمية. أما بالنسبة للأصناف، فهي توابع النسخ (وليس التوابع المفردة [singleton methods]). إذا كان الوسيط الاختياري المعطى يساوي false
، فلن يتم تضمين توابع الأسلاف (ancestors).
التابع method_added
يُستدعى في كل مرة يُضاف تابع نسخة (instance method) إلى المُستقبِل (receiver).
التابع method_defined?
يعيد القيمة true
إن كان التابع المعطى مُعرّفا في الوحدة أو الصنف (أو الوحدات المُتضمنة فيه، وإن كان صنفًا فأسلافه). تتم مطابقة التوابع العامة والمحمية. تٌحوّل الوسائط النصية إلى رموز.
التابع method_removed
يستدعى كمكالمة في كل مرة يُزال تابع نسخة (instance method) من المُستقبِل (receiver).
التابع method_undefined
غير موثق
التابع module_eval
يُقيّم السلسلة النصية أو الكتلة المعطاة في سياق الوحدة، إلا أنه عند إعطاء كتلة، لن يتأثر البحث عن الثوابت/ الأصناف. يمكن استخدام هذا لإضافة توابع لصنف ما. تعيد module_eval
نتيجة تقييم وسائطها. يحدد الوسيطان الاختياريان filename و lineno نص رسائل الخطأ.
التابع module_exec
يقيّم الكتلة الممررة في سياق الصنف/الوحدة. التابع المعرف في الكتلة ستنتمي إلى المُُستقبِل (receiver). الوسائط المُمررة إلى التابع ستُمرّر كلها إلى الكتلة. يمكن استخدام هذا إذا كانت الكتلة تحتاج إلى الوصول إلى متغيرات النسخة (instance variables).
التابع module_function
ينشئ دوال وحدة (module functions) للتابع المعطى. يمكن استدعاء هذه الدوال مع الوحدة كمُستقبِلات، كما يمكن أن تصير متاحة كتوابع نسخة (instance methods) للأصناف التي تُمزج (mix) في الوحدة. دوال Module
هي نسخ من الدالة الأصلية، وبالتالي يمكن تغييرها بشكل مستقل. توابع النسخة (instance-method) ستُجعل خاصة. إذا تم استدعاء دون وسائط، ستصبح التوابع المعرفة لاحقاً دوال وحدة. تُحوّل الوسائط النصية إلى رموز.
التابع name
يعيد اسم الوحدة. أو يعيد القيمة nil إن كانت الوحدات مجهولة (anonymous modules).
التابع prepend
يستدعي التابع Module.prepend_features
على كل الوسائط المعطاة بترتيب عكسي.
التابع prepend_features
عندما تُرفق هذه الوحدة مع أخرى، تستدعي روبي التابع prepend_features
في هذه الوحدة، ويمررها إليها الوحدة المُستقبِلة (receiving module) في mod. الاعداد الافتراضي لروبي هو إحلال (overlay) ثوابت وتوابع ومتغيرات الوحدة الخاصة بهذه الوحدة في mod إن لم تكن هذه الوحدة مضافة سلفًا إلى mod أو أحد أسلافها (ancestors). انظر أيضا صفحة Module#prepend
.
التابع prepended
يكافئ included
، ولكنه للوحدات المُرفقة (prepended modules).
التابع private
إذا استُدعي دون إعطائه وسائط، فسيُعيّن المنظورية (visibility) الافتراضية للتوابع المحددة لاحقًا عند القيمة private. أما في حال تمرير وسائط، قسيضبط منظورية التوابع عند القيمة private. تُحوّل الوسائط النصية String
إلى رموز.
التابع private_class_method
يجعل توابع الصف الحالية خاصة (private). غالبًا ما يستخدم لإخفاء المُنشئ (constructor) الافتراضي new
.
التابع private_constant
يجعل قائمة الثوابت الموجودة الخاصة.
التابع private_instance_methods
يعيد قائمة بتوابع النسخة (instance methods) الخاصة (private) المعرفة في mod. إن كانت قيمة الوسيط الاختياري تساوي false
، فلن تُضمّن توابع الأسلاف (ancestors).
التابع private_method_defined?
يعيد القيمة true
إن كان التابع الخاص المعطى معرفًا من طرف _ mod_ (أو الوحدات المتضمنة فيه، وإن كان صنفًا، فأسلافه[ancestors]). تُحول الوسائط النصية String
إلى رموز.
التابع protected
في حال استدعاء دون تمرير أي وسائط، قسيضبط المنظورية (visibility) الافتراضية للتوابع المعرفة لاحقًا عند القيمة protected. أما في حال تمرير وسائط، فسيضبط منظورية التوابع المعطاة عند القيمة protected. تُحول الوسائط النصية String
إلى رموز.
التابع protected_instance_methods
يعيد قائمة بتوابع النسخة (instance methods) المحمية المعرفة في mod. إذا كان الوسيط الاختياري يساوي false
، فلن تُتضمّن توابع الأسلاف (ancestors).
التابع protected_method_defined?
يعيد القيمة true
إن كان التابع المحمي (protected) المعطى معرفًا بواسطة mod (أو الوحدات المُتضمنة فيه، أو أسلافه إن كان صنفًا). تُحول الوسائط النصية String
إلى رموز.
التابع public
في حال استدعاء بدون وسائط، فسيضبط المنظورية (visibility) الافتراضية للتوابع المعرفة لاحقًا عند القيمة public. أما في حال تمرير وسائط، فسيضبط منضورية التوابع المعطاة عند القيمة public. تُحول الوسائط النصية String
إلى رموز.
التابع public_class_method
يصنع قائمة بتوابع الصنف العامة (public) الحالية.
التابع public_constant
يصنع قائمة بالثوابت العامة (public) الموجودة.
التابع public_instance_method
على غرار example_method، يبحث عن التوابع العامة وحسب.
التابع public_instance_methods
يعيد قائمة بتوابع النسخة (instance methods) العامة (public) المعرفة في mod. إن كانت قيمة الوسيط الاختياري تساوي false
، فلن يتم تضمين توابع الأسلاف (ancestors).
التابع public_method_defined?
يعيد القيمة true
إن كان التابع العام (public) المعطى معرفًا بواسطة mod (أو الوحدات المتضمنة فيه، أو أسلافه إن كان صنفا). تُحول الوسائط النصية String
إلى رموز.
التابع refine
يُهذب (refine) الوحدة المتلقية (receiver).
التابع remove_class_variable
يزيل تعريف الوسيط المعطى sym ، ثم يعيد قيمة ذلك الثابت.
التابع remove_const
يزيل تعريف الثابت المعطى، ويعيد القيمة السابقة لذلك الثابت. إذا كان هذا الثابت يشير إلى وحدة، فلن يغير اسم الوحدة، وقد يكون ذلك مصدر ارتباك.
التابع remove_method
يزيل التوابع المحددة بواسطة الوسيط symbol من الصنف الحالي. على سبيل المثال، انظر Module.undef_method
. تُحول الوسائط النصية String
إلى رموز.
التابع singleton_class?
يعيد القيمة true
إن كان mod صنفا مفردًا (singleton class )، وإلا فسيعيد القيمة false
.
التابع to_s
يعيد سلسلة نصية تمثل هذه الوحدة أو الصنف. بالنسبة للأصناف والوحدات الأساسية، سيكون هو الاسم. بالنسبة للمفردات (singletons)، تعاد معلومات عن الأشياء المتعلقة أيضًا.
التابع undef_method
يمنع الصنف الحالي من الاستجابة للاستدعاءات الموجهة إلى التابع المعطى. على النقيض من remove_method
، والذي يحذف التابع من الصنف المعين؛ سيبحث روبي في الأصناف الأبوية (superclasses) وفي الوحدات المختلطة (mixed-in modules) عن مُستقبِل (receiver) محتمل. تُحول الوسائط النصية String
إلى رموز.
التابع using
يستورد الأصناف المهذبة (class refinements) من الوحدة نحو التعريف الحالي للصنف أو الوحدة.