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