الفرق بين المراجعتين ل"Ruby/Module"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
سطر 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">
+
الصنف <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
 
module Mod
 
   include Math
 
   include Math
سطر 14: سطر 15:
  
 
</syntaxhighlight>
 
</syntaxhighlight>
 
 
==توابع الصنف العامة (Public Class Methods)==
 
==توابع الصنف العامة (Public Class Methods)==
===[[Ruby/Module/constants | التابع constants]]===
+
===[[Ruby/Module/constants|<code>constants</code>]]===
يعيد مصفوفة مكونة أسماء كل الثوابت التي يمكن الوصول إليها لحظة الاستدعاء.  
+
يعيد مصفوفة من أسماء كل الثوابت التي يمكن الوصول إليها لحظة الاستدعاء. 
===[[Ruby/Module/nesting | التابع nesting]]===
 
يعيد  قائمة من الوحدات (<code>Modules</code>) المتشعبة لحظة الاستدعاء.
 
===[[Ruby/Module/new | التابع new]]===
 
ينشئ  وحدة مجهولة (anonymous module) جديدة.
 
===[[Ruby/Module/used_modules | التابع used_modules]]===
 
يعيد  مصفوفة تحتوي جميع الوحدات (constant) المستخدمة في النطاق الحالي.
 
  
== توابع النسخة العامة (Public Instance Methods) ==
+
=== <code>[[Ruby/Module/constants-i|()constants]]</code> ===
 
+
يعيد مصفوفة من أسماء كل الثوابت التي يمكن الوصول إليها من الوحدة.
===[[Ruby/Module/3C | التابع ‎<‎]]===
+
===[[Ruby/Module/nesting|<code>nesting</code>]]===
يعد  القيمة <code>true</code> إن كان الوسيط <code>mod</code> صنفًا فرعيا من <code>other</code>. أو يعيد<code>nil</code> إن لم تكن بينهما أي علاقة.  
+
يعيد قائمة من الوحدات المتشعبة (Modules nested) لحظة الاستدعاء.
===[[Ruby/Module/3C-3D | التابع ‎<=‎]]===
+
===[[Ruby/Module/new|<code>new</code>]]===
يعيد القيمة <code>true</code> إن كان الوسيط <code>mod</code> صنفًا فرعيًا من <code>other</code> أو كان يساويه. أو يعد <code>nil</code> إذا لم تكن بينهما أي علاقة.  
+
ينشئ وحدة مجهولة (anonymous module) جديدة.
===[[Ruby/Module/3C-3D-3E | التابع <=>]]===
+
===[[Ruby/Module/used modules|<code>used_modules</code>]]===
يجري عملية المقارنة.
+
يعيد مصفوفة تحتوي جميع الوحدات (modules) المستخدمة في النطاق الحالي.
===[[Ruby/Module/3D-3D | التابع ==]]===
+
==توابع النسخة العامة (Public Instance Methods)==
معامل التساوي.
+
===[[Ruby/Module/3C|<code>‎<‎</code>]]===
===[[Ruby/Module/3D-3D-3D | التابع ===]]===
+
يعيد المعامل ‎<code><‎</code> القيمة <code>true</code> إن كانت الوحدة <code>Module</code> التي تقع على يساره صنفًا فرعيًّا من الوحدة التي تقع على يمينه، أو يعيد القيمة <code>nil</code> إن لم تكن بينهما أية علاقة.
يعيد القيمة <code>true</code> إن كان الوسيط <code>obj</code> نسخة (instance ) من الوسيط <code>mod</code> أو من أحد الأصناف المنحدرة منه.
+
===[[Ruby/Module/3C-3D|<code>‎<=‎</code>]]===
===[[Ruby/Module/3E | التابع ‎>‎]]===
+
يعيد المعامل ‎<code><=‎</code> القيمة <code>true</code> إن كانت الوحدة <code>Module</code> التي تقع على يساره صنفًا فرعيًّا من الوحدة التي تقع على يمينه أو كانت الوحدتان متساويتين تمامًا، أو يعيد القيمة <code>nil</code> إذا لم تكن بينهما أية علاقة.
يعيد القيمة tr<code>u</code>e إن كان الوسيط <code>mod</code> سلفًا (ancestor) للوسيط <code>other</code>. أو يعيد القيمة <code>nil</code> إن لم تكن بينهما أي علاقة
+
===[[Ruby/Module/3C-3D-3E|<code><=></code>]]===
 
