Ruby Language

Comparable

Syntax#

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

Parameters#

Parameter Details
other The 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

This modified text is an extract of the original Stack Overflow Documentation created by the contributors and released under CC BY-SA 3.0 This website is not affiliated with Stack Overflow