الفرق بين المراجعتين لصفحة: «Ruby/Object»
أنشأ الصفحة ب'{{DISPLAYTITLE:الصنف <code>Object</code> في روبي}} يعدُّ الصنف <code>Object</code> الجذر الافتراضي لكل كائنات روبي. يَ...' |
طلا ملخص تعديل |
||
سطر 6: | سطر 6: | ||
عند الإشارة (referencing) إلى الثوابت في الأصناف الوارثة من الصنف Object، لا تحتاج إلى أن تستخدم كامل مجال الأسماء (namespace). على سبيل المثال، الإشارة بالمرجعية إلى الثابت <code>File</code> ضمن الصنف <code>YourClass</code> سيجد الصنف ذا المستوى الأعلى من <code>File</code>. | عند الإشارة (referencing) إلى الثوابت في الأصناف الوارثة من الصنف Object، لا تحتاج إلى أن تستخدم كامل مجال الأسماء (namespace). على سبيل المثال، الإشارة بالمرجعية إلى الثابت <code>File</code> ضمن الصنف <code>YourClass</code> سيجد الصنف ذا المستوى الأعلى من <code>File</code>. | ||
في توثيق كل تابع من توابع الصنف <code>Object</code>، يشير المعامل <code>symbol</code> إلى رمزٍ يكون إما سلسلةً نصيةً مقتبسةً (quoted) أو الصنف <code>Symbol</code> (مثل name:). | في توثيق كل تابع من توابع الصنف <code>Object</code>، يشير المعامل <code>symbol</code> إلى رمزٍ يكون إما سلسلةً نصيةً مقتبسةً (quoted) أو الصنف <code>Symbol</code> (مثل <code>name:</code>). | ||
==الثوابت== | |||
== الثوابت == | ===<code>ARGF</code>=== | ||
=== <code>ARGF</code> === | |||
هو مجرى (stream) صُمِّم ليُستخدَم في الملفات البرمجية (scritps) التي تُعالج الملفات المُمرَّرة إليها على شكل وسائط في سطر الأوامر (command-line arguments)، أو المُمرَّرة عبر مجرى الدخل القياسي (STDIN). | هو مجرى (stream) صُمِّم ليُستخدَم في الملفات البرمجية (scritps) التي تُعالج الملفات المُمرَّرة إليها على شكل وسائط في سطر الأوامر (command-line arguments)، أو المُمرَّرة عبر مجرى الدخل القياسي (STDIN). | ||
ألقِ نظرة على صفحة الصنف <code>ARGF</code> لمزيدٍ من المعلومات. | ألقِ نظرة على صفحة الصنف <code>[[Ruby/ARGF|ARGF]]</code> لمزيدٍ من المعلومات. | ||
===<code>ARGV</code>=== | |||
=== <code>ARGV</code> === | |||
يحتوي على وسائط سطر الأوامر المستخدمة في تشغيل روبي. يمكن استخدام مكتبةٍ مثل <code>OptionParser</code> لمعالجة وسائط سطر الأوامر. | يحتوي على وسائط سطر الأوامر المستخدمة في تشغيل روبي. يمكن استخدام مكتبةٍ مثل <code>OptionParser</code> لمعالجة وسائط سطر الأوامر. | ||
===<code>Bignum</code>=== | |||
=== <code>Bignum</code> === | ===<code>DATA</code>=== | ||
=== <code>DATA</code> === | |||
هو ملفٌّ يحوي قسم المعلومات الخاص بالملف المنفَّذ. استخدِم <code>__END__</code> لإنشاء قسم معلوماتٍ:<syntaxhighlight lang="ruby"> | هو ملفٌّ يحوي قسم المعلومات الخاص بالملف المنفَّذ. استخدِم <code>__END__</code> لإنشاء قسم معلوماتٍ:<syntaxhighlight lang="ruby"> | ||
$ cat t.rb | $ cat t.rb | ||
سطر 30: | سطر 25: | ||
hello world! | hello world! | ||
</syntaxhighlight> | </syntaxhighlight> | ||
===<code>ENV</code>=== | |||
=== <code>ENV</code> === | |||
يشبه دوال التجزئة (hash-like accessor) لبيئة المتغيرات. | يشبه دوال التجزئة (hash-like accessor) لبيئة المتغيرات. | ||
ألقِ نظرة على صفحة الصنف <code>ENV</code> لمزيدٍ من المعلومات. | ألقِ نظرة على صفحة الصنف <code>[[Ruby/ENV|ENV]]</code> لمزيدٍ من المعلومات. | ||
===<code>FALSE</code>=== | |||
=== <code>FALSE</code> === | |||
هو اسمٌ بديلٌ مهمل (obsolete alias) للقيمة <code>false</code>. | هو اسمٌ بديلٌ مهمل (obsolete alias) للقيمة <code>false</code>. | ||
===<code>Fixnum</code>=== | |||
=== <code>Fixnum</code> === | ===<code>NIL</code>=== | ||
=== <code>NIL</code> === | |||
هو اسمٌ بديلٌ مهمل للقيمة <code>nil</code>. | هو اسمٌ بديلٌ مهمل للقيمة <code>nil</code>. | ||
===<code>RUBY_COPYRIGHT</code>=== | |||
=== <code>RUBY_COPYRIGHT</code> === | |||
يمثّل سلسلةً نصيةً تحتوي حقوق النشر لبرنامج روبي. | يمثّل سلسلةً نصيةً تحتوي حقوق النشر لبرنامج روبي. | ||
===<code>RUBY_DESCRIPTION</code>=== | |||
=== <code>RUBY_DESCRIPTION</code> === | |||
يمثّل سلسلةً نصيةً تحتوي إصدار روبي الكامل، مثل تلك الناتجة عن تنفيذ الأمر <code>ruby -v</code> في سطر الأوامر. | يمثّل سلسلةً نصيةً تحتوي إصدار روبي الكامل، مثل تلك الناتجة عن تنفيذ الأمر <code>ruby -v</code> في سطر الأوامر. | ||
===<code>RUBY_ENGINE</code>=== | |||
=== <code>RUBY_ENGINE</code> === | |||
يمثّل المحرِّك أو المفسِّر الذي تستخدمه روبي. | يمثّل المحرِّك أو المفسِّر الذي تستخدمه روبي. | ||
===<code>RUBY_ENGINE_VERSION</code>=== | |||
=== <code>RUBY_ENGINE_VERSION</code> === | |||
يمثّل إصدار المحرِّك أو المفسِّر الذي تستخدمه روبي. | يمثّل إصدار المحرِّك أو المفسِّر الذي تستخدمه روبي. | ||
===<code>RUBY_PATCHLEVEL</code>=== | |||
=== <code>RUBY_PATCHLEVEL</code> === | |||
يمثّل مستوى التصحيح (patch level) لهذا الإصدار من روبي. إذا كان الإصدار نسخةً تطويريةً من روبي، فإنَّ مستوى الرقعة سيكون مساويًا 1-. | يمثّل مستوى التصحيح (patch level) لهذا الإصدار من روبي. إذا كان الإصدار نسخةً تطويريةً من روبي، فإنَّ مستوى الرقعة سيكون مساويًا 1-. | ||
===<code>RUBY_PLATFORM</code>=== | |||
=== <code>RUBY_PLATFORM</code> === | |||
يمثّل منصة هذا الإصدار من روبي. | يمثّل منصة هذا الإصدار من روبي. | ||
===<code>RUBY_RELEASE_DATE</code>=== | |||
=== <code>RUBY_RELEASE_DATE</code> === | |||
يمثّل تاريخ إطلاق هذا الإصدار من روبي. | يمثّل تاريخ إطلاق هذا الإصدار من روبي. | ||
===<code>RUBY_REVISION</code>=== | |||
=== <code>RUBY_REVISION</code> === | |||
يمثّل رقم التنقيح في <code>SVN</code> لهذا الإصدار من روبي. | يمثّل رقم التنقيح في <code>SVN</code> لهذا الإصدار من روبي. | ||
===<code>RUBY_VERSION</code>=== | |||
=== <code>RUBY_VERSION</code> === | |||
يمثّل الإصدار المُشغَّل حاليًا من روبي. | يمثّل الإصدار المُشغَّل حاليًا من روبي. | ||
===<code>STDERR</code>=== | |||
=== <code>STDERR</code> === | |||
يحتفظ بمجرى الخطأ القياسي (stderr) الأصلي. | يحتفظ بمجرى الخطأ القياسي (stderr) الأصلي. | ||
===<code>STDIN</code>=== | |||
=== <code>STDIN</code> === | |||
يحتفظ بمجرى الدخل القياسي (stdin) الأصلي. | يحتفظ بمجرى الدخل القياسي (stdin) الأصلي. | ||
===<code>STDOUT</code>=== | |||
=== <code>STDOUT</code> === | |||
يحتفظ بمجرى الخرج القياسي (stdout) الأصلي. | يحتفظ بمجرى الخرج القياسي (stdout) الأصلي. | ||
===<code>TOPLEVEL_BINDING</code>=== | |||
=== <code>TOPLEVEL_BINDING</code> === | |||
يمثل نطاق المستوى الأعلى للصنف BINDING. | يمثل نطاق المستوى الأعلى للصنف BINDING. | ||
===<code>TRUE</code>=== | |||
=== <code>TRUE</code> === | |||
هو اسمٌ بديلٌ مهمل للقيمة <code>true</code>. | هو اسمٌ بديلٌ مهمل للقيمة <code>true</code>. | ||
==توابع النسخة الخاصة (Public Instance Methods)== | |||
== توابع النسخة الخاصة (Public Instance Methods) == | ===<code>[[~Ruby/Object/21|~!]]</code>=== | ||
=== <code>~!</code> === | |||
يتحقق المعامل <code>!~</code> من عدم تساوي كائنين (باستخدام التابع <code>=~</code>). | يتحقق المعامل <code>!~</code> من عدم تساوي كائنين (باستخدام التابع <code>=~</code>). | ||
===<code>[[Ruby/Object/3C-3D-3E|<=>]]</code>=== | |||
=== <code><=></code> === | |||
يتحقق المعامل <code><=></code> من تساوي كائنين بين بعضهما بعضًا (يشبه المعامل <code>==</code>). | يتحقق المعامل <code><=></code> من تساوي كائنين بين بعضهما بعضًا (يشبه المعامل <code>==</code>). | ||
===<code>[[Ruby/Object/3D-3D-3D|===]]</code>=== | |||
=== <code>===</code> === | |||
يتحقق المعامل <code>===</code> من تساوي كائنين بشكل صارم. | يتحقق المعامل <code>===</code> من تساوي كائنين بشكل صارم. | ||
===<code>[[~Ruby/Object/3D|~=]]</code>=== | |||
=== <code>~=</code> === | |||
يتحقّق المعامل <code>~=</code> من تطابق نمطي كائنين (Pattern Match). | يتحقّق المعامل <code>~=</code> من تطابق نمطي كائنين (Pattern Match). | ||
===<code>[[Ruby/Object/class|class]]</code>=== | |||
=== <code>class</code> === | |||
يعيد التابع <code>class</code> صنف الكائن المعطى. | يعيد التابع <code>class</code> صنف الكائن المعطى. | ||
===<code>[[Ruby/Object/clone|clone]]</code>=== | |||
=== <code>clone</code> === | |||
يُنتج التابع <code>clone</code> نسخةً سطحيةً (shallow copy) من الكائن المعطى. | يُنتج التابع <code>clone</code> نسخةً سطحيةً (shallow copy) من الكائن المعطى. | ||
===<code>[[Ruby/Object/define singleton method|define_singleton_method]]</code>=== | |||
=== <code>define_singleton_method</code> === | |||
يُعرِّف التابع <code>define_singleton_method</code> تابعًا منفردًا (singleton method) في المستقبل (receiver). | يُعرِّف التابع <code>define_singleton_method</code> تابعًا منفردًا (singleton method) في المستقبل (receiver). | ||
===<code>[[Ruby/Object/display|display]]</code>=== | |||
=== <code>display</code> === | |||
يَطبع التابع <code>display</code> الكائن الذي استدعي معه على المنفذ (port) المعطى (يساوي افتراضيًا <code><$</code>). | يَطبع التابع <code>display</code> الكائن الذي استدعي معه على المنفذ (port) المعطى (يساوي افتراضيًا <code><$</code>). | ||
===<code>[[Ruby/Object/dup|dup]]</code>=== | |||
ينتج التابع <code>dup</code> نسخةً سطحية (shallow copy) من الكائن. | |||
===<code>[[Ruby/Object/enum for|enum_for]]</code>=== | |||
يُنشئ التابع <code>enum_for</code> نسخةً من الصنف Enumerator الذي يجري عملية عدٍّ (enumerate) وتكرار عبر استدعاء التابع المُمرَّر إليها مع كائنٍ محدَّد، وتمرير وسائط إن أعطيت. | |||
=== <code> | === <code>[[Ruby/Object/3D-3D|==]]</code> === | ||
يتحقَّق المعامل <code>==</code> من تساوي كائنين مع بعضهما بعضًا. | |||
=== <code> | === <code>[[Ruby/Object/equal-3F|?equal]]</code> === | ||
يُستخدم التابع <code>?equal</code> في تحديد هويّة الكائن. | |||
=== <code>?eql</code> === | ===<code>[[Ruby/Object/eql-3F|?eql]]</code>=== | ||
يتحقَّق التابع <code>?eql</code> من استخدام كلا الكائنين نفس مفتاح التجزئة (hash key). | يتحقَّق التابع <code>?eql</code> من استخدام كلا الكائنين نفس مفتاح التجزئة (hash key). | ||
===<code>[[Ruby/Object/extend|extend]]</code>=== | |||
=== <code>extend</code> === | |||
يُضيف التابع <code>extend</code> توابع النسخة (instance) من كُلِّ وحدةٍ مُرِّرت إليه إلى الكائن الذي استدعي معه. | يُضيف التابع <code>extend</code> توابع النسخة (instance) من كُلِّ وحدةٍ مُرِّرت إليه إلى الكائن الذي استدعي معه. | ||
===<code>[[Ruby/Object/freeze|freeze]]</code>=== | |||
=== <code>freeze</code> === | |||
يمنع التابع <code>freeze</code> إجراء تعديلاتٍ إضافيةٍ على الكائن الذي استدعي معه. | يمنع التابع <code>freeze</code> إجراء تعديلاتٍ إضافيةٍ على الكائن الذي استدعي معه. | ||
===<code>[[Ruby/Object/frozen-3F|?frozen]]</code>=== | |||
=== <code>?frozen</code> === | |||
يتحقَّق التابع <code>?frozen</code> إن كان الكائن في حالة تجميد أم لا. | يتحقَّق التابع <code>?frozen</code> إن كان الكائن في حالة تجميد أم لا. | ||
===<code>[[Ruby/Object/inspect|inspect]]</code>=== | |||
=== <code>inspect</code> === | |||
يُعيد التابع inspect سلسلةً نصيةً تحتوي تمثيلًا يفهمه البشر للكائن الذي استدعي معه. | يُعيد التابع inspect سلسلةً نصيةً تحتوي تمثيلًا يفهمه البشر للكائن الذي استدعي معه. | ||
===<code>[[Ruby/Object/instance of-3F|?instance_of]]</code>=== | |||
=== <code>?instance_of</code> === | |||
يتحقَّق التابع <code>?instance_of</code> إذا كان الكائن الذي استدعي معه نسخةً من الصِّنف المُمرَّر إليه. | يتحقَّق التابع <code>?instance_of</code> إذا كان الكائن الذي استدعي معه نسخةً من الصِّنف المُمرَّر إليه. | ||
===<code>[[Ruby/Object/instance variable defined-3F|?instance_variable_defined]]</code>=== | |||
=== <code>?instance_variable_defined</code> === | |||
يتحقَّق التابع <code>?instance_variable_defined</code> إذا كان متغيِّر النسخة (instance variable) المُمرَّر إليه مُعرَّفًا في الكائن المعطى. | يتحقَّق التابع <code>?instance_variable_defined</code> إذا كان متغيِّر النسخة (instance variable) المُمرَّر إليه مُعرَّفًا في الكائن المعطى. | ||
===<code>[[Ruby/Object/instance variable get|instance_variable_get]]</code>=== | |||
=== <code>instance_variable_get</code> === | |||
يجلب التابع <code>instance_variable_get</code> قيمة مُتغيِّر النسخة (instance variable) المُمرَّر إليه من الكائن المعطى. | يجلب التابع <code>instance_variable_get</code> قيمة مُتغيِّر النسخة (instance variable) المُمرَّر إليه من الكائن المعطى. | ||
===<code>[[Ruby/Object/instance variable set|instance_variable_set]]</code>=== | |||
=== <code>instance_variable_set</code> === | |||
يُعيِّن التابع <code>instance_variable_set</code> قيمة متغيِّر نسخةٍ (instance variable) محدِّدٍ إلى قيمة معيَّنة في الكائن المُعطى. | يُعيِّن التابع <code>instance_variable_set</code> قيمة متغيِّر نسخةٍ (instance variable) محدِّدٍ إلى قيمة معيَّنة في الكائن المُعطى. | ||
===<code>[[Ruby/Object/instance variables|instance_variables]]</code>=== | |||
=== <code>instance_variables</code> === | |||
يجلب التابع <code>instance_variables</code> جميع أسماء متغيرات النسخة (instance variable) للمستقبل (receiver) المعطى. | يجلب التابع <code>instance_variables</code> جميع أسماء متغيرات النسخة (instance variable) للمستقبل (receiver) المعطى. | ||
===<code>[[Ruby/Object/is a-3F|?is_a]]</code>=== | |||
=== <code>?is_a</code> === | |||
يتحقَّق التابع <code>?is_a</code> إن كان الصنف المُمرَّر إليه هو نفسه صنف الكائن الذي استدعي معه، أو إن كان هذا الصنف أحد الأصناف العليا (superclasses) للكائن المعطى أو الوحدات المُضمَّنة في هذا الكائن. | يتحقَّق التابع <code>?is_a</code> إن كان الصنف المُمرَّر إليه هو نفسه صنف الكائن الذي استدعي معه، أو إن كان هذا الصنف أحد الأصناف العليا (superclasses) للكائن المعطى أو الوحدات المُضمَّنة في هذا الكائن. | ||
===<code>[[Ruby/Object/itself|itself]]</code>=== | |||
=== <code>itself</code> === | |||
يُعيد التابع <code>itself</code> الكائن المستقبل (receiver). | يُعيد التابع <code>itself</code> الكائن المستقبل (receiver). | ||
===<code>[[Ruby/Object/kind of-3F|?kind_of]]</code>=== | |||
=== <code>?kind_of</code> === | |||
يتحقَّق التابع <code>?kind_of</code> إن كان الصنف المُمرَّر إليه هو نفسه صنف الكائن المعطى، أو أنه واحدٌ من الأصناف العليا (superclasses) لذلك الكائن أو الوحدات المُضمَّنة فيه. | يتحقَّق التابع <code>?kind_of</code> إن كان الصنف المُمرَّر إليه هو نفسه صنف الكائن المعطى، أو أنه واحدٌ من الأصناف العليا (superclasses) لذلك الكائن أو الوحدات المُضمَّنة فيه. | ||
===<code>[[Ruby/Object/method|method]]</code>=== | |||
=== <code>method</code> === | |||
يبحث التابع <code>method</code> عن تابعٍ باسمٍ محدَّد في الكائن المعطى بوصفه مستقبلًا (receiver). | يبحث التابع <code>method</code> عن تابعٍ باسمٍ محدَّد في الكائن المعطى بوصفه مستقبلًا (receiver). | ||
===<code>[[Ruby/Object/methods|methods]]</code>=== | |||
=== <code>methods</code> === | |||
يُعيد التابع <code>methods</code> قائمةً بالتوابع العامَّة والمحميَّة للكائن المعطى. | يُعيد التابع <code>methods</code> قائمةً بالتوابع العامَّة والمحميَّة للكائن المعطى. | ||
===<code>[[Ruby/Object/nil-3F|?nil]]</code>=== | |||
=== <code>?nil</code> === | |||
يتحقَّق التابع <code>?nil</code> فيما إذا كان الكائن المعطى هو nil أم لا. | يتحقَّق التابع <code>?nil</code> فيما إذا كان الكائن المعطى هو nil أم لا. | ||
===<code>[[Ruby/Object/object id|object_id]]</code>=== | |||
=== <code>object_id</code> === | |||
يعيد التابع <code>object_id</code> مُعرِّفا عدديًا للكائن الذي استُدعي معه. | يعيد التابع <code>object_id</code> مُعرِّفا عدديًا للكائن الذي استُدعي معه. | ||
===<code>[[Ruby/Object/private methods|private_methods]]</code>=== | |||
=== <code>private_methods</code> === | |||
يُعيد التابع <code>private_methods</code> قائمةً بالتوابع الخاصة (private methods) التي يمتلك الكائن الذي استدعي معه الوصول إليها. | يُعيد التابع <code>private_methods</code> قائمةً بالتوابع الخاصة (private methods) التي يمتلك الكائن الذي استدعي معه الوصول إليها. | ||
===<code>[[Ruby/Object/protected methods|protected_methods]]</code>=== | |||
=== <code>protected_methods</code> === | |||
يُعيد التابع <code>protected_methods</code> قائمةً بالتوابع المحميَّة (protected methods) التي يمتلك الكائن الذي استدعي معه الوصول إليها. | يُعيد التابع <code>protected_methods</code> قائمةً بالتوابع المحميَّة (protected methods) التي يمتلك الكائن الذي استدعي معه الوصول إليها. | ||
===<code>[[Ruby/Object/public method|public_method]]</code>=== | |||
=== <code>public_method</code> === | |||
يبحث التابع <code>public_method</code> عن التوابع العامة فقط بشكل مشابه لعمل التابع <code>method</code>. | يبحث التابع <code>public_method</code> عن التوابع العامة فقط بشكل مشابه لعمل التابع <code>method</code>. | ||
===<code>[[Ruby/Object/public methods|public_methods]]</code>=== | |||
=== <code>public_methods</code> === | |||
يُعيد التابع <code>public_methods</code> قائمةً بالتوابع العامَّة (public methods) التي يمتلك الكائن الذي استدعي معه الوصول إليها. | يُعيد التابع <code>public_methods</code> قائمةً بالتوابع العامَّة (public methods) التي يمتلك الكائن الذي استدعي معه الوصول إليها. | ||
===<code>[[Ruby/Object/public send|public_send]]</code>=== | |||
=== <code>public_send</code> === | |||
يَستدعي التابع <code>public_send</code> التابع المعرَّف برمزٍ (symbol) محدَّدٍ ويُنفَّذه تلقائيًا مع تمرير أي معاملاتٍ معطاة. | يَستدعي التابع <code>public_send</code> التابع المعرَّف برمزٍ (symbol) محدَّدٍ ويُنفَّذه تلقائيًا مع تمرير أي معاملاتٍ معطاة. | ||
===<code>[[Ruby/Object/remove instance variable|remove_instance_variable]]</code>=== | |||
=== <code>remove_instance_variable</code> === | |||
يَحذِف التابع <code>remove_instance_variable</code> متغيِّر نسخةٍ باسمٍ محدَّدٍ من الكائن الذي استدعي معه ويُعيد قيمة ذلك المتغيِّر. | يَحذِف التابع <code>remove_instance_variable</code> متغيِّر نسخةٍ باسمٍ محدَّدٍ من الكائن الذي استدعي معه ويُعيد قيمة ذلك المتغيِّر. | ||
===<code>[[Ruby/Object/respond to-3F|?respond_to]]</code>=== | |||
=== <code>?respond_to</code> === | |||
يتحقَّق التابع <code>?respond_to</code> من استجابة الكائن الذي استدعي معه للتابع المُمرَّر إليه. | يتحقَّق التابع <code>?respond_to</code> من استجابة الكائن الذي استدعي معه للتابع المُمرَّر إليه. | ||
===<code>[[Ruby/Object/respond to missing-3F|?respond_to_missing]]</code>=== | |||
=== <code>?respond_to_missing</code> === | |||
يُصنَّف التابع <code>?respond_to_missing</code> من التوابع الخطَّافة (Hook method)، إذ يتحقَّق فيما إذا كان الكائن المعطى يستجيب إلى تابعٍ محدِّدٍ أم لا. | يُصنَّف التابع <code>?respond_to_missing</code> من التوابع الخطَّافة (Hook method)، إذ يتحقَّق فيما إذا كان الكائن المعطى يستجيب إلى تابعٍ محدِّدٍ أم لا. | ||
===<code>[[Ruby/Object/send|send]]</code>=== | |||
=== <code>send</code> === | |||
يَستدعي التابع <code>send</code> التابع المعرَّف برمزٍ (symbol) ويُنفَّذه تلقائيًا ويمرِّر إليه أي معاملاتٍ معطاة. | يَستدعي التابع <code>send</code> التابع المعرَّف برمزٍ (symbol) ويُنفَّذه تلقائيًا ويمرِّر إليه أي معاملاتٍ معطاة. | ||
===<code>[[Ruby/Object/singleton class|singleton_class]]</code>=== | |||
=== <code>singleton_class</code> === | |||
يُعيد التابع <code>singleton_class</code> صنف الكائن المُنفرد (singleton class) للكائن الذي استدعي معه. | يُعيد التابع <code>singleton_class</code> صنف الكائن المُنفرد (singleton class) للكائن الذي استدعي معه. | ||
===<code>[[Ruby/Object/singleton method|singleton_method]]</code>=== | |||
=== <code>singleton_method</code> === | |||
يبحث التابع <code>singleton_method</code> في التوابع المنفردة فقط بطريقة مشابهة للتابع <code>method</code>. | يبحث التابع <code>singleton_method</code> في التوابع المنفردة فقط بطريقة مشابهة للتابع <code>method</code>. | ||
===<code>[[Ruby/Object/singleton methods|singleton_methods]]</code>=== | |||
=== <code>singleton_methods</code> === | |||
يُعيد التابع <code>singleton_methods</code> مصفوفةً تحوي أسماء توابع الكائن المنفردة (singleton methods). | يُعيد التابع <code>singleton_methods</code> مصفوفةً تحوي أسماء توابع الكائن المنفردة (singleton methods). | ||
===<code>[[Ruby/Object/taint|taint]]</code>=== | |||
=== <code>taint</code> === | |||
يصم التابع <code>taint</code> الكائن الذي استدعي معه بأنه كائنٌ فاسد (tainted). | يصم التابع <code>taint</code> الكائن الذي استدعي معه بأنه كائنٌ فاسد (tainted). | ||
===<code>[[Ruby/Object/tainted-3F|?tainted]]</code>=== | |||
=== <code>?tainted</code> === | |||
يتحقَّق التابع <code>?tainted</code> إذا كان التابع فاسدًا (tainted). | يتحقَّق التابع <code>?tainted</code> إذا كان التابع فاسدًا (tainted). | ||
===<code>[[Ruby/Object/tap|tap]]</code>=== | |||
=== <code>tap</code> === | |||
يُدخل التابع <code>tap</code> الكائن المعطى إلى الكتلة (block)، ثم يعيده. | يُدخل التابع <code>tap</code> الكائن المعطى إلى الكتلة (block)، ثم يعيده. | ||
===<code>[[Ruby/Object/to enum|to_enum]]</code>=== | |||
=== <code>to_enum</code> === | |||
يُنشئ التابع <code>to_enum</code> نسخةً من الصنف <code>Enumerator</code> التي ستُجري عملية عدٍّ (enumerate) عبر استدعاء تابعٍ محدَّدٍ مع الكائن المعطى، وتمرير وسائط إن أعطيت. | يُنشئ التابع <code>to_enum</code> نسخةً من الصنف <code>Enumerator</code> التي ستُجري عملية عدٍّ (enumerate) عبر استدعاء تابعٍ محدَّدٍ مع الكائن المعطى، وتمرير وسائط إن أعطيت. | ||
===<code>[[Ruby/Object/to s|to_s]]</code>=== | |||
=== <code>to_s</code> === | |||
يُعيد التابع <code>to_s</code> سلسلةً نصيةً تُمثِّل الكائن الذي استدعي معه. | يُعيد التابع <code>to_s</code> سلسلةً نصيةً تُمثِّل الكائن الذي استدعي معه. | ||
===<code>[[Ruby/Object/trust|trust]]</code>=== | |||
=== <code>trust</code> === | |||
يعدُّ <code>trust</code> تابعًا مهملًا (Deprecated method) وهو مكافئٌ تمامًا للتابع <code>untaint</code>. | يعدُّ <code>trust</code> تابعًا مهملًا (Deprecated method) وهو مكافئٌ تمامًا للتابع <code>untaint</code>. | ||
===<code>[[Ruby/Object/untaint|untaint]]</code>=== | |||
=== <code>untaint</code> === | |||
يُلغي التابع <code>untaint</code> علامة الحالة الفاسدة (tainted) من الكائن الذي استدعي معه. | يُلغي التابع <code>untaint</code> علامة الحالة الفاسدة (tainted) من الكائن الذي استدعي معه. | ||
===<code>[[Ruby/Object/untrust|untrust]]</code>=== | |||
=== <code>untrust</code> === | |||
يعدُّ <code>untrust</code> تابعًا مهملًا (Deprecated method) وهو مكافئٌ تمامًا للتابع <code>taint</code>. | يعدُّ <code>untrust</code> تابعًا مهملًا (Deprecated method) وهو مكافئٌ تمامًا للتابع <code>taint</code>. | ||
===<code>[[Ruby/Object/untrusted-3F|?untrusted]]</code>=== | |||
=== <code>?untrusted</code> === | |||
يعتبر <code>?untrusted</code> تابعًا غير منصوحٍ به (Deprecated method) وهو مكافئٌ للتابع <code>?tainted</code>. | يعتبر <code>?untrusted</code> تابعًا غير منصوحٍ به (Deprecated method) وهو مكافئٌ للتابع <code>?tainted</code>. | ||
===<code>[[Ruby/Object/yield self|yield_self]]</code>=== | |||
=== <code>yield_self</code> === | |||
يُدخل التابع <code>yield_self</code> الكائن المعطى إلى الكتلة (block) ويُعيد ناتج تنفيذ هذه الكتلة. | يُدخل التابع <code>yield_self</code> الكائن المعطى إلى الكتلة (block) ويُعيد ناتج تنفيذ هذه الكتلة. | ||
==مصادر== | |||
== مصادر == | *[http://ruby-doc.org/core-2.5.1/Object.html صفحة الصنف Object في توثيق روبي الرسمي.] | ||
* [http://ruby-doc.org/core-2.5.1/Object.html صفحة الصنف Object في توثيق روبي الرسمي.] | |||
[[تصنيف:Ruby]] | [[تصنيف:Ruby]] | ||
[[تصنيف:Ruby Class]] | [[تصنيف:Ruby Class]] | ||
[[تصنيف:Ruby Object]] | [[تصنيف:Ruby Object]] |
مراجعة 17:25، 20 نوفمبر 2018
يعدُّ الصنف Object
الجذر الافتراضي لكل كائنات روبي. يَرِث الصنف Object
من الصنف BasicObject
ما يسمح بإنشاء تسلسلات هرمية بديلة للكائن. تُتاح توابع الكائن لكل الأصناف ما لم يتم تجاهلها (overridden) صراحةً.
تندمج الوحدة Kernel
ضمن الصنف Object
ما يعطي الوصول العام (global) للدّوال المبنية ضمنيًّا في الوحدة. رغم أنَّ توابع النسخة المنشأة من الصنف Object
معرَّفةٌ عن طريق الوحدة Kernel
، رأينا أن نوثّقهم هنا لمزيد من الوضوح.
عند الإشارة (referencing) إلى الثوابت في الأصناف الوارثة من الصنف Object، لا تحتاج إلى أن تستخدم كامل مجال الأسماء (namespace). على سبيل المثال، الإشارة بالمرجعية إلى الثابت File
ضمن الصنف YourClass
سيجد الصنف ذا المستوى الأعلى من File
.
في توثيق كل تابع من توابع الصنف Object
، يشير المعامل symbol
إلى رمزٍ يكون إما سلسلةً نصيةً مقتبسةً (quoted) أو الصنف Symbol
(مثل name:
).
الثوابت
ARGF
هو مجرى (stream) صُمِّم ليُستخدَم في الملفات البرمجية (scritps) التي تُعالج الملفات المُمرَّرة إليها على شكل وسائط في سطر الأوامر (command-line arguments)، أو المُمرَّرة عبر مجرى الدخل القياسي (STDIN).
ألقِ نظرة على صفحة الصنف ARGF
لمزيدٍ من المعلومات.
ARGV
يحتوي على وسائط سطر الأوامر المستخدمة في تشغيل روبي. يمكن استخدام مكتبةٍ مثل OptionParser
لمعالجة وسائط سطر الأوامر.
Bignum
DATA
هو ملفٌّ يحوي قسم المعلومات الخاص بالملف المنفَّذ. استخدِم __END__
لإنشاء قسم معلوماتٍ:
$ cat t.rb
puts DATA.gets
__END__
hello world!
$ ruby t.rb
hello world!
ENV
يشبه دوال التجزئة (hash-like accessor) لبيئة المتغيرات.
ألقِ نظرة على صفحة الصنف ENV
لمزيدٍ من المعلومات.
FALSE
هو اسمٌ بديلٌ مهمل (obsolete alias) للقيمة false
.
Fixnum
NIL
هو اسمٌ بديلٌ مهمل للقيمة nil
.
RUBY_COPYRIGHT
يمثّل سلسلةً نصيةً تحتوي حقوق النشر لبرنامج روبي.
RUBY_DESCRIPTION
يمثّل سلسلةً نصيةً تحتوي إصدار روبي الكامل، مثل تلك الناتجة عن تنفيذ الأمر ruby -v
في سطر الأوامر.
RUBY_ENGINE
يمثّل المحرِّك أو المفسِّر الذي تستخدمه روبي.
RUBY_ENGINE_VERSION
يمثّل إصدار المحرِّك أو المفسِّر الذي تستخدمه روبي.
RUBY_PATCHLEVEL
يمثّل مستوى التصحيح (patch level) لهذا الإصدار من روبي. إذا كان الإصدار نسخةً تطويريةً من روبي، فإنَّ مستوى الرقعة سيكون مساويًا 1-.
RUBY_PLATFORM
يمثّل منصة هذا الإصدار من روبي.
RUBY_RELEASE_DATE
يمثّل تاريخ إطلاق هذا الإصدار من روبي.
RUBY_REVISION
يمثّل رقم التنقيح في SVN
لهذا الإصدار من روبي.
RUBY_VERSION
يمثّل الإصدار المُشغَّل حاليًا من روبي.
STDERR
يحتفظ بمجرى الخطأ القياسي (stderr) الأصلي.
STDIN
يحتفظ بمجرى الدخل القياسي (stdin) الأصلي.
STDOUT
يحتفظ بمجرى الخرج القياسي (stdout) الأصلي.
TOPLEVEL_BINDING
يمثل نطاق المستوى الأعلى للصنف BINDING.
TRUE
هو اسمٌ بديلٌ مهمل للقيمة true
.
توابع النسخة الخاصة (Public Instance Methods)
~!
يتحقق المعامل !~
من عدم تساوي كائنين (باستخدام التابع =~
).
<=>
يتحقق المعامل <=>
من تساوي كائنين بين بعضهما بعضًا (يشبه المعامل ==
).
===
يتحقق المعامل ===
من تساوي كائنين بشكل صارم.
~=
يتحقّق المعامل ~=
من تطابق نمطي كائنين (Pattern Match).
class
يعيد التابع class
صنف الكائن المعطى.
clone
يُنتج التابع clone
نسخةً سطحيةً (shallow copy) من الكائن المعطى.
define_singleton_method
يُعرِّف التابع define_singleton_method
تابعًا منفردًا (singleton method) في المستقبل (receiver).
display
يَطبع التابع display
الكائن الذي استدعي معه على المنفذ (port) المعطى (يساوي افتراضيًا <$
).
dup
ينتج التابع dup
نسخةً سطحية (shallow copy) من الكائن.
enum_for
يُنشئ التابع enum_for
نسخةً من الصنف Enumerator الذي يجري عملية عدٍّ (enumerate) وتكرار عبر استدعاء التابع المُمرَّر إليها مع كائنٍ محدَّد، وتمرير وسائط إن أعطيت.
==
يتحقَّق المعامل ==
من تساوي كائنين مع بعضهما بعضًا.
?equal
يُستخدم التابع ?equal
في تحديد هويّة الكائن.
?eql
يتحقَّق التابع ?eql
من استخدام كلا الكائنين نفس مفتاح التجزئة (hash key).
extend
يُضيف التابع extend
توابع النسخة (instance) من كُلِّ وحدةٍ مُرِّرت إليه إلى الكائن الذي استدعي معه.
freeze
يمنع التابع freeze
إجراء تعديلاتٍ إضافيةٍ على الكائن الذي استدعي معه.
?frozen
يتحقَّق التابع ?frozen
إن كان الكائن في حالة تجميد أم لا.
inspect
يُعيد التابع inspect سلسلةً نصيةً تحتوي تمثيلًا يفهمه البشر للكائن الذي استدعي معه.
?instance_of
يتحقَّق التابع ?instance_of
إذا كان الكائن الذي استدعي معه نسخةً من الصِّنف المُمرَّر إليه.
?instance_variable_defined
يتحقَّق التابع ?instance_variable_defined
إذا كان متغيِّر النسخة (instance variable) المُمرَّر إليه مُعرَّفًا في الكائن المعطى.
instance_variable_get
يجلب التابع instance_variable_get
قيمة مُتغيِّر النسخة (instance variable) المُمرَّر إليه من الكائن المعطى.
instance_variable_set
يُعيِّن التابع instance_variable_set
قيمة متغيِّر نسخةٍ (instance variable) محدِّدٍ إلى قيمة معيَّنة في الكائن المُعطى.
instance_variables
يجلب التابع instance_variables
جميع أسماء متغيرات النسخة (instance variable) للمستقبل (receiver) المعطى.
?is_a
يتحقَّق التابع ?is_a
إن كان الصنف المُمرَّر إليه هو نفسه صنف الكائن الذي استدعي معه، أو إن كان هذا الصنف أحد الأصناف العليا (superclasses) للكائن المعطى أو الوحدات المُضمَّنة في هذا الكائن.
itself
يُعيد التابع itself
الكائن المستقبل (receiver).
?kind_of
يتحقَّق التابع ?kind_of
إن كان الصنف المُمرَّر إليه هو نفسه صنف الكائن المعطى، أو أنه واحدٌ من الأصناف العليا (superclasses) لذلك الكائن أو الوحدات المُضمَّنة فيه.
method
يبحث التابع method
عن تابعٍ باسمٍ محدَّد في الكائن المعطى بوصفه مستقبلًا (receiver).
methods
يُعيد التابع methods
قائمةً بالتوابع العامَّة والمحميَّة للكائن المعطى.
?nil
يتحقَّق التابع ?nil
فيما إذا كان الكائن المعطى هو nil أم لا.
object_id
يعيد التابع object_id
مُعرِّفا عدديًا للكائن الذي استُدعي معه.
private_methods
يُعيد التابع private_methods
قائمةً بالتوابع الخاصة (private methods) التي يمتلك الكائن الذي استدعي معه الوصول إليها.
protected_methods
يُعيد التابع protected_methods
قائمةً بالتوابع المحميَّة (protected methods) التي يمتلك الكائن الذي استدعي معه الوصول إليها.
public_method
يبحث التابع public_method
عن التوابع العامة فقط بشكل مشابه لعمل التابع method
.
public_methods
يُعيد التابع public_methods
قائمةً بالتوابع العامَّة (public methods) التي يمتلك الكائن الذي استدعي معه الوصول إليها.
public_send
يَستدعي التابع public_send
التابع المعرَّف برمزٍ (symbol) محدَّدٍ ويُنفَّذه تلقائيًا مع تمرير أي معاملاتٍ معطاة.
remove_instance_variable
يَحذِف التابع remove_instance_variable
متغيِّر نسخةٍ باسمٍ محدَّدٍ من الكائن الذي استدعي معه ويُعيد قيمة ذلك المتغيِّر.
?respond_to
يتحقَّق التابع ?respond_to
من استجابة الكائن الذي استدعي معه للتابع المُمرَّر إليه.
?respond_to_missing
يُصنَّف التابع ?respond_to_missing
من التوابع الخطَّافة (Hook method)، إذ يتحقَّق فيما إذا كان الكائن المعطى يستجيب إلى تابعٍ محدِّدٍ أم لا.
send
يَستدعي التابع send
التابع المعرَّف برمزٍ (symbol) ويُنفَّذه تلقائيًا ويمرِّر إليه أي معاملاتٍ معطاة.
singleton_class
يُعيد التابع singleton_class
صنف الكائن المُنفرد (singleton class) للكائن الذي استدعي معه.
singleton_method
يبحث التابع singleton_method
في التوابع المنفردة فقط بطريقة مشابهة للتابع method
.
singleton_methods
يُعيد التابع singleton_methods
مصفوفةً تحوي أسماء توابع الكائن المنفردة (singleton methods).
taint
يصم التابع taint
الكائن الذي استدعي معه بأنه كائنٌ فاسد (tainted).
?tainted
يتحقَّق التابع ?tainted
إذا كان التابع فاسدًا (tainted).
tap
يُدخل التابع tap
الكائن المعطى إلى الكتلة (block)، ثم يعيده.
to_enum
يُنشئ التابع to_enum
نسخةً من الصنف Enumerator
التي ستُجري عملية عدٍّ (enumerate) عبر استدعاء تابعٍ محدَّدٍ مع الكائن المعطى، وتمرير وسائط إن أعطيت.
to_s
يُعيد التابع to_s
سلسلةً نصيةً تُمثِّل الكائن الذي استدعي معه.
trust
يعدُّ trust
تابعًا مهملًا (Deprecated method) وهو مكافئٌ تمامًا للتابع untaint
.
untaint
يُلغي التابع untaint
علامة الحالة الفاسدة (tainted) من الكائن الذي استدعي معه.
untrust
يعدُّ untrust
تابعًا مهملًا (Deprecated method) وهو مكافئٌ تمامًا للتابع taint
.
?untrusted
يعتبر ?untrusted
تابعًا غير منصوحٍ به (Deprecated method) وهو مكافئٌ للتابع ?tainted
.
yield_self
يُدخل التابع yield_self
الكائن المعطى إلى الكتلة (block) ويُعيد ناتج تنفيذ هذه الكتلة.