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

من موسوعة حسوب
لا ملخص تعديل
إضافة شرح لبعض الأقسام.
سطر 76: سطر 76:


==الأصناف والوحدات==
==الأصناف والوحدات==
===[[Ruby/ARGF|ARGF]]===
===[[Ruby/ARGF|<code>ARGF</code>]]===
الصنف <code>ARGF</code> هو مجرى (stream) صُمِّم ليُستخدَم في الملفات البرمجية (scritps) التي تُعالج الملفات المُمرَّرة إليها على شكل وسائط في سطر الأوامر (command-line arguments)، أو المُمرَّرة عبر مجرى الدخل القياسي (STDIN).
الصنف <code>ARGF</code> هو مجرى (stream) صُمِّم ليُستخدَم في الملفات البرمجية (scritps) التي تُعالج الملفات المُمرَّرة إليها على شكل وسائط في سطر الأوامر (command-line arguments)، أو المُمرَّرة عبر مجرى الدخل القياسي (STDIN).


===[[Ruby/ArgumentError|ArgumentError]]===
===[[Ruby/ArgumentError|<code>ArgumentError</code>]]===
يُطلق الاستثناء <code>ArgumentError</code> عندما تكون الوسائط (arguments) غير صالحة، ولا يكون هناك صنف <code>[[Ruby/Exception|Exception]]</code> أكثر تحديدًا.
يُطلق الاستثناء <code>ArgumentError</code> عندما تكون الوسائط (arguments) غير صالحة، ولا يكون هناك صنف <code>[[Ruby/Exception|Exception]]</code> أكثر تحديدًا.


===[[Ruby/Array|Array]]===
===[[Ruby/Array|<code>Array</code>]]===
المصفوفات هي مجموعات مُرتَّبة ومُفهرسة بالأعداد الصحيحة (integer-indexed) ومُكونة من أي نوع من الكائنات.
المصفوفات هي مجموعات مُرتَّبة ومُفهرسة بالأعداد الصحيحة (integer-indexed) ومُكونة من أي نوع من الكائنات.


===[[Ruby/BasicObject|BasicObject]]===
===[[Ruby/BasicObject|<code>BasicObject</code>]]===
الصنف <code>BasicObject</code> هو الصنف الأب لجميع الأصناف في روبي، وهو صنف فارغ.
الصنف <code>BasicObject</code> هو الصنف الأب لجميع الأصناف في روبي، وهو صنف فارغ.


===[[Ruby/Binding|Binding]]===
===[[Ruby/Binding|<code>Binding</code>]]===
تُغلِّف كائنات الصنف <code>Binding</code> سياق التنفيذ (execution context) في مكان معين في الشيفرة البرمجية، وتحتفظ بذلك السياق لاستخدامه مستقبلًا. يُحتفَظ بالمتغيرات، والتوابع، وقيمة<code>self</code>، وربما كتلة المكرر (iterator block) وكل ما يمكن الوصول إليه في هذا السياق. يمكن إنشاء كائنات الصنف <code>Binding</code> باستخدام التابع <code>Kernel.binding</code>، واستدعاؤها بوساطة التابع <code>Kernel.set_trace_func</code>.
تُغلِّف كائنات الصنف <code>Binding</code> سياق التنفيذ (execution context) في مكان معين في الشيفرة البرمجية، وتحتفظ بذلك السياق لاستخدامه مستقبلًا. يُحتفَظ بالمتغيرات، والتوابع، وقيمة<code>self</code>، وربما كتلة المكرر (iterator block) وكل ما يمكن الوصول إليه في هذا السياق. يمكن إنشاء كائنات الصنف <code>Binding</code> باستخدام التابع <code>Kernel.binding</code>، واستدعاؤها بوساطة التابع <code>Kernel.set_trace_func</code>.


===[[Ruby/Class|Class]]===
===[[Ruby/Class|<code>Class</code>]]===
تُعدُّ الأصناف كائناتٍ من الدرجة الأولى (first-class objects) في روبي، وتعدُّ جميعها نُسخٌ من الصنف <code>Class</code>.
تُعدُّ الأصناف كائناتٍ من الدرجة الأولى (first-class objects) في روبي، وتعدُّ جميعها نُسخٌ من الصنف <code>Class</code>.


===[[Ruby/ClosedQueueError|ClosedQueueError]]===
===[[Ruby/ClosedQueueError|<code>ClosedQueueError</code>]]===
===[[Ruby/Comparable|Comparable]]===
===[[Ruby/Comparable|<code>Comparable</code>]]===
يُستخدم المخلوط (mixin) ‏<code>Comparable</code> من قبل الأصناف التي يمكن ترتيب كائناتها. يجب أن يحدِّد الصنفُ المعاملَ <code><=></code> ، الذي يوازن الكائن المستقبِل (receiver) مع كائن آخر ، ويعيد ‎-1، أو 0، أو ‎+1 إن كان المُستقبِل أصغر من الكائن الآخر، أو يساويه، أو أكبر منه على التوالي. 
يُستخدم المخلوط (mixin) ‏<code>Comparable</code> من قبل الأصناف التي يمكن ترتيب كائناتها. يجب أن يحدِّد الصنفُ المعاملَ <code><=></code> ، الذي يوازن الكائن المستقبِل (receiver) مع كائن آخر ، ويعيد ‎-1، أو 0، أو ‎+1 إن كان المُستقبِل أصغر من الكائن الآخر، أو يساويه، أو أكبر منه على التوالي. 


===[[Ruby/Complex|Complex]]===
===[[Ruby/Complex|<code>Complex</code>]]===
يمكن تمثيل الأعداد العقدية (تُسمّى أيضًا أعدادًا مركبةً [complex number]) كزوج مكون من عدد حقيقي ووحدة تخلية (العدد <code>i</code>) وفق الشكل <code>a+bi</code>، إذ <code>a</code> هو الجزء الحقيقي، و <code>b</code> هو الجزء التخيلي و <code>i</code> هو الوحدة الخيالية.
يمكن تمثيل الأعداد العقدية (تُسمّى أيضًا أعدادًا مركبةً [complex number]) كزوج مكون من عدد حقيقي ووحدة تخلية (العدد <code>i</code>) وفق الشكل <code>a+bi</code>، إذ <code>a</code> هو الجزء الحقيقي، و <code>b</code> هو الجزء التخيلي و <code>i</code> هو الوحدة الخيالية.


===[[Ruby/Complex::compatible|Complex::compatible]]===
===[[Ruby/Complex::compatible|<code>Complex::compatible</code>]]===
===[[Ruby/ConditionVariable|ConditionVariable]]===
===[[Ruby/ConditionVariable|<code>ConditionVariable</code>]]===
توسع كائنات الصنف <code>ConditionVariable</code> عمل الصنف <code>[[Ruby/Mutex|Mutex]]</code>. فمن الممكن باستخدام المتغيرات الشرطية إيقاف مهمة حرجة (critical section) في أثناء تنفيذها إلى حين إتاحة مورد ما.
توسع كائنات الصنف <code>ConditionVariable</code> عمل الصنف <code>[[Ruby/Mutex|Mutex]]</code>. فمن الممكن باستخدام المتغيرات الشرطية إيقاف مهمة حرجة (critical section) في أثناء تنفيذها إلى حين إتاحة مورد ما.


