From: Gunther Diemant Date: 2011-07-01T20:14:16+09:00 Subject: Re: How to order Structs based on two fields --20cf3005ded419612f04a7001e2b Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Try this: array.sort { |x,y| x.a =3D=3D y.a ? x.b <=3D> y.b : x.a <=3D> y.a= } Or overide the <=3D> method in your struct. 2011/7/1 I=F1aki Baz Castillo > 2011/7/1 I=F1aki Baz Castillo : > > I expected that the following could work: > > > > array.sort_by{|entry| entry.a or entry.b} > > > > 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 <=3D> method for KK class (and include Enumerable module)? > > -- > I=F1aki Baz Castillo > > > --20cf3005ded419612f04a7001e2b--