特定のクラスのインスタンスのインスタンス変数が全て等しいなら uniqでまとめてしまいたく調べていたのですがバージョンによって動作が違うのか何が正しいのかわかりませんでした。

こちらの回答によると
https://stackoverflow.com/questions/1650475/removing-identical-objects-in-ruby

class Result

  attr_accessor :text, :notes

  def initialize(text = nil, notes = nil)
    self.text = text
    self.notes = notes
  end

  def ==(other)
    other.class == self.class &&
    other.text  == self.text
  end
  alias :eql? :==

end

a = Result.new("first")
b = Result.new("first")
c = Result.new("third")

[a, b, c].uniq
# => [a, c]

にて重複分の削除を行えると解説されてるんですが、ruby 2.2.2を使っている私の環境では3つとも返ってきてしまいます。

a.eql?(b) #=> true

になることは確認できています。

どのようにすればオブジェクトが持つ外部からアクセス可能なインスタンス変数が全て等しい時にuniqでまとめることができるでしょうか?