صفحة الصنف Module
في روبي
الصنف Module
هو مجموعة من التوابع والثوابت. التوابع الموجودة في الوحدات Module
قد تكون إما توابع نسخة (instance methods)، أو توابع وحدة (module methods). توابع النسخة تظهر كتوابع في صنفٍ عند تضمين الوحدة، وذلك على خلاف توابع الوحدة. وعلى النقيض، يمكن استدعاء توابع الوحدة دون إنشاء كائن يُغلفها، بينما قد لا يمكن فعل ذلك مع توابع النسخة. انظر صفحة module_function
.
في الأمثلة الموجودة في صفحات التوابع، يشير المعامل sym
إلى رمز، والذي قد يكون إما سلسلة نصية، أو كائنًا من النوع Symbol
(مثل :name
).
module Mod
include Math
CONST = 1
def meth
# ...
end
end
Mod.class #=> Module
Mod.constants #=> [:CONST, :PI, :E]
Mod.instance_methods #=> [:meth]
توابع الصنف العامة (Public Class Methods)
constants
يعيد مصفوفة من أسماء كل الثوابت التي يمكن الوصول إليها لحظة الاستدعاء.
()constants
يعيد مصفوفة من أسماء كل الثوابت التي يمكن الوصول إليها من الوحدة.
nesting
يعيد قائمة من الوحدات المتشعبة (Modules nested) لحظة الاستدعاء.
new
ينشئ وحدة مجهولة (anonymous module) جديدة.
used_modules
يعيد مصفوفة تحتوي جميع الوحدات (modules) المستخدمة في النطاق الحالي.
توابع النسخة العامة (Public Instance Methods)
<
يعيد المعامل <
القيمة true
إن كانت الوحدة Module
التي تقع على يساره صنفًا فرعيًّا من الوحدة التي تقع على يمينه، أو يعيد القيمة nil
إن لم تكن بينهما أية علاقة.
<=
يعيد المعامل <=
القيمة true
إن كانت الوحدة Module
التي تقع على يساره صنفًا فرعيًّا من الوحدة التي تقع على يمينه أو كانت الوحدتان متساويتين تمامًا، أو يعيد القيمة nil
إذا لم تكن بينهما أية علاقة.
<=>
يجري المعامل <=>
عملية الموازنة بين كائنين ثم يعيد الناتج الذي يشير إلى العلاقة بينهما.
==
يتحقق معامل التساوي ==
من تساوي كائنين.
===
يعيد المعامل ===
القيمة true
إن كان الكائن الواقع على يمينه نسخةً (instance ) من الكائنModule
الواقع على يمينه أو من أحد الأصناف المنحدرة منه.
>
يعيد المعامل <
القيمة true
الكائن Module
الذي يقع على يساره سلفًا (ancestor) للكائن الذي يقع على يمينه، أو يعيد القيمة nil
إن لم تكن بينهما أية علاقة.
>=
يعيد المعامل >=
القيمة true
إن كانت الوحدة Module
التي تقع على يساره سلفًا (ancestor) للوحدة التي تقع على يمينه أو إن كانت الوحدتان متساويتين، أو يعيد القيمة nil
إن لم تكن بينها أي علاقة.
alias_method
ينشئ التابع alias_method
اسمًا جديدًا (بديلًا) لتابع محدَّد.
ancestors
يعيد التابع ancestors
قائمة مكونة الوحدات المُتضمنة/المضافة إلى الوحدة التي استُدعيت معها (بما في ذلك الوحدة نفسها).
append_features
عندما تكون هذه الوحدة مُضمّنة في وحدة أخرى، فستستدعي روبي التابع append_features
في هذه الوحدة، وتمرر إليه الوحدة المستقبلة (receiving module) التي استُدعيت معه.
attr
يكافئ التابع attr_reader
.
attr_accessor
يحدد خاصية مسماة (named attribute) لهذه الوحدة.
attr_reader
ينشئ متغيرات نسخ (instance variables) والتوابع المقابلة التي تعيد قيمة كل متغير نسخ.
attr_writer
ينشئ تابع وصول (accessor method) للسماح بتعيين قيمة للخاصيةsymbol.id2name
.
autoload
يُُسجل اسم الملف المراد تحميله (باستخدام Kernel::require
) في أول مرة يتم فيها الدخول إلى الوحدة.
autoload?
يعيد التابع autoload?
اسم الملف الذي سيُحمل إن كان المعامل المعطى مسجلًا عبر التابعautoload
في مجال أسماء الوحدة التي استُدعي معها.
class_eval
يُقبّم السلسلة النصية أو الكتلة المعطاة في سياق الوحدة.
class_exec
يقيم الكتلة المعطاة في سياق الصنف/الوحدة.
class_variable_defined?
يعيد القيمة true
إن كان متغير الصنف (class variable) المعطى مٌعرّفا في الوسيط obj
.
class_variable_get
يعيد قيمة متغير الصنف المعطى (أو يطلق استثناء NameError
).
class_variable_set
يضبط قيمة متغير الصنف المحدد بالوسيط symbol
ويحيل إليه الكائن المعطى obj
.
class_variables
يعيد مصفوفة مكونة من أسماء متغيرات الصنف في الوحدة.
const_defined?
يتحقق التابع const_defined?
مما إذا كانت الوحدة التي استُدعي معها أو أحد أسلافها (ancestors) تحتوي الثابت المعطى.
const_get
يتحقق من وجود ثابت بالاسم المحدد في الوحدة.
const_missing
يُستدعى عند محاولة استخدام ثابت غير معرف في الوحدة.
const_set
يضبط قيمة الثابت المعطى عند الكائن المحدد.
constants
يعيد مصفوفة من أسماء كل الثوابت التي يمكن الوصول إليها لحظة الاستدعاء.
define_method
يعرف تابع النُسخ (instance method) في المُستقبِل (receiver).
deprecate_constant
يضع قائمة بالثوابت الموجودة المُتجاوزة.
extend_object
يوسع الكائن المعطى بإضافة ثوابت و توابع هذه الوحدة.
extended
يكافئ included
، إلا أنه يُستخدم مع الوحدات الموسعة (extended modules).
freeze
يمنع إجراء المزيد من التعديلات على الوحدة.
include
يستدعي Module.append_features
على كل الوسائط الممررة بترتيب عكسي.
include?
يعيد القيمة true
إن كانت الوحدة المعطاة module مُضمّنة في الوحدة أو أحد أسلافها (ancestors).
included
يُستدعى في كل مرة يتم تضمين المتلقي (receiver) في وحدة أو صنف آخر.
included_modules
يعيد قائمة بالوحدات المضمنة في الوحدة.
inspect
inspect
هو اسم آخر للتابع to_s
.
instance_method
يعيد التابع instance_method
كائن UnboundMethod
يمثل تابع النسخة (instance method) المعطى في الوحدة التي استُدعي معها.
instance_methods
يعيد مصفوفة تحتوي على أسماء توابع النسخ (instance methods) العامة والمحمية (protected) في المستقبِل (receiver).
constants
يعيد التابع constants
مصفوفة من أسماء كل الثوابت التي يمكن الوصول إليها من الوحدة.
method_added
يُستدعى في كل مرة يُضاف تابع نسخة (instance method) إلى المُستقبِل (receiver).
method_defined?
يعيد القيمة true
إن كان المعطى مُعرّفا في الوحدة أو الصنف (أو الوحدات المُتضمنة فيه، وإن كان صنفًا فأسلافه).
method_removed
يستدعى في كل مرة يُزال تابع نسخة (instance method) من المُستقبِل (receiver).
module_eval
يُقيّم السلسلة النصية أو الكتلة المعطاة في سياق الوحدة،
module_exec
يقيّم الكتلة الممررة في سياق الصنف/الوحدة.
module_function
ينشئ دوال وحدة (module functions) للتابع المعطى.
name
يعيد اسم الوحدة. أو يعيد القيمة nil
إن كانت الوحدات مجهولة (anonymous modules).
prepend
يستدعي Module.prepend_features
على كل الوسائط المعطاة بترتيب عكسي.
prepend_features
عندما تُرفق هذه الوحدة مع أخرى، تستدعي روبي prepend_features
في هذه الوحدة.
prepended
يكافئ included
، ولكنه للوحدات المُرفقة (prepended modules).
private
إذا استُدعي التابع private
دون إعطائه وسائط، فسيُعيّن المنظورية (visibility) الافتراضية للتوابع المحددة لاحقًا عند القيمة private
. أما في حال تمرير وسائط، فسيضبط منظورية التوابع عند القيمة private
. تُحوّل الوسائط النصية String
إلى رموز.
private_class_method
يجعل توابع الصف الحالية خاصة (private).
private_constant
يجعل قائمة الثوابت الموجودة الخاصة.
private_instance_methods
يعيد قائمة بتوابع النسخة (instance methods) الخاصة (private) المعرفة في mod
.
private_method_defined?
يعيد القيمة true
إن كان الخاص المعطى معرفًا من طرف _ mod_
.
protected
يضبط المنظورية (visibility) الافتراضية للتوابع عند القيمة protected.
protected_instance_methods
يعيد التابع protected_instance_methods
قائمة بتوابع النسخة (instance methods) المحمية المعرفة في الوحدة. إذا كان الوسيط الاختياري يساوي false
، فلن تُتضمّن توابع الأسلاف (ancestors).
protected_method_defined?
يعيد التابع protected_method_defined?
القيمة true
إن كان المحمي (protected) المعطى معرفًا في الوحدة (أو الوحدات المُتضمنة فيه، أو أسلافه إن كان صنفًا).
public
في حال استدعاء التابع public
بدون وسائط، فسيضبط المنظورية (visibility) الافتراضية للتوابع المعرفة لاحقًا عند القيمة public
. أما في حال تمرير وسائط، فسيضبط منضورية التوابع المعطاة عند القيمة public
.
public_class_method
يصنع قائمة بتوابع الصنف العامة (public) الحالية.
public_constant
يصنع قائمة بالثوابت العامة (public) الموجودة.
public_instance_method
على غرار instance_method
، يبحث التابع public_instance_method
عن التوابع العامة (public
) وحسب.
public_instance_methods
يعيد قائمة بتوابع النسخة (instance methods) العامة (public) المعرفة في mod
.
public_method_defined?
يعيد القيمة true
إن كان العام (public) المعطى معرفًا بواسطة mod
.
refine
يُهذب (refine) الوحدة المتلقية (receiver).
remove_class_variable
يزيل تعريف الوسيط المعطى sym
، ثم يعيد قيمة ذلك الثابت.
remove_const
يزيل تعريف الثابت المعطى، ويعيد القيمة السابقة لذلك الثابت.
remove_method
يزيل التوابع المحددة بواسطة الوسيط symbol
من الصنف الحالي.
singleton_class?
يعيد القيمة true
إن كان mod
صنفا مفردًا (singleton class )، وإلا فسيعيد القيمة false
.
to_s
يعيد سلسلة نصية تمثل هذه الوحدة أو الصنف.
undef_method
يمنع الصنف الحالي من الاستجابة للاستدعاءات الموجهة إلى المعطى.
using
يستورد الأصناف المهذبة (class refinements) من الوحدة نحو التعريف الحالي للصنف أو الوحدة.