U:RDoc::NormalModule[iI"Comparable:ET@0o:RDoc::Markup::Document: @parts[o;;[o:RDoc::Markup::Paragraph;[I"HThe Comparable mixin is used by classes whose objects ;TI"Jmay be ordered. The class must define the <=> operator, ;TI"Jwhich compares the receiver against another object, returning -1, 0, ;TI"Hor +1 depending on whether the receiver is less than, equal to, or ;TI"Jgreater than the other object. If the other object is not comparable ;TI";then the <=> operator should return nil. ;TI""Comparable uses ;TI"I<=> to implement the conventional comparison operators ;TI"I(<, <=, ==, >=, ;TI">and >) and the method between?.;To:RDoc::Markup::BlankLineo:RDoc::Markup::Verbatim;[I"class SizeMatters ;TI" include Comparable ;TI" attr :str ;TI" def <=>(other) ;TI"% str.size <=> other.str.size ;TI" end ;TI" def initialize(str) ;TI" @str = str ;TI" end ;TI" def inspect ;TI" @str ;TI" end ;TI" end ;TI" ;TI"s1 = SizeMatters.new("Z") ;TI" s2 = SizeMatters.new("YY") ;TI"!s3 = SizeMatters.new("XXX") ;TI""s4 = SizeMatters.new("WWWW") ;TI"#s5 = SizeMatters.new("VVVVV") ;TI" ;TI",s1 < s2 #=> true ;TI"-s4.between?(s1, s3) #=> false ;TI",s4.between?(s3, s5) #=> true ;TI"@[ s3, s2, s5, s4, s1 ].sort #=> [Z, YY, XXX, WWWW, VVVVV];T: @format0: @fileI" compar.c;T:0@omit_headings_from_table_of_contents_below0; 0;0[[[[[I" class;T[[: public[[:protected[[: private[[I" instance;T[[;[ [I"<;TI" compar.c;T[I"<=;T@H[I"==;T@H[I">;T@H[I">=;T@H[I" between?;T@H[I" clamp;T@H[;[[;[[[U:RDoc::Context::Section[i0o;;[; 0;0[@3@3cRDoc::TopLevel