Very cute.  I hopped onto irb to check out what each step of
Hash[*keys.zip(vals).flatten] does (I'd not used zip nor flatten in
some time) and I can't quite figure out what  function asterisk, ie,
*keys performs (leaving it out or executing *keys.zip(vals).flatten
results in a ruby error and I don't see an explanation of this use of *
in the nutshell book.)  Can one of you enlighten me?

Thx!

Ken