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

من موسوعة حسوب
لا ملخص تعديل
لا ملخص تعديل
سطر 2: سطر 2:
[[تصنيف: Ruby]]
[[تصنيف: Ruby]]
[[تصنيف: Ruby Kernel]]
[[تصنيف: Ruby Kernel]]
الوحدة <code>Kernel</code> مُتضمّنة من طرف الصنف <code>[[Ruby/Object|Object]]</code>، لذلك فتوابعه متاحة في كل كائنات روبي.
الوحدة <code>Kernel</code> مُتضمّنة من طرف الصنف <code>[[Ruby/Object|Object]]</code>، لذلك فتوابعها متاحة في كل كائنات روبي.


توابع نسخ الصنف <code>Kernel</code> مُوثّقة في صفحة الصنف <code>[[Ruby/Object|Object]]</code>، أما توابع الوحدة <code>Kernel</code> فهي مُوثقة هنا. تستدعى هذه التوابع بدون مستقبل (receiver)، وبالتالي يمكن استدعاؤها وفق الشكل الدوالي:<syntaxhighlight lang="ruby">
توابع نسخ الصنف <code>Kernel</code> مُوثّقة في صفحة الصنف <code>[[Ruby/Object|Object]]</code>، أما توابع الوحدة <code>Kernel</code> فهي مُوثقة هنا. تستدعى هذه التوابع بدون مستقبل (receiver)، وبالتالي يمكن استدعاؤها وفق الشكل الدوالي:<syntaxhighlight lang="ruby">
سطر 42: سطر 42:
يعيد التابع القيمة <code>true</code> إذا كان <code>yield</code> سينفذ كتلة برمجية في السياق الحالي.
يعيد التابع القيمة <code>true</code> إذا كان <code>yield</code> سينفذ كتلة برمجية في السياق الحالي.
===[[Ruby/Kernel/callcc | التابع callcc]]===
===[[Ruby/Kernel/callcc | التابع callcc]]===
يولد التابع <code>callcc</code> كائنًا من النوع <code>[[Ruby/Continuation|Continuation]]</code>، والذي يُمرّر إلى الكتلة البرمجية المعطاة. سيكون عليك أن تستورد <code>'continuation'</code> قبل استخدام هذا التابع.


