Ruby LanguageComparable

Syntax

  • include Comparable
  • implement the space-ship operator (<=>)

Parameters

ParameterDetails
otherThe instance to be compared to self

Remarks

x <=> y should return a negative number if x < y, zero if x == y and a positive number if x > y.

Rectangle comparable by area

Comparable is one of the most popular modules in Ruby. Its purpose is to provide with convenience comparison methods.

To use it, you have to include Comparable and define the space-ship operator (<=>):

class Rectangle
  include Comparable

  def initialize(a, b)
    @a = a
    @b = b
  end

  def area
    @a * @b
  end

  def <=>(other)
    area <=> other.area
  end
end

r1 = Rectangle.new(1, 1)
r2 = Rectangle.new(2, 2)
r3 = Rectangle.new(3, 3)

r2 >= r1 # => true
r2.between? r1, r3 # => true
r3.between? r1, r2 # => false