From fa68d78b200befb286b3e18415dd7f820369f5e5 Mon Sep 17 00:00:00 2001 From: Krzysztof Wilczynski Date: Sat, 23 Apr 2011 18:11:08 +0100 Subject: Small changes. Added better error checking etc ... Signed-off-by: Krzysztof Wilczynski --- collect_indices.rb | 7 ++++++- join.rb | 15 +++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) 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 -- cgit v1.2.3