Eu tenho um contador de hash que estou tentando classificar por contagem. O problema que eu estou enfrentando é que a função Hash.sort padrão classifica números como seqüências de caracteres e não por tamanho de número.
ie Hash dado:
metrics = {"sitea.com" => 745, "siteb.com" => 9, "sitec.com" => 10 }
Executando este código:
metrics.sort {|a1,a2| a2[1]<=>a1[1]}
retornará uma matriz classificada:
[ 'siteb.com', 9, 'sitea.com', 745, 'sitec.com', 10]
Embora 745 seja um número maior que 9, 9 será exibido primeiro na lista. Ao tentar mostrar quem tem a maior contagem, isso está dificultando minha vida. :)
Alguma idéia de como classificar um hash (ou mesmo um array) pelo tamanho do valor numérico?
Agradeço qualquer ajuda.