On Fri, Jul 1, 2011 at 12:55 PM, Iñáki Baz Castillo <ibc / aliax.net> wrote: > 2011/7/1 Iñáki Baz Castillo <ibc / aliax.net>: >> I expected that the following could work: >> >> ¨Âòòáù®óïòôßâùûüåîôòùü åîôòù®ïò åîôòù®âý >> >> but it generates: >> >> [kk1, kk2, kk3, kk4] >> >> so obviously it does not work. I'm not very used to Enumerable.sort_by >> method, any tip please? > > Maybe it would be better to use "class KK" rather than an struct, and > then define <=> method for KK class (and include Enumerable module)? You can do array.sort_by {|e| [e.a, e.b]} But you can of course define <=> for a Struct class as well KK = Struct.new :a,:b do include Comparable def <=>(o) cmp = a <=> o.a cmp == 0 ? b <=> o.b : cmp end end Kind regards robert -- remember.guy do |as, often| as.you_can - without end http://blog.rubybestpractices.com/