#!/usr/bin/ruby # Sort a hash by its values (highest to lowest) var frequencies = Hash.new( "simple" => 2, "keep" => 4, "it" => 3, "stupid" => 1, ); # Traditional way var sorted_1 = frequencies.keys.sort({|a,b| frequencies{b} <=> frequencies{a}}).map({|key| [key, frequencies{key}]}); sorted_1.dump.say; # Built-in way var sorted_2 = frequencies.sort_by({|_,value| value}).reverse; sorted_2.dump.say; # The results should be identical sorted_2 == sorted_1 || "Error!\n".die;