またしても魔界記法の記事です。すみません
each_with_objectはブロックに値を渡して回すメソッドです。
普通はこんな感じで使います
%w(as you like).each_with_object("hoge").map(&:+) => ["ashoge", "youhoge", "likehoge"]
ここで、objectとしてHashをもたせてあげると・・・
%w(as you like).each_with_object({}) {|item, result| result[item] = item.length} => {"as"=>2, "you"=>3, "like"=>4}
となります。
配列でもいけますね。