===[[Ruby/Kernel/caller | التابع caller]]===
===[[Ruby/Kernel/caller | التابع caller]]===
يعيد التابع مكدس التنفيذ الحالي (execution stack)، والذي هو مصفوفة تحتوي على سلاسل نصية على الشاكلة <code>file:line</code> أو <code>file:line: in `method'</code>.
يعيد التابع مكدس التنفيذ الحالي (execution stack)،  
===[[Ruby/Kernel/caller_locations | التابع caller_locations]]===
===[[Ruby/Kernel/caller_locations | التابع caller_locations]]===
يعيد التابع مكدس التنفيذ الحالي، والذي هو عبارة عن مصفوفة تحتوي كائنات تعقب (backtrace location objects).
يعيد التابع مكدس التنفيذ الحالي، والذي هو عبارة عن مصفوفة تحتوي كائنات تعقب (backtrace location objects).
سطر 50: سطر 51:
ينفذ <code>catch</code> كتلته البرمجية في حال عدم استدعاء <code>throw</code>، فستنفّذ الكتلة بشكل طبيعي، وسيعيد <code>catch</code> قيمة آخر تعبير تم تقييمه.
ينفذ <code>catch</code> كتلته البرمجية في حال عدم استدعاء <code>throw</code>، فستنفّذ الكتلة بشكل طبيعي، وسيعيد <code>catch</code> قيمة آخر تعبير تم تقييمه.
===[[Ruby/Kernel/chomp | التابع chomp]]===
===[[Ruby/Kernel/chomp | التابع chomp]]===
يكافئ التابع التعبير <code>$_ = $_.chomp( string )</code>. انظر صفحة <code>String#chomp</code>. متوفر فقط عند تحديد خيار سطر الأوامر -p/-n.
يكافئ التابع التعبير <code>$_ = $_.chomp( string )</code>.
===[[Ruby/Kernel/chop | التابع chop]]===
===[[Ruby/Kernel/chop | التابع chop]]===
يكافئ التابع التعبير <code>($_.dup).chop!</code> ، باستثناء أنّ <code>nil</code> لا تُعاد أبدًا. انظر صفحة <code>String#chop!</code>. متوفر فقط عند تحديد خيار سطر الأوامر -p/-n.
يكافئ التابع <code>chop</code>  التعبير <code>($_.dup).chop!</code> ، باستثناء أنّ <code>nil</code> لا تُعاد أبدًا. انظر صفحة <code>!String#chop</code>.
===[[Ruby/Kernel/eval | التابع eval]]===
===[[Ruby/Kernel/eval | التابع eval]]===
يقيم (Evaluates) التابع تعبيرات روبي الموجودة في سلاسل نصية. إذا أعطي الوسيط binding، والذي يجب أن يكون من النوع <code>Binding</code>، فسيُجرى التقييم في السياق الخاص بها. في حال تمرير الوسيطين الاختياريين filename و lineno، فسيُستخدمان عند الإبلاغ عن أخطاء في الصياغة.
يقيم (Evaluates) التابع تعبيرات روبي الموجودة في سلاسل نصية.  
===[[Ruby/Kernel/exec | التابع exec]]===
===[[Ruby/Kernel/exec | التابع exec]]===
يستبدل التابع العملية الحالية عن طريق تشغيل الأمر الخارجي المعطى، والذي يمكن أن يأخذ أحد الأشكال التالية:
يستبدل التابع العملية الحالية عن طريق تشغيل الأمر الخارجي المعطى، والذي يمكن أن يأخذ أحد الأشكال التالية:
===[[Ruby/Kernel/exit | التابع exit]]===
===[[Ruby/Kernel/exit | التابع exit]]===
يبدأ التابع عملية إنهاء البرنامج النصي لروبي، عن طريق إطلاق استثناء <code>SystemExit</code>. من الممكن أن يتم احتواء هذا الاستثناء. يُستخدم الوسيط الاختياري لإعادة رمز الحالة (status code) لبيئة الاستدعاء. تشير الحالتان <code>true</code> و <code>FALSE</code> إلى النجاح والفشل على التوالي.  يعتمد تفسير قيم الأعداد الأخرى على النظام المُستخدم.
يبدأ التابع عملية إنهاء البرنامج النصي لروبي، عن طريق إطلاق استثناء <code>SystemExit</code>.  
===[[Ruby/Kernel/exit-21 | التابع exit!]]===
===[[Ruby/Kernel/exit-21 | التابع exit!]]===
ينهي العملية على الفور. لا يتم تنفيذ أي معالجات إنهاء (exit handlers). تعاد الحالة إلى النظام الأساسي باعتبارها حالة الخروج (exit status).
ينهي العملية على الفور. لا يتم تنفيذ أي معالجات إنهاء (exit handlers).  
===[[Ruby/Kernel/fail | التابع fail]]===
===[[Ruby/Kernel/fail | التابع fail]]===
في حال استدعاء التابع بدون إعطاء أي وسائط، فسبُطلق الاستثناء في <code>$!</code> أو يطلق <code>RuntimeError</code> إذا كان <code>$!</code> يساوي <code>nil</code>. في حال تمرير وسيط واحد <code>String</code>، فسيطلق <code>RuntimeError</code> مع سلسلة نصية كرسالة. حلا ذلك، يجب أن يكون الوسيط الأول هو اسم صنف <code>Exception</code> (أو كائنًا يعيد كائن من النوع <code>Exception</code> عند إرسال رسالة <code>exception</code>). يحدد الوسيط الاختياري الثانية الرسالة المرتبطة بالاستثناء، أما الوسيط الثالث فهو مصفوفة تضم معلومات الاستدعاء. تُضبط الاستثناءات بواسطة الجملة <code>rescue</code> من كتل <code>begin...end</code>.
في حال استدعاء التابع بدون إعطاء أي وسائط، فسبُطلق الاستثناء في <code>$!</code> أو يطلق <code>RuntimeError</code> إذا كان <code>$!</code> يساوي <code>nil</code>.  
===[[Ruby/Kernel/fork | التابع fork]]===
===[[Ruby/Kernel/fork | التابع fork]]===
ينشئ التابع عملية فرعية (subprocess). في حال إعطاء كتلة، فستُنفّذ تلك الكتلة في العملية الفرعية، كما أن قيمة الحالة عند الانتهاء ستساوي صفر. وإلا ، فإن استدعاء التابع <code>fork</code> سيقوم بالإعادة مرتين، مرة في العملية الأم (parent, process)، حيث يعيد معرف العملية الفرعية، ومرة في العملية الفرعية، حيث يعيد nil. يمكن للعملية الفرعية الخروج باستخدام <code>Kernel.exit!</code> لتجنب تشغيل دوال <code>at_exit</code>. يجب أن تستخدم العملية الأم <code>Process.wait</code> لجمع حالات إنهاء عملياتها الفرعية، أو تستخدم <code>Process.detach</code> لتسجيل إهمال تلك الحالات؛ خلاف ذلك، قد يُراكم نظام التشغيل عمليات الزومبي (zombie processes).
ينشئ التابع عملية فرعية (subprocess).  
===[[Ruby/Kernel/format | التابع format]]===
===[[Ruby/Kernel/format | التابع format]]===
يعيد التابع السلسلة النصية الناتجة من تطبيق format_string على أي وسائط إضافيةداخل السلسلة النصية format_string، ستُنسخ كل الأحرف في النتيجة باستثناء تسلسلات التنسيق (format sequences).
يعيد التابع السلسلة النصية الناتجة من تطبيق format_string على الوسائط الإضافية.   
===[[Ruby/Kernel/gets | التابع gets]]===
===[[Ruby/Kernel/gets | التابع gets]]===
يعيد التابع (ويُحيل على <code>$_</code>) السطر الموالي من قائمة الملفات في <code>ARGV</code> (أو <code>$*</code>)، أو من مجرى الإدخال القياسي في حالة عدم تمرير أي ملفات في سطر الأوامر. ويعيد <code>nil</code> في نهاية الملف. يحدد الوسيط الاختياري فاصل السجل. يتم تضمين الفاصل مع محتويات كل سجل. قي حال كان الوسيط sep يساوي <code>nil</code> فسيقرأ التابع gets كامل المحتوى، أما إذا كان الفاصل معدوم الطول (zero-length) فسيقرأ فقرة واحدة في كل مرة من المدخلات، بحيث تكون الفقرات مقسمة بواسطة سطرين جديدين متتاليين .  إذا كان الوسيط الأول عددًا صحيحًا أو في حالإعطاء الوسيط الثاني الاختياري، فإنّ السلسلة النصية المعادة لن تكون أطول من القيمة المحددة من حيث عدد البتات (bytes).  في حال تمرير عدة أسماء ملفات إلى <code>ARGV</code> ، فسيقرأ <code>gets(nil)</code> محتويات الملفات، واحدًا في كل مرة.
يعيد التابع <code>gets</code> (ويُحيل على <code>$_‎</code>) السطر الموالي من قائمة الملفات في المجرى <code>ARGV</code> (أو <code>$‎‎*</code>)، أو من مجرى الإدخال القياسي في حالة عدم تمرير أي ملفات في سطر الأوامر. ويعيد <code>nil</code> عند نهاية الملف.
===[[Ruby/Kernel/global_variables | التابع global_variables]]===
===[[Ruby/Kernel/global_variables | التابع global_variables]]===
يعيد التابع global_variables مصفوفة تضم أسماء المتغيرات الكلية (global variables).
يعيد التابع global_variables مصفوفة تضم أسماء المتغيرات الكلية (global variables).
===[[Ruby/Kernel/gsub | التابع gsub]]===
===[[Ruby/Kernel/gsub | التابع gsub]]===
يكافئ التابع gsub التعبير <code>$_.gsub...</code>، باستثناء أنه سيتم تحديث <code>$_</code> في حال حدوث استبدال. متوفر فقط عند تحديد خيار سطر الأوامر -p/-n
يكافئ التابع <code>gsub</code> التعبير ‎<code>$_.gsub...</code>، باستثناء أنه سيتم تحديث <code>$_‎</code> في حال حدوث استبدال. متوفر فقط عند تحديد خيار سطر الأوامر ‎<code>-p/-n</code>
===[[Ruby/Kernel/iterator-3F | التابع iterator?]]===
===[[Ruby/Kernel/iterator-3F | التابع iterator?]]===
يعيد التابع iterator? القيمة <code>true</code> إذا كان <code>yield</code> سينفذ كتلة برمجية في السياق الراهن. لقد صار الشكل <code>iterator?</code> متجاوزًا إلى حد ما.
يعيد التابع iterator? القيمة <code>true</code> إذا كان <code>yield</code> سينفذ كتلة برمجية في السياق الراهن. لقد صار الشكل <code>iterator?</code> متجاوزًا إلى حد ما.
===[[Ruby/Kernel/lambda | التابع lambda]]===
===[[Ruby/Kernel/lambda | التابع lambda]]===
يكافئ التابع lambda التعبير <code>Proc.new</code>، باستثناء أنّ كائنات <code>Proc</code> الناتجة ستتحقق من عدد الوسائط الممررة عند استدعائها.
يكافئ التابع lambda التعبير <code>Proc.new</code>، باستثناء أنّ كائنات <code>Proc</code> الناتجة ستتحقق من عدد الوسائط الممررة عند استدعائها.
===[[Ruby/Kernel/load | التابع load]]===
===[[Ruby/Kernel/load | التابع load]]===
يحمل التابع load وينفّذ برنامج روبي في الملف filename. في حال لم يمكن حل filename إلى مسار مطلق (absolute path)، فسيتم البحث عن الملف في المجلدات المكتبة الواردة في <code>$:</code>. إذا كان الوسيط الاختياري wrap يساوي <code>true</code> ، فسيُنفذ النص البرمجي المحمّل كوحدة مجهولة (anonymous module)، لحماية مجال الأسماء الخاص بالبرنامج المُستدغي. لن يتم نشر أيّ من المتغيرات المحلية في الملف المحمّل تحت أي ظرف من الظروف في بيئة التحميل.
يحمل التابع load وينفّذ برنامج روبي في الملف filename.  
===[[Ruby/Kernel/local_variables | التابع local_variables]]===
===[[Ruby/Kernel/local_variables | التابع local_variables]]===
يعيد التابع local_variables أسماء المتغيرات المحلية الحالية.
يعيد التابع local_variables أسماء المتغيرات المحلية الحالية.
سطر 86: سطر 87:
ينشئ التابع open كائنًا من النوع <code>IO</code> متصلا بالمجرى أو الملف أو العملية الفرعية (subprocess) المحددة.
ينشئ التابع open كائنًا من النوع <code>IO</code> متصلا بالمجرى أو الملف أو العملية الفرعية (subprocess) المحددة.
===[[Ruby/Kernel/p | التابع p]]===
===[[Ruby/Kernel/p | التابع p]]===
يكتب التابع p لكل كائن يُمرر إليه ناتج التعبير يكتب مباشرة .<code>inspect</code>، متبوعًا بسطر جديد في مجرى الإخراج القياسي للبرنامج.
يكتب التابع <code>p</code> في مجرى الإخراج القياسي للبرنامج ناتج التعبير <code>''obj''.inspect</code>مباشرة ، متبوعًا بسطر جديد، لكل كائن <code>''obj''</code> يُمرر إليه.
===[[Ruby/Kernel/print | التابع print]]===
===[[Ruby/Kernel/print | التابع print]]===
يطبع التابع print الكائنات الممرة إليه بالتتابع في المجرى <code>$stdout</code>. إذا كان فاصل حقل الإخراج (<code>$,</code>) لا يساوي <code>nil</code> ، فسيظهر محتواه بين الحقول. إذا كان فاصل سجل الإخراج (<code>$\</code>) لا يساوي <code>nil</code> ، فسيوضع في نهاية المخراجات. في جال لم تعطى أي وسائط، فستُطبع <code>$_</code>. ستُحول الكائنات غير النصية باستخدام التابع <code>to_s</code> الخاصة بها.
يطبع التابع <code>print</code> الكائنات الممرة إليه بالتتابع في المجرى <code>$stdout</code>.  
===[[Ruby/Kernel/printf | التابع printf]]===
===[[Ruby/Kernel/printf | التابع printf]]===
يكافئ التابع printf التعبير:
يكافئ التابع printf التعبير: <code>‎ io.write(sprintf(string, obj, ...))</code>‎
===[[Ruby/Kernel/proc | التابع proc]]===
===[[Ruby/Kernel/proc | التابع proc]]===
يكافي التابع proc التعبير <code>Proc.new</code>.
يكافي التابع <code>proc</code> التعبير <code>Proc.new</code>.
===[[Ruby/Kernel/putc | التابع putc]]===
===[[Ruby/Kernel/putc | التابع putc]]===
يكافئ التابع putc التعبير:
يكافئ التابع putc التعبير: ‎<code>$stdout.putc(int)‎</code>
===[[Ruby/Kernel/puts | التابع puts]]===
===[[Ruby/Kernel/puts | التابع puts]]===
يكافئ التابع puts التعبير:
يكافئ التابع puts التعبير: ‎<code>$stdout.puts(obj, ...)‎</code>
===[[Ruby/Kernel/raise | التابع raise]]===
===[[Ruby/Kernel/raise | التابع raise]]===
في حال عدم تمريرأي وسائط، سيطلق التابع raise استثناء في <code>$!</code> أو يطلق <code>RuntimeError</code> إن كان <code>$!</code> يساوي <code>nil</code>. في حال تمرير وسيط واحد <code>String</code>، فسيطلق <code>RuntimeError</code> بحيث يكون الوسيط الممرر string الرسالة. خلا ذلك، يجب أن يكون الوسيط الأول اسما للصنف <code>Exception</code> (أو كائنًا يعيد كائن <code>Exception</code> عند تلقيه رسالة <code>exception</code>). يحدد الوسيط الاختياري الثاني رسالة الاستثناء، أما الوسيط الثالث فهو مصفوفة تضم معلومات الاستدعاء. تُضبط الاستثناءات بواسطة جملة <code>rescue</code> من كتل <code>begin...end</code>.
في حال عدم تمريرأي وسائط، سيطلق التابع raise استثناء في <code>$!</code> أو يطلق <code>RuntimeError</code> إن كان <code>$!</code> يساوي <code>nil</code>.
===[[Ruby/Kernel/rand | التابع rand]]===
===[[Ruby/Kernel/rand | التابع rand]]===
في حال استدعاء التابع rand بدون تمرير وسائط إليه، أو إن كان <code>max.to_i.abs == 0</code>، فسيعيد التابع rand عدد عشري شبه عشوائي (pseudo-random) محصور بين 0.0 و 1.0، متضمنا 0.0، وباستثناء 1.0.
في حال استدعاء التابع <code>rand</code> بدون تمرير وسائط إليه، أو إن كان <code>max.to_i.abs == 0</code>، فسيعيد التابع <code>rand</code> عدد عشري شبه عشوائي (pseudo-random) محصور بين 0.0 و 1.0، متضمنا 0.0، وباستثناء 1.0.
===[[Ruby/Kernel/readline | التابع readline]]===
===[[Ruby/Kernel/readline | التابع readline]]===
يكافئ التابع readline التعبير <code>Kernel::gets</code> ، باستثناء أنّ <code>readline</code> تطلق خطأ <code>EOFError</code> عند نهاية الملف.
يكافئ التابع <code>readline</code> التعبير <code>Kernel::gets</code> ، باستثناء أنّ <code>readline</code> تطلق خطأ <code>EOFError</code> عند نهاية الملف.
===[[Ruby/Kernel/readlines | التابع readlines]]===
===[[Ruby/Kernel/readlines | التابع readlines]]===
يعيد التابع readlines مصفوفة تحتوي الأسطر المُعادة من استدعاء <code>Kernel.gets( sep )</code> حتى نهاية الملف.
يعيد التابع <code>readlines</code> مصفوفة تحتوي الأسطر المُعادة من استدعاء <code>Kernel.gets( sep )</code> حتى نهاية الملف.
===[[Ruby/Kernel/require | التابع require]]===
===[[Ruby/Kernel/require | التابع require]]===
بحمل التابع require المُعطى <code>name</code>،ويعيد <code>true</code> في حال نجح في ذلك، أو <code>false</code> إذا كانت الميزة مُحملة (feature) .سلفًا
بحمل التابع <code>require</code> الوسيط المُعطى <code>name</code>،
===[[Ruby/Kernel/require_relative | التابع require_relative]]===
===[[Ruby/Kernel/require_relative | التابع require_relative]]===
عند استدعاء هذا التابع ستحاول روبي تحميل المكتبة المسماة في الوسيط المعطى string نسبة إلى مسار الملف المطلوب.  إذا تعذر تحديد مسار الملف، سيُطلق خطأ <code>LoadError</code>. إذا تم تحميل ملف ستُعاد القيمة <code>true</code>، وإلا فستُعاد false على خلاف ذلك.
عند استدعاء هذا التابع ستحاول روبي تحميل المكتبة المسماة في الوسيط المعطى <code>string</code> نسبة إلى مسار الملف المطلوب.   
===[[Ruby/Kernel/select | التابع select]]===
===[[Ruby/Kernel/select | التابع select]]===
يستدعي select(2). ويقوم بمراقبة المصفوفة المعطاة المكونة من كائنات <code>IO</code>، وينتظر حتى يكون أحد كائنات <code>IO</code> جاهزًا للقراءة ، وجاهزا للكتابة، ويكون لها استثناءات معلقة (pending exceptions) على التوالي، ثم يعيد مصفوفة تحتوي على مصفوفات مكونة من تلك كائنات <code>IO</code> السابقة.  ستُعاد القيمة <code>nil</code> إذا تم إعطاء قيمة للوسيط الاختياري timeout، ولم يكن هناك أي كائن <code>IO</code> جاهزًا خلال timeout ثانية.
يستدعي ‎select(2). ويقوم بمراقبة المصفوفة المعطاة المكونة من كائنات <code>IO</code>، وينتظر حتى يكون أحد كائنات <code>IO</code> جاهزًا للقراءة ، وجاهزا للكتابة، ويكون لها استثناءات معلقة (pending exceptions) على التوالي، ثم يعيد مصفوفة تحتوي على مصفوفات مكونة من تلك كائنات <code>IO</code> السابقة.  ستُعاد القيمة <code>nil</code> إذا تم إعطاء قيمة للوسيط الاختياري timeout، ولم يكن هناك أي كائن <code>IO</code> جاهزًا خلال timeout ثانية.
===[[Ruby/Kernel/set_trace_func | التابع set_trace_func]]===
===[[Ruby/Kernel/set_trace_func | التابع set_trace_func]]===
يجعل التابع set_trace_func الوسيط المعطى proc كمتعقب (handler for tracing)، أو يعطل التعقب إن كان الوسيط يساوي <code>nil</code>.
يجعل التابع set_trace_func الوسيط المعطى proc كمتعقب (handler for tracing)، أو يعطل التعقب إن كان الوسيط يساوي <code>nil</code>.
===[[Ruby/Kernel/sleep | التابع sleep]]===
===[[Ruby/Kernel/sleep | التابع sleep]]===
يعلّق التابع sleep المهمة الفرعية (thread) الحالية لعدد من الثواني (والذي قد بكون أي عدد، بما في ذلك <code>Float</code> مع كسور ثوان). ثم يعيد عدد الثواني الفعلي (بالتقريب) الذي نامتها المهمة الفرعية، والذي قد يكون أقل من العدد المطلوب إن استدعت مهمة فرعية أخرى <code>Thread#run</code>. في حال استدعائها دون تمرير أي وسيط، ستقوم sleep() بتنويم المهمة الفرعية إلى الأبد.
يعلّق التابع sleep المهمة الفرعية (thread) الحالية لعدد من الثواني.
===[[Ruby/Kernel/spawn | التابع spawn]]===
===[[Ruby/Kernel/spawn | التابع spawn]]===
ينفذ التابع spawn تعليمة محددة، ثم يعيد معرفها (pid).
ينفذ التابع spawn تعليمة محددة، ثم يعيد معرفها (pid).
===[[Ruby/Kernel/sprintf | التابع sprintf]]===
===[[Ruby/Kernel/sprintf | التابع sprintf]]===
يعيد التابع sprintf السلسلة النصية الناتجة من تطبيق format_string على الوسائط الإضافية.  داخل سلسلة التنسيق، يتم نسخ كل الأحرف في النتيجة باستثناء تسلسلات الشكل .
يعيد التابع <code>sprintf</code> السلسلة النصية الناتجة من تطبيق <code>format_string</code> على الوسائط الإضافية.  
===[[Ruby/Kernel/srand | التابع srand]]===
===[[Ruby/Kernel/srand | التابع srand]]===
يحدد التابع srand بذرة مولد الأعداد شبه العشوائية (system pseudo-random number generator)، حيث يعين Random :: DEFAULT ، ويعطيها القيمة <code>number</code>.  تُعاد قيمة البذرة السابقة.
يحدد التابع <code>srand</code> بذرة مولد الأعداد شبه العشوائية (system pseudo-random number generator)،
===[[Ruby/Kernel/sub | التابع sub]]===
===[[Ruby/Kernel/sub | التابع sub]]===
يكافئ التابع sub التعبير <code>$_.sub( args )</code> ، باستثناء أنه سيتم تحديث <code>$_</code> إذا حدث استبدال. متوفر فقط عند تحديد خيار سطر الأوامر -p/-n.
يكافئ التابع <code>sub</code> التعبير <code>$_.sub( args )</code> ، باستثناء أنه سيتم تحديث <code>$_‎</code> إذا حدث استبدال.
===[[Ruby/Kernel/syscall | التابع syscall]]===
===[[Ruby/Kernel/syscall | التابع syscall]]===
يستدعي التابع syscall دالة نظام التشغيل المحددة بواسطة num، ويعيد نتيجة الدالة، أو يطلق <code>SystemCallError</code> في حال الفشل.
يستدعي التابع <code>syscall</code> دالة نظام التشغيل المحددة بواسطة <code>num</code>
===[[Ruby/Kernel/system | التابع system]]===
===[[Ruby/Kernel/system | التابع system]]===
ينفذ التابع system الوسيط command… في صدفة فرعية (subshell).يأخذ command… أحد الأشكال التالية.
ينفذ التابع <code>system</code> التعليمة المعطاة <code>command…‎</code> في صدفة فرعية (subshell). تأخذ التعليمة <code>command…‎</code> أحد الأشكال التالية.
===[[Ruby/Kernel/test | التابع test]]===
===[[Ruby/Kernel/test | التابع test]]===
يستخدم التابع test الحرف <code>cmd</code> لإجراء عدة اختبارات على <code>file1</code> (الجدول الأول أدناه) أو على <code>file1</code> و <code>file2</code> (الجدول الثاني).
يستخدم التابع test الحرف <code>cmd</code> لإجراء عدة اختبارات على الملفات.
===[[Ruby/Kernel/throw | التابع throw]]===
===[[Ruby/Kernel/throw | التابع throw]]===
ينقل التابع throw الضبط (control) إلى نهاية كتلة <code>catch</code> النشطة في انتظار الوسم (tag). ويطلق <code>UncaughtThrowError</code> إذا لم يكن هناك كتلة <code>catch</code> لذلك الوسم. يوفر الوسيط الاختياري الثاني قيمة لتُعيدها الكتلة <code>catch</code>، في حال عدم تمريره ستكون قيمتها الافتراضية هي <code>nil</code>. للحصول على بعض الأمثلة، انظر <code>Kernel::catch</code>.
ينقل التابع <code>throw</code> الضبط (control) إلى نهاية كتلة <code>catch</code> المُترقبة للوسم المعطى (<code>tag</code>). إذا لم يكن هناك كتلة <code>catch</code> لذلك الوسم، فسيطلق خطأ<code>UncaughtThrowError</code>. يوفر الوسيط الاختياري الثاني <code>obj</code> في حال تمريره قيمة لتُعيدها الكتلة <code>catch</code>، وإلا فستعيد<code>nil</code>. للحصول على بعض الأمثلة، انظر صفحة التابع <code>[[Ruby/Kernel/catch|catch]]</code>.
===[[Ruby/Kernel/trace_var | التابع trace_var]]===
===[[Ruby/Kernel/trace_var | التابع trace_var]]===
يضبط التابع trace_var تعقّبات تعيين المتغيرات الكلية. يحدد الوسيط <code>symbol</code> المتغير (إما على شكل سلسلة نصية أو معرف رمز [symbol identifier]). يتم تنفيذ الوسيط cmd (الذي قد يكون سلسلة نصية أو كائن <code>Proc</code>) أو كتلة برمجية كلما تم تعيين المتغير. تتلقى الكتلة أو الكائن <code>Proc</code> القيمة الجديدة للمتغير كوسيط. انظر أيضا <code>Kernel::untrace_var</code>.
يضبط التابع <code>trace_var</code> تعقّبات تعيين المتغيرات الكلية.
===[[Ruby/Kernel/trap | التابع trap]]===
===[[Ruby/Kernel/trap | التابع trap]]===
يحدد التابع trap معالج الإشارات (handling of signals). الوسيط الأول يمثل اسم إشارة (سلسلة نصية مثل "SIGALRM" أو "SIGUSR1" وغير ذلك) أو رقم إشارة. يمكن حذف الأحرف "SIG" من اسم الإشارة. تحدد التعليمة المعطاة cmd أو الكتلة الكود البرمجي المراد تشغيله عند إطلاق الإشارة. إذا كانت التعليمة هي السلسلة النصية "IGNORE" أو "SIG_IGN" ، فسيتم تجاهل الإشارة. أما إذا كانت تساوي "DEFAULT" أو "SIG_DFL" ، فسيُستدعى معالج روبي الافتراضي. لكن إذا كانت تساوي "EXIT" ، فستنهي الإشارة البرنامج النصي. إذا كان التعليمة تساوي "SYSTEM_DEFAULT" ، فسيتم استدعاء معالج نظام التشغيل الافتراضي. خلا ذلك، سيتم تشغيل التعليمة أو الكتلة المعطاة. سيتم استدعاء اسم الإشارة الخاص "EXIT"، أو رقم الإشارة 0، قبل إنهاء البرنامج مباشرة. يعيد التابع trap المعالج السابق للإشارة المعينة.
يحدد التابع <code>trap</code> معالج الإشارات (handling of signals).
===[[Ruby/Kernel/untrace_var | التابع untrace_var]]===
===[[Ruby/Kernel/untrace_var | التابع untrace_var]]===
يزيل التابع untrace_var التعقب للتعليمة cmd المحددة على المتغير الكلي المحدد ثم يعيد <code>nil</code>. في حال عدم تمرير الوسيط cmd، فسيزيل التعقب نهائيًا لهذا المتغير ويعيد مصفوفة تحتوي على التعليمات المٌزالة بالفعل.
يزيل التابع <code>untrace_var</code> التعقب للتعليمة المحددة
===[[Ruby/Kernel/warn | التابع warn]]===
===[[Ruby/Kernel/warn | التابع warn]]===
في حال تعطيل التنبيهات (على سبيل المثال، عبر الراية <code>-W0</code>) ، فإنّ التابع warn لن يفعل شيئا. خلا ذلك، سيُحوّل كل الرسائل إلى سلاسل نصية، ويضيف محرف سطر جديد إلى نهاية السلسلة النصية إذا لم تكن تنتهي بسطر جديد، ثم يستدعي <code>Warning.warn</code> ويمرر إليه تلك السلسلة النصية.
ينقل التابع <code>throw</code> الضبط (control) إلى نهاية كتلة <code>catch</code> المُترقبة للوسم المعطى (<code>tag</code>). إذا لم يكن هناك كتلة <code>catch</code> لذلك الوسم، فسيطلق خطأ<code>UncaughtThrowError</code>. يوفر الوسيط الاختياري الثاني <code>obj</code> في حال تمريره قيمة لتُعيدها الكتلة <code>catch</code>، وإلا فستعيد<code>nil</code>. للحصول على بعض الأمثلة، انظر صفحة التابع <code>[[Ruby/Kernel/catch|catch]]</code>.


==مصادر<span> </span>==
==مصادر<span> </span>==
*[http://ruby-doc.org/core-2.5.1/Kernel.html قسم  الصنف Kernel  في توثيق روبي الرسمي.]
*[http://ruby-doc.org/core-2.5.1/Kernel.html قسم  الصنف Kernel  في توثيق روبي الرسمي.]

مراجعة 01:48، 24 أكتوبر 2018

الوحدة Kernel مُتضمّنة من طرف الصنف Object، لذلك فتوابعها متاحة في كل كائنات روبي.

توابع نسخ الصنف Kernel مُوثّقة في صفحة الصنف Object، أما توابع الوحدة Kernel فهي مُوثقة هنا. تستدعى هذه التوابع بدون مستقبل (receiver)، وبالتالي يمكن استدعاؤها وفق الشكل الدوالي:

sprintf "%.1f", 1.234 #=> "1.2"

توابع الصنف العامة (Public Class Methods)

التابع Array

يعيد الوسيط المعطى على شكل مصفوفة (Array).

التابع Complex

يعيد التابع ناتج التعبير x + i * y؛ حيث i هو الوحدة التخيلية العقدية.

التابع Hash

يحول الوسيط المعطى إلى قاموس Hash عبر استدعاء arg.to_hash.

التابع Integer

يحول الوسيط المعطى إلى عدد صحيح (Integer).

يعيد ناتج العملية x/y أو الوسيط المعطى arg على شكل عدد جذري (Rational).

التابع String

يعيد الوسيط المعطى على شكل سلسلة نصية (String).

التابع __callee__

يعيد اسم التابع الحالي على شكل رمز (Symbol).

التابع __dir__

يعيد المسار المطلق القانوني (canonicalized absolute path) لمجلد الملف الذي استُدعي هذا التابع منه.

التابع __method__

يعيد التابع الاسم المعطى للتابع الحالي عند تعريفه على شكل رمز (Symbol).

التابع `

