From: Josselin Date: 2007-06-29T06:20:01+09:00 Subject: Re: Dynamic sort_by criteria, making it DRY... On 2007-06-28 13:58:47 +0200, Robert Klemme said: > On 28.06.2007 13:41, Josselin wrote: >> I am presently using a sort_by on my array >> >> => buddies = user_buddies.sort_by {|item| item.last_seen_at} >> >> I would like to be able to do the same , based on a variable >> @criteria set to the item key to be used >> >> @criteria = 'last_seen_at' @criteria = 'display_name' ...... >> >> => buddies = user_buddies.sort_by {|item| item.<@criteria> } >> >> what could be the best way to do it ? >> >> Depending upon another variable @reverse_order = true or false, I would >> like to perform or not teh reverse! action >> >> => buddies = user_buddies.sort_by {|item| item.last_seen_at}.reverse! >> >> I believe it should be >> >> => buddies = @reverse_order ? user_buddies.sort_by {|item| >> item.<@criteria> } : user_buddies.sort_by {|item| item.<@criteria> >> }.reverse! >> >> thanks for your enlightment ! > > buddies = user_buddies.sort_by {|it| it.send @criteria} > buddies.reverse! if @reverse_order > > Kind regards > > robert Thanks Robert cannot be dryest.... I am so ashame of my solution that I don't want to publish my code...