Martin DeMello wrote: > Shouldn't that be > > def <=>(other) > a = (self.freq <=> other.freq) > a.nonzero? ? a : (other.time <=> self.time) > end > > since calling nonzero? collapses [-1,1] to 'true'. That was my gut reaction at first but: $ ruby1.8 -v -e "p( -5.nonzero?, 5.nonzero?, 0.nonzero? )" ruby 1.8.0 (2003-08-04) [i686-linux] -5 5 nil That is the beauty of only nil and false being false... -- (\[ Kent Dahl ]/)_ _~_ _____[ http://www.pvv.org/~kentda/ ]_____/~ ))\_student_/(( \__d L b__/ (pre-) Master of Science in Technology ) ( \__\_õüõß/__/ ) _)Industrial economics and technological management( \____/_öß\____/ (____engineering.discipline_=_Computer::Technology___)