+
يجري المعامل <code><=></code> عملية الموازنة بين كائنين ثم يعيد الناتج الذي يشير إلى العلاقة بينهما.
=== [[Ruby/Module/3E-3D | التابع ‎>=‎]] ===
+
===[[Ruby/Module/3D-3D|<code>==</code>]]===
يعيد القيمة <code>true</code> إن كان الوسيط <code>mod</code> سلفًا (ancestor) للوسيط <code>other</code>، أو إن كانت الوحدتان متساويتين. يعيد القيمة <code>nil</code> إن لم تكن بينها أي علاقة.  
+
يتحقق معامل التساوي <code>==</code> من تساوي كائنين.
===[[Ruby/Module/alias_method | التابع alias_method]]===
+
===[[Ruby/Module/3D-3D-3D|<code>===</code>]]===
يجعل  الوسيط <code>new_name</code> نسخة جديدة من التابع <code>old_name</code>.  
+
يعيد المعامل <code>===</code> القيمة <code>true</code> إن كان الكائن الواقع على يمينه نسخةً (instance ) من الكائن<code>Module</code> الواقع على يمينه أو من أحد الأصناف المنحدرة منه.
===[[Ruby/Module/ancestors | التابع ancestors]]===
+
===[[Ruby/Module/3E|<code>‎>‎</code>]]===
يعيد قائمة مكونة الوحدات المُتضمنة / المضافة إلى الوحدة  (بما في ذلك الوحدة نفسها).
+
يعيد المعامل <code><</code> القيمة <code>true</code> الكائن <code>Module</code> الذي يقع على يساره سلفًا (ancestor) للكائن الذي يقع على يمينه، أو يعيد القيمة <code>nil</code> إن لم تكن بينهما أية علاقة.
===[[Ruby/Module/append_features | التابع append_features]]===
+
===[[Ruby/Module/3E-3D|<code>‎>=‎</code>]]===
عندما تكون هذه الوحدة مُضمّنة في وحدة أخرى، فستستدعي روبي <code>append_features</code> في هذه الوحدة،
+
يعيد المعامل ‎<code>>=‎‎</code> القيمة <code>true</code> إن كانت الوحدة <code>Module</code> التي تقع على يساره سلفًا (ancestor) للوحدة التي تقع على يمينه أو إن كانت الوحدتان متساويتين، أو يعيد القيمة <code>nil</code> إن لم تكن بينها أي علاقة.
===[[Ruby/Module/attr | التابع attr]]===
+
===[[Ruby/Module/alias method|<code>alias_method</code>]]===
الشكل الأول مكافئ لـ <code>attr_reader</code>. أما الشكل الثاني فيكافئ <code>attr_accessor(name).</code>
+
ينشئ التابع <code>alias_method</code> اسمًا جديدًا (بديلًا) لتابع محدَّد.
===[[Ruby/Module/attr_accessor | التابع attr_accessor]]===
+
===[[Ruby/Module/ancestors|<code>ancestors</code>]]===
 +
يعيد التابع <code>ancestors</code> قائمة مكونة الوحدات المُتضمنة/المضافة إلى الوحدة التي استُدعيت معها (بما في ذلك الوحدة نفسها).
 +
===[[Ruby/Module/append features|<code>append_features</code>]]===
 +
عندما تكون هذه الوحدة مُضمّنة في وحدة أخرى، فستستدعي روبي التابع <code>append_features</code> في هذه الوحدة، وتمرر إليه الوحدة المستقبلة (receiving module) التي استُدعيت معه.
 +
===[[Ruby/Module/attr|<code>attr</code>]]===
 +
يكافئ التابع <code>[[Ruby/Module/attr accessor|attr_reader]]</code>.
 +
===[[Ruby/Module/attr accessor|<code>attr_accessor</code>]]===
 
يحدد  خاصية مسماة (named attribute) لهذه الوحدة.
 
يحدد  خاصية مسماة (named attribute) لهذه الوحدة.
===[[Ruby/Module/attr_reader | التابع attr_reader]]===
+
===[[Ruby/Module/attr reader|<code>attr_reader</code>]]===
 
ينشئ  متغيرات نسخ (instance variables) والتوابع المقابلة التي تعيد قيمة كل متغير نسخ.
 
ينشئ  متغيرات نسخ (instance variables) والتوابع المقابلة التي تعيد قيمة كل متغير نسخ.
===[[Ruby/Module/attr_writer | التابع attr_writer]]===
+
===[[Ruby/Module/attr writer|<code>attr_writer</code>]]===
ينشئ التابع <code>attr_writer</code> مدخلًا (accessor method) للسماح بتعيين قيم الخاصية <code>''symbol''.id2name</code>.
+
ينشئ تابع وصول (accessor method) للسماح بتعيين قيمة للخاصية<code>''symbol''.id2name</code>.
===[[Ruby/Module/autoload | التابع autoload]]===
+
===[[Ruby/Module/autoload|<code>autoload</code>]]===
 
يُُسجل  اسم الملف المراد تحميله (باستخدام <code>Kernel::require</code>) في أول مرة يتم فيها الدخول إلى الوحدة.
 