يعيد مجرى المخرجات القياسية (standard output) لتنفيذ التعليمة المعطاة في محث فرعي (subshell).

التابع abort

ينهي التابع التنفيذ على الفور، عبر استدعاء Kernel.exit(false)‎.

التابع at_exit

يحول التابع الكتلة البرمجية إلى كائن من النوع Proc

التابع autoload

يسجل التابع اسم الملف filename لكي يُحمَّل.

التابع ‎autoload?‎

يعيد التابع اسم الملف filename ليتم تحميله إذا تم تسجيل الوسيط المعطى name على شكل autoload.

التابع binding

يعيد التابع كائنًا من النوع Binding، والذي يصف ويحدد ارتباطات المتغيرات والتوابع لحظة الاستدعاء.

التابع block_given?‎

يعيد التابع القيمة true إذا كان yield سينفذ كتلة برمجية في السياق الحالي.

التابع callcc

يولد التابع callcc كائنًا من النوع Continuation، والذي يُمرّر إلى الكتلة البرمجية المعطاة. سيكون عليك أن تستورد 'continuation' قبل استخدام هذا التابع.

التابع caller

يعيد التابع مكدس التنفيذ الحالي (execution stack)،

التابع caller_locations

يعيد التابع مكدس التنفيذ الحالي، والذي هو عبارة عن مصفوفة تحتوي كائنات تعقب (backtrace location objects).

