para qualquer array determinado, onde você deseja contar as ocorrências de cada objeto único no array,
arr.inject(Hash.new(0)) {|h,x| h[x]+=1;h}
então, se você tiver
arr = [a, b, b, c, c, a, a, d]
isso retornará
=> [a => 3, b => 2, c => 2, d => 1]