Előzmény itt. Lényeg:
toMpEr ötletét felhasználva összeraktunk egy algo-t arra az igényemre, hogy úgy tudjak rendezni tömbben lévő szöveget, hogy a számot numerikusan vegye figyelembe.
Ezt most tovább fejlesztettem azzal, hogy betettem egy ".strip"-et azért, hogy figyelmen kívül tudjam hagyni a szóközök és tabok helyét és mennyiségét. Szerintem elég trükkös és remek algo hogy még egy blog bejegyzést megérjen:
http://paste.ubuntu.com/25542772/
class Array
  def sortnat
    self.sort_by!{|x| x.split(/(\d+)/).map{|x| x[/\d/] ? x.to_i : x.strip} }
  end
end
["  hello 11", "hello    3", "   world"].sortnat
=> ["hello    3", "  hello 11", "   world"]