According to the docs, Array.include? uses the == comparison on objects. I come from Java where such things are (usually) done with
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
end
end
As described above, == is a method is Ruby and can be overrided. You will just write down the equality condition.
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
def ==(other)
social_id == other.social_id
You don't need to override other methods any more