Wow. Sooo good. Sooo good. Makes implementing lexicographic sorting soo much easier. :o) -Kurt On Wed, Aug 06, 2003 at 10:17:44AM +0900, Harry Ohlsen wrote: > why the lucky stiff wrote: > > >My 1.8.0 summary is up at: > > > > http://whytheluckystiff.net/articles/2003/08/04/rubyOneEightOh > > > >I'm about halfway done. I'll post a link again when I feel like I'm > >finished. > > One thing mentioned there is the new sort_by in Enumerable. A simple > example I tried is: > > text = ["the", "quick", "brown", "fox", "jumps", "over", "the", "lazy", > "dog"] > > puts text.sort_by { |x| x.length }.inspect > > #=> ["the", "the", "fox", "dog", "over", "lazy", "quick", "brown", "jumps"] > > Something that's not mentioned, but I figured I'd try it, because I thought > it would be nifty, is sorting by multiple values ... > > text = ["the", "quick", "brown", "fox", "jumps", "over", "the", "lazy", > "dog"] > > puts text.sort_by { |x| [x.length, x] }.inspect > > #=> ["dog", "fox", "the", "the", "lazy", "over", "brown", "jumps", "quick"] > > Ie, we now have the values sorted first by their length, and when the > length is the same, they're sub-sorted by the text itself. I think that's > great! > > This would be particularly useful if the data items in the enumeration were > instances of more complex objects. Then, you could do things like: > > sorted = people.sort_by { |p| [p.last_name, p.first_name, p.salary] } > > I just love Ruby! > > > >======= End of Original Message =======<