oop/comparable/comparable.rb

tests/_examples/oop/comparable/comparable.rb in the metorex repository.

# Comparable module with spaceship operator
class Weight
  include Comparable

  attr_accessor :value

  def initialize(v)
    @value = v
  end

  def <=>(other)
    @value <=> other.value
  end
end

a = Weight.new 10
b = Weight.new 20

puts a < b
puts a > b
puts a <= b
puts a >= b
puts b > a
puts b >= a
puts a < a
puts a <= a

Output:

true
false
true
false
true
true
false
true