summaryrefslogtreecommitdiff
path: root/join.rb
diff options
context:
space:
mode:
authorKrzysztof Wilczynski <krzysztof.wilczynski@linux.com>2011-04-23 18:11:08 +0100
committerKrzysztof Wilczynski <krzysztof.wilczynski@linux.com>2011-04-23 18:11:08 +0100
commitfa68d78b200befb286b3e18415dd7f820369f5e5 (patch)
treeb8c264f67e212f56336c97f0552597748521d65a /join.rb
parent908459c1ad7a14d338239e9ba428c56bbffee74c (diff)
Small changes. Added better error checking etc ...
Signed-off-by: Krzysztof Wilczynski <krzysztof.wilczynski@linux.com>
Diffstat (limited to 'join.rb')
-rw-r--r--join.rb15
1 files changed, 15 insertions, 0 deletions
diff --git a/join.rb b/join.rb
index b616e05..4522d23 100644
--- a/join.rb
+++ b/join.rb
@@ -7,11 +7,26 @@ module Puppet::Parser::Functions
EOS
) do |arguments|
+ # Technically we support three arguments but only first two are mandatory ....
+ raise(Puppet::ParseError, "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, 'Requires an array to work with')
+ end
+
suffix = arguments[1]
prefix = arguments[2]
+ raise(Puppet::ParseError, 'You must provide suffix ' +
+ 'to join array elements with') if suffix.empty?
+
+ if prefix and prefix.empty?
+ raise(Puppet::ParseError, 'You must provide prefix to add to join')
+ end
+
if prefix and not prefix.empty?
result = prefix + array.join(suffix + prefix)
else