[chef] Re: Re: Re: how do I share common functions between templates


Chronological Thread 
  • From: John Dyer < >
  • To:
  • Subject: [chef] Re: Re: Re: how do I share common functions between templates
  • Date: Mon, 14 Jan 2013 19:14:48 -0500

Bryan,

   Personally when I have more complicated logic in a template I'll factor that out into a library method, which I then call directly in the template...   Only draw back here is that the node data isnt available in the Library, so I have to pass that into the method...

......
<networkAccessPoints>
<%= Prism.build_network_access_point(node) %>
</networkAccessPoints>
.....

hope that helps

-John



On Mon, Jan 14, 2013 at 6:04 PM, Bryan Stenson < " target="_blank"> > wrote:
Surely, we can all agree to call these something more chef-fy...a "buffet" or "serving dish".


On Mon, Jan 14, 2013 at 3:02 PM, Josiah Kiehl < " target="_blank"> > wrote:
Partials are a new feature in chef (just merged to master, in fact: https://github.com/opscode/chef/pull/498)

For now, I'm not sure there is a good solution. You can possibly use ERB to evaluate the a subtemplate and pass that into a template via variables.


On Mon, Jan 14, 2013 at 2:38 PM, < " target="_blank"> > wrote:
Hi,

I have a snippet as following and want to share it in mulitiple templates. Is
there a way to do it?

thanks,

Xianfeng

<%
def output_array(s)
    str = ''
    if s.is_a?(Array)
       if s.length >= 1
          str = s.at(0)
          str = "\"#{str}\""
          if s.length > 1
             for i in 1..(s.length - 1)
                 w = s.at(i)
                 str = "#{str}, \"#{w}\""
             end
          end
       end
    end
    "#{str}"
end
%>






Archive powered by MHonArc 2.6.16.

§