oop/operator_methods/operator_methods.rb

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

class Vector
  def initialize(x, y)
    @x = x
    @y = y
  end

  def +(other)
    Vector.new(@x + other.x, @y + other.y)
  end

  def ==(other)
    @x == other.x && @y == other.y
  end

  def x
    @x
  end

  def y
    @y
  end

  def to_s
    "(#{@x}, #{@y})"
  end
end

v1 = Vector.new(1, 2)
v2 = Vector.new(3, 4)
v3 = v1 + v2

puts v3.to_s
puts v1 == Vector.new(1, 2)
puts v1 == v2

Output:

(4, 6)
true
false