better, thank tou.

On Jan 24, 6:14 pm, Vincent Fourmond <vincent.fourm... / 9online.fr>
wrote:
> Dorren wrote:
> > doing access control on rails controller,
>
> > ------ I have this input --------------
> > hash = {"index" => "list",
> >           ["edit", "update"] => "manage_one",
> >           ["new", "create", "destroy"] => "manage_all"}
>
> > ------- I want this output ----------
> > {"index"=>"list",
> >  "edit"=>"manage_one",
> >  "update"=>"manage_one",
> >  "new"=>"manage_all",
> >  "create"=>"manage_all",
> >  "destroy"=>"manage_all"
> > }
>
> > ------ I have this code ------------
> >   hash = Hash[*hash.to_a.collect{|x|
> >                        Array === x[0] ? x[0].zip([x[1]]*x[0].size) : x
> >                     }.flatten]
>
> > ----- I want shorter code ------  What about this:
>
> h = {}
> for k,v in hash
>   [k].flatten.each {|l| h[l] = v}
> end
> hash = h> => {"new"=>"manage_all", "edit"=>"manage_one","destroy"=>"manage_all", "create"=>"manage_all", "index"=>"list",
> "update"=>"manage_one"}
>
>   Cheers,
>
>         Vincent
>
> --
> Vincent Fourmond, PhD student (not for long anymore)http://vincent.fourmond.neuf.fr/