diff options
author | Krzysztof Wilczynski <krzysztof.wilczynski@linux.com> | 2011-04-25 02:47:16 +0100 |
---|---|---|
committer | Krzysztof Wilczynski <krzysztof.wilczynski@linux.com> | 2011-04-25 02:47:16 +0100 |
commit | 914d5c2f38dd5c19d1b222c47ca6ba680277f6d6 (patch) | |
tree | 3270234b1d512eb273fc9edf4298ab766139426b | |
parent | bb231bdfc2acca172203039d6a1e4852ab4809b0 (diff) | |
download | puppet-stdlib-914d5c2f38dd5c19d1b222c47ca6ba680277f6d6.tar.gz puppet-stdlib-914d5c2f38dd5c19d1b222c47ca6ba680277f6d6.tar.bz2 |
Added help accessible via the :doc functionality in Puppet's newfunction.
Signed-off-by: Krzysztof Wilczynski <krzysztof.wilczynski@linux.com>
-rw-r--r-- | join.rb | 33 |
1 files changed, 33 insertions, 0 deletions
@@ -4,6 +4,39 @@ module Puppet::Parser::Functions newfunction(:join, :type => :rvalue, :doc => <<-EOS +This function will allow to concatenate elements of an array together +with a given suffix and optionally with prefix if such is given ... + +For example: + +Given the following sample manifest: + + define iterator { + notice $name + } + + $array = ['a', 'b', 'c'] + + $result = split(join($array, ',', 'letter_'), ',') + + notice $result + + iterator { $result: } + +This will produce the following: + + notice: Scope(Class[main]): letter_a letter_b letter_c + notice: Scope(Iterator[letter_a]): letter_a + notice: Scope(Iterator[letter_b]): letter_b + notice: Scope(Iterator[letter_c]): letter_c + +Which allows you to avoid resorting to the following: + + $result = split(inline_template("<%= array.collect { |i| \"letter_#{i}\" }.join(',') %>"), ',') + +Phasing out the need for use and abuse of the infamous inline_template +in the example above and which in this very case is extremely ugly as +we have to escape double-quotes to make Puppet parser not evaluate them. EOS ) do |arguments| |