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

من موسوعة حسوب
لا ملخص تعديل
مراجعة وتدقيق
 
(3 مراجعات متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: صفحة الصنف <code>Kernel</code> في روبي}}</noinclude>
<noinclude>{{DISPLAYTITLE:الصنف <code>Kernel</code> في روبي}}</noinclude>
[[تصنيف: Ruby]]
[[تصنيف: Ruby]]
[[تصنيف: Ruby Class]]
[[تصنيف: 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">
sprintf "%.1f", 1.234 #=> "1.2"
sprintf "%.1f", 1.234 #=> "1.2"
</syntaxhighlight>
</syntaxhighlight>
==توابع الصنف العامة (Public Class Methods)==
==توابع الصنف العامة (Public Class Methods)==
===[[Ruby/Kernel/Array | التابع Array]]===
===[[Ruby/Kernel/Array|<code>Array</code>]]===
يعيد الوسيط المعطى على شكل مصفوفة (<code>Array</code>).
يعيد المعامل الممرَّر إليه على شكل مصفوفة (<code>[[Ruby/Array|Array]]</code>).
===[[Ruby/Kernel/Complex | التابع Complex]]===
===[[Ruby/Kernel/Complex|<code>Complex</code>]]===
يعيد التابع ناتج التعبير <code>x + i * y</code>؛ حيث <code>i</code> هو الوحدة التخيلية العقدية.
يعيد ناتج التعبير <code>x + i * y</code>؛ حيث <code>i</code> هو الوحدة التخيلية <nowiki/>[[Ruby/Complex|للعدد العقدي]].
===[[Ruby/Kernel/Hash | التابع Hash]]===
يحول الوسيط المعطى إلى قاموس <code>Hash</code> عبر استدعاء <code>arg.to_hash</code>.
===[[Ruby/Kernel/Integer | التابع Integer]]===
يحول الوسيط المعطى إلى عدد صحيح (<code>Integer</code>).


يعيد ناتج العملية <code>x/y</code> أو الوسيط المعطى <code>arg</code> على شكل عدد جذري (<code>Rational</code>).
=== <code>[[Ruby/Kernel/Float|Float]]</code> ===
===[[Ruby/Kernel/String | التابع String]]===
يعيد الوسيط المعطى على شكل سلسلة نصية (<code>String</code>).
===[[Ruby/Kernel/__callee__ | التابع __callee__]]===
يعيد اسم التابع الحالي على شكل رمز (<code>Symbol</code>).
===[[Ruby/Kernel/__dir__ | التابع __dir__]]===
يعيد المسار المطلق القانوني (canonicalized absolute path) لمجلد الملف الذي استُدعي هذا التابع منه.
===[[Ruby/Kernel/__method__ | التابع __method__]]===
يعيد التابع الاسم المعطى للتابع الحالي عند تعريفه على شكل رمز (<code>Symbol</code>).
===[[Ruby/Kernel/60 | التابع `]]===
يعيد مجرى المخرجات القياسية (standard output) لتنفيذ التعليمة المعطاة في محث فرعي (subshell).
===[[Ruby/Kernel/abort | التابع abort]]===
ينهي التابع التنفيذ على الفور، عبر استدعاء <code>Kernel.exit(false)‎</code>.
===[[Ruby/Kernel/at_exit | التابع at_exit]]===
يحول التابع الكتلة البرمجية إلى كائن من النوع <code>Proc</code>
===[[Ruby/Kernel/autoload | التابع autoload]]===
يسجل التابع اسم الملف <code>filename</code> لكي يُحمَّل.
===[[Ruby/Kernel/autoload-3F | التابع ‎autoload?‎]]===
يعيد التابع اسم الملف <code>filename</code> ليتم تحميله إذا تم تسجيل الوسيط المعطى <code>name</code> على شكل <code>autoload</code>.
===[[Ruby/Kernel/binding | التابع binding]]===
يعيد التابع كائنًا من النوع <code>Binding</code>، والذي يصف ويحدد ارتباطات المتغيرات والتوابع لحظة الاستدعاء.
===[[Ruby/Kernel/block_given-3F | التابع block_given?‎]]===
يعيد التابع القيمة <code>true</code> إذا كان <code>yield</code> سينفذ كتلة برمجية في السياق الحالي.
===[[Ruby/Kernel/callcc | التابع callcc]]===


===[[Ruby/Kernel/caller | التابع caller]]===
===[[Ruby/Kernel/Hash|<code>Hash</code>]]===
يعيد التابع مكدس التنفيذ الحالي (execution stack)، والذي هو مصفوفة تحتوي على سلاسل نصية على الشاكلة <code>file:line</code> أو <code>file:line: in `method'</code>.
يعيد ناتج التعبير <code>x + i * y</code>؛ حيث <code>i</code> هو الوحدة التخيلية <nowiki/>[[Ruby/Complex|للعدد العقدي]].
===[[Ruby/Kernel/caller_locations | التابع caller_locations]]===
===[[Ruby/Kernel/Integer|<code>Integer</code>]]===
يعيد التابع مكدس التنفيذ الحالي، والذي هو عبارة عن مصفوفة تحتوي كائنات تعقب (backtrace location objects).
يحول المعامل المُمرَّر إليه إلى عدد صحيح (<code>[[Ruby/Integer|Integer]]</code>).
===[[Ruby/Kernel/catch | التابع catch]]===
ينفذ <code>catch</code> كتلته البرمجية في حال عدم استدعاء <code>throw</code>، فستنفّذ الكتلة بشكل طبيعي، وسيعيد <code>catch</code> قيمة آخر تعبير تم تقييمه.
===[[Ruby/Kernel/chomp | التابع chomp]]===
يكافئ التابع التعبير <code>$_ = $_.chomp( string )</code>. انظر صفحة <code>String#chomp</code>. متوفر فقط عند تحديد خيار سطر الأوامر -p/-n.
===[[Ruby/Kernel/chop | التابع chop]]===
يكافئ التابع التعبير <code>($_.dup).chop!</code> ، باستثناء أنّ <code>nil</code> لا تُعاد أبدًا. انظر صفحة <code>String#chop!</code>. متوفر فقط عند تحديد خيار سطر الأوامر -p/-n.
===[[Ruby/Kernel/eval | التابع eval]]===
يقيم (Evaluates) التابع تعبيرات روبي الموجودة في سلاسل نصية. إذا أعطي الوسيط binding، والذي يجب أن يكون من النوع <code>Binding</code>، فسيُجرى التقييم في السياق الخاص بها. في حال تمرير الوسيطين الاختياريين filename و lineno، فسيُستخدمان عند الإبلاغ عن أخطاء في الصياغة.
===[[Ruby/Kernel/exec | التابع exec]]===
يستبدل التابع العملية الحالية عن طريق تشغيل الأمر الخارجي المعطى، والذي يمكن أن يأخذ أحد الأشكال التالية:
===[[Ruby/Kernel/exit | التابع exit]]===
يبدأ التابع عملية إنهاء البرنامج النصي لروبي، عن طريق إطلاق استثناء <code>SystemExit</code>. من الممكن أن يتم احتواء هذا الاستثناء. يُستخدم الوسيط الاختياري لإعادة رمز الحالة (status code) لبيئة الاستدعاء. تشير الحالتان <code>true</code> و <code>FALSE</code> إلى النجاح والفشل على التوالي.  يعتمد تفسير قيم الأعداد الأخرى على النظام المُستخدم.
===[[Ruby/Kernel/exit-21 | التابع exit!]]===
ينهي العملية على الفور. لا يتم تنفيذ أي معالجات إنهاء (exit handlers). تعاد الحالة إلى النظام الأساسي باعتبارها حالة الخروج (exit status).
===[[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>.
===[[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).
===[[Ruby/Kernel/format | التابع format]]===
يعيد التابع السلسلة النصية الناتجة من تطبيق format_string على أي وسائط إضافية.  داخل السلسلة النصية format_string، ستُنسخ كل الأحرف في النتيجة باستثناء تسلسلات التنسيق (format sequences).
===[[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> محتويات الملفات، واحدًا في كل مرة.
===[[Ruby/Kernel/global_variables | التابع global_variables]]===
يعيد التابع global_variables مصفوفة تضم أسماء المتغيرات الكلية (global variables).
===[[Ruby/Kernel/gsub | التابع gsub]]===
يكافئ التابع gsub التعبير <code>$_.gsub...</code>، باستثناء أنه سيتم تحديث <code>$_</code> في حال حدوث استبدال. متوفر فقط عند تحديد خيار سطر الأوامر -p/-n
===[[Ruby/Kernel/iterator-3F | التابع iterator?]]===
يعيد التابع iterator? القيمة <code>true</code> إذا كان <code>yield</code> سينفذ كتلة برمجية في السياق الراهن. لقد صار الشكل <code>iterator?</code> متجاوزًا إلى حد ما.
===[[Ruby/Kernel/lambda | التابع lambda]]===
يكافئ التابع lambda التعبير <code>Proc.new</code>، باستثناء أنّ كائنات <code>Proc</code> الناتجة ستتحقق من عدد الوسائط الممررة عند استدعائها.
===[[Ruby/Kernel/load | التابع load]]===
يحمل التابع load وينفّذ برنامج روبي في الملف filename. في حال لم يمكن حل filename إلى مسار مطلق (absolute path)، فسيتم البحث عن الملف في المجلدات المكتبة الواردة في <code>$:</code>. إذا كان الوسيط الاختياري wrap يساوي <code>true</code> ، فسيُنفذ النص البرمجي المحمّل كوحدة مجهولة (anonymous module)، لحماية مجال الأسماء الخاص بالبرنامج المُستدغي. لن يتم نشر أيّ من المتغيرات المحلية في الملف المحمّل تحت أي ظرف من الظروف في بيئة التحميل.
===[[Ruby/Kernel/local_variables | التابع local_variables]]===
يعيد التابع local_variables أسماء المتغيرات المحلية الحالية.
===[[Ruby/Kernel/loop | التابع loop]]===
ينفذ التابع loop الكتلة البرمجية بشكل متكرر.
===[[Ruby/Kernel/open | التابع open]]===
ينشئ التابع open كائنًا من النوع <code>IO</code> متصلا بالمجرى أو الملف أو العملية الفرعية (subprocess) المحددة.
===[[Ruby/Kernel/p | التابع p]]===
يكتب التابع p لكل كائن يُمرر إليه ناتج التعبير يكتب مباشرة .<code>inspect</code>، متبوعًا بسطر جديد في مجرى الإخراج القياسي للبرنامج.
===[[Ruby/Kernel/print | التابع print]]===
يطبع التابع print الكائنات الممرة إليه بالتتابع في المجرى <code>$stdout</code>. إذا كان فاصل حقل الإخراج (<code>$,</code>) لا يساوي <code>nil</code> ، فسيظهر محتواه بين الحقول. إذا كان فاصل سجل الإخراج (<code>$\</code>) لا يساوي <code>nil</code> ، فسيوضع في نهاية المخراجات. في جال لم تعطى أي وسائط، فستُطبع <code>$_</code>. ستُحول الكائنات غير النصية باستخدام التابع <code>to_s</code> الخاصة بها.
===[[Ruby/Kernel/printf | التابع printf]]===
يكافئ التابع printf التعبير:
===[[Ruby/Kernel/proc | التابع proc]]===
يكافي التابع proc التعبير <code>Proc.new</code>.
===[[Ruby/Kernel/putc | التابع putc]]===
يكافئ التابع putc التعبير:
===[[Ruby/Kernel/puts | التابع puts]]===
يكافئ التابع puts التعبير:
===[[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>.
===[[Ruby/Kernel/rand | التابع rand]]===
في حال استدعاء التابع rand بدون تمرير وسائط إليه، أو إن كان <code>max.to_i.abs == 0</code>، فسيعيد التابع rand عدد عشري شبه عشوائي (pseudo-random) محصور بين 0.0 و 1.0، متضمنا 0.0، وباستثناء 1.0.
===[[Ruby/Kernel/readline | التابع readline]]===
يكافئ التابع readline التعبير <code>Kernel::gets</code> ، باستثناء أنّ <code>readline</code> تطلق خطأ <code>EOFError</code> عند نهاية الملف.
===[[Ruby/Kernel/readlines | التابع readlines]]===
يعيد التابع readlines مصفوفة تحتوي الأسطر المُعادة من استدعاء <code>Kernel.gets( sep )</code> حتى نهاية الملف.
===[[Ruby/Kernel/require | التابع require]]===
بحمل التابع require المُعطى <code>name</code>،ويعيد <code>true</code> في حال نجح في ذلك، أو <code>false</code> إذا كانت الميزة مُحملة (feature) .سلفًا
===[[Ruby/Kernel/require_relative | التابع require_relative]]===
عند استدعاء هذا التابع ستحاول روبي تحميل المكتبة المسماة في الوسيط المعطى string نسبة إلى مسار الملف المطلوب.  إذا تعذر تحديد مسار الملف، سيُطلق خطأ <code>LoadError</code>. إذا تم تحميل ملف ستُعاد القيمة <code>true</code>، وإلا فستُعاد false على خلاف ذلك.
===[[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 ثانية.
===[[Ruby/Kernel/set_trace_func | التابع set_trace_func]]===
يجعل التابع set_trace_func الوسيط المعطى proc كمتعقب (handler for tracing)، أو يعطل التعقب إن كان الوسيط يساوي <code>nil</code>.
===[[Ruby/Kernel/sleep | التابع sleep]]===
يعلّق التابع sleep المهمة الفرعية (thread) الحالية لعدد من الثواني (والذي قد بكون أي عدد، بما في ذلك <code>Float</code> مع كسور ثوان). ثم يعيد عدد الثواني الفعلي (بالتقريب) الذي نامتها المهمة الفرعية، والذي قد يكون أقل من العدد المطلوب إن استدعت مهمة فرعية أخرى <code>Thread#run</code>. في حال استدعائها دون تمرير أي وسيط، ستقوم sleep() بتنويم المهمة الفرعية إلى الأبد.
===[[Ruby/Kernel/spawn | التابع spawn]]===
ينفذ التابع spawn تعليمة محددة، ثم يعيد معرفها (pid).
===[[Ruby/Kernel/sprintf | التابع sprintf]]===
يعيد التابع sprintf السلسلة النصية الناتجة من تطبيق format_string على الوسائط الإضافية.  داخل سلسلة التنسيق، يتم نسخ كل الأحرف في النتيجة باستثناء تسلسلات الشكل .
===[[Ruby/Kernel/srand | التابع srand]]===
يحدد التابع srand بذرة مولد الأعداد شبه العشوائية (system pseudo-random number generator)، حيث يعين Random :: DEFAULT ، ويعطيها القيمة <code>number</code>.  تُعاد قيمة البذرة السابقة.
===[[Ruby/Kernel/sub | التابع sub]]===
يكافئ التابع sub التعبير <code>$_.sub( args )</code> ، باستثناء أنه سيتم تحديث <code>$_</code> إذا حدث استبدال. متوفر فقط عند تحديد خيار سطر الأوامر -p/-n.
===[[Ruby/Kernel/syscall | التابع syscall]]===
يستدعي التابع syscall دالة نظام التشغيل المحددة بواسطة num، ويعيد نتيجة الدالة، أو يطلق <code>SystemCallError</code> في حال الفشل.
===[[Ruby/Kernel/system | التابع system]]===
ينفذ التابع system الوسيط command… في صدفة فرعية (subshell).يأخذ command… أحد الأشكال التالية.
===[[Ruby/Kernel/test | التابع test]]===
يستخدم التابع test الحرف <code>cmd</code> لإجراء عدة اختبارات على <code>file1</code> (الجدول الأول أدناه) أو على <code>file1</code> و <code>file2</code> (الجدول الثاني).
===[[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>.
===[[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>.
===[[Ruby/Kernel/trap | التابع trap]]===
يحدد التابع trap معالج الإشارات (handling of signals). الوسيط الأول يمثل اسم إشارة (سلسلة نصية مثل "SIGALRM" أو "SIGUSR1" وغير ذلك) أو رقم إشارة. يمكن حذف الأحرف "SIG" من اسم الإشارة. تحدد التعليمة المعطاة cmd أو الكتلة الكود البرمجي المراد تشغيله عند إطلاق الإشارة. إذا كانت التعليمة هي السلسلة النصية "IGNORE" أو "SIG_IGN" ، فسيتم تجاهل الإشارة. أما إذا كانت تساوي "DEFAULT" أو "SIG_DFL" ، فسيُستدعى معالج روبي الافتراضي. لكن إذا كانت تساوي "EXIT" ، فستنهي الإشارة البرنامج النصي. إذا كان التعليمة تساوي "SYSTEM_DEFAULT" ، فسيتم استدعاء معالج نظام التشغيل الافتراضي. خلا ذلك، سيتم تشغيل التعليمة أو الكتلة المعطاة. سيتم استدعاء اسم الإشارة الخاص "EXIT"، أو رقم الإشارة 0، قبل إنهاء البرنامج مباشرة. يعيد التابع trap المعالج السابق للإشارة المعينة.
===[[Ruby/Kernel/untrace_var | التابع untrace_var]]===
يزيل التابع untrace_var التعقب للتعليمة cmd المحددة على المتغير الكلي المحدد ثم يعيد <code>nil</code>. في حال عدم تمرير الوسيط cmd، فسيزيل التعقب نهائيًا لهذا المتغير ويعيد مصفوفة تحتوي على التعليمات المٌزالة بالفعل.
===[[Ruby/Kernel/warn | التابع warn]]===
في حال تعطيل التنبيهات (على سبيل المثال، عبر الراية <code>-W0</code>) ، فإنّ التابع warn لن يفعل شيئا.  خلا ذلك، سيُحوّل كل الرسائل إلى سلاسل نصية، ويضيف محرف سطر جديد إلى نهاية السلسلة النصية إذا لم تكن تنتهي بسطر جديد، ثم يستدعي <code>Warning.warn</code> ويمرر إليه تلك السلسلة النصية.


=== <code>[[Ruby/Kernel/Rational|Rational]]</code> ===
يعيد ناتج العملية <code>x/y</code> إن مُرر عددين إليه أو عدد جذري (<code>[[Ruby/Rational|Rational]]</code>) إن مُرِّر معامل وحيد فقط.
===[[Ruby/Kernel/String|<code>String</code>]]===
يعيد المعامل المعطى على شكل سلسلة نصية (<code>String</code>).
===[[Ruby/Kernel/ callee|<code>__callee__</code>]]===
يعيد اسم التابع الحالي على شكل رمز (<code>Symbol</code>).
===[[Ruby/Kernel/ dir|<code>__dir__</code>]]===
يعيد المسار المطلق الأساسي (canonicalized absolute path) لمجلد الملف الذي استُدعي هذا التابع منه. 
===[[Ruby/Kernel/ method|<code>__method__</code>]]===
يعيد الاسم الذي أعطي للتابع الحالي عند تعريفه على شكل رمز (<code>Symbol</code>). 
===[[Ruby/Kernel/60|<code>`</code>]]===
يعيد مجرى المخرجات القياسي (standard output) لتنفيذ تعليمة في صدفة فرعية (subshell)
===[[Ruby/Kernel/abort|<code>abort</code>]]===
ينهي تنفيذ العملية على الفور عبر استدعاء <code>Kernel.exit(false)‎</code>.
===[[Ruby/Kernel/at exit|<code>at_exit</code>]]===
يحول الكتلة البرمجية المعطاة إلى كائن من النوع <code>Proc</code> (وبالتالي يربطه في لحظة الاستدعاء) ويسجله لأجل تنفيذه عند نهاية البرنامج.
===[[Ruby/Kernel/autoload|<code>autoload</code>]]===
يسجل اسم الملف المعطى لكي يُحمّل (باستخدام <code>Kernel::require</code>) في المرة الأولى التي يتم الوصول فيها إلى وحدة محدَّدة.
===[[Ruby/Kernel/autoload-3F|<code>‎autoload?‎</code>]]===
يعيد التابع <code>autoload?</code>‎ اسم الملف المراد تحميله إذا سُجّل للتحميل عند الوصول إلى وحدة محدَّدة عبر التابع <code>[[Ruby/Kernel/autoload|autoload]]</code>.
===[[Ruby/Kernel/binding|<code>binding</code>]]===
يعيد كائنًا من النوع <code>[[Ruby/Binding|Binding]]</code>، والذي يصف ويحدد ارتباطات المتغيرات والتوابع لحظة الاستدعاء.
===[[Ruby/Kernel/block given-3F|<code>block_given?‎</code>]]===
يتحقق إذا كان <code>yield</code> سينفذ كتلةً برمجيةً في السياق الحالي.
===[[Ruby/Kernel/callcc|<code>callcc</code>]]===
يولد كائنًا من النوع <code>[[Ruby/Continuation|Continuation]]</code>، والذي يُمرّر إلى الكتلة البرمجية المعطاة. 
===[[Ruby/Kernel/caller|<code>caller</code>]]===
يعيد مكدس التنفيذ الحالي (execution stack).
===[[Ruby/Kernel/caller locations|<code>caller_locations</code>]]===
يعيد التابع <code>caller_locations</code> مكدس التنفيذ (execution stack) الحالي كمصفوفة تحتوي كائنات تعقب عكسي (backtrace location objects).
===[[Ruby/Kernel/catch|<code>catch</code>]]===
ينفذ كتلته البرمجية.
===[[Ruby/Kernel/chomp|<code>chomp</code>]]===
يكافئ التعبير <code>$_ = $_.chomp( string )‎</code>.
===[[Ruby/Kernel/chop|<code>chop</code>]]===
يكافئ التعبير ‎<code>($_.dup).chop!‎</code> ، باستثناء أنّ <code>nil</code> لا تُعاد أبدًا.
===[[Ruby/Kernel/eval|<code>eval</code>]]===
يقيّم (Evaluates) تعبيرات روبي الموجودة في سلسلة نصية.
===[[Ruby/Kernel/exec|<code>exec</code>]]===
يستبدل العملية (process) الحالية عبر تشغيل الأمر الخارجي المعطى
===[[Ruby/Kernel/exit|<code>exit</code>]]===
يبدأ عملية إنهاء البرنامج في روبي، عن طريق إطلاق استثناء <code>[[Ruby/SystemExit|SystemExit]]</code>.
===[[Ruby/Kernel/exit-21|<code>exit!‎</code>]]===
يُنهِي العملية على الفور.
===[[Ruby/Kernel/fail|<code>fail</code>]]===
في حال استدعاء هذا التابع بدون تمرير أي معامل، فسيُطلق الاستثناء في ‎<code>$!‎‎‎‎</code> أو يطلق الخطأ <code>[[Ruby/RuntimeError|RuntimeError]]</code> إذا كان ‎<code>$!‎</code> يساوي <code>nil</code>. 
===[[Ruby/Kernel/fork|<code>fork</code>]]===
ينشئ عملية فرعية (subprocess).
===[[Ruby/Kernel/format|<code>format</code>]]===
يعيد السلسلة النصية المعطاة بعد تنسيقها بشكل معين.
===[[Ruby/Kernel/gets|<code>gets</code>]]===
يجلب (ويسندها إلى ‎<code>$_‎</code>) السطر التالي من قائمة الملفات في المجرى <code>ARGV</code> (أو ‎<code>$‎‎*‎</code>)، أو من مجرى الإدخال القياسي في حالة عدم تمرير أي ملفات في سطر الأوامر.
===[[Ruby/Kernel/global variables|<code>global_variables</code>]]===
يعيد مصفوفة تضم أسماء المتغيرات العامة (global variables).
===[[Ruby/Kernel/gsub|<code>gsub</code>]]===
يكافئ التعبير ‎<code>$_.gsub...‎</code>، باستثناء أنه سيتم تحديث ‎<code>$_‎</code> في حال حدوث استبدال.
===[[Ruby/Kernel/iterator-3F|<code>iterator?‎</code>]]===
يعيد القيمة <code>true</code> إذا كان <code>yield</code> سينفذ كتلة برمجية في السياق الراهن. لقد أصبح الشكل <code>iterator?‎</code> مهملًا إلى حد ما.
===[[Ruby/Kernel/lambda|<code>lambda</code>]]===
يكافئ التعبير <code>Proc.new</code>، باستثناء أنّ الكائنات <code>Proc</code> الناتجة ستتحقق من عدد الوسائط الممررة عند استدعائها.
===[[Ruby/Kernel/load|<code>load</code>]]===
يحمّل وينفّذ برنامج روبي في الملف المعطى.
===[[Ruby/Kernel/local variables|<code>local_variables</code>]]===
يعيد مصفوفة تضم أسماء المتغيرات المحلية الحالية.
===[[Ruby/Kernel/loop|<code>loop</code>]]===
ينفذ الكتلة البرمجية المعطاة بشكل متكرر.
===[[Ruby/Kernel/open|<code>open</code>]]===
ينشئ كائنًا من النوع <code>[[Ruby/IO|IO]]</code> متصلًا بالمجرى أو الملف أو العملية الفرعية (subprocess) المحددة.
===[[Ruby/Kernel/p|<code>p</code>]]===
يكتب في مجرى الخرج القياسي للبرنامج ناتج التعبير <code>obj.inspect</code> مباشرة متبوعًا بسطر جديد لكل كائن من الكائنات الممررة إليه.
===[[Ruby/Kernel/print|<code>print</code>]]===
يطبع الكائنات الممررة إليه بالتتابع على المجرى <code>stdout$</code>.
===[[Ruby/Kernel/printf|<code>printf</code>]]===
يكافئ التعبير <code>‎io.write(sprintf(string, obj, ...))</code>‎.
===[[Ruby/Kernel/proc|<code>proc</code>]]===
يكافي التعبير <code>Proc.new</code>.
===[[Ruby/Kernel/putc|<code>putc</code>]]===
يكافئ التعبير ‎<code>$stdout.putc(int)‎</code> أي يطبع القيمة الممرَّرة إليه على مجرى الخرج القياسي.
===[[Ruby/Kernel/puts|<code>puts</code>]]===
يكافئ التعبير ‎<code>$stdout.puts(obj, ...)‎</code>؛ أي يطبع السلسلة النصية المُمرَّرة إليه على مجرى الخرج القياسي.
===[[Ruby/Kernel/raise|<code>raise</code>]]===
يطلق استثناءً أو خطأً مع إظهار رسالة تصف هذا الاستثناء أو الخطأ.
===[[Ruby/Kernel/rand|<code>rand</code>]]===
يولد التابع <code>rand</code> عددًا شبه عشوائي يقع ضمن مجال محدَّد.
===[[Ruby/Kernel/readline|<code>readline</code>]]===
يقرأ التابع سطرًا واحدًا من أسطر الملف ثم يعيده.
===[[Ruby/Kernel/readlines|<code>readlines</code>]]===
يعيد مصفوفة يحوي كل عنصر منها سطرًا من أسطر الملف المراد قراءته بالكامل.
===[[Ruby/Kernel/require|<code>require</code>]]===
يُحمِّل ميزة محدَّدة ثمَّ يعيد <code>true</code> في حال نجح في ذلك، أو <code>false</code> إذا كانت الميزة (feature) مُحملة سلفًا.
===[[Ruby/Kernel/require relative|<code>require_relative</code>]]===
عند استدعاء هذا التابع، ستحاول روبي تحميل المكتبة التي مُرِّر اسمها إليه نسبةً إلى مسار الملف المطلوب.
===[[Ruby/Kernel/select|<code>select</code>]]===
يستدعي دالة النظام <code>select(2)</code>‎، إذ يعمل على مراقبة المصفوفات الكائنات <code>[[Ruby/IO|IO]]</code>المعطاة، وينتظر حتى يصبح أحد تلك الكائنات أو أكثر جاهزًا للقراءة، وجاهزًا للكتابة، ومالكًا لاستثناءات معلقة (pending exceptions) على التوالي، ثم يعيد مصفوفة تحتوي على مصفوفات مكونة من الكائنات <nowiki/>[[Ruby/IO|<code>IO</code>]] السابقة.
===[[Ruby/Kernel/set trace func|<code>set_trace_func</code>]]===
يجعل المعامل المعطى كمعالج للتعقب، أو يعطل التعقب إن كان الوسيط يساوي <code>nil</code>.
===[[Ruby/Kernel/sleep|<code>sleep</code>]]===
يعلّق المهمة الفرعية (thread) الحالية لعدد محدَّد من الثواني.
===[[Ruby/Kernel/spawn|<code>spawn</code>]]===
ينفذ تعليمة محددة، ثم يعيد معرفها (pid).
===[[Ruby/Kernel/sprintf|<code>sprintf</code>]]===
يعيد السلسلة النصية المُمرَّرة إليه بعد تنسيقها بنمط معيَّن.
===[[Ruby/Kernel/srand|<code>srand</code>]]===
يضبط بذرة مولد الأعداد شبه العشوائية (system pseudo-random number generator).
===[[Ruby/Kernel/sub|<code>sub</code>]]===
يكافئ التعبير ‎<code>$_.sub( args )‎</code> باستثناء أنه سيتم تحديث ‎<code>$_‎</code> إذا حدث استبدال.
===[[Ruby/Kernel/syscall|<code>syscall</code>]]===
يستدعي دالة نظام التشغيل المحددة بواسطة المعامل المُمرَّر إليه ويعيد نتيجة هذه الدالة أو يطلق الخطأ <code>[[Ruby/SystemCallError|SystemCallError]]</code> في حال فشل استدعائها.
===[[Ruby/Kernel/system|<code>system</code>]]===
ينفذ الأمر المُمرَّر إليه في صدفة فرعية (subshell).
===[[Ruby/Kernel/test|<code>test</code>]]===
يجري عدة اختبارات على ملف واحد أو على ملفين.
===[[Ruby/Kernel/throw|<code>throw</code>]]===
ينقل الضبط (control) إلى نهاية الكتلة <nowiki/>[[Ruby/Kernel/catch|<code>catch</code>]] المُترقبة للوسم المعطى (<code>tag</code>). إذا لم يكن هناك كتلة <nowiki/>[[Ruby/Kernel/catch|<code>catch</code>]] لذلك الوسم، فسيطلق الخطأ <code>[[Ruby/UncaughtThrowError|UncaughtThrowError]]</code>. 
===[[Ruby/Kernel/trace var|<code>trace_var</code>]]===
يضبط (Controls) تعقّبات (tracing) تعيين المتغيرات العامة.
===[[Ruby/Kernel/trap|<code>trap</code>]]===
يحدد معالج الإشارات (handling of signals).
===[[Ruby/Kernel/untrace var|<code>untrace_var</code>]]===
يزيل التعقب (tracing) للأمر <code>cmd</code> المعطى على المتغير العام المحدد ثم يعيد القيمة <code>nil</code>.
===[[Ruby/Kernel/warn|<code>warn</code>]]===
في حال تعطيل التنبيهات (على سبيل المثال، عبر الراية ‎<code>-W0</code>) ، فإنّ التابع <code>warn</code> لن يفعل شيئًا. خلا ذلك، سيُحوّل كل الرسائل المُمرَّرة إليه إلى سلاسل نصية، ويضيف محرف سطر جديد إلى نهايتها إن لم تكن منتهيةً بسطر جديد، ثم يستدعي التابع <code>[[Ruby/Warning/warn|Warning.warn]]</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  في توثيق روبي الرسمي.]

المراجعة الحالية بتاريخ 06:57، 17 نوفمبر 2018

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

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

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

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

Array

يعيد المعامل الممرَّر إليه على شكل مصفوفة (Array).

Complex

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

Float

Hash

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

Integer

يحول المعامل المُمرَّر إليه إلى عدد صحيح (Integer).

Rational

يعيد ناتج العملية x/y إن مُرر عددين إليه أو عدد جذري (Rational) إن مُرِّر معامل وحيد فقط.

String

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

__callee__

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

__dir__

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

__method__

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

`

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

abort

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

at_exit

يحول الكتلة البرمجية المعطاة إلى كائن من النوع Proc (وبالتالي يربطه في لحظة الاستدعاء) ويسجله لأجل تنفيذه عند نهاية البرنامج.

autoload

يسجل اسم الملف المعطى لكي يُحمّل (باستخدام Kernel::require) في المرة الأولى التي يتم الوصول فيها إلى وحدة محدَّدة.

‎autoload?‎

يعيد التابع autoload?‎ اسم الملف المراد تحميله إذا سُجّل للتحميل عند الوصول إلى وحدة محدَّدة عبر التابع autoload.

binding

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

block_given?‎

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

callcc

يولد كائنًا من النوع Continuation، والذي يُمرّر إلى الكتلة البرمجية المعطاة. 

caller

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

caller_locations

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

catch

ينفذ كتلته البرمجية.

chomp

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

chop

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

eval

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

exec

يستبدل العملية (process) الحالية عبر تشغيل الأمر الخارجي المعطى

exit

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

exit!‎

يُنهِي العملية على الفور.

fail

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

fork

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

format

يعيد السلسلة النصية المعطاة بعد تنسيقها بشكل معين.

gets

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

global_variables

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

gsub

يكافئ التعبير ‎$_.gsub...‎، باستثناء أنه سيتم تحديث ‎$_‎ في حال حدوث استبدال.

iterator?‎

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

lambda

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

load

يحمّل وينفّذ برنامج روبي في الملف المعطى.

local_variables

يعيد مصفوفة تضم أسماء المتغيرات المحلية الحالية.

loop

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

open

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

p

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

print

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

printf

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

proc

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

putc

يكافئ التعبير ‎$stdout.putc(int)‎ أي يطبع القيمة الممرَّرة إليه على مجرى الخرج القياسي.

puts

يكافئ التعبير ‎$stdout.puts(obj, ...)‎؛ أي يطبع السلسلة النصية المُمرَّرة إليه على مجرى الخرج القياسي.

raise

يطلق استثناءً أو خطأً مع إظهار رسالة تصف هذا الاستثناء أو الخطأ.

rand

يولد التابع rand عددًا شبه عشوائي يقع ضمن مجال محدَّد.

readline

يقرأ التابع سطرًا واحدًا من أسطر الملف ثم يعيده.

readlines

يعيد مصفوفة يحوي كل عنصر منها سطرًا من أسطر الملف المراد قراءته بالكامل.

require

يُحمِّل ميزة محدَّدة ثمَّ يعيد true في حال نجح في ذلك، أو false إذا كانت الميزة (feature) مُحملة سلفًا.

require_relative

عند استدعاء هذا التابع، ستحاول روبي تحميل المكتبة التي مُرِّر اسمها إليه نسبةً إلى مسار الملف المطلوب.

select

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

set_trace_func

يجعل المعامل المعطى كمعالج للتعقب، أو يعطل التعقب إن كان الوسيط يساوي nil.

sleep

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

spawn

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

sprintf

يعيد السلسلة النصية المُمرَّرة إليه بعد تنسيقها بنمط معيَّن.

srand

يضبط بذرة مولد الأعداد شبه العشوائية (system pseudo-random number generator).

sub

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

syscall

يستدعي دالة نظام التشغيل المحددة بواسطة المعامل المُمرَّر إليه ويعيد نتيجة هذه الدالة أو يطلق الخطأ SystemCallError في حال فشل استدعائها.

system

ينفذ الأمر المُمرَّر إليه في صدفة فرعية (subshell).

test

يجري عدة اختبارات على ملف واحد أو على ملفين.

throw

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

trace_var

يضبط (Controls) تعقّبات (tracing) تعيين المتغيرات العامة.

trap

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

untrace_var

يزيل التعقب (tracing) للأمر cmd المعطى على المتغير العام المحدد ثم يعيد القيمة nil.

warn

في حال تعطيل التنبيهات (على سبيل المثال، عبر الراية ‎-W0) ، فإنّ التابع warn لن يفعل شيئًا. خلا ذلك، سيُحوّل كل الرسائل المُمرَّرة إليه إلى سلاسل نصية، ويضيف محرف سطر جديد إلى نهايتها إن لم تكن منتهيةً بسطر جديد، ثم يستدعي التابع Warning.warn، ويمرر إليه تلك السلسلة النصية.

مصادر