Module Comparable
In: compar.c

The Comparable mixin is used by classes whose objects may be ordered. The class must define the <=> operator, which compares the receiver against another object, returning -1, 0, or +1 depending on whether the receiver is less than, equal to, or greater than the other object. Comparable uses <=> to implement the conventional comparison operators (<, <=, ==, >=, and >) and the method between?.

   class SizeMatters
     include Comparable
     attr :str
     def <=>(anOther)
       str.size <=> anOther.str.size
     end
     def initialize(str)
       @str = str
     end
     def inspect
       @str
     end
   end

   s1 = SizeMatters.new("Z")
   s2 = SizeMatters.new("YY")
   s3 = SizeMatters.new("XXX")
   s4 = SizeMatters.new("WWWW")
   s5 = SizeMatters.new("VVVVV")

   s1 < s2                       #=> true
   s4.between?(s1, s3)           #=> false
   s4.between?(s3, s5)           #=> true
   [ s3, s2, s5, s4, s1 ].sort   #=> [Z, YY, XXX, WWWW, VVVVV]

Methods

<   <=   ==   >   >=   between?  

Public Instance methods

Compares two objects based on the receiver‘s <=> method, returning true if it returns -1.

Compares two objects based on the receiver‘s <=> method, returning true if it returns -1 or 0.

Compares two objects based on the receiver‘s <=> method, returning true if it returns 0. Also returns true if obj and other are the same object.

Compares two objects based on the receiver‘s <=> method, returning true if it returns 1.

Compares two objects based on the receiver‘s <=> method, returning true if it returns 0 or 1.

Returns false if obj <=> min is less than zero or if anObject <=> max is greater than zero, true otherwise.

   3.between?(1, 5)               #=> true
   6.between?(1, 5)               #=> false
   'cat'.between?('ant', 'dog')   #=> true
   'gnu'.between?('ant', 'dog')   #=> false

[Validate]

ruby-doc.org is hosted and maintained by James Britt and Rising Tide Software, a Ruby application development company in Phoenix, Arizona. The site was created in 2002 as part of the Ruby Documentation Project to promote the Ruby language and to help other Ruby hackers.

Documentation content on ruby-doc.org is provided by remarkable members of the Ruby community.

For more information on the Ruby programming language, visit ruby-lang.org.

Want to help improve Ruby's API docs? See Ruby Documentation Guidelines.