الفرق بين المراجعتين لصفحة: «Ruby/Module»
أنشأ الصفحة ب' ==توابع الصنف العامة (Public Class Methods)== === التابع constants=== في الشكل الأول، يعيد مصفوف...' |
لا ملخص تعديل |
||
سطر 1: | سطر 1: | ||
الوحدات (كائنات <code>Module)</code> هي مجموعة من التوابع والثوابت. التوابع الموجودة في الوحدات قد تكون إما توابع نسخة (instance methods)، أو توابع وحدة (module methods). توابع النسخة تظهر كتوابع في صنف عند تضمين الوحدة، وذلك على خلاف توابع الوحدة. وبالعكس ، يمكن استدعاء توابع الوحدة دون إنشاء كائن يُغلفها، بينما قد لا يمكن ذلك مع توابع النسخ. انظر صفحة <code>[[Ruby/Module/module function|module_function]]</code>. | |||
في الأمثلة الموجودة في صفحات التوابع، الوسيط ''<code>sym</code>'' يشير إلى رمز، والذي قد يكون إما سلسلة نصية، أو كائنا من النوع <code>Symbol</code> (مثل <code>:name</code>).<syntaxhighlight lang="ruby"> | |||
module Mod | |||
include Math | |||
CONST = 1 | |||
def meth | |||
# ... | |||
end | |||
end | |||
Mod.class #=> Module | |||
Mod.constants #=> [:CONST, :PI, :E] | |||
Mod.instance_methods #=> [:meth] | |||
</syntaxhighlight> | |||
==توابع الصنف العامة (Public Class Methods)== | ==توابع الصنف العامة (Public Class Methods)== | ||
===[[Ruby/Module/constants | التابع constants]]=== | ===[[Ruby/Module/constants | التابع constants]]=== | ||
يعيد مصفوفة مكونة أسماء كل الثوابت التي يمكن الوصول إليها لحظة الاستدعاء. | |||
===[[Ruby/Module/nesting | التابع nesting]]=== | ===[[Ruby/Module/nesting | التابع nesting]]=== | ||
يعيد قائمة من الوحدات (<code>Modules</code>) المتشعبة لحظة الاستدعاء. | يعيد قائمة من الوحدات (<code>Modules</code>) المتشعبة لحظة الاستدعاء. | ||
===[[Ruby/Module/new | التابع new]]=== | ===[[Ruby/Module/new | التابع new]]=== | ||
ينشئ وحدة مجهولة (anonymous module) جديدة | ينشئ وحدة مجهولة (anonymous module) جديدة. | ||
===[[Ruby/Module/used_modules | التابع used_modules]]=== | ===[[Ruby/Module/used_modules | التابع used_modules]]=== | ||
يعيد مصفوفة تحتوي جميع الوحدات (constant) المستخدمة في النطاق الحالي. | يعيد مصفوفة تحتوي جميع الوحدات (constant) المستخدمة في النطاق الحالي. | ||
===[[Ruby/Module/3C | التابع <]]=== | |||
يعد القيمة true إن كان الوسيط mod صنفًا فرعيا من other. أو يعيد<code>nil</code> إن لم تكن بينهما أي علاقة. | == توابع النسخة العامة (Public Instance Methods) == | ||
===[[Ruby/Module/3C-3D | التابع <=]]=== | |||
يعيد القيمة true إن كان الوسيط mod صنفًا فرعيًا من other أو كان يساويه. أو يعد <code>nil</code> إذا لم تكن بينهما أي علاقة. | ===[[Ruby/Module/3C | التابع <]]=== | ||
يعد القيمة <code>true</code> إن كان الوسيط <code>mod</code> صنفًا فرعيا من <code>other</code>. أو يعيد<code>nil</code> إن لم تكن بينهما أي علاقة. | |||
===[[Ruby/Module/3C-3D | التابع <=]]=== | |||
يعيد القيمة <code>true</code> إن كان الوسيط <code>mod</code> صنفًا فرعيًا من <code>other</code> أو كان يساويه. أو يعد <code>nil</code> إذا لم تكن بينهما أي علاقة. | |||
===[[Ruby/Module/3C-3D-3E | التابع <=>]]=== | ===[[Ruby/Module/3C-3D-3E | التابع <=>]]=== | ||
يجري عملية المقارنة | يجري عملية المقارنة. | ||
===[[Ruby/Module/3D-3D | التابع ==]]=== | ===[[Ruby/Module/3D-3D | التابع ==]]=== | ||
معامل التساوي | معامل التساوي. | ||
===[[Ruby/Module/3D-3D-3D | التابع ===]]=== | ===[[Ruby/Module/3D-3D-3D | التابع ===]]=== | ||
يعيد القيمة <code>true</code> إن كان الوسيط obj نسخة (instance ) من الوسيط mod أو من أحد الأصناف المنحدرة منه | يعيد القيمة <code>true</code> إن كان الوسيط <code>obj</code> نسخة (instance ) من الوسيط <code>mod</code> أو من أحد الأصناف المنحدرة منه. | ||
===[[Ruby/Module/3E | التابع >]]=== | ===[[Ruby/Module/3E | التابع >]]=== | ||
يعيد القيمة | يعيد القيمة tr<code>u</code>e إن كان الوسيط <code>mod</code> سلفًا (ancestor) للوسيط <code>other</code>. أو يعيد القيمة <code>nil</code> إن لم تكن بينهما أي علاقة | ||
===[[Ruby/Module/3E-3D | التابع >=]]=== | |||
يعيد القيمة true إن كان الوسيط mod سلفًا (ancestor) للوسيط | === [[Ruby/Module/3E-3D | التابع >=]] === | ||
يعيد القيمة <code>true</code> إن كان الوسيط <code>mod</code> سلفًا (ancestor) للوسيط <code>other</code>، أو إن كانت الوحدتان متساويتين. يعيد القيمة <code>nil</code> إن لم تكن بينها أي علاقة. | |||
===[[Ruby/Module/alias_method | التابع alias_method]]=== | ===[[Ruby/Module/alias_method | التابع alias_method]]=== | ||
يجعل الوسيط new_name نسخة جديدة من التابع old_name | يجعل الوسيط <code>new_name</code> نسخة جديدة من التابع <code>old_name</code>. | ||
===[[Ruby/Module/ancestors | التابع ancestors]]=== | ===[[Ruby/Module/ancestors | التابع ancestors]]=== | ||
يعيد قائمة مكونة الوحدات المُتضمنة / المضافة إلى الوحدة (بما في ذلك الوحدة نفسها). | يعيد قائمة مكونة الوحدات المُتضمنة / المضافة إلى الوحدة (بما في ذلك الوحدة نفسها). | ||
===[[Ruby/Module/append_features | التابع append_features]]=== | ===[[Ruby/Module/append_features | التابع append_features]]=== | ||
عندما تكون هذه الوحدة مُضمّنة في وحدة أخرى، فستستدعي روبي <code>append_features</code> في هذه الوحدة، | عندما تكون هذه الوحدة مُضمّنة في وحدة أخرى، فستستدعي روبي <code>append_features</code> في هذه الوحدة، | ||
===[[Ruby/Module/attr | التابع attr]]=== | ===[[Ruby/Module/attr | التابع attr]]=== | ||
الشكل الأول مكافئ لـ <code>attr_reader</code>. أما الشكل الثاني فيكافئ <code>attr_accessor(name) | الشكل الأول مكافئ لـ <code>attr_reader</code>. أما الشكل الثاني فيكافئ <code>attr_accessor(name).</code> | ||
===[[Ruby/Module/attr_accessor | التابع attr_accessor]]=== | ===[[Ruby/Module/attr_accessor | التابع attr_accessor]]=== | ||
يحدد خاصية مسماة (named attribute) لهذه الوحدة | يحدد خاصية مسماة (named attribute) لهذه الوحدة. | ||
===[[Ruby/Module/attr_reader | التابع attr_reader]]=== | ===[[Ruby/Module/attr_reader | التابع attr_reader]]=== | ||
ينشئ متغيرات نسخ (instance variables) والتوابع المقابلة التي تعيد قيمة كل متغير نسخ | ينشئ متغيرات نسخ (instance variables) والتوابع المقابلة التي تعيد قيمة كل متغير نسخ. | ||
===[[Ruby/Module/attr_writer | التابع attr_writer]]=== | ===[[Ruby/Module/attr_writer | التابع attr_writer]]=== | ||
ينشئ | ينشئ التابع <code>attr_writer</code> مدخلًا (accessor method) للسماح بتعيين قيم الخاصية <code>''symbol''.id2name</code>. | ||
===[[Ruby/Module/autoload | التابع autoload]]=== | ===[[Ruby/Module/autoload | التابع autoload]]=== | ||
يُُسجل اسم الملف المراد تحميله (باستخدام <code>Kernel::require</code>) في أول مرة يتم فيها الدخول إلى | يُُسجل اسم الملف المراد تحميله (باستخدام <code>Kernel::require</code>) في أول مرة يتم فيها الدخول إلى الوحدة. | ||
===[[Ruby/Module/autoload-3F | التابع autoload?]]=== | ===[[Ruby/Module/autoload-3F | التابع autoload?]]=== | ||
يعيد اسم الملف الذي سيُحمل إن كان الوسيط المعطى مسجلًا كـ <code>autoload</code> في مجال أسماء الوحدة . | يعيد اسم الملف الذي سيُحمل إن كان الوسيط المعطى مسجلًا كـ <code>autoload</code> في مجال أسماء الوحدة. | ||
===[[Ruby/Module/class_eval | التابع class_eval]]=== | ===[[Ruby/Module/class_eval | التابع class_eval]]=== | ||
يُقبّم السلسلة النصية أو الكتلة المعطاة في سياق الوحدة | يُقبّم السلسلة النصية أو الكتلة المعطاة في سياق الوحدة. | ||
===[[Ruby/Module/class_exec | التابع class_exec]]=== | ===[[Ruby/Module/class_exec | التابع class_exec]]=== | ||
يقيم الكتلة المعطاة في سياق الصنف/الوحدة | يقيم الكتلة المعطاة في سياق الصنف/الوحدة. | ||
===[[Ruby/Module/class_variable_defined-3F | التابع class_variable_defined?]]=== | ===[[Ruby/Module/class_variable_defined-3F | التابع class_variable_defined?]]=== | ||
يعيد القيمة <code>true</code> إن كان متغير الصنف (class variable) المعطى مٌعرّفا في | يعيد القيمة <code>true</code> إن كان متغير الصنف (class variable) المعطى مٌعرّفا في الوسيط <code>obj</code>. | ||
===[[Ruby/Module/class_variable_get | التابع class_variable_get]]=== | ===[[Ruby/Module/class_variable_get | التابع class_variable_get]]=== | ||
يعيد قيمة متغير الصنف المعطى (أو يطلق استثناء <code>NameError</code>) | يعيد قيمة متغير الصنف المعطى (أو يطلق استثناء <code>NameError</code>). | ||
===[[Ruby/Module/class_variable_set | التابع class_variable_set]]=== | ===[[Ruby/Module/class_variable_set | التابع class_variable_set]]=== | ||
يضبط قيمة متغير الصنف المحدد بالوسيط symbol ويحيل إليه الكائن المعطى obj | يضبط قيمة متغير الصنف المحدد بالوسيط <code>symbol</code> ويحيل إليه الكائن المعطى <code>obj</code>. | ||
===[[Ruby/Module/class_variables | التابع class_variables]]=== | ===[[Ruby/Module/class_variables | التابع class_variables]]=== | ||
يعيد مصفوفة مكونة من أسماء متغيرات الصنف في الوحدة | يعيد مصفوفة مكونة من أسماء متغيرات الصنف في الوحدة. | ||
===[[Ruby/Module/const_defined-3F | التابع const_defined?]]=== | ===[[Ruby/Module/const_defined-3F | التابع const_defined?]]=== | ||
يتحقق | يتحقق التابع <code>const_defined?</code> مما إذا كانت الوحدة التي استُدعي معها أو أحد أسلافها (ancestors) تحتوي الثابت المعطى. | ||
===[[Ruby/Module/const_get | التابع const_get]]=== | ===[[Ruby/Module/const_get | التابع const_get]]=== | ||
يتحقق من وجود ثابت بالاسم المحدد في الوحدة | يتحقق من وجود ثابت بالاسم المحدد في الوحدة. | ||
===[[Ruby/Module/const_missing | التابع const_missing]]=== | ===[[Ruby/Module/const_missing | التابع const_missing]]=== | ||
يُستدعى عند محاولة استخدام ثابت غير معرف في الوحدة. | يُستدعى عند محاولة استخدام ثابت غير معرف في الوحدة. | ||
===[[Ruby/Module/const_set | التابع const_set]]=== | ===[[Ruby/Module/const_set | التابع const_set]]=== | ||
يضبط قيمة الثابت المعطى عند الكائن المحدد | يضبط قيمة الثابت المعطى عند الكائن المحدد. | ||
===[[Ruby/Module/constants | التابع constants]]=== | ===[[Ruby/Module/constants | التابع constants]]=== | ||
يعيد مصفوفة من أسماء كل الثوابت التي يمكن الوصول إليها لحظة الاستدعاء. | |||
===[[Ruby/Module/define_method | التابع define_method]]=== | ===[[Ruby/Module/define_method | التابع define_method]]=== | ||
يعرف تابع | يعرف تابع النُسخ (instance method) في المُستقبِل (receiver). | ||
===[[Ruby/Module/deprecate_constant | التابع deprecate_constant]]=== | ===[[Ruby/Module/deprecate_constant | التابع deprecate_constant]]=== | ||
يضع قائمة بالثوابت الموجودة المُتجاوزة. | يضع قائمة بالثوابت الموجودة المُتجاوزة. | ||
===[[Ruby/Module/extend_object | التابع extend_object]]=== | ===[[Ruby/Module/extend_object | التابع extend_object]]=== | ||
يوسع الكائن المعطى بإضافة ثوابت و توابع هذه الوحدة | يوسع الكائن المعطى بإضافة ثوابت و توابع هذه الوحدة. | ||
===[[Ruby/Module/extended | التابع extended]]=== | ===[[Ruby/Module/extended | التابع extended]]=== | ||
يكافئ <code>included</code>، إلا أنه يُستخدم مع الوحدات الموسعة (extended modules). | يكافئ <code>included</code>، إلا أنه يُستخدم مع الوحدات الموسعة (extended modules). | ||
سطر 80: | سطر 97: | ||
يعيد القيمة <code>true</code> إن كانت الوحدة المعطاة module مُضمّنة في الوحدة أو أحد أسلافها (ancestors). | يعيد القيمة <code>true</code> إن كانت الوحدة المعطاة module مُضمّنة في الوحدة أو أحد أسلافها (ancestors). | ||
===[[Ruby/Module/included | التابع included]]=== | ===[[Ruby/Module/included | التابع included]]=== | ||
يُستدعى في كل مرة يتم تضمين المتلقي (receiver) في وحدة أو صنف آخر | يُستدعى في كل مرة يتم تضمين المتلقي (receiver) في وحدة أو صنف آخر. | ||
===[[Ruby/Module/included_modules | التابع included_modules]]=== | ===[[Ruby/Module/included_modules | التابع included_modules]]=== | ||
يعيد قائمة بالوحدات المضمنة في الوحدة . | يعيد قائمة بالوحدات المضمنة في الوحدة. | ||
===[[Ruby/Module/inspect | التابع inspect]]=== | ===[[Ruby/Module/inspect | التابع inspect]]=== | ||
<code>inspect</code> هو اسم آخر للتابع <code>[[Ruby/Module/to s|to_s]]</code>. | |||
===[[Ruby/Module/instance_method | التابع instance_method]]=== | ===[[Ruby/Module/instance_method | التابع instance_method]]=== | ||
يعيد | يعيد التابع <code>instance_method</code> كائن <code>UnboundMethod</code> يمثل تابع النسخة (instance method) المعطى في الوحدة التي استُدعي معها. | ||
===[[Ruby/Module/instance_methods | التابع instance_methods]]=== | ===[[Ruby/Module/instance_methods | التابع instance_methods]]=== | ||
يعيد مصفوفة تحتوي على أسماء توابع النسخ (instance methods) العامة والمحمية (protected) في المستقبِل (receiver). | يعيد مصفوفة تحتوي على أسماء توابع النسخ (instance methods) العامة والمحمية (protected) في المستقبِل (receiver). | ||
=== [[Ruby/Module/constants-i|التابع constants]]=== | |||
يعيد التابع <code>constants</code> مصفوفة من أسماء كل الثوابت التي يمكن الوصول إليها من الوحدة. | |||
===[[Ruby/Module/method_added | التابع method_added]]=== | ===[[Ruby/Module/method_added | التابع method_added]]=== | ||
يُستدعى في كل مرة يُضاف تابع نسخة (instance method) إلى المُستقبِل (receiver). | يُستدعى في كل مرة يُضاف تابع نسخة (instance method) إلى المُستقبِل (receiver). | ||
===[[Ruby/Module/method_defined-3F | التابع method_defined?]]=== | ===[[Ruby/Module/method_defined-3F | التابع method_defined?]]=== | ||
يعيد القيمة <code>true</code> إن كان التابع المعطى مُعرّفا في الوحدة أو الصنف (أو الوحدات المُتضمنة فيه، وإن كان صنفًا فأسلافه) | يعيد القيمة <code>true</code> إن كان التابع المعطى مُعرّفا في الوحدة أو الصنف (أو الوحدات المُتضمنة فيه، وإن كان صنفًا فأسلافه). | ||
===[[Ruby/Module/method_removed | التابع method_removed]]=== | ===[[Ruby/Module/method_removed | التابع method_removed]]=== | ||
يستدعى | يستدعى في كل مرة يُزال تابع نسخة (instance method) من المُستقبِل (receiver). | ||
===[[Ruby/Module/module_eval | التابع module_eval]]=== | ===[[Ruby/Module/module_eval | التابع module_eval]]=== | ||
يُقيّم السلسلة النصية أو الكتلة المعطاة في سياق الوحدة، | يُقيّم السلسلة النصية أو الكتلة المعطاة في سياق الوحدة، | ||
===[[Ruby/Module/module_exec | التابع module_exec]]=== | ===[[Ruby/Module/module_exec | التابع module_exec]]=== | ||
يقيّم الكتلة الممررة في سياق الصنف/الوحدة | يقيّم الكتلة الممررة في سياق الصنف/الوحدة. | ||
===[[Ruby/Module/module_function | التابع module_function]]=== | ===[[Ruby/Module/module_function | التابع module_function]]=== | ||
ينشئ دوال وحدة (module functions) للتابع المعطى | ينشئ دوال وحدة (module functions) للتابع المعطى. | ||
===[[Ruby/Module/name | التابع name]]=== | ===[[Ruby/Module/name | التابع name]]=== | ||
يعيد اسم الوحدة. أو يعيد القيمة nil إن كانت الوحدات مجهولة (anonymous modules). | يعيد اسم الوحدة. أو يعيد القيمة <code>nil</code> إن كانت الوحدات مجهولة (anonymous modules). | ||
===[[Ruby/Module/prepend | التابع prepend]]=== | ===[[Ruby/Module/prepend | التابع prepend]]=== | ||
يستدعي التابع <code>Module.prepend_features</code> على كل الوسائط المعطاة بترتيب عكسي. | يستدعي التابع <code>Module.prepend_features</code> على كل الوسائط المعطاة بترتيب عكسي. | ||
===[[Ruby/Module/prepend_features | التابع prepend_features]]=== | ===[[Ruby/Module/prepend_features | التابع prepend_features]]=== | ||
عندما تُرفق هذه الوحدة مع أخرى، تستدعي روبي التابع <code>prepend_features</code> في هذه | عندما تُرفق هذه الوحدة مع أخرى، تستدعي روبي التابع <code>prepend_features</code> في هذه الوحدة. | ||
===[[Ruby/Module/prepended | التابع prepended]]=== | ===[[Ruby/Module/prepended | التابع prepended]]=== | ||
يكافئ <code>included</code> ، ولكنه للوحدات المُرفقة (prepended modules). | يكافئ <code>included</code> ، ولكنه للوحدات المُرفقة (prepended modules). | ||
===[[Ruby/Module/private | التابع private]]=== | ===[[Ruby/Module/private | التابع private]]=== | ||
إذا استُدعي | إذا استُدعي التابع <code>private</code> دون إعطائه وسائط، فسيُعيّن المنظورية (visibility) الافتراضية للتوابع المحددة لاحقًا عند القيمة <code>private</code>. أما في حال تمرير وسائط، فسيضبط منظورية التوابع عند القيمة <code>private</code>. تُحوّل الوسائط النصية <code>String</code> إلى رموز. | ||
===[[Ruby/Module/private_class_method | التابع private_class_method]]=== | ===[[Ruby/Module/private_class_method | التابع private_class_method]]=== | ||
يجعل توابع الصف الحالية خاصة (private) | يجعل توابع الصف الحالية خاصة (private). | ||
===[[Ruby/Module/private_constant | التابع private_constant]]=== | ===[[Ruby/Module/private_constant | التابع private_constant]]=== | ||
يجعل قائمة الثوابت الموجودة الخاصة. | يجعل قائمة الثوابت الموجودة الخاصة. | ||
===[[Ruby/Module/private_instance_methods | التابع private_instance_methods]]=== | ===[[Ruby/Module/private_instance_methods | التابع private_instance_methods]]=== | ||
يعيد قائمة بتوابع النسخة (instance methods) الخاصة (private) المعرفة في | يعيد قائمة بتوابع النسخة (instance methods) الخاصة (private) المعرفة في <code>mod</code>. | ||
===[[Ruby/Module/private_method_defined-3F | التابع private_method_defined?]]=== | ===[[Ruby/Module/private_method_defined-3F | التابع private_method_defined?]]=== | ||
يعيد القيمة <code>true</code> إن كان التابع الخاص المعطى معرفًا من طرف | يعيد القيمة <code>true</code> إن كان التابع الخاص المعطى معرفًا من طرف <code>_ mod_</code>. | ||
===[[Ruby/Module/protected | التابع protected]]=== | ===[[Ruby/Module/protected | التابع protected]]=== | ||
يضبط المنظورية (visibility) الافتراضية للتوابع عند القيمة protected. | |||
===[[Ruby/Module/protected_instance_methods | التابع protected_instance_methods]]=== | ===[[Ruby/Module/protected_instance_methods | التابع protected_instance_methods]]=== | ||
يعيد | يعيد التابع <code>protected_instance_methods</code> قائمة بتوابع النسخة (instance methods) المحمية المعرفة في الوحدة. إذا كان الوسيط الاختياري يساوي <code>false</code> ، فلن تُتضمّن توابع الأسلاف (ancestors). | ||
===[[Ruby/Module/protected_method_defined-3F | التابع protected_method_defined?]]=== | ===[[Ruby/Module/protected_method_defined-3F | التابع protected_method_defined?]]=== | ||
يعيد | يعيد التابع <code>protected_method_defined?</code> القيمة <code>true</code> إن كان التابع المحمي (protected) المعطى معرفًا في الوحدة (أو الوحدات المُتضمنة فيه، أو أسلافه إن كان صنفًا). | ||
===[[Ruby/Module/public | التابع public]]=== | ===[[Ruby/Module/public | التابع public]]=== | ||
في حال استدعاء | في حال استدعاء التابع <code>public</code> بدون وسائط، فسيضبط المنظورية (visibility) الافتراضية للتوابع المعرفة لاحقًا عند القيمة <code>public</code>. أما في حال تمرير وسائط، فسيضبط منضورية التوابع المعطاة عند القيمة <code>public</code>. | ||
===[[Ruby/Module/public_class_method | التابع public_class_method]]=== | ===[[Ruby/Module/public_class_method | التابع public_class_method]]=== | ||
يصنع قائمة بتوابع الصنف العامة (public) الحالية. | يصنع قائمة بتوابع الصنف العامة (public) الحالية. | ||
سطر 134: | سطر 152: | ||
يصنع قائمة بالثوابت العامة (public) الموجودة. | يصنع قائمة بالثوابت العامة (public) الموجودة. | ||
===[[Ruby/Module/public_instance_method | التابع public_instance_method]]=== | ===[[Ruby/Module/public_instance_method | التابع public_instance_method]]=== | ||
على | على غرار <code>''[[Ruby/Module/instance method|instance_method]]''</code>، يبحث التابع <code>public_instance_method</code> عن التوابع العامة (<code>public</code>) وحسب. | ||
===[[Ruby/Module/public_instance_methods | التابع public_instance_methods]]=== | ===[[Ruby/Module/public_instance_methods | التابع public_instance_methods]]=== | ||
يعيد قائمة بتوابع النسخة (instance methods) العامة (public) المعرفة في | يعيد قائمة بتوابع النسخة (instance methods) العامة (public) المعرفة في <code>mod</code>. | ||
===[[Ruby/Module/public_method_defined-3F | التابع public_method_defined?]]=== | ===[[Ruby/Module/public_method_defined-3F | التابع public_method_defined?]]=== | ||
يعيد القيمة <code>true</code> إن كان التابع العام (public) المعطى معرفًا بواسطة | يعيد القيمة <code>true</code> إن كان التابع العام (public) المعطى معرفًا بواسطة <code>mod</code>. | ||
===[[Ruby/Module/refine | التابع refine]]=== | ===[[Ruby/Module/refine | التابع refine]]=== | ||
يُهذب (refine) الوحدة المتلقية (receiver). | يُهذب (refine) الوحدة المتلقية (receiver). | ||
===[[Ruby/Module/remove_class_variable | التابع remove_class_variable]]=== | ===[[Ruby/Module/remove_class_variable | التابع remove_class_variable]]=== | ||
يزيل تعريف الوسيط المعطى sym ، ثم يعيد قيمة ذلك الثابت. | يزيل تعريف الوسيط المعطى <code>sym</code> ، ثم يعيد قيمة ذلك الثابت. | ||
===[[Ruby/Module/remove_const | التابع remove_const]]=== | ===[[Ruby/Module/remove_const | التابع remove_const]]=== | ||
يزيل تعريف الثابت المعطى، ويعيد القيمة السابقة لذلك الثابت | يزيل تعريف الثابت المعطى، ويعيد القيمة السابقة لذلك الثابت. | ||
===[[Ruby/Module/remove_method | التابع remove_method]]=== | ===[[Ruby/Module/remove_method | التابع remove_method]]=== | ||
يزيل التوابع المحددة بواسطة الوسيط | يزيل التوابع المحددة بواسطة الوسيط <code>symbol</code> من الصنف الحالي. | ||
===[[Ruby/Module/singleton_class-3F | التابع singleton_class?]]=== | ===[[Ruby/Module/singleton_class-3F | التابع singleton_class?]]=== | ||
يعيد القيمة <code>true</code> إن كان mod صنفا مفردًا (singleton class )، وإلا فسيعيد القيمة <code>false</code> . | يعيد القيمة <code>true</code> إن كان <code>mod</code> صنفا مفردًا (singleton class )، وإلا فسيعيد القيمة <code>false</code> . | ||
===[[Ruby/Module/to_s | التابع to_s]]=== | ===[[Ruby/Module/to_s | التابع to_s]]=== | ||
يعيد سلسلة نصية تمثل هذه الوحدة أو الصنف | يعيد سلسلة نصية تمثل هذه الوحدة أو الصنف. | ||
===[[Ruby/Module/undef_method | التابع undef_method]]=== | ===[[Ruby/Module/undef_method | التابع undef_method]]=== | ||
يمنع الصنف الحالي من الاستجابة للاستدعاءات الموجهة إلى التابع المعطى | يمنع الصنف الحالي من الاستجابة للاستدعاءات الموجهة إلى التابع المعطى. | ||
===[[Ruby/Module/using | التابع using]]=== | ===[[Ruby/Module/using | التابع using]]=== | ||
يستورد الأصناف المهذبة (class refinements) من الوحدة نحو التعريف الحالي للصنف أو الوحدة. | يستورد الأصناف المهذبة (class refinements) من الوحدة نحو التعريف الحالي للصنف أو الوحدة. | ||
==مصادر<span> </span>== | ==مصادر<span> </span>== | ||
*[http://ruby-doc.org/core-2.5.1/ | *[http://ruby-doc.org/core-2.5.1/Module.html قسم الصنف Module في توثيق روبي الرسمي.] | ||
<noinclude>{{DISPLAYTITLE: صفحة الصنف <code>Module</code> في روبي}}</noinclude> | <noinclude>{{DISPLAYTITLE: صفحة الصنف <code>Module</code> في روبي}}</noinclude> | ||
[[تصنيف: Ruby]] | [[تصنيف: Ruby]] | ||
[[تصنيف: Module]] | [[تصنيف: Module]] |
مراجعة 10:58، 27 أكتوبر 2018
الوحدات (كائنات 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
يعيد مصفوفة مكونة أسماء كل الثوابت التي يمكن الوصول إليها لحظة الاستدعاء.
التابع nesting
يعيد قائمة من الوحدات (Modules
) المتشعبة لحظة الاستدعاء.
التابع new
ينشئ وحدة مجهولة (anonymous module) جديدة.
التابع used_modules
يعيد مصفوفة تحتوي جميع الوحدات (constant) المستخدمة في النطاق الحالي.
توابع النسخة العامة (Public Instance Methods)
التابع <
يعد القيمة true
إن كان الوسيط mod
صنفًا فرعيا من other
. أو يعيدnil
إن لم تكن بينهما أي علاقة.
التابع <=
يعيد القيمة true
إن كان الوسيط mod
صنفًا فرعيًا من other
أو كان يساويه. أو يعد nil
إذا لم تكن بينهما أي علاقة.
التابع <=>
يجري عملية المقارنة.
التابع ==
معامل التساوي.
التابع ===
يعيد القيمة true
إن كان الوسيط obj
نسخة (instance ) من الوسيط mod
أو من أحد الأصناف المنحدرة منه.
التابع >
يعيد القيمة tru
e إن كان الوسيط mod
سلفًا (ancestor) للوسيط other
. أو يعيد القيمة nil
إن لم تكن بينهما أي علاقة
التابع >=
يعيد القيمة true
إن كان الوسيط mod
سلفًا (ancestor) للوسيط other
، أو إن كانت الوحدتان متساويتين. يعيد القيمة nil
إن لم تكن بينها أي علاقة.
التابع alias_method
يجعل الوسيط new_name
نسخة جديدة من التابع old_name
.
التابع ancestors
يعيد قائمة مكونة الوحدات المُتضمنة / المضافة إلى الوحدة (بما في ذلك الوحدة نفسها).
التابع append_features
عندما تكون هذه الوحدة مُضمّنة في وحدة أخرى، فستستدعي روبي append_features
في هذه الوحدة،
التابع attr
الشكل الأول مكافئ لـ attr_reader
. أما الشكل الثاني فيكافئ attr_accessor(name).
التابع attr_accessor
يحدد خاصية مسماة (named attribute) لهذه الوحدة.
التابع attr_reader
ينشئ متغيرات نسخ (instance variables) والتوابع المقابلة التي تعيد قيمة كل متغير نسخ.
التابع attr_writer
ينشئ التابع attr_writer
مدخلًا (accessor method) للسماح بتعيين قيم الخاصية symbol.id2name
.
التابع autoload
يُُسجل اسم الملف المراد تحميله (باستخدام Kernel::require
) في أول مرة يتم فيها الدخول إلى الوحدة.
التابع 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) من الوحدة نحو التعريف الحالي للصنف أو الوحدة.