From: James Edward Gray II Date: 2005-08-18T12:33:42+09:00 Subject: Re: is there a shorter way to compare these 2 objects? On Aug 17, 2005, at 10:16 PM, Lowell Kirsh wrote: > I have a class called foo and I want to make it comparable so that > I can sort arrays of Foo. Here is the class: > > class Foo > attr_accessor :a, :b, :c, :d > def <=>(rhs); (see below); end > end > > I'm assuming that the a,b,c, and d field are each Comparable. To > compare 2 Foos, we first look at the a's and if they're not the > same, we return the result of their comparison. If they are the > same, we continue to compare the b's, and if they're the same we > compare the c's, and so on until we compare the last field. So for > my definition of <=> I have the following, which works, but I'd > like something better/shorter: def <=>( other ) [@a, @b, @c, @d] <=> [other.a, other.b, other.c, other.d] end Arrays are Comparable and they compare each of their contents in order. Hope that helps. James Edward Gray II