Collections Ruby

module Enumerable
  def sort_by_frequency
    histogram = inject(Hash.new(0)) { |hash, x| hash[x] += 1; hash}
    sort_by { |x| [histogram[x], x] }
  end
end
p [1,2,3,4,1,2,4,8,1,4,9,16].sort_by_frequency