On Tue, Jul 24, 2012 at 10:47:40AM -0700, earthgecko wrote:
[...]
> Would still be interested to know if you can use if val in the each do 
> context.
> 
[...]
> On Tuesday, July 24, 2012 6:12:27 PM UTC+1, Stefan Schulte wrote:
> > On Tue, Jul 24, 2012 at 08:08:30AM -0700, earthgecko wrote: 
> > > Trying to figure what will work and the following do NOT work. 
> > > 
> > > <% hosts.each do |val| %><% if val != "<%= hostname %>" %>  host (<%= 
> > val 
> > > %>);<% end %><% end %> 

if you write

    <% if val != "<%= hostname %>" %>

The thing between <% and %> will be interpreted as ruby code but you mix
in erb syntax inside this ruby fragment. Maybe erb thinks the ruby code
ends after the inner %> not after the outer %>. However what you really
wanted to write was probably

    <% if val != @hostname %>

Notice that I am addressing hostname as an instance variable. Addressing
it as plain hostname (as a function) does also work but should be avoided
because you may accidentally call a real ruby function instead
(http://projects.puppetlabs.com/issues/14527 is a great example for
that)

So the endresult could be

    <% hosts.each do |val| -%>
    <%   if val != @hostname -%>
    host (<%= val %>)
    <%   end -%>
    <% end -%>

-Stefan

> > > 
> > > <% hosts.each do |val| %><% if "<%= val %>" != "<%= hostname %>" %> 
> >  host 
> > > (<%= val %>);<% end %><% end %> 
> > > 
> > > <% hosts.each do |val| %><% if <%= val %> != "<%= hostname %>" %>  host 
> > > (<%= val %>);<% end %><% end %> 
> > > 
> > > All error with something similar to: 
> > > 
> > > syntax error, unexpected $undefined, expecting kTHEN or ':' or '\n' or 
> > ';' 
> > > ...= hostname ; _erbout.concat "\" %>  host ("; _erbout.concat... 
> > >                               ^ 
> > > .....cfg.erb:15: syntax error, unexpected kEND, expecting $end 
> > > ...rbout.concat ");";  end ;  end ; _erbout.concat "\n  key /et... 
> > > 
> > > Thanks in advance.. 
> >
> > Haven't tested it but does 
> >
> >     <% @hosts.reject { |h| h == @hostname }.each do |host| -%> 
> >     <%= host %> 
> >     <% end -%> 
> >
> > work for you? 
> >
> > -Stefan 
> >
> >
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Puppet Users" group.
> To view this discussion on the web visit 
> https://groups.google.com/d/msg/puppet-users/-/WizWNp4VO-QJ.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/puppet-users?hl=en.
> 

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

Reply via email to