الصنف Object في روبي

من موسوعة حسوب
مراجعة 16:47، 20 نوفمبر 2018 بواسطة محمد-خطيب (نقاش | مساهمات) (أنشأ الصفحة ب'{{DISPLAYTITLE:الصنف <code>Object</code> في روبي}} يعدُّ الصنف <code>Object</code> الجذر الافتراضي لكل كائنات روبي. يَ...')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

يعدُّ الصنف 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) وتكرار عبر استدعاء التابع المُمرَّر إليها مع كائنٍ محدَّد، وتمرير وسائط إن أعطيت.

?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) ويُعيد ناتج تنفيذ هذه الكتلة.

مصادر