Hash[]
не работает так, как вы предполагаете. Вместо этого попробуйте это:
>> Hash[*foo0, *foo1, *foo2]
=> {"a"=>"b", "c"=>"d", "e"=>"f"}
или мой предпочтительный подход:
>> Hash[*[foo0, foo1, foo2].flatten]
=> {"a"=>"b", "c"=>"d", "e"=>"f"}
По сути, Hash[]
ожидает четное число аргументов, как в Hash[key1, val1, ...]
. Оператор splat *
применяет массивы в качестве аргументов.