Overriding the == operator in Ruby Overriding the == operator in Ruby ruby ruby

Overriding the == operator in Ruby


In Ruby == is just a method (with some syntax sugar on top allowing you to write foo == bar instead of foo.==(bar)) and you override == just like you would any other method:

class MyClass  def ==(other_object)    # return true if self is equal to other_object, false otherwise  endend


As described above, == is a method in Ruby and can be overridden. You code a custom equality condition in the method. For example:

class Person  attr_reader :name, :gender, :social_id  attr_accessor :age  def initialize(name, age, gender, social_id)    self.name = name    self.age = age.to_i    self.gender = gender    self.social_id = social_id  end  def ==(other)    social_id == other.social_id  endend

You don't need to override other methods any more.