التابع catch

ينفذ catch كتلته البرمجية في حال عدم استدعاء throw، فستنفّذ الكتلة بشكل طبيعي، وسيعيد catch قيمة آخر تعبير تم تقييمه.

التابع chomp

يكافئ التابع التعبير $_ = $_.chomp( string )‎.

التابع chop

يكافئ التابع chop  التعبير ‎($_.dup).chop!‎ ، باستثناء أنّ nil لا تُعاد أبدًا. انظر صفحة !String#chop.

التابع eval

يقيم (Evaluates) التابع تعبيرات روبي الموجودة في سلاسل نصية.

التابع exec

يستبدل التابع العملية الحالية عن طريق تشغيل الأمر الخارجي المعطى، والذي يمكن أن يأخذ أحد الأشكال التالية:

التابع exit

يبدأ التابع عملية إنهاء البرنامج النصي لروبي، عن طريق إطلاق استثناء SystemExit.

التابع exit!‎

ينهي العملية على الفور. لا يتم تنفيذ أي معالجات إنهاء (exit handlers).

التابع fail

في حال استدعاء التابع بدون إعطاء أي وسائط، فسبُطلق الاستثناء في ‎$!‎ أو يطلق RuntimeError إذا كان $! يساوي nil.

التابع fork

ينشئ التابع عملية فرعية (subprocess).

