How do I add a prefix to each key in a hash?

ruby

Solution

hsh1 = {'address' => "foo", 'postcode' => "bar"}
hsh2 = Hash[hsh1.map{|k,v| [k.dup.prepend("shipping_"),v]}]
p hsh2
# >> {"shipping_address"=>"foo", "shipping_postcode"=>"bar"}

update

hsh1 = {'address' => "foo", 'postcode' => "bar"}
hsh2 = Hash[hsh1.map{|k,v| ["shipping_#{k}",v]}]
p hsh2
# >> {"shipping_address"=>"foo", "shipping_postcode"=>"bar"}

Problem

I have the following keys in my hash: ``` address, postcode ``` I want to add the "shipping_" prefix to each of them so they would become: ``` shipping_address, shipping_postcode ``` instead. How can I do this?

Original source

Related problems