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

من موسوعة حسوب
لا ملخص تعديل
لا ملخص تعديل
سطر 18: سطر 18:
===[[Ruby/Module/constants|<code>constants</code>]]===
===[[Ruby/Module/constants|<code>constants</code>]]===
يعيد مصفوفة من أسماء كل الثوابت التي يمكن الوصول إليها لحظة الاستدعاء. 
يعيد مصفوفة من أسماء كل الثوابت التي يمكن الوصول إليها لحظة الاستدعاء. 
 
===<code>[[Ruby/Module/constants-i|()constants]]</code>===
=== <code>[[Ruby/Module/constants-i|()constants]]</code> ===
يعيد مصفوفة من أسماء كل الثوابت التي يمكن الوصول إليها من الوحدة.
يعيد مصفوفة من أسماء كل الثوابت التي يمكن الوصول إليها من الوحدة.
===[[Ruby/Module/nesting|<code>nesting</code>]]===
===[[Ruby/Module/nesting|<code>nesting</code>]]===
سطر 62: سطر 61:
===[[Ruby/Module/class eval|<code>class_eval</code>]]===
===[[Ruby/Module/class eval|<code>class_eval</code>]]===
يُقبّم  السلسلة النصية أو الكتلة المعطاة في سياق الوحدة.
يُقبّم  السلسلة النصية أو الكتلة المعطاة في سياق الوحدة.
===[[Ruby/Module/class exec|class_exec]]===
===[[Ruby/Module/class exec|<code>class_exec</code>]]===
يقيم  الكتلة المعطاة في سياق الصنف/الوحدة.
يقيِّم التابع <code>class_exec</code> الكتلة المعطاة في سياق <nowiki/>[[Ruby/modules and classes|الصنف/الوحدة]] التي استُدعي معها.
===[[Ruby/Module/class variable defined-3F|class_variable_defined?]]===
===[[Ruby/Module/class variable defined-3F|<code>?class_variable_defined</code>]]===
يعيد  القيمة <code>true</code> إن كان متغير الصنف (class variable) المعطى مٌعرّفا في الوسيط <code>obj</code>.
يتحقق التابع <code>class_variable_defined?</code>إن كان متغير الصنف (class variable) المعطى مٌعرّفا في الكائن الذي استُدعي معه.
===[[Ruby/Module/class variable get|class_variable_get]]===
===[[Ruby/Module/class variable get|<code>class_variable_get</code>]]===
يعيد قيمة متغير الصنف المعطى (أو يطلق استثناء <code>NameError</code>).
يعيد التابع <code>class_variable_get</code> قيمة متغير الصنف المعطى (أو يطلق الاستثناء<code>[[Ruby/NameError|NameError]]</code>).
===[[Ruby/Module/class variable set|class_variable_set]]===
===[[Ruby/Module/class variable set|<code>class_variable_set</code>]]===
يضبط قيمة متغير الصنف المحدد بالوسيط <code>symbol</code> ويحيل إليه الكائن المعطى <code>obj</code>.
يضبط التابع <code>class_variable_set</code> قيمة متغير الصنف المحدد بالمعامل المُمرَّر ويحيل إليه قيمة محدَّدة.
===[[Ruby/Module/class variables|class_variables]]===
===[[Ruby/Module/class variables|<code>class_variables</code>]]===
يعيد مصفوفة مكونة من أسماء متغيرات الصنف في الوحدة.
يعيد التابع <code>class_variables</code> مصفوفة مكونة من أسماء متغيرات الصنف في الوحدة التي استُدعي معها.
===[[Ruby/Module/const defined-3F|const_defined?]]===
===<code rel="mw:WikiLink" href="Ruby/Module/const defined-3F" title="Ruby/Module/const defined-3F">[[Ruby/Module/const defined-3F|?const_defined]]</code>===
يتحقق التابع <code>const_defined?‎</code> مما إذا كانت الوحدة التي استُدعي معها أو أحد أسلافها (ancestors) تحتوي الثابت المعطى.
يتحقق مما إذا كانت الوحدة التي استُدعي معها أو أحد أسلافها (ancestors) تحوي الثابت المعطى.
===[[Ruby/Module/const get|const_get]]===
===[[Ruby/Module/const get|<code>const_get</code>]]===
يتحقق من وجود ثابت بالاسم المحدد في الوحدة.
يتحقق التابع <code>const_get</code> من وجود ثابت باسم محدد في الوحدة التي استُدعي معها. 
===[[Ruby/Module/const missing|const_missing]]===
===[[Ruby/Module/const missing|<code>const_missing</code>]]===
يُستدعى عند محاولة استخدام ثابت غير معرف في الوحدة.
يُستدعى عند محاولة استخدام ثابت غير معرف في الوحدة.
===[[Ruby/Module/const set|const_set]]===
===<code rel="mw:WikiLink" href="Ruby/Module/const set" title="Ruby/Module/const set">[[Ruby/Module/const set|const_set]]</code>===
يضبط قيمة الثابت المعطى عند الكائن المحدد.
يضبط التابع <code>const_set</code> قيمة ثابت محدَّد إلى قيمة الكائن المعطى ثم يعيد ذلك الكائن.
===[[Ruby/Module/constants|constants]]===
===[[Ruby/Module/constants|<code>constants</code>]]===
يعيد مصفوفة من أسماء كل الثوابت التي يمكن الوصول إليها لحظة الاستدعاء.
يعيد التابع <code>constants</code> مصفوفة من أسماء كل الثوابت التي يمكن الوصول إليها لحظة الاستدعاء. 
===[[Ruby/Module/define method|define_method]]===
===[[Ruby/Module/define method|<code>define_method</code>]]===
يعرف  تابع النُسخ (instance method) في المُستقبِل (receiver).
يعرّف التابع <code>define_method</code> تابع نُسخة (instance method) في المُستقبِل (receiver). 
===[[Ruby/Module/deprecate constant|deprecate_constant]]===
===[[Ruby/Module/deprecate constant|<code>deprecate_constant</code>]]===
يضع  قائمة بالثوابت الموجودة المُتجاوزة.
ينشئ التابع <code>deprecate_constant</code> قائمة بالثوابت الموجودة المهملة.
===[[Ruby/Module/extend object|extend_object]]===
===[[Ruby/Module/extend object|<code>extend_object</code>]]===
يوسع الكائن المعطى بإضافة ثوابت و توابع هذه الوحدة.
يوسع التابع <code>extend_object</code> الكائن المعطى بإضافة ثوابت و توابع هذه الوحدة (والتي تُضاف كتوابع فردية [singleton methods]).
===[[Ruby/Module/extended|extended]]===
===[[Ruby/Module/extended|<code>extended</code>]]===
يكافئ <code>included</code>، إلا أنه يُستخدم مع الوحدات الموسعة (extended modules).
يكافئ التابع <code>extended</code> التابع <code>[[Ruby/Module/included|included]]</code> إلا أنه يُستخدم مع الوحدات الموسعة (extended modules).
===[[Ruby/Module/freeze|freeze]]===
===[[Ruby/Module/freeze|<code>freeze</code>]]===
يمنع إجراء المزيد من التعديلات على الوحدة.
يمنع التابع <code>freeze</code> إجراء المزيد من التعديلات على <nowiki/>[[Ruby/Module|الوحدة]].
===[[Ruby/Module/include|include]]===
===[[Ruby/Module/include|<code>include</code>]]===
يستدعي <code>Module.append_features</code> على كل الوسائط الممررة بترتيب عكسي.
يستدعي التابع <code>include</code> التابع <code>[[Ruby/Module/append features|append_features]]</code> على كل المعاملات المُمرَّرة بترتيب عكسي.
===[[Ruby/Module/include-3F|include?]]===
===[[Ruby/Module/include-3F|<code>?‎include</code>]]===
يعيد  القيمة <code>true</code> إن كانت الوحدة المعطاة module  مُضمّنة في الوحدة أو أحد أسلافها (ancestors).
يتحقق التابع <code>include?‎</code> إن كانت الوحدة المعطاة مُضمّنة في الوحدة التي استُدعي معها أو أحد أسلافها (ancestors).
===[[Ruby/Module/included|included]]===
===[[Ruby/Module/included|included]]===
يُستدعى  في كل مرة يتم تضمين المتلقي (receiver) في وحدة أو صنف آخر.
يمثِّل التابع <code>included</code> رد نداء يُستدعَى في كل مرة يتم تضمين المستقبل (receiver) في وحدة أو صنف آخر.
===[[Ruby/Module/included modules|included_modules]]===
===[[Ruby/Module/included modules|included_modules]]===
يعيد قائمة بالوحدات المضمنة في الوحدة.
يعيد التابع <code>included_modules</code> قائمة بالوحدات المضمنة في الوحدة التي استُدعي معها.
===[[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>[[Ruby/UnboundMethod|UnboundMethod]]</code> يمثل تابع النسخة (instance method) المعطى في الوحدة التي استُدعي معها.
===[[Ruby/Module/instance methods|instance_methods]]===
===[[Ruby/Module/instance methods|instance_methods]]===
يعيد مصفوفة تحتوي على أسماء توابع النسخ (instance methods) العامة والمحمية (protected) في المستقبِل (receiver).
يعيد التابع <code>instance_methods</code> مصفوفةً تحتوي على أسماء توابع النسخ (instance methods) العامة والمحمية (protected) في المستقبِل. 
===[[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).
يُستدعَى التابع <code>method_added</code> في كل مرة يُضاف تابع نسخة (instance method) إلى المُستقبِل (receiver).
===[[Ruby/Module/method defined-3F|method_defined?]]===
===<code rel="mw:WikiLink" href="Ruby/Module/method defined-3F" title="Ruby/Module/method defined-3F">?[[Ruby/Module/method defined-3F|method_defined]]</code>===
يعيد  القيمة <code>true</code> إن كان المعطى مُعرّفا في الوحدة أو الصنف (أو الوحدات المُتضمنة فيه، وإن كان صنفًا فأسلافه).
يتحقق التابع <code>method_defined?‎</code> إن كان التابع المعطى مُعرّفًا في الوحدة أو الصنف (أو في الوحدات المُتضمنة فيه، وإن كان صنفًا في أسلافه).
===[[Ruby/Module/method removed|method_removed]]===
===[[Ruby/Module/method removed|<code>method_removed</code>]]===
يستدعى في كل مرة يُزال تابع نسخة (instance method) من المُستقبِل (receiver).
يستدعى التابع <code>method_removed</code> في كل مرة يُزال تابع نسخة (instance method) من المُستقبِل (receiver).
 
=== <code>[[Ruby/Module/method undefined|method_undefined‎]]</code> ===
غير موثَّق بعد.
 
===[[Ruby/Module/module eval|module_eval]]===
===[[Ruby/Module/module eval|module_eval]]===
يُقيّم  السلسلة النصية أو الكتلة المعطاة في سياق الوحدة،
يُقيّم  السلسلة النصية أو الكتلة المعطاة في سياق الوحدة،
سطر 173: سطر 176:
يستورد  الأصناف المهذبة (class refinements) من الوحدة نحو التعريف الحالي للصنف أو الوحدة.
يستورد  الأصناف المهذبة (class refinements) من الوحدة نحو التعريف الحالي للصنف أو الوحدة.
==مصادر<span> </span>==
==مصادر<span> </span>==
*[http://ruby-doc.org/core-2.5.1/Module.html قسم الصنف Module في توثيق روبي الرسمي.]<noinclude>{{DISPLAYTITLE: صفحة الصنف <code>Module</code> في روبي}}</noinclude>
*[http://ruby-doc.org/core-2.5.1/Module.html قسم الصنف Module في توثيق روبي الرسمي.]
[[تصنيف: Ruby]]
[[تصنيف: Ruby]]
[[تصنيف: Module]]
[[تصنيف: Module]]

مراجعة 13:53، 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

ينشئ التابع 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_exec الكتلة المعطاة في سياق الصنف/الوحدة التي استُدعي معها.

?class_variable_defined

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

class_variable_get

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

class_variable_set

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

class_variables

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

?const_defined

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

const_get

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

const_missing

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

const_set

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

constants

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

define_method

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

deprecate_constant

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

extend_object

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

extended

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

freeze

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

include

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

?‎include

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

included

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

included_modules

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

inspect

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

instance_method

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

instance_methods

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

constants

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

method_added

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

?method_defined

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

method_removed

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

method_undefined‎

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

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

مصادر