Ruby Language Rectangle comparable par zone


Exemple

Comparable est l'un des modules les plus populaires de Ruby. Son but est de fournir des méthodes de comparaison de commodité.

Pour l'utiliser, vous devez include Comparable et définir l'opérateur spatial ( <=> ):

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