2008/3/12, Rodrigo Bermejo <rodrigo.bermejo / ps.ge.com>: > > a = ['one.jpg', 'two.txt', 'three.pdf','a.txt', 'a.az' , 'a.z'] > a_new=a.sort_by do |x| > if x =~ /\.txt$/ > 0 > else > 1 > end > end > p a_new > --> ["a.txt", "two.txt", "one.jpg", "three.pdf", "a.az", "a.z"] > > the sort_by block can be improved surely. Here's one way: sorting with priorities: irb(main):006:0> a = ['one.jpg', 'two.txt', 'three.pdf','a.txt', 'a.az' , 'a.z'] => ["one.jpg", "two.txt", "three.pdf", "a.txt", "a.az", "a.z"] irb(main):007:0> a.sort_by {|s| [/\.txt$/=~s ? 0 : 1, s]} => ["a.txt", "two.txt", "a.az", "a.z", "one.jpg", "three.pdf"] ;-) Kind regards robert -- use.inject do |as, often| as.you_can - without end