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