===[[Ruby/Continuation|Continuation]]===
===[[Ruby/Continuation|<code>Continuation</code>]]===
تُولّد الكائنات <code>Continuation</code> بواسطة التابع <code>Kernel.callcc</code> بعد استيراد <code>continuation</code> عبر <code>require</code>. تحمل هذه الكائنات عنوان العودة (return address) وسياق التنفيذ (execution context)، مما يتيح العودة إلى نهاية الكتلة <code>callcc</code> من أي مكان في البرنامج.
تُولّد الكائنات <code>Continuation</code> بواسطة التابع <code>Kernel.callcc</code> بعد استيراد <code>continuation</code> عبر <code>require</code>. تحمل هذه الكائنات عنوان العودة (return address) وسياق التنفيذ (execution context)، مما يتيح العودة إلى نهاية الكتلة <code>callcc</code> من أي مكان في البرنامج.


===[[Ruby/Data|Data]]===
===[[Ruby/Data|<code>Data</code>]]===
===[[Ruby/Dir|Dir]]===
===[[Ruby/Dir|<code>Dir</code>]]===
كائنات الصنف <code>Dir</code> هي مجاري مجلدات (directory streams) تمثِّل الجلدات في نظام الملفات الأساسي لنظام التشغيل. فهي توفر طرائق متعددة لعرض المجلدات ومحتوياتها. انظر أيضًا صفحة الصنف <code>File</code> لمزيد من المعلومات.
كائنات الصنف <code>Dir</code> هي مجاري مجلدات (directory streams) تمثِّل الجلدات في نظام الملفات الأساسي لنظام التشغيل. فهي توفر طرائق متعددة لعرض المجلدات ومحتوياتها. انظر أيضًا صفحة الصنف <code>File</code> لمزيد من المعلومات.


===[[Ruby/ENV|ENV]]===
===[[Ruby/ENV|<code>ENV</code>]]===
يشبه الصنف <code>ENV</code> الجداول <code>[[Ruby/Hash|Hash]]</code> كثيرًا ويُستعمل للوصول إلى متغيرات البيئة.
يشبه الصنف <code>ENV</code> الجداول <code>[[Ruby/Hash|Hash]]</code> كثيرًا ويُستعمل للوصول إلى متغيرات البيئة.


===[[Ruby/EOFError|EOFError]]===
===[[Ruby/EOFError|<code>EOFError</code>]]===
يٌطلَق الخطأ <code>EOFError</code> من طرف بعض عمليات الصنف <code>[[Ruby/IO|IO]]</code> عندما تصل إلى نهاية الملف.
يٌطلَق الخطأ <code>EOFError</code> من طرف بعض عمليات الصنف <code>[[Ruby/IO|IO]]</code> عندما تصل إلى نهاية الملف.


===[[Ruby/Encoding|Encoding]]===
===[[Ruby/Encoding|<code>Encoding</code>]]===
يمثل الصنف <code>Encoding</code> ترميز المحارف الذي يمكننا استخدامه في لغة روبي.
يمثل الصنف <code>Encoding</code> ترميز المحارف الذي يمكننا استخدامه في لغة روبي.


===[[Ruby/Encoding::CompatibilityError|Encoding::CompatibilityError]]===
===[[Ruby/Encoding::CompatibilityError|<code>Encoding::CompatibilityError</code>]]===
يُرمى الاستثناء <code>CompatibilityError</code> من قبل توابع الصّنفين <code>String</code> و <code>[[Ruby/Encoding|Encoding]]</code> عندما لا يتوافق ترميز المصدر مع ترميز الهدف.
يُرمى الاستثناء <code>CompatibilityError</code> من قبل توابع الصّنفين <code>String</code> و <code>[[Ruby/Encoding|Encoding]]</code> عندما لا يتوافق ترميز المصدر مع ترميز الهدف.


===[[Ruby/Encoding::Converter|Encoding::Converter]]===
===[[Ruby/Encoding::Converter|<code>Encoding::Converter</code>]]===
يُستعمَل الصنف <code>Encoding::Converter</code> في عمليات تحويل الترميز في السلاسل النصية.
يُستعمَل الصنف <code>Encoding::Converter</code> في عمليات تحويل الترميز في السلاسل النصية.


===[[Ruby/Encoding::ConverterNotFoundError|Encoding::ConverterNotFoundError]]===
===[[Ruby/Encoding::ConverterNotFoundError|<code>Encoding::ConverterNotFoundError</code>]]===
يُرمى الاستثناء <code>ConverterNotFoundError</code> من قبل توابع تبديل التّرميز (transcoding) عندما لا يتوافق ترميزٌ باسمٍ معيّنٍ مع محوّلٍ (converter) محدَّد.
يُرمى الاستثناء <code>ConverterNotFoundError</code> من قبل توابع تبديل التّرميز (transcoding) عندما لا يتوافق ترميزٌ باسمٍ معيّنٍ مع محوّلٍ (converter) محدَّد.


===[[Ruby/Encoding::InvalidByteSequenceError|Encoding::InvalidByteSequenceError]]===
===[[Ruby/Encoding::InvalidByteSequenceError|<code>Encoding::InvalidByteSequenceError</code>]]===
يُرمَى الاستنثناء <code>InvalidByteSequenceError</code> من قبل توابع الصّنفين <code>String</code> و <code>[[Ruby/Encoding|Encoding]]</code> عندما تحوي السّلسلة النّصية التي يجري تحويل ترميزها بايتًا غير صالح إما للتّرميز المصدر أو التّرميز الهدف المراد التحويل إليه.
يُرمَى الاستنثناء <code>InvalidByteSequenceError</code> من قبل توابع الصّنفين <code>String</code> و <code>[[Ruby/Encoding|Encoding]]</code> عندما تحوي السّلسلة النّصية التي يجري تحويل ترميزها بايتًا غير صالح إما للتّرميز المصدر أو التّرميز الهدف المراد التحويل إليه.


===[[Ruby/Encoding::UndefinedConversionError|Encoding::UndefinedConversionError]]===
===[[Ruby/Encoding::UndefinedConversionError|<code>Encoding::UndefinedConversionError</code>]]===
يُرمَى الاستثناء <code>UndefinedConversionError</code> من قبل توابع الصّنفين <code>String</code> و <code>[[Ruby/Encoding|Encoding]]</code> عندما تفشل عملية تبديل التّرميز (transcoding).
يُرمَى الاستثناء <code>UndefinedConversionError</code> من قبل توابع الصّنفين <code>String</code> و <code>[[Ruby/Encoding|Encoding]]</code> عندما تفشل عملية تبديل التّرميز (transcoding).


