summaryrefslogtreecommitdiff
path: root/join.rb
diff options
context:
space:
mode:
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