الفرق بين المراجعتين ل"Ruby/Kernel"

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

مصادر