===[[Ruby/EncodingError|EncodingError]]===
===[[Ruby/EncodingError|<code>EncodingError</code>]]===
يُمثِّل الصنف <code>EncodingError</code> الصِّنفَ القاعديَّ (base class) لجميعِ أخطاء التّرميز (الصنف <code>[[Ruby/Encoding|Encoding]]</code>).
يُمثِّل الصنف <code>EncodingError</code> الصِّنفَ القاعديَّ (base class) لجميعِ أخطاء التّرميز (الصنف <code>[[Ruby/Encoding|Encoding]]</code>).


===[[Ruby/Enumerable|Enumerable]]===
===[[Ruby/Enumerable|<code>Enumerable</code>]]===
===[[Ruby/Enumerator|Enumerator]]===
===[[Ruby/Enumerator|<code>Enumerator</code>]]===
===[[Ruby/Enumerator::Generator|Enumerator::Generator]]===
===[[Ruby/Enumerator::Generator|<code>Enumerator::Generator</code>]]===
===[[Ruby/Enumerator::Lazy|Enumerator::Lazy]]===
===[[Ruby/Enumerator::Lazy|<code>Enumerator::Lazy</code>]]===
===[[Ruby/Enumerator::Yielder|Enumerator::Yielder]]===
===[[Ruby/Enumerator::Yielder|<code>Enumerator::Yielder</code>]]===
===[[Ruby/Errno|Errno]]===
===[[Ruby/Errno|<code>Errno</code>]]===
تُنشَأ الوحدة <code>Errno</code> ديناميكيًّا لتنظيم تفاصيل الأخطاء تُبلِّغ أنظمة عنها وإرسالها إلى أصناف روبي، مع توليد صنف فرعي من الصنف <code>[[Ruby/SystemCallError|SystemCallError]]</code> خاص بكل رقم خطأٍ.
تُنشَأ الوحدة <code>Errno</code> ديناميكيًّا لتنظيم تفاصيل الأخطاء تُبلِّغ أنظمة عنها وإرسالها إلى أصناف روبي، مع توليد صنف فرعي من الصنف <code>[[Ruby/SystemCallError|SystemCallError]]</code> خاص بكل رقم خطأٍ.


