alist to hash
何かそれっぽいことはHash.[]で出来るらしいっす。
h = Hash[*alist.flatten]
ちゃんとしたalistならこれで十分。
引数の数が合わないと例外になってくれるからいいのかね。
いちおう、[...[key, value]...]でないalistでも変換できるようにするには、
h = Hash[*alist.map{|e| k, v, = e ; [k, v] }.flatten]
でいいかな。Ruby1.8系までだとStringがEnumerableだからちょっとアレか。
こんな変換を許さないで、きちんとしたalistを用意した上でなら前者のほうがいいなあ。