From: "Wolfgang Nádasi-Donner" Date: 2007-02-20T16:25:06+09:00 Subject: Array#uniq - Comparison doesn't use 'eql?' and 'hash' I am confused about "Array#uniq". In http://groups.google.com/group/comp.lang.ruby/msg/e57b80fbcd61aaab it is described, that one has to redefine "eql?" and "hash", if one needs an own "Array#uniq" interpretation. I made tests with the result, that neither "eql?" nor "hash" is called. What went wrong here? >>>>> code >>>>> class String alias :org_hash :hash alias :org_eql? :eql? def hash puts 'String#hash called' self.org_hash end def eql?(other) puts 'String#eql? called' self.org_eql?(other) end end puts 'Start of test' a = ['a', 'b', 'a', 'c', 'b'] b = a.uniq p b puts 'End of test' >>>>> Output >>>>> Start of test ["a", "b", "c"] End of test >>>>> EoE >>>>> Wolfgang N�dasi-Donner