التابع format

يعيد التابع السلسلة النصية الناتجة من تطبيق format_string على الوسائط الإضافية.

التابع gets

يعيد التابع gets (ويُحيل على ‎$_‎) السطر الموالي من قائمة الملفات في المجرى ARGV (أو ‎$‎‎*‎)، أو من مجرى الإدخال القياسي في حالة عدم تمرير أي ملفات في سطر الأوامر. ويعيد nil عند نهاية الملف.

التابع global_variables

يعيد التابع global_variables مصفوفة تضم أسماء المتغيرات الكلية (global variables).

التابع gsub

يكافئ التابع gsub التعبير ‎$_.gsub...‎، باستثناء أنه سيتم تحديث ‎$_‎ في حال حدوث استبدال. متوفر فقط عند تحديد خيار سطر الأوامر ‎-p/-n

التابع iterator?‎

يعيد التابع iterator? القيمة true إذا كان yield سينفذ كتلة برمجية في السياق الراهن. لقد صار الشكل iterator?‎ متجاوزًا إلى حد ما.

التابع lambda

يكافئ التابع lambda التعبير Proc.new، باستثناء أنّ كائنات Proc الناتجة ستتحقق من عدد الوسائط الممررة عند استدعائها.

التابع load

يحمل التابع load وينفّذ برنامج روبي في الملف filename.

