From: James Edward Gray II Date: 2006-03-02T05:54:04+09:00 Subject: Re: Hash.from_zipped_array On Mar 1, 2006, at 2:31 PM, dblack@wobblini.net wrote: > Hi -- > > On Wed, 1 Mar 2006, ara.t.howard@noaa.gov wrote: > >> it's pretty dang easy to do already: >> >> harp:~ > cat a.rb >> animal, sound = %w[dog cat bird], %w[woof meow cheep] >> require 'yaml' and y Hash[*animal.zip(sound).flatten] >> >> >> harp:~ > ruby a.rb >> --- >> cat: meow >> bird: cheep >> dog: woof > > A good opportunity for my annual plug for the flattenx extension :-) > (On RAA, still, I think.) It lets you flatten by any number of > levels, so that you can use that technique even with nested arrays. It's not too hard to allow nested Arrays in Hash construction even without the library: >> arr = [[:one, 1], [:two, %w{an Array}], [:three, 2]] => [[:one, 1], [:two, ["an", "Array"]], [:three, 2]] >> Hash[*arr.inject(Array.new) { |args, a| args.push(*a) }] => {:two=>["an", "Array"], :three=>2, :one=>1} James Edward Gray II