小西です。いつもお世話になります。

単一のオブジェクトの配列で、オブジェクトの同一性をObject#__id__ではなく、
オブジェクトに格納された@nameの比較で重複の除去をしようとして、下記のよ
うなコードを組んだわけですが...
どうもうまくいきません。
eql?の再定義がうまくいっていないのでしょうか?
それともこの作戦ではできないのでしょうか。教えてください。

class Hoge
	def initialize( n )
		@name = n
	end
	def eql?( otr )
		@name.eql?( otr.name )
	end
  attr_accessor :name
end

dat = [ Hoge.new( "hoge" ),
	 			Hoge.new( "hage" ),
				Hoge.new( "boke" ),
				Hoge.new( "hage" ),
				Hoge.new( "boke" ) ]
dat.uniq!

dat.each do |d| 
	print d.name,"\n" 
end
# I want...
#hoge
#hage
#boke

# but...
#hoge
#hage
#boke
#hage
#boke