summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--collect_indices.rb7
-rw-r--r--join.rb15
2 files changed, 21 insertions, 1 deletions
diff --git a/collect_indices.rb b/collect_indices.rb
index 65abfce..e96c3e9 100644
--- a/collect_indices.rb
+++ b/collect_indices.rb
@@ -10,7 +10,12 @@ module Puppet::Parser::Functions
raise(Puppet::ParseError, "Wrong number of arguments " +
"given (#{arguments.size} for 2)") if arguments.size < 2
- array = arguments.shift
+ array = arguments.shift
+
+ if not array.is_a?(Array)
+ raise(Puppet::ParseError, 'Requires an array to work with')
+ end
+
indices = *arguments # Get them all ... Pokemon ...
if not indices or indices.empty?
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