From: Phrogz Date: 2007-03-09T09:45:09+09:00 Subject: Re: Array#sort -block with conditions for <=>'ing On Mar 8, 5:52 am, "Farrel Lifson" wrote: > Define <=> on your class: > > class MyClass > def <=>(other) > if @some_attribute.nil? > return -1 > elsif @other.some_attribute.nil? > return 1 > else > @some_attribute <=> other.some_attribute > end > end > end I find your style of mixing imperative and functional return parameters odd. I would have expected either: if foo -1 elsif bar 1 else x <=> y end OR if foo return -1 elsif bar return 1 else return x <=> y end but not the combination you have above. FWIW, I favor the former style, as it's just a hair faster.