الفرق بين المراجعتين لصفحة: «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">
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|Array]]===
يعيد الوسيط المعطى على شكل مصفوفة (<code>Array</code>).
يعيد الوسيط المعطى على شكل مصفوفة (<code>Array</code>).
===[[Ruby/Kernel/Complex | التابع Complex]]===
===[[Ruby/Kernel/Complex|Complex]]===
يعيد التابع ناتج التعبير <code>x + i * y</code>؛ حيث <code>i</code> هو الوحدة التخيلية العقدية.
يعيد ناتج التعبير <code>x + i * y</code>؛ حيث <code>i</code> هو الوحدة التخيلية العقدية.
===[[Ruby/Kernel/Hash | التابع Hash]]===
===[[Ruby/Kernel/Hash|Hash]]===
يحول الوسيط المعطى إلى قاموس <code>Hash</code> عبر استدعاء <code>arg.to_hash</code>.  
يحول الوسيط المعطى إلى قاموس <code>Hash</code> عبر استدعاء <code>arg.to_hash</code>.
===[[Ruby/Kernel/Integer | التابع Integer]]===
===[[Ruby/Kernel/Integer|Integer]]===
يحول الوسيط المعطى إلى عدد صحيح (<code>Integer</code>).
يحول الوسيط المعطى إلى عدد صحيح (<code>Integer</code>).


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

مراجعة 18:23، 15 نوفمبر 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 كتلته البرمجية.

chomp

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

chop

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

eval

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

exec

يستبدل العملية الحالية عن طريق تشغيل الأمر الخارجي المعطى.

exit

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

exit!‎

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

fail

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

fork

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

format

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

gets

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

global_variables

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

gsub

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

iterator?‎

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

lambda

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

load

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

local_variables

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

loop

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

open

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

p

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

print

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

printf

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

proc

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

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.

مصادر