I have an array of hashes, something like
[ {:type=>\"Meat\", :name=>\"one\"}, {:type=>\"Meat\", :name=>\"two\"}, {:type=>\"Fruit\", :n
array.group_by{|h| h[:type]}.each{|_, v| v.replace(v.map{|h| h[:name]})} # => {"Meat"=>["one", "two"], "Fruit"=>["four"]}
Following steenslag's suggestion:
array.group_by{|h| h[:type]}.each{|_, v| v.map!{|h| h[:name]}} # => {"Meat"=>["one", "two"], "Fruit"=>["four"]}