From: Jan Svitok Date: 2006-09-27T20:35:35+09:00 Subject: Re: [newbie] Hash to String ? On 9/27/06, Josselin wrote: > I need to produce this kind of result > > l = { "January" => "1"}, {"February => "2"}, { "March" => "3"}, .... } > > so I wrote > > h = (Array.new(13) {|i| Hash[Date::MONTHNAMES[i], i.to_s]}).slice(1,12) > which results in : > [{"January"=>"1"}, {"February"=>"2"}, {"March"=>"3"}, {"April"=>"4"}, > {"May"=>"5"}, {"June"=>"6"}, {"July"=>"7"}, {"August"=>"8"}, > {"September"=>"9"}, {"October"=>"10"}, {"November"=>"11"}, > {"December"=>"12"}] > > but I cannot write : l = { h } it's wrong... Hash cannot be > converted like that.. > what should I write instead ? What do you want to do exactly? Where the String from the title? If you want to have an Array of Hashes, that's what you've got. If you want to have a Hash of Hashes, then you need to provide another set of keys {x => { y=> z}, ...} If you want to have just one Hash, then try h = Hash[*(1..12).map {|i| [Date::MONTHNAMES[i], i.to_s]}.flatten)]