التابع local_variables

يعيد التابع local_variables أسماء المتغيرات المحلية الحالية.

التابع loop

ينفذ التابع loop الكتلة البرمجية بشكل متكرر.

التابع open

ينشئ التابع open كائنًا من النوع IO متصلا بالمجرى أو الملف أو العملية الفرعية (subprocess) المحددة.

التابع p

يكتب التابع p في مجرى الإخراج القياسي للبرنامج ناتج التعبير obj.inspectمباشرة ، متبوعًا بسطر جديد، لكل كائن obj يُمرر إليه.

التابع print

يطبع التابع print الكائنات الممرة إليه بالتتابع في المجرى ‎$stdout.

التابع printf

يكافئ التابع printf التعبير: ‎ io.write(sprintf(string, obj, ...))

التابع proc

يكافي التابع proc التعبير Proc.new.

التابع putc

يكافئ التابع putc التعبير: ‎$stdout.putc(int)‎

التابع puts

يكافئ التابع puts التعبير: ‎$stdout.puts(obj, ...)‎

التابع raise

في حال عدم تمريرأي وسائط، سيطلق التابع raise استثناء في ‎$!‎ أو يطلق RuntimeError إن كان $! يساوي nil.

التابع rand

في حال استدعاء التابع rand بدون تمرير وسائط إليه، أو إن كان max.to_i.abs == 0، فسيعيد التابع rand عدد عشري شبه عشوائي (pseudo-random) محصور بين 0.0 و 1.0، متضمنا 0.0، وباستثناء 1.0.