يُُسجل  اسم الملف المراد تحميله (باستخدام <code>Kernel::require</code>) في أول مرة يتم فيها الدخول إلى الوحدة.
===[[Ruby/Module/autoload-3F | التابع autoload?‎]]===
+
===[[Ruby/Module/autoload-3F|<code>autoload?‎</code>]]===
يعيد اسم الملف الذي سيُحمل إن كان الوسيط المعطى مسجلًا كـ <code>autoload</code> في مجال أسماء الوحدة.
+
يعيد التابع <code>autoload?‎</code> اسم الملف الذي سيُحمل إن كان المعامل المعطى مسجلًا عبر التابع<code>[[Ruby/Module/autoload|autoload]]</code> في مجال أسماء الوحدة التي استُدعي معها.
===[[Ruby/Module/class_eval | التابع class_eval]]===
+
===[[Ruby/Module/class eval|<code>class_eval</code>]]===
 
يُقبّم  السلسلة النصية أو الكتلة المعطاة في سياق الوحدة.
 
يُقبّم  السلسلة النصية أو الكتلة المعطاة في سياق الوحدة.
===[[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>obj</code>.
 
يعيد  القيمة <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]]===
يضبط  قيمة متغير الصنف المحدد بالوسيط <code>symbol</code>  ويحيل إليه الكائن المعطى <code>obj</code>.  
+
يضبط  قيمة متغير الصنف المحدد بالوسيط <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) تحتوي الثابت المعطى.
 
يتحقق التابع <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).
 
يعرف  تابع النُسخ (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).
===[[Ruby/Module/freeze | التابع freeze]]===
+
===[[Ruby/Module/freeze|freeze]]===
 
يمنع  إجراء المزيد من التعديلات على الوحدة.
 
يمنع  إجراء المزيد من التعديلات على الوحدة.
===[[Ruby/Module/include | التابع include]]===
+
===[[Ruby/Module/include|include]]===
يستدعي  التابع <code>Module.append_features</code> على كل الوسائط الممررة بترتيب عكسي.
+
يستدعي  <code>Module.append_features</code> على كل الوسائط الممررة بترتيب عكسي.
===[[Ruby/Module/include-3F | التابع include?]]===
+
===[[Ruby/Module/include-3F|include?]]===
 
يعيد  القيمة <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>.
 
<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) المعطى في الوحدة التي استُدعي معها.
 
يعيد التابع <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]]===
+
===[[Ruby/Module/constants-i|constants]]===
 
يعيد التابع <code>constants</code> مصفوفة من أسماء كل الثوابت التي يمكن الوصول إليها من الوحدة.
 
يعيد التابع <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).
 
يستدعى  في كل مرة يُزال تابع نسخة (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]]===
 
يعيد  اسم الوحدة.  أو يعيد القيمة <code>nil</code> إن كانت الوحدات مجهولة (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> إلى رموز.
 
إذا استُدعي التابع <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) المعرفة في <code>mod</code>.  
+
يعيد  قائمة بتوابع النسخة (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>_ mod_</code>.
+
يعيد  القيمة <code>true</code> إن كان الخاص المعطى معرفًا من طرف <code>_ mod_</code>.
===[[Ruby/Module/protected | التابع protected]]===
+
===[[Ruby/Module/protected|protected]]===
 
يضبط المنظورية (visibility) الافتراضية للتوابع عند القيمة 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).
 
يعيد التابع <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) المعطى معرفًا في الوحدة (أو الوحدات المُتضمنة فيه، أو أسلافه إن كان صنفًا).
+
يعيد التابع <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>.
 
في حال استدعاء التابع <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) الحالية.
===[[Ruby/Module/public_constant | التابع public_constant]]===
+
===[[Ruby/Module/public constant|public_constant]]===
 
يصنع  قائمة بالثوابت العامة (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>) وحسب.
 
على غرار <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) المعرفة في <code>mod</code>.  
+
يعيد  قائمة بتوابع النسخة (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>mod</code>.
+
يعيد  القيمة <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]]===
 
يزيل  تعريف الوسيط المعطى <code>sym</code> ، ثم يعيد قيمة ذلك الثابت.
 
يزيل  تعريف الوسيط المعطى <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>  من الصنف الحالي.  
+
يزيل  التوابع المحددة بواسطة الوسيط <code>symbol</code>  من الصنف الحالي.
===[[Ruby/Module/singleton_class-3F | التابع singleton_class?‎]]===
+
===[[Ruby/Module/singleton class-3F|singleton_class?‎]]===
 
يعيد  القيمة <code>true</code> إن كان <code>mod</code> صنفا مفردًا (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/Module.html قسم الصنف Module في توثيق روبي الرسمي.]
+
*[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]]

مراجعة 08:55، 18 نوفمبر 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

ينشئ التابع 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) من الوحدة نحو التعريف الحالي للصنف أو الوحدة.

مصادر