Issue #15756 has been updated by Ryan Gordon.
Would be awesome if the function and argument were shown in the error message.
I never would have realized this was the problem and not the other custom ruby
defines i had in my template file: <%= scope.function_template("...") %> to <%=
scope.function_template(["..."]) %>
----------------------------------------
Bug #15756: scope.function_template with a single String parameter fails in
Ruby 1.9
https://projects.puppetlabs.com/issues/15756#change-79595
Author: Roger Que
Status: Closed
Priority: Normal
Assignee: Andrew Parker
Category: templates
Target version: 3.0.0
Affected Puppet version: 2.7.18
Keywords: ruby19 functions
Branch: https://github.com/puppetlabs/puppet/pull/1105
The Puppet documentation mentions [using `scope.function_template` with a
String
parameter](http://docs.puppetlabs.com/guides/templating.html#access-to-variables-and-puppet-functions-with-the-scope-object)
in order to render an ERB template inside another template:
<%= scope.function_template('referenced_template.erb') %>
This works in Ruby 1.8, but fails with the following error when the Puppet
master is running 1.9:
err: Could not retrieve catalog from remote server: Error 400 on SERVER:
Failed to parse template [xxx].erb:
Filepath: /usr/share/ruby/vendor_ruby/puppet/parser/functions/template.rb
Line: 10
Detail: undefined method `collect' for "referenced_template.erb":String
at /etc/puppet/modules/[yyy].pp:164 on node [zzz.example]
It looks like the `template` function is invoking `collect` on its argument
regardless of whether it's a String or Array, which works in Ruby 1.8
(`'abc'.collect` behaves like `['abc'].collect`) but not in 1.9. Passing an
Array works with both versions.
This is on Fedora 17, Ruby 1.9.3p194, with Puppet 2.7.18.
--
You have received this notification because you have either subscribed to it,
or are involved in it.
To change your notification preferences, please click here:
http://projects.puppetlabs.com/my/account
--
You received this message because you are subscribed to the Google Groups
"Puppet Bugs" 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-bugs?hl=en.