From 28254bef6baa6ac9c1c26a2c58bdfd0548c7a553 Mon Sep 17 00:00:00 2001 From: Krzysztof Wilczynski Date: Mon, 25 Apr 2011 23:33:26 +0100 Subject: Changing name of join.rb to join_with_prefix.rb to make room for its simpler version. Signed-off-by: Krzysztof Wilczynski --- join.rb | 74 ----------------------------------------------------- join_with_prefix.rb | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+), 74 deletions(-) delete mode 100644 join.rb create mode 100644 join_with_prefix.rb diff --git a/join.rb b/join.rb deleted file mode 100644 index 469763a..0000000 --- a/join.rb +++ /dev/null @@ -1,74 +0,0 @@ -# -# join.rb -# - -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| - - # Technically we support three arguments but only first two are mandatory ... - raise(Puppet::ParseError, "join(): Wrong number of arguments " + - "given (#{arguments.size} for 2)") if arguments.size < 2 - - array = arguments[0] - - if not array.is_a?(Array) - raise(Puppet::ParseError, 'join(): Requires an array to work with') - end - - suffix = arguments[1] - prefix = arguments[2] if arguments[2] - - raise(Puppet::ParseError, 'join(): You must provide suffix ' + - 'to join array elements with') if suffix.empty? - - if prefix and prefix.empty? - raise(Puppet::ParseError, 'join(): You must provide prefix ' + - 'to add to join') - end - - if prefix and not prefix.empty? - result = prefix + array.join(suffix + prefix) - else - result = array.join(suffix) - end - - return result - end -end - -# vim: set ts=2 sw=2 et : diff --git a/join_with_prefix.rb b/join_with_prefix.rb new file mode 100644 index 0000000..469763a --- /dev/null +++ b/join_with_prefix.rb @@ -0,0 +1,74 @@ +# +# join.rb +# + +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| + + # Technically we support three arguments but only first two are mandatory ... + raise(Puppet::ParseError, "join(): Wrong number of arguments " + + "given (#{arguments.size} for 2)") if arguments.size < 2 + + array = arguments[0] + + if not array.is_a?(Array) + raise(Puppet::ParseError, 'join(): Requires an array to work with') + end + + suffix = arguments[1] + prefix = arguments[2] if arguments[2] + + raise(Puppet::ParseError, 'join(): You must provide suffix ' + + 'to join array elements with') if suffix.empty? + + if prefix and prefix.empty? + raise(Puppet::ParseError, 'join(): You must provide prefix ' + + 'to add to join') + end + + if prefix and not prefix.empty? + result = prefix + array.join(suffix + prefix) + else + result = array.join(suffix) + end + + return result + end +end + +# vim: set ts=2 sw=2 et : -- cgit v1.2.3