self == other -> bool[permalink][rdoc]オブジェクトが other と等しければ真を、さもなくば偽を返します。
このメソッドは各クラスの性質に合わせて、サブクラスで再定義するべきです。多くの場合、オブジェクトの内容が等しければ真を返すように (同値性を判定するように) 再定義することが期待されています。
デフォルトでは Object#equal? と同じオブジェクトの同一性になっています。
例:
class Person < BasicObject
  def initialize(name, age)
    @name = name
    @age = age
  end
end
tanaka1 = Person.new("tanaka", 24)
tanaka2 = Person.new("tanaka", 24)
tanaka1 == tanaka1    #=> true
tanaka1 == tanaka2    #=> false
[SEE_ALSO] BasicObject#equal?, Object#==, Object#equal?, Object#eql?