Ruby / sorbarendezés #2

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"]