===[[Ruby/Exception|Exception]]===
===[[Ruby/Exception|<code>Exception</code>]]===
تُستخدَم الكائنات السليلة من الصنف <code>Exception</code> للتواصل بين التّابع <code>[[Ruby/Kernel/raise|Kernel.raise]]</code> وتصريحات <code>rescue</code> في الكتل (blocks) من الشكل <code>[[Ruby/miscellaneous#BEGIN .D9.88 END|begin...end]]</code>. تَحمل كائنات الصنف<code>Exception</code> معلوماتٍ عن الاستثناء المَرمي مثل نوعه (اسم صنف الاستثناء)، وسلسلةً نصيّةً وصفيّةً اختياريّة، ومعلوماتِ تتبّعٍ اختيارية.
تُستخدَم الكائنات السليلة من الصنف <code>Exception</code> للتواصل بين التّابع <code>[[Ruby/Kernel/raise|Kernel.raise]]</code> وتصريحات <code>rescue</code> في الكتل (blocks) من الشكل <code>[[Ruby/miscellaneous#BEGIN .D9.88 END|begin...end]]</code>. تَحمل كائنات الصنف<code>Exception</code> معلوماتٍ عن الاستثناء المَرمي مثل نوعه (اسم صنف الاستثناء)، وسلسلةً نصيّةً وصفيّةً اختياريّة، ومعلوماتِ تتبّعٍ اختيارية.


===[[Ruby/FalseClass|FalseClass]]===
===[[Ruby/FalseClass|<code>FalseClass</code>]]===
القيمة <code>false</code> العامة (global) هي النسخة الوحيدة من الصنف <code>FalseClass</code> وتمثِّل قيمة الخطأ (false) في التعابير المنطقية (boolean expressions). يوفر هذا الصنف معاملات تسمح للقيمة <code>false</code> بالمساهمة بشكل صحيح في التعابير المنطقية.
القيمة <code>false</code> العامة (global) هي النسخة الوحيدة من الصنف <code>FalseClass</code> وتمثِّل قيمة الخطأ (false) في التعابير المنطقية (boolean expressions). يوفر هذا الصنف معاملات تسمح للقيمة <code>false</code> بالمساهمة بشكل صحيح في التعابير المنطقية.


===[[Ruby/Fiber|Fiber]]===
===[[Ruby/Fiber|<code>Fiber</code>]]===
الألياف (Fibers) هي حقولٌ أساسيّةٌ (primitives) تُستخدم في تنفيذ تعدّد المهام التشاركي (cooperative concurrency) للمهام الخفيفة (light weight) أي التي تستهلك جزءًا صغيرًا من الذاكرة.
الألياف (Fibers) هي حقولٌ أساسيّةٌ (primitives) تُستخدم في تنفيذ تعدّد المهام التشاركي (cooperative concurrency) للمهام الخفيفة (light weight) أي التي تستهلك جزءًا صغيرًا من الذاكرة.


===[[Ruby/FiberError|FiberError]]===
===[[Ruby/FiberError|<code>FiberError</code>]]===
يُرمى الاستثناء <code>FiberError</code> عند محاولة إجراء عمليّةٌ غير صحيحةٍ في الصنف <code>[[Ruby/Fiber|Fiber]]</code>، تحديدًا عند محاولة استدعاء/استئناف ليف ميِّت، أو محاولة التّوليد من الليف الجذر (root fiber)، أو استدعاء ليفٍ عبر خيوطٍ (threads).
يُرمى الاستثناء <code>FiberError</code> عند محاولة إجراء عمليّةٌ غير صحيحةٍ في الصنف <code>[[Ruby/Fiber|Fiber]]</code>، تحديدًا عند محاولة استدعاء/استئناف ليف ميِّت، أو محاولة التّوليد من الليف الجذر (root fiber)، أو استدعاء ليفٍ عبر خيوطٍ (threads).


===[[Ruby/File|File]]===
===[[Ruby/File|<code>File</code>]]===
===[[Ruby/File::Constants|File::Constants]]===
===[[Ruby/File::Constants|<code>File::Constants</code>]]===
===[[Ruby/File::Stat|File::Stat]]===
===[[Ruby/File::Stat|<code>File::Stat</code>]]===
===[[Ruby/FileTest|FileTest]]===
===[[Ruby/FileTest|<code>FileTest</code>]]===
===[[Ruby/Float|Float]]===
===[[Ruby/Float|<code>Float</code>]]===
===[[Ruby/FloatDomainError|FloatDomainError]]===
===[[Ruby/FloatDomainError|<code>FloatDomainError</code>]]===
===[[Ruby/FrozenError|FrozenError]]===
===[[Ruby/FrozenError|<code>FrozenError</code>]]===
===[[Ruby/GC|GC]]===
===[[Ruby/GC|<code>GC</code>]]===
===[[Ruby/GC::Profiler|GC::Profiler]]===
===[[Ruby/GC::Profiler|<code>GC::Profiler</code>]]===
===[[Ruby/Hash|Hash]]===
===[[Ruby/Hash|<code>Hash</code>]]===
===[[Ruby/IO|IO]]===
===[[Ruby/IO|<code>IO</code>]]===
===[[Ruby/IO::EAGAINWaitReadable|IO::EAGAINWaitReadable]]===
===[[Ruby/IO::EAGAINWaitReadable|<code>IO::EAGAINWaitReadable</code>]]===
===[[Ruby/IO::EAGAINWaitWritable|IO::EAGAINWaitWritable]]===
===[[Ruby/IO::EAGAINWaitWritable|<code>IO::EAGAINWaitWritable</code>]]===
===[[Ruby/IO::EINPROGRESSWaitReadable|IO::EINPROGRESSWaitReadable]]===
===[[Ruby/IO::EINPROGRESSWaitReadable|<code>IO::EINPROGRESSWaitReadable</code>]]===
===[[Ruby/IO::EINPROGRESSWaitWritable|IO::EINPROGRESSWaitWritable]]===
===[[Ruby/IO::EINPROGRESSWaitWritable|<code>IO::EINPROGRESSWaitWritable</code>]]===
===[[Ruby/IO::EWOULDBLOCKWaitReadable|IO::EWOULDBLOCKWaitReadable]]===
===[[Ruby/IO::EWOULDBLOCKWaitReadable|<code>IO::EWOULDBLOCKWaitReadable</code>]]===
===[[Ruby/IO::EWOULDBLOCKWaitWritable|IO::EWOULDBLOCKWaitWritable]]===
===[[Ruby/IO::EWOULDBLOCKWaitWritable|<code>IO::EWOULDBLOCKWaitWritable</code>]]===
===[[Ruby/IO::WaitReadable|IO::WaitReadable]]===
===[[Ruby/IO::WaitReadable|<code>IO::WaitReadable</code>]]===
===[[Ruby/IO::WaitWritable|IO::WaitWritable]]===
===[[Ruby/IO::WaitWritable|<code>IO::WaitWritable</code>]]===
===[[Ruby/IOError|IOError]]===
===[[Ruby/IOError|<code>IOError</code>]]===
===[[Ruby/IndexError|IndexError]]===
===[[Ruby/IndexError|<code>IndexError</code>]]===
===[[Ruby/Integer|Integer]]===
===[[Ruby/Integer|<code>Integer</code>]]===
===[[Ruby/Interrupt|Interrupt]]===
يمثل الصنف <code>Integer</code> الأعداد الصحيحة. 
===[[Ruby/Kernel|Kernel]]===
 
===[[Ruby/KeyError|KeyError]]===
===[[Ruby/Interrupt|<code>Interrupt</code>]]===
===[[Ruby/LoadError|LoadError]]===
يُطلق الاستثناء <code>Interrupt</code> عند استقبال إشارة المقاطعة (interrupt signal)، عادةً لأن المستخدم ضغط على Ctrl-C (على معظم منصات POSIX). وعلى هذا النحو، فهو صنف فرعي من<code>[[Ruby/SignalException|SignalException]]</code>.
===[[Ruby/LocalJumpError|LocalJumpError]]===
 
===[[Ruby/Marshal|Marshal]]===
===[[Ruby/Kernel|<code>Kernel</code>]]===
===[[Ruby/MatchData|MatchData]]===
تُضمَّن الوحدة <code>Kernel</code> من طرف الصنف <code>[[Ruby/Object|Object]]</code>، لذلك فتوابعها متاحة في كل كائنات روبي. توابع نسخ الصنف <code>Kernel</code> مُوثّقة في صفحة الصنف <code>[[Ruby/Object|Object]]</code>، أما توابع الوحدة <code>Kernel</code> فهي مُوثقة في هذا القسم.
===[[Ruby/Math|Math]]===
 
===[[Ruby/Math::DomainError|Math::DomainError]]===
===[[Ruby/KeyError|<code>KeyError</code>]]===
===[[Ruby/Method|Method]]===
يُطلق الاستثناء <code>KeyError</code> عندما لا يكون المفتاح (key) المُحدد موجودًا، وهو صنف فرعي من <code>[[Ruby/IndexError|IndexError]]</code>.
===[[Ruby/Module|Module]]===
 
===[[Ruby/Mutex|Mutex]]===
===[[Ruby/LoadError|<code>LoadError</code>]]===
===[[Ruby/NameError|NameError]]===
يُطلق الاستثناء <code>LoadError</code> عند فشل تحميل الملف المطلوب (شيفرة روبي، مكتبة ملحقة، ...إلخ.).
===[[Ruby/NilClass|NilClass]]===
 
===[[Ruby/NoMemoryError|NoMemoryError]]===
===[[Ruby/LocalJumpError|<code>LocalJumpError</code>]]===
===[[Ruby/NoMethodError|NoMethodError]]===
يُطلق الاستثناء <code>LocalJumpError</code> عندما لا تتمكن روبي من الإعادة (yield) كما هو مطلوب.
===[[Ruby/NotImplementedError|NotImplementedError]]===
 
===[[Ruby/Numeric|Numeric]]===
===[[Ruby/Marshal|<code>Marshal</code>]]===
===[[Ruby/Object|Object]]===
تحوّل المكتبة <code>Marshal</code> مجموعات من كائنات روبي إلى مجرى من البايتات (byte stream)، مما يسمح بتخزينها خارج البرنامج النصي النشط حاليًا. يمكن بعد ذلك قراءة تلك البيانات وإعادة إنشاء الكائنات الأصلية أنشئت منها.
===[[Ruby/ObjectSpace|ObjectSpace]]===
 
===[[Ruby/ObjectSpace::WeakMap|ObjectSpace::WeakMap]]===
===[[Ruby/MatchData|<code>MatchData</code>]]===
===[[Ruby/Proc|Proc]]===
الصنف <code>MatchData</code> هو نوع المتغير الخاص ‎<code>$~‎</code> ، كما أنه نوع الكائنات المُعادة من <code>[[Ruby/Regexp/match|Regexp.match]]</code> و <code>[[Ruby/Regexp/last match|Regexp.last_match]]</code>. فهو يغلف ويستوعب جميع نتائج التطابق مع تعبير نمطي. يمكن الوصول إلى النتائج من خلال المتغيرات الخاصة ‎<code>$&‎</code> و ‎<code>$'‎</code> و <code>$</code> و ‎<code>$`‎</code> و ‎<code>$1</code> و ‎<code>$2</code> وهكذا دواليك.
===[[Ruby/Process|Process]]===
 
===[[Ruby/Process::GID|Process::GID]]===
===[[Ruby/Math|<code>Math</code>]]===
===[[Ruby/Process::Status|Process::Status]]===
تحوي الوحدة <code>Math</code> الدوال المثلثية والمتسامية (transcendental functions، وتدعى أيضًا الدوال اللاجبرية) الأساسية. راجع صفحة الصنف <code>[[Ruby/Float|Float]]</code> للحصول على قائمة الثوابت التي تحدد دقة الأعداد العشرية (floating point) في روبي.
===[[Ruby/Process::Sys|Process::Sys]]===
 
===[[Ruby/Process::UID|Process::UID]]===
===[[Ruby/Math::DomainError|<code>Math::DomainError</code>]]===
===[[Ruby/Process::Waiter|Process::Waiter]]===
يُطلَق الخطأ <code>DomainError</code> عند محاولة تقييم دالة رياضية خارج مجال تعريفها.
===[[Ruby/Queue|Queue]]===
 
===[[Ruby/Random|Random]]===
===[[Ruby/Method|<code>Method</code>]]===
===[[Ruby/Random::Formatter|Random::Formatter]]===
يتم إنشاء كائنات الصنف <code>Method</code> بواسطة التابع <code>Object.method</code>، وترتبط بكائن معين (وليس بالصنف وحسب). ويمكن استخدامها لاستدعاء التابع داخل الكائن، أو ككتلة (block) مرتبطة بمكرر (iterator). كما يمكن فك ارتباطها (unbound) من كائن محدد (سيؤدي ذلك إلى إنشاء الكائن <code>[[Ruby/UnboundMethod|UnboundMethod]]</code>) ثم ربطها بآخر.
===[[Ruby/Range|Range]]===
 
===[[Ruby/RangeError|RangeError]]===
===[[Ruby/Module|<code>Module</code>]]===
===[[Ruby/Rational|Rational]]===
الصنف <code>Module</code> هو مجموعة من التوابع والثوابت. التوابع الموجودة في الوحدات <code>Module</code> قد تكون إما توابع نسخة (instance methods)، أو توابع وحدة (module methods). توابع النسخة تظهر كتوابع في صنفٍ عند تضمين الوحدة، وذلك على خلاف توابع الوحدة. وعلى النقيض، يمكن استدعاء توابع الوحدة دون إنشاء كائن يُغلفها، بينما قد لا يمكن فعل ذلك مع توابع النسخة. انظر صفحة <code>[[Ruby/Module/module function|module_function]]</code>.
===[[Ruby/Rational::compatible|Rational::compatible]]===
 
===[[Ruby/Regexp|Regexp]]===
===[[Ruby/Mutex|<code>Mutex</code>]]===
===[[Ruby/RegexpError|RegexpError]]===
يمكن استخدام الصنف <code>Mutex</code> وكائناته كواجهة لتنسيق الوصول إلى البيانات المشتركة من عدة خيوط (threads) موجودة وتعمل في نفس الوقت.
===[[Ruby/RubyVM|RubyVM]]===
 
===[[Ruby/RubyVM::InstructionSequence|RubyVM::InstructionSequence]]===
===[[Ruby/NameError|<code>NameError</code>]]===
===[[Ruby/RuntimeError|RuntimeError]]===
يُطلق الاستثناء <code>NameError</code> عندما يكون الاسم المعطى غير صالح أو غير مُعرّف.
===[[Ruby/ScriptError|ScriptError]]===
 
===[[Ruby/SecurityError|SecurityError]]===
===[[Ruby/NilClass|<code>NilClass</code>]]===
===[[Ruby/Signal|Signal]]===
الصنف <code>NilClass</code> هو صنفٌ للكائن <code>nil</code> المُفرد.
===[[Ruby/SignalException|SignalException]]===
 
===[[Ruby/SizedQueue|SizedQueue]]===
===[[Ruby/NoMemoryError|<code>NoMemoryError</code>]]===
===[[Ruby/StandardError|StandardError]]===
يُطلق الاستثناء <code>NoMemoryError</code> عند الفشل في حجز جزءٍ من الذاكرة.
===[[Ruby/StopIteration|StopIteration]]===
 
===[[Ruby/String|String]]===
===[[Ruby/NoMethodError|<code>NoMethodError</code>]]===
===[[Ruby/Struct|Struct]]===
يُطلق الاستثناء <code>NoMethodError</code> عند استدعاء تابعٍ مع مستقبِل (receiver) غير مُعرَّف فيه مع فشل الاستجابة للتابع <code>[[Ruby/BasicObject/method missing|method_missing]]</code>.
===[[Ruby/Symbol|Symbol]]===
 
===[[Ruby/SyntaxError|SyntaxError]]===
===[[Ruby/NotImplementedError|<code>NotImplementedError</code>]]===
===[[Ruby/SystemCallError|SystemCallError]]===
يُطلق الاستثناء <code>NotImplementedError</code> عند عدم توفّر ميزة (feature) على نظام التشغيل الحالي.
===[[Ruby/SystemExit|SystemExit]]===
 
===[[Ruby/SystemStackError|SystemStackError]]===
===[[Ruby/Numeric|<code>Numeric</code>]]===
===[[Ruby/Thread|Thread]]===
الصنف <code>Numeric</code> هو الصنف الذي يجب أن ترثه كل الأصناف العددية عالية المستوى.
===[[Ruby/Thread::Backtrace|Thread::Backtrace]]===
 
===[[Ruby/Thread::Backtrace::Location|Thread::Backtrace::Location]]===
===[[Ruby/Object|<code>Object</code>]]===
===[[Ruby/ThreadError|ThreadError]]===
يعدُّ الصنف <code>Object</code> الجذر الافتراضي لكل كائنات روبي. يَرِث الصنف <code>Object</code> من الصنف <code>BasicObject</code> ما يسمح بإنشاء تسلسلات هرمية بديلة للكائن. تُتاح توابع الكائن لكل الأصناف ما لم يتم تجاهلها (overridden) صراحةً.
===[[Ruby/ThreadGroup|ThreadGroup]]===
 
===[[Ruby/Time|Time]]===
===[[Ruby/ObjectSpace|<code>ObjectSpace</code>]]===
===[[Ruby/TracePoint|TracePoint]]===
===[[Ruby/ObjectSpace::WeakMap|<code>ObjectSpace::WeakMap</code>]]===
===[[Ruby/TrueClass|TrueClass]]===
===[[Ruby/Proc|<code>Proc</code>]]===
===[[Ruby/TypeError|TypeError]]===
===[[Ruby/Process|<code>Process</code>]]===
===[[Ruby/UnboundMethod|UnboundMethod]]===
===[[Ruby/Process::GID|<code>Process::GID</code>]]===
===[[Ruby/UncaughtThrowError|UncaughtThrowError]]===
===[[Ruby/Process::Status|<code>Process::Status</code>]]===
===[[Ruby/UnicodeNormalize|UnicodeNormalize]]===
===[[Ruby/Process::Sys|<code>Process::Sys</code>]]===
===[[Ruby/Warning|Warning]]===
===[[Ruby/Process::UID|<code>Process::UID</code>]]===
===[[Ruby/Warning::buffer|Warning::buffer]]===
===[[Ruby/Process::Waiter|<code>Process::Waiter</code>]]===
===[[Ruby/ZeroDivisionError|ZeroDivisionError]]===
===[[Ruby/Queue|<code>Queue</code>]]===
===[[Ruby/fatal|fatal]]===
===[[Ruby/Random|<code>Random</code>]]===
===[[Ruby/Random::Formatter|<code>Random::Formatter</code>]]===
===[[Ruby/Range|<code>Range</code>]]===
===[[Ruby/RangeError|<code>RangeError</code>]]===
===[[Ruby/Rational|<code>Rational</code>]]===
===[[Ruby/Rational::compatible|<code>Rational::compatible</code>]]===
===[[Ruby/Regexp|<code>Regexp</code>]]===
===[[Ruby/RegexpError|<code>RegexpError</code>]]===
===[[Ruby/RubyVM|<code>RubyVM</code>]]===
===[[Ruby/RubyVM::InstructionSequence|<code>RubyVM::InstructionSequence</code>]]===
===[[Ruby/RuntimeError|<code>RuntimeError</code>]]===
===[[Ruby/ScriptError|<code>ScriptError</code>]]===
===[[Ruby/SecurityError|<code>SecurityError</code>]]===
===[[Ruby/Signal|<code>Signal</code>]]===
===[[Ruby/SignalException|<code>SignalException</code>]]===
===[[Ruby/SizedQueue|<code>SizedQueue</code>]]===
===[[Ruby/StandardError|<code>StandardError</code>]]===
===[[Ruby/StopIteration|<code>StopIteration</code>]]===
===[[Ruby/String|<code>String</code>]]===
===[[Ruby/Struct|<code>Struct</code>]]===
===[[Ruby/Symbol|<code>Symbol</code>]]===
===[[Ruby/SyntaxError|<code>SyntaxError</code>]]===
===[[Ruby/SystemCallError|<code>SystemCallError</code>]]===
===[[Ruby/SystemExit|<code>SystemExit</code>]]===
===[[Ruby/SystemStackError|<code>SystemStackError</code>]]===
===[[Ruby/Thread|<code>Thread</code>]]===
===[[Ruby/Thread::Backtrace|<code>Thread::Backtrace</code>]]===
===[[Ruby/Thread::Backtrace::Location|<code>Thread::Backtrace::Location</code>]]===
===[[Ruby/ThreadError|<code>ThreadError</code>]]===
===[[Ruby/ThreadGroup|<code>ThreadGroup</code>]]===
===[[Ruby/Time|<code>Time</code>]]===
===[[Ruby/TracePoint|<code>TracePoint</code>]]===
===[[Ruby/TrueClass|<code>TrueClass</code>]]===
===[[Ruby/TypeError|<code>TypeError</code>]]===
===[[Ruby/UnboundMethod|<code>UnboundMethod</code>]]===
===[[Ruby/UncaughtThrowError|<code>UncaughtThrowError</code>]]===
===[[Ruby/UnicodeNormalize|<code>UnicodeNormalize</code>]]===
===[[Ruby/Warning|<code>Warning</code>]]===
===[[Ruby/Warning::buffer|<code>Warning::buffer</code>]]===
===[[Ruby/ZeroDivisionError|<code>ZeroDivisionError</code>]]===
===[[Ruby/fatal|<code>fatal</code>]]===

مراجعة 08:25، 22 نوفمبر 2018

البنية العامة

بنية اللغة

الإسناد

لكي نسند شيئًا في لغة روبي، نستخدم رمز المساواة =؛ ففي المثال التّالي، يُسنَد العدد 5 إلى المتغيّر v المحلّي:

v = 5

فالإسناد يُنشئ متغيّرًا محلّيًا جديدًا إذا لم يكن قد عُرِّفَ من قبل.

استدعاء التوابع

عندما تستدعي تابعًا في روبي، فإنّك تمرّر رسالة لكائن معيّن لأجل تنفيذ مهمّة معيّنة، ويتمّ ذلك في روبي كالتّالي:

my_method()

لاحظ أنّ استخدام الأقواس المنحنية هنا اختياريّ:

my_method

المعتمد في هذا التّوثيق أن تُستخدّم الأقواس عند وجود المعامِلات لإزالة الالتباس، إلا في حالة وجود فرق بين وجود الأقواس وحذفها.

هذا القسم يغطّي فقط كيفيّة استدعاء التوابع.

تعابير التحكم

لدى لغة روبي العديد من الطرق للتحكم في مسار تنفيذ البرنامج، وكل البنى المذكورة هنا تعيد قيمةً. بنى التحكم الموجودة في روبي هي:

الاستثناءات

يتمّ التعامل مع الاستثناءات بعد الكلمة rescue في الكتلة begin/end:

begin
 # الشيفرة التي قد تسبب ظهور استثناء برمجي
rescue
 # معالجة الاستثناء
end 

إذا كنت ضمن تابع، فلست بحاجة لاستخدام begin و end إلا إذا كنت ترغب بحدّ النّطاق الخاص بالاستثناء الذي ترغب بمعالجته:

def my_method
 # ...
rescue
 # ...
end

نفس الأمر يطبّق في الأصناف (classes) والوحدات (modules).

التعابير البرمجية

تنشئ التعابير البرمجية في لغة روبي كائنات يمكنك استخدامها في برنامجك؛ هذه التعابير تتضمّن:

التوابع

تتضمّن التوابع في لغة روبي الوظائف التي يقوم بها برنامجك. إليك هذا المثال لتعريف تابع بسيط:

def one_plus_one
 1 + 1
end

تعريف التابع يتكوّن من الكلمة المحجوزة def يتبعها اسم التابع، ثمّ جسم التابع، فالقيمة المعادة وفي النهاية الكلمة المحجوزة end. فعند تنفيذ التابع في المثال السابق، ستُعاد القيمة 2. هذا القسم سيغطّي تعريف التّوابع.

الوحدات والأصناف

تخدم الوحدات (Modules) غايتين اثنتين في لغة روبي وهما: ميّزة نطاقات الأسماء (namespace)، والخلط الضمني (mix-in) التي سنوضّحها لاحقًا. أما الأصناف، فهي وحدات إلا أنّها لا يمكن استخدامها للخلط الضمنيّ (mix-in) ضمن وحدات أو أصناف أخرى. ويمكن استخدام الأصناف كالوحدات في حجز نطاق الأسماء، كما يمكن للصنف أن يرث التوابع والثوابت من الأصناف الأكبر.

التحسينات

إن ميّزة الأصناف المفتوحة في لغة روبي تسمح لك بإعادة تعريف أو إضافة وظائف إلى أصناف معرّفة مسبقًا. وهذا ما يسمى بمصطلح "ترقيع القرد" (monkey patch). المشكلة هنا أنَّ تعديلات من هذا النوع تكون مرئيّة على المستوى العام (global)، وبالتالي جميع مستخدمي الصنف المرقّع قادرون على رؤية هذه التغييرات، ممّا قد يسبّب تأثيرات جانبيّة غير محسوبة أو حتى عطب في البرامج.

تأتي التحسينات هنا لتقلّل أثر ترقيع القرد على مستخدمي الصنف الآخرين، إذ تقدّم طريقة لتوسيع الصنف محليًّا.

الأولويات

يوضح هذا القسم أولوية العمليات في روبي من الأعلى إلى الأدنى، إذ تُنفَّذ العمليات ذات الأولوية العليا قبل العمليات ذات الأولوية الأقل منها عند وجودها في نفس التعبير أو السطر البرمجي في الشيفرة.

صيغ متنوعة

يتطرَّق هذا القسم إلى شرح بقية الصيغ والبنى المستعملة في روبي والتي لم تُشمَل في الأقسام السابقة. ستجد فيه شرحًا حول الصيغة المستعملة في إنهاء التعبيرات البرمجية في روبي، وكيفية استعمال المسافات البادئة بالإضافة إلى شرح الكلمات المفتاحية alias، و undef، و ?defined، و BEGIN، و END.

الأصناف والوحدات

ARGF

الصنف ARGF هو مجرى (stream) صُمِّم ليُستخدَم في الملفات البرمجية (scritps) التي تُعالج الملفات المُمرَّرة إليها على شكل وسائط في سطر الأوامر (command-line arguments)، أو المُمرَّرة عبر مجرى الدخل القياسي (STDIN).

ArgumentError

يُطلق الاستثناء ArgumentError عندما تكون الوسائط (arguments) غير صالحة، ولا يكون هناك صنف Exception أكثر تحديدًا.

Array

المصفوفات هي مجموعات مُرتَّبة ومُفهرسة بالأعداد الصحيحة (integer-indexed) ومُكونة من أي نوع من الكائنات.

BasicObject

الصنف BasicObject هو الصنف الأب لجميع الأصناف في روبي، وهو صنف فارغ.

Binding

تُغلِّف كائنات الصنف Binding سياق التنفيذ (execution context) في مكان معين في الشيفرة البرمجية، وتحتفظ بذلك السياق لاستخدامه مستقبلًا. يُحتفَظ بالمتغيرات، والتوابع، وقيمةself، وربما كتلة المكرر (iterator block) وكل ما يمكن الوصول إليه في هذا السياق. يمكن إنشاء كائنات الصنف Binding باستخدام التابع Kernel.binding، واستدعاؤها بوساطة التابع Kernel.set_trace_func.

Class

تُعدُّ الأصناف كائناتٍ من الدرجة الأولى (first-class objects) في روبي، وتعدُّ جميعها نُسخٌ من الصنف Class.

ClosedQueueError

Comparable

يُستخدم المخلوط (mixin) ‏Comparable من قبل الأصناف التي يمكن ترتيب كائناتها. يجب أن يحدِّد الصنفُ المعاملَ <=> ، الذي يوازن الكائن المستقبِل (receiver) مع كائن آخر ، ويعيد ‎-1، أو 0، أو ‎+1 إن كان المُستقبِل أصغر من الكائن الآخر، أو يساويه، أو أكبر منه على التوالي. 

Complex

يمكن تمثيل الأعداد العقدية (تُسمّى أيضًا أعدادًا مركبةً [complex number]) كزوج مكون من عدد حقيقي ووحدة تخلية (العدد i) وفق الشكل a+bi، إذ a هو الجزء الحقيقي، و b هو الجزء التخيلي و i هو الوحدة الخيالية.

Complex::compatible

ConditionVariable

توسع كائنات الصنف ConditionVariable عمل الصنف Mutex. فمن الممكن باستخدام المتغيرات الشرطية إيقاف مهمة حرجة (critical section) في أثناء تنفيذها إلى حين إتاحة مورد ما.

Continuation

تُولّد الكائنات Continuation بواسطة التابع Kernel.callcc بعد استيراد continuation عبر require. تحمل هذه الكائنات عنوان العودة (return address) وسياق التنفيذ (execution context)، مما يتيح العودة إلى نهاية الكتلة callcc من أي مكان في البرنامج.

Data

Dir

كائنات الصنف Dir هي مجاري مجلدات (directory streams) تمثِّل الجلدات في نظام الملفات الأساسي لنظام التشغيل. فهي توفر طرائق متعددة لعرض المجلدات ومحتوياتها. انظر أيضًا صفحة الصنف File لمزيد من المعلومات.

ENV

يشبه الصنف ENV الجداول Hash كثيرًا ويُستعمل للوصول إلى متغيرات البيئة.

EOFError

يٌطلَق الخطأ EOFError من طرف بعض عمليات الصنف IO عندما تصل إلى نهاية الملف.

Encoding

يمثل الصنف Encoding ترميز المحارف الذي يمكننا استخدامه في لغة روبي.

Encoding::CompatibilityError

يُرمى الاستثناء CompatibilityError من قبل توابع الصّنفين String و Encoding عندما لا يتوافق ترميز المصدر مع ترميز الهدف.

Encoding::Converter

يُستعمَل الصنف Encoding::Converter في عمليات تحويل الترميز في السلاسل النصية.

Encoding::ConverterNotFoundError

يُرمى الاستثناء ConverterNotFoundError من قبل توابع تبديل التّرميز (transcoding) عندما لا يتوافق ترميزٌ باسمٍ معيّنٍ مع محوّلٍ (converter) محدَّد.

Encoding::InvalidByteSequenceError

يُرمَى الاستنثناء InvalidByteSequenceError من قبل توابع الصّنفين String و Encoding عندما تحوي السّلسلة النّصية التي يجري تحويل ترميزها بايتًا غير صالح إما للتّرميز المصدر أو التّرميز الهدف المراد التحويل إليه.

Encoding::UndefinedConversionError

يُرمَى الاستثناء UndefinedConversionError من قبل توابع الصّنفين String و Encoding عندما تفشل عملية تبديل التّرميز (transcoding).

EncodingError

يُمثِّل الصنف EncodingError الصِّنفَ القاعديَّ (base class) لجميعِ أخطاء التّرميز (الصنف Encoding).

Enumerable

Enumerator

Enumerator::Generator

Enumerator::Lazy

Enumerator::Yielder

Errno

تُنشَأ الوحدة Errno ديناميكيًّا لتنظيم تفاصيل الأخطاء تُبلِّغ أنظمة عنها وإرسالها إلى أصناف روبي، مع توليد صنف فرعي من الصنف SystemCallError خاص بكل رقم خطأٍ.

Exception

تُستخدَم الكائنات السليلة من الصنف Exception للتواصل بين التّابع Kernel.raise وتصريحات rescue في الكتل (blocks) من الشكل begin...end. تَحمل كائنات الصنفException معلوماتٍ عن الاستثناء المَرمي مثل نوعه (اسم صنف الاستثناء)، وسلسلةً نصيّةً وصفيّةً اختياريّة، ومعلوماتِ تتبّعٍ اختيارية.

FalseClass

القيمة false العامة (global) هي النسخة الوحيدة من الصنف FalseClass وتمثِّل قيمة الخطأ (false) في التعابير المنطقية (boolean expressions). يوفر هذا الصنف معاملات تسمح للقيمة false بالمساهمة بشكل صحيح في التعابير المنطقية.

Fiber

الألياف (Fibers) هي حقولٌ أساسيّةٌ (primitives) تُستخدم في تنفيذ تعدّد المهام التشاركي (cooperative concurrency) للمهام الخفيفة (light weight) أي التي تستهلك جزءًا صغيرًا من الذاكرة.

FiberError

يُرمى الاستثناء FiberError عند محاولة إجراء عمليّةٌ غير صحيحةٍ في الصنف Fiber، تحديدًا عند محاولة استدعاء/استئناف ليف ميِّت، أو محاولة التّوليد من الليف الجذر (root fiber)، أو استدعاء ليفٍ عبر خيوطٍ (threads).

File

File::Constants

File::Stat

FileTest

Float

FloatDomainError

FrozenError

GC

GC::Profiler

Hash

IO

IO::EAGAINWaitReadable

IO::EAGAINWaitWritable

IO::EINPROGRESSWaitReadable

IO::EINPROGRESSWaitWritable

IO::EWOULDBLOCKWaitReadable

IO::EWOULDBLOCKWaitWritable

IO::WaitReadable

IO::WaitWritable

IOError

IndexError

Integer

يمثل الصنف Integer الأعداد الصحيحة. 

Interrupt

يُطلق الاستثناء Interrupt عند استقبال إشارة المقاطعة (interrupt signal)، عادةً لأن المستخدم ضغط على Ctrl-C (على معظم منصات POSIX). وعلى هذا النحو، فهو صنف فرعي منSignalException.

Kernel

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

KeyError

يُطلق الاستثناء KeyError عندما لا يكون المفتاح (key) المُحدد موجودًا، وهو صنف فرعي من IndexError.

LoadError

يُطلق الاستثناء LoadError عند فشل تحميل الملف المطلوب (شيفرة روبي، مكتبة ملحقة، ...إلخ.).

LocalJumpError

يُطلق الاستثناء LocalJumpError عندما لا تتمكن روبي من الإعادة (yield) كما هو مطلوب.

Marshal

تحوّل المكتبة Marshal مجموعات من كائنات روبي إلى مجرى من البايتات (byte stream)، مما يسمح بتخزينها خارج البرنامج النصي النشط حاليًا. يمكن بعد ذلك قراءة تلك البيانات وإعادة إنشاء الكائنات الأصلية أنشئت منها.

MatchData

الصنف MatchData هو نوع المتغير الخاص ‎$~‎ ، كما أنه نوع الكائنات المُعادة من Regexp.match و Regexp.last_match. فهو يغلف ويستوعب جميع نتائج التطابق مع تعبير نمطي. يمكن الوصول إلى النتائج من خلال المتغيرات الخاصة ‎$&‎ و ‎$'‎ و $ و ‎$`‎ و ‎$1 و ‎$2 وهكذا دواليك.

Math

تحوي الوحدة Math الدوال المثلثية والمتسامية (transcendental functions، وتدعى أيضًا الدوال اللاجبرية) الأساسية. راجع صفحة الصنف Float للحصول على قائمة الثوابت التي تحدد دقة الأعداد العشرية (floating point) في روبي.

Math::DomainError

يُطلَق الخطأ DomainError عند محاولة تقييم دالة رياضية خارج مجال تعريفها.

Method

يتم إنشاء كائنات الصنف Method بواسطة التابع Object.method، وترتبط بكائن معين (وليس بالصنف وحسب). ويمكن استخدامها لاستدعاء التابع داخل الكائن، أو ككتلة (block) مرتبطة بمكرر (iterator). كما يمكن فك ارتباطها (unbound) من كائن محدد (سيؤدي ذلك إلى إنشاء الكائن UnboundMethod) ثم ربطها بآخر.

Module

الصنف Module هو مجموعة من التوابع والثوابت. التوابع الموجودة في الوحدات Module قد تكون إما توابع نسخة (instance methods)، أو توابع وحدة (module methods). توابع النسخة تظهر كتوابع في صنفٍ عند تضمين الوحدة، وذلك على خلاف توابع الوحدة. وعلى النقيض، يمكن استدعاء توابع الوحدة دون إنشاء كائن يُغلفها، بينما قد لا يمكن فعل ذلك مع توابع النسخة. انظر صفحة module_function.

Mutex

يمكن استخدام الصنف Mutex وكائناته كواجهة لتنسيق الوصول إلى البيانات المشتركة من عدة خيوط (threads) موجودة وتعمل في نفس الوقت.

NameError

يُطلق الاستثناء NameError عندما يكون الاسم المعطى غير صالح أو غير مُعرّف.

NilClass

الصنف NilClass هو صنفٌ للكائن nil المُفرد.

NoMemoryError

يُطلق الاستثناء NoMemoryError عند الفشل في حجز جزءٍ من الذاكرة.

NoMethodError

يُطلق الاستثناء NoMethodError عند استدعاء تابعٍ مع مستقبِل (receiver) غير مُعرَّف فيه مع فشل الاستجابة للتابع method_missing.

NotImplementedError

يُطلق الاستثناء NotImplementedError عند عدم توفّر ميزة (feature) على نظام التشغيل الحالي.

Numeric

الصنف Numeric هو الصنف الذي يجب أن ترثه كل الأصناف العددية عالية المستوى.

Object

يعدُّ الصنف Object الجذر الافتراضي لكل كائنات روبي. يَرِث الصنف Object من الصنف BasicObject ما يسمح بإنشاء تسلسلات هرمية بديلة للكائن. تُتاح توابع الكائن لكل الأصناف ما لم يتم تجاهلها (overridden) صراحةً.

ObjectSpace

ObjectSpace::WeakMap

Proc

Process

Process::GID

Process::Status

Process::Sys

Process::UID

Process::Waiter

Queue

Random

Random::Formatter

Range

RangeError

Rational

Rational::compatible

Regexp

RegexpError

RubyVM

RubyVM::InstructionSequence

RuntimeError

ScriptError

SecurityError

Signal

SignalException

SizedQueue

StandardError

StopIteration

String

Struct

Symbol

SyntaxError

SystemCallError

SystemExit

SystemStackError

Thread

Thread::Backtrace

Thread::Backtrace::Location

ThreadError

ThreadGroup

Time

TracePoint

TrueClass

TypeError

UnboundMethod

UncaughtThrowError

UnicodeNormalize

Warning

Warning::buffer

ZeroDivisionError

fatal