التابع readline

يكافئ التابع readline التعبير Kernel::gets ، باستثناء أنّ readline تطلق خطأ EOFError عند نهاية الملف.

التابع readlines

يعيد التابع readlines مصفوفة تحتوي الأسطر المُعادة من استدعاء Kernel.gets( sep )‎ حتى نهاية الملف.

التابع require

بحمل التابع require الوسيط المُعطى name،

التابع require_relative

عند استدعاء هذا التابع ستحاول روبي تحميل المكتبة المسماة في الوسيط المعطى string نسبة إلى مسار الملف المطلوب.

التابع select

يستدعي ‎select(2)‎. ويقوم بمراقبة المصفوفة المعطاة المكونة من كائنات IO، وينتظر حتى يكون أحد كائنات IO جاهزًا للقراءة ، وجاهزا للكتابة، ويكون لها استثناءات معلقة (pending exceptions) على التوالي، ثم يعيد مصفوفة تحتوي على مصفوفات مكونة من تلك كائنات IO السابقة. ستُعاد القيمة nil إذا تم إعطاء قيمة للوسيط الاختياري timeout، ولم يكن هناك أي كائن IO جاهزًا خلال timeout ثانية.

التابع set_trace_func

يجعل التابع set_trace_func الوسيط المعطى proc كمتعقب (handler for tracing)، أو يعطل التعقب إن كان الوسيط يساوي nil.

