This page contains automated test results for code from O'Reilly's Ruby Cookbook. If this code looks interesting or useful, you might want to buy the whole book.
| Remapping the Keys and Values of A Hash | ||
|---|---|---|
| Code | Expected | Actual |
class Hash
def tied_with(hash)
remap do |h,key,value|
h[hash[key]] = value
end.delete_if { |key,value| key.nil? || value.nil? }
end
def remap(hash={})
each { |k,v| yield hash, k, v }
hash
end
end
a = {1 => 2, 3 => 4}
b = {1 => 'foo', 3 => 'bar'}
a.tied_with(b) |
{"foo"=>2, "bar" =>4} | {"foo"=>2, "bar"=>4} |
b.tied_with(a) |
{2=>"foo", 4=>"bar"} | {2=>"foo", 4=>"bar"} |