الفرق بين المراجعتين لصفحة: «Ruby/Module»

من موسوعة حسوب
أنشأ الصفحة ب' ==توابع الصنف العامة (Public Class Methods)== === التابع constants=== في الشكل الأول، يعيد مصفوف...'
 
مراجعة وتدقيق.
 
(5 مراجعات متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE:الصنف <code>Module</code> في روبي}}</noinclude>
الصنف <code>Module</code> هو مجموعة من التوابع والثوابت. التوابع الموجودة في الوحدات <code>Module</code> قد تكون إما توابع نسخة (instance methods)، أو توابع وحدة (module methods). توابع النسخة تظهر كتوابع في صنفٍ عند تضمين الوحدة، وذلك على خلاف توابع الوحدة. وعلى النقيض، يمكن استدعاء توابع الوحدة دون إنشاء كائن يُغلفها، بينما قد لا يمكن فعل ذلك مع توابع النسخة. انظر صفحة <code>[[Ruby/Module/module function|module_function]]</code>.


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


== توابع النسخة الخاصة (Private Instance Methods) ==


===[[Ruby/Module/append features|<code>append_features</code>]]===
عندما تكون هذه الوحدة مُضمّنة في وحدة أخرى، فستستدعي روبي التابع <code>append_features</code> في هذه الوحدة، وتمرر إليه الوحدة المستقبلة (receiving module) التي استُدعيت معه.
===[[Ruby/Module/extend object|<code>extend_object</code>]]===
يوسع الكائن المعطى بإضافة ثوابت و توابع هذه الوحدة (والتي تُضاف كتوابع فردية [singleton methods]).
===[[Ruby/Module/extended|<code>extended</code>]]===
يكافئ التابع <code>[[Ruby/Module/included|included]]</code> إلا أنه يُستخدم مع الوحدات الموسعة (extended modules).
===[[Ruby/Module/included|<code>included</code>]]===
يمثِّل رد نداء يُستدعَى في كل مرة يتم تضمين المستقبل (receiver) في وحدة أو صنف آخر.
===[[Ruby/Module/method added|<code>method_added</code>]]===
يُستدعَى في كل مرة يُضاف تابع نسخة (instance method) إلى المُستقبِل (receiver).
===[[Ruby/Module/method removed|<code>method_removed</code>]]===
يستدعى في كل مرة يُزال تابع نسخة (instance method) من المُستقبِل (receiver).
===<code>[[Ruby/Module/method undefined|method_undefined‎]]</code>===
غير موثَّق بعد.
===[[Ruby/Module/module function|<code>module_function</code>]]===
ينشئ دوال وحدة (module functions) للتوابع المعطاة.
===[[Ruby/Module/prepend features|<code>prepend_features</code>]]===
يُستدعَى في الوحدة المعطاة عندما تُرفق هذه الوحدة في أخرى، وتُمرَّر إليها الوحدة المُستقبِلة (receiving module) في الوحدة التي مُمرِّرت إليه.
===[[Ruby/Module/prepended|<code>prepended</code>]]===
يكافئ التابع <code>[[Ruby/Module/included|included]]</code> باستثناء أنَّه مخصص للوحدات المُرفقة (prepended modules).
===[[Ruby/Module/private|<code>private</code>]]===
يعين [[Ruby/modules and classes#.D8.A7.D9.84.D9.85.D8.B1.D8.A6.D9.8A.D8.A9|المرئية]] (visibility) الافتراضية للتوابع المحددة لاحقًا إلى المرئية <code>private</code>الخاصة إن استدعي دون تمرير أي شيء إليه. أما في حال تمرير اسم تابع (أو عدة توابع إليه)، فسيضبط<nowiki/>[[Ruby/modules and classes#.D8.A7.D9.84.D9.85.D8.B1.D8.A6.D9.8A.D8.A9|مرئية]] هذه التوابع إلى المرئية <code>private</code> الخاصة.
===[[Ruby/Module/protected|<code>protected</code>]]===
يعين [[Ruby/modules and classes#.D8.A7.D9.84.D9.85.D8.B1.D8.A6.D9.8A.D8.A9|المرئية]] (visibility) الافتراضية للتوابع المعرفة لاحقًا إلى المرئية<code>protected</code> المحمية إن لم يمُرَّر إليه أي شيء. أما في حال تمرير اسم تابع (أو عدة توابع إليه)، فسيضبط <nowiki/>[[Ruby/modules and classes#.D8.A7.D9.84.D9.85.D8.B1.D8.A6.D9.8A.D8.A9|مرئية]] هذه التوابع المرئية <code>protected</code> المحمية. 
===[[Ruby/Module/public|<code>public</code>]]===
يعين [[Ruby/modules and classes#.D8.A7.D9.84.D9.85.D8.B1.D8.A6.D9.8A.D8.A9|المرئية]] (visibility) الافتراضية للتوابع المعرفة لاحقًا إلى <code>public</code> العامة إن لم يمُرَّر إليه أي شيء. أما في حال تمرير اسم تابع (أو عدة توابع إليه)، فسيضبط <nowiki/>[[Ruby/modules and classes#.D8.A7.D9.84.D9.85.D8.B1.D8.A6.D9.8A.D8.A9|مرئية]] هذه التوابع المرئية <code>public</code> العامة. 
===[[Ruby/Module/refine|<code>refine</code>]]===
[[Ruby/refinements|يحسِّن]] (refine) الوحدة المستقبلة (receiver) ثم يعيد <nowiki/>[[Ruby/Module|الوحدة]] التي عُرِّفت فيها<nowiki/>[[Ruby/refinements|التوابع المحسَّنة]].
===[[Ruby/Module/remove const|<code>remove_const</code>]]===
يزيل تعريف ثابت محدَّد، ويعيد القيمة السابقة له.
===[[Ruby/Module/using|<code>using</code>]]===
يستورد [[Ruby/refinements|الأصناف المحسَّنة]] (class refinements) من الوحدة المٌمررة إليه إلى التعريف الحالي للصنف أو الوحدة.
==مصادر<span> </span>==
==مصادر<span> </span>==
*[http://ruby-doc.org/core-2.5.1/Marshal.html قسم الصنف Module في توثيق روبي الرسمي.]
*[http://ruby-doc.org/core-2.5.1/Module.html قسم الصنف Module في توثيق روبي الرسمي.]
<noinclude>{{DISPLAYTITLE: صفحة الصنف <code>Module</code> في روبي}}</noinclude>
[[تصنيف: Ruby]]
[[تصنيف: Ruby]]
[[تصنيف: Module]]
[[تصنيف: Ruby Class]]
[[تصنيف: Ruby Module]]
[[تصنيف: Ruby Module Class]]

المراجعة الحالية بتاريخ 18:13، 19 نوفمبر 2018

الصنف 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

ينشئ اسمًا جديدًا (بديلًا) لتابع محدَّد.

ancestors

يعيد قائمة مكونة الوحدات المُتضمنة/المضافة إلى الوحدة التي استُدعيت معها (بما في ذلك الوحدة نفسها).

attr

يكافئ التابع attr_reader.

attr_accessor

يحدد خاصية مسماة (named attribute) لهذه الوحدة.

attr_reader

ينشئ متغيرات نسخ (instance variables) والتوابع المقابلة التي تعيد قيمة كل متغير نسخ.

attr_writer

ينشئ تابع وصول (accessor method) للسماح بتعيين قيمة للخاصيةsymbol.id2name.

autoload

يُُسجل اسم الملف المراد تحميله (باستخدام Kernel::require) في أول مرة يتم فيها الدخول إلى الوحدة.

autoload?‎

يعيد اسم الملف الذي سيُحمل إن كان المعامل المعطى مسجلًا عبر التابعautoload في مجال أسماء الوحدة التي استُدعي معها.

class_eval

يُقيِّم السلسلة النصية أو الكتلة المعطاة في سياق الوحدة.

class_exec

يقيِّم الكتلة المعطاة في سياق الصنف/الوحدة التي استُدعي معها.

?class_variable_defined

يتحقق إن كان متغير الصنف (class variable) المعطى مٌعرّفا في الكائن الذي استُدعي معه.

class_variable_get

يعيد قيمة متغير الصنف المعطى (أو يطلق الاستثناءNameError).

class_variable_set

يضبط قيمة متغير الصنف المحدد بالمعامل المُمرَّر ويحيل إليه قيمة محدَّدة.

class_variables

يعيد مصفوفة مكونة من أسماء متغيرات الصنف في الوحدة التي استُدعي معها.

?const_defined

يتحقق مما إذا كانت الوحدة التي استُدعي معها أو أحد أسلافها (ancestors) تحوي الثابت المعطى.

const_get

يتحقق من وجود ثابت باسم محدد في الوحدة التي استُدعي معها. 

const_missing

يُستدعى عند محاولة استخدام ثابت غير معرف في الوحدة.

const_set

يضبط قيمة ثابت محدَّد إلى قيمة الكائن المعطى ثم يعيد ذلك الكائن.

constants

يعيد مصفوفة من أسماء كل الثوابت التي يمكن الوصول إليها لحظة الاستدعاء. 

define_method

يعرّف تابع نُسخة (instance method) في المُستقبِل (receiver). 

deprecate_constant

ينشئ قائمة بالثوابت الموجودة المهملة.

freeze

يمنع إجراء المزيد من التعديلات على الوحدة.

include

يستدعي التابع append_features على كل المعاملات المُمرَّرة بترتيب عكسي.

?‎include

يتحقق إن كانت الوحدة المعطاة مُضمّنة في الوحدة التي استُدعي معها أو أحد أسلافها (ancestors).

included_modules

يعيد قائمة بالوحدات المضمنة في الوحدة التي استُدعي معها.

inspect

هو اسم بديل للتابع to_s.

instance_method

يعيد كائنًا من النوع UnboundMethod يمثل تابع النسخة (instance method) المعطى في الوحدة التي استُدعي معها.

instance_methods

يعيد مصفوفةً تحتوي على أسماء توابع النسخ (instance methods) العامة والمحمية (protected) في المستقبِل. 

constants

يعيد مصفوفة من أسماء كل الثوابت التي يمكن الوصول إليها من الوحدة.

?method_defined

يتحقق إن كان التابع المعطى مُعرّفًا في الوحدة أو الصنف (أو في الوحدات المُتضمنة فيه، وإن كان صنفًا في أسلافه).

module_eval

يُقيّم السلسلة النصية أو الكتلة المعطاة في سياق الوحدة.

module_exec

يقيّم الكتلة الممررة في سياق الصنف/الوحدة.

name

يعيد اسم الوحدة، أو يعيد القيمة nil إن كانت الوحدة مجهولة (anonymous modules).

prepend

يستدعي التابع prepend_features على كل المعاملات المعطاة بترتيب عكسي.

private_class_method

يجعل توابع صنفٍ محدَّدٍ خاصة (private).

private_constant

ينشئ قائمة بالثوابت الخاصة الموجودة.

private_instance_methods

يعيد قائمة بتوابع النسخة الخاصة (private instance methods) المعرفة في الوحدة.

private_method_defined?‎

يتحقق إن كان التابع الخاص (private) المعطى معرَّفًا من قِبَل _ mod_ (أو الوحدات المتضمنة فيه، وأسلافه [ancestors] إن كان صنفًا).

protected_instance_methods

يعيد قائمة بتوابع النسخة (instance methods) المحمية المعرفة في الوحدة.

protected_method_defined?‎

يتحقق إن كان التابع المحمي (protected) المعطى معرفًا في الوحدة (أو الوحدات المُتضمنة فيه، أو أسلافه إن كان صنفًا).

public_class_method

ينشئ قائمةً بتوابع الصنف العامة الحالية.

public_constant

ينشئ قائمةً بالثوابت العامة الموجودة.

public_instance_method

يبحث عن التوابع العامة (public) وحسب على غرار التابعinstance_method.

public_instance_methods

يعيد قائمة بتوابع النسخة العامة (public instance methods) المعرفة في الوحدة.

public_method_defined?‎

يتحقق إن كان التابع العام (public method) المعطى معرفًا في الوحدة/الصنف (أو الوحدات المتضمنة فيه، أو أسلافه إن كان صنفا).

remove_class_variable

يزيل تعريف متغير محدَّد من صنفٍ ثم يعيد قيمة ذلك الثابت.

remove_method

يزيل تابعًا ذا اسم محدَّد من الصنف الحالي.

singleton_class?‎

يتحقق إن كان الصنف الذي استُدعي معه صنفا مفردًا (singleton class).

to_s

يعيد سلسلة نصية تمثل الوحدة أو الصنف الذي استدعي معه. 

undef_method

يمنع الصنف الحالي من الاستجابة للاستدعاءات الموجهة إلى التابع المعطى. 

توابع النسخة الخاصة (Private Instance Methods)

append_features

عندما تكون هذه الوحدة مُضمّنة في وحدة أخرى، فستستدعي روبي التابع append_features في هذه الوحدة، وتمرر إليه الوحدة المستقبلة (receiving module) التي استُدعيت معه.

extend_object

يوسع الكائن المعطى بإضافة ثوابت و توابع هذه الوحدة (والتي تُضاف كتوابع فردية [singleton methods]).

extended

يكافئ التابع included إلا أنه يُستخدم مع الوحدات الموسعة (extended modules).

included

يمثِّل رد نداء يُستدعَى في كل مرة يتم تضمين المستقبل (receiver) في وحدة أو صنف آخر.

method_added

يُستدعَى في كل مرة يُضاف تابع نسخة (instance method) إلى المُستقبِل (receiver).

method_removed

يستدعى في كل مرة يُزال تابع نسخة (instance method) من المُستقبِل (receiver).

method_undefined‎

غير موثَّق بعد.

module_function

ينشئ دوال وحدة (module functions) للتوابع المعطاة.

prepend_features

يُستدعَى في الوحدة المعطاة عندما تُرفق هذه الوحدة في أخرى، وتُمرَّر إليها الوحدة المُستقبِلة (receiving module) في الوحدة التي مُمرِّرت إليه.

prepended

يكافئ التابع included باستثناء أنَّه مخصص للوحدات المُرفقة (prepended modules).

private

يعين المرئية (visibility) الافتراضية للتوابع المحددة لاحقًا إلى المرئية privateالخاصة إن استدعي دون تمرير أي شيء إليه. أما في حال تمرير اسم تابع (أو عدة توابع إليه)، فسيضبطمرئية هذه التوابع إلى المرئية private الخاصة.

protected

يعين المرئية (visibility) الافتراضية للتوابع المعرفة لاحقًا إلى المرئيةprotected المحمية إن لم يمُرَّر إليه أي شيء. أما في حال تمرير اسم تابع (أو عدة توابع إليه)، فسيضبط مرئية هذه التوابع المرئية protected المحمية. 

public

يعين المرئية (visibility) الافتراضية للتوابع المعرفة لاحقًا إلى public العامة إن لم يمُرَّر إليه أي شيء. أما في حال تمرير اسم تابع (أو عدة توابع إليه)، فسيضبط مرئية هذه التوابع المرئية public العامة. 

refine

يحسِّن (refine) الوحدة المستقبلة (receiver) ثم يعيد الوحدة التي عُرِّفت فيهاالتوابع المحسَّنة.

remove_const

يزيل تعريف ثابت محدَّد، ويعيد القيمة السابقة له.

using

يستورد الأصناف المحسَّنة (class refinements) من الوحدة المٌمررة إليه إلى التعريف الحالي للصنف أو الوحدة.

مصادر