التابع sleep

يعلّق التابع sleep المهمة الفرعية (thread) الحالية لعدد من الثواني.

التابع spawn

ينفذ التابع spawn تعليمة محددة، ثم يعيد معرفها (pid).

التابع sprintf

يعيد التابع sprintf السلسلة النصية الناتجة من تطبيق format_string على الوسائط الإضافية.

التابع srand

يحدد التابع srand بذرة مولد الأعداد شبه العشوائية (system pseudo-random number generator)،

التابع sub

يكافئ التابع sub التعبير ‎$_.sub( args )‎ ، باستثناء أنه سيتم تحديث ‎$_‎ إذا حدث استبدال.

التابع syscall

يستدعي التابع syscall دالة نظام التشغيل المحددة بواسطة num

التابع system

ينفذ التابع system التعليمة المعطاة command…‎ في صدفة فرعية (subshell). تأخذ التعليمة command…‎ أحد الأشكال التالية.

التابع test

يستخدم التابع test الحرف cmd لإجراء عدة اختبارات على الملفات.

التابع throw

ينقل التابع throw الضبط (control) إلى نهاية كتلة catch المُترقبة للوسم المعطى (tag). إذا لم يكن هناك كتلة catch لذلك الوسم، فسيطلق خطأUncaughtThrowError. يوفر الوسيط الاختياري الثاني obj في حال تمريره قيمة لتُعيدها الكتلة catch، وإلا فستعيدnil. للحصول على بعض الأمثلة، انظر صفحة التابع catch.

التابع trace_var

يضبط التابع trace_var تعقّبات تعيين المتغيرات الكلية.

التابع trap

يحدد التابع trap معالج الإشارات (handling of signals).

التابع untrace_var

يزيل التابع untrace_var التعقب للتعليمة المحددة

التابع warn

ينقل التابع throw الضبط (control) إلى نهاية كتلة catch المُترقبة للوسم المعطى (tag). إذا لم يكن هناك كتلة catch لذلك الوسم، فسيطلق خطأUncaughtThrowError. يوفر الوسيط الاختياري الثاني obj في حال تمريره قيمة لتُعيدها الكتلة catch، وإلا فستعيدnil. للحصول على بعض الأمثلة، انظر صفحة التابع catch.

مصادر