المخلوط Comparable في روبي
يُستخدم المخلوط (mixin) Comparable من قبل الأصناف التي يمكن ترتيب كائناتها. يجب أن يحدد الصنفُ المعاملَ <=> ، الذي يقارن الكائن المستقبِل (receiver ) مع كائن آخر ، ويعيد -1، أو 0 ، أو +1 إن كان المُستقبِل أصغر من الكائن الآخر، أو يساويه: أو أكبر منه على التوالي. إذا كان الكائن الآخر غير قابل للمقارنة ، فعندئذ سيعيد المعامل <=> القيمة المعدومة nil.
يستخدم Comparable المعامل <=> لإجراء عمليات المقارنة التقليدية (<، <= ، == ،>= و>) والتابع between?.
توابع الكائن العامة (Public Instance Methods)
المعامل =>
يقارن المعامل <= بين كائنين بناءً على النتيجة التي يعيدها المعامل <=> الخاص بالمُستقبِل (receiver). إذ يعيد القيمة true إن أعاد المعامل <=> القيمة -1 أو 0، وإلا فسيعيد false.
المعامل ==
يعيد المعامل القيمة true إن أعاد المعامل <=> القيمة 0أو كان الكائنان obj و other متساويين، خلا ذلك سيعيد false.
المعامل >
يقارن المعامل > بين كائنين بناءً على النتيجة التي يعيدها المعامل <=> الخاص بالمُستقبِل (receiver). إذ يعيد القيمة true إن أعاد المعامل <=> القيمة -1 ، وإلا فسيعيد false.
المعامل >=
يقارن المعامل < بين كائنين بناءً على النتيجة التي يعيدها المعامل <=> الخاص بالمُستقبِل (receiver). إذ يعيد القيمة true إن أعاد المعامل <=> القيمة 1 أو 0، وإلا فسيعيد false.
المعامل <
يقارن المعامل < بين كائنين بناءً على النتيجة التي يعيدها المعامل <=> الخاص بالمُستقبِل (receiver). إذ يعيد القيمة true إن أعاد المعامل <=> القيمة 1 ، وإلا فسيعيد false.
التابع clamp
يعيد التابع clampالوسيط المُعطى min (أنظر فقرة البنية العامة) إن كان عائد obj <=> min أقل من 0، أو يعيد max (أنظر فقرة البنية العامة) إن كان عائد obj <=> max أكبر من 0، خلا ذلك سيعيد الكائنَ obj الذي استدعي معه.
التابعbetween?
يتحقق التابع between?مما إذا كان الكائن الذي استُدعي معه محصورا بين الكائنين المٌمرّرين إليه.