- From: Adam Jacob <
>
- To:
- Subject: [chef] Re: Re: Re: Using arrays in templates
- Date: Sat, 31 Jul 2010 14:53:47 -0700
You can also sort the hash on the way out, as well.
:)
Adam
On Fri, Jul 30, 2010 at 7:20 PM, Sig Lange
<
>
wrote:
>
I'm no ruby expert, but It's worth pointing out that ordering of a Hash is
>
undefined. So the array-in-array approach works well if you intend to have
>
exact order in and out... which you likely do.
>
>
Perhaps someone with more ruby knowledge can demonstrate a ordered hash.
>
>
~ Sig
>
>
On Thu, Jul 29, 2010 at 3:51 PM, Adam Jacob
>
<
>
>
wrote:
>
>
>
> On Wed, Jul 28, 2010 at 4:50 AM, FX
>
> <
>
>
> wrote:
>
> > Hi,
>
> >
>
> > I have a question about templates and the correct syntax.
>
> > I have an array which contains the following data:
>
> >
>
> > "name1","description of name1"
>
> > "name2","description of name2"
>
> > ...
>
> > "nameN","description of nameN"
>
> >
>
> > This array needs to be stored as an attribute of a role or node (so
>
> > that it can be overridden)
>
> >
>
> > I assume it could look something like this:
>
> >
>
> > "host":[["name1","description of name1"],["name2","description of
>
> > name2"]]
>
>
>
> This should be a hash, not an array - you have a "name" value, which
>
> should be the key, and the descirption is a value.
>
>
>
> > Now the problem (at least for me) is how do I specify this in the
>
> > template?
>
> >
>
> > I have tried this (I assume it does not work because it needs to have
>
> > a object and not array):
>
> >
>
> > <% @host.each do |h| %>
>
> > <%= host[0] %> <%= host[1]%>
>
> > <% end %>
>
>
>
> This is the right syntax - you need to have <%= h[0] %> and <%= h[1]
>
> %>, since that's the variable you create on iteration.
>
>
>
> Adam
>
> --
>
> Opscode, Inc.
>
> Adam Jacob, CTO
>
> T: (206) 508-7449 E:
>
>
>
>
--
Opscode, Inc.
Adam Jacob, CTO
T: (206) 508-7449 E:
Archive powered by MHonArc 2.6.16.