From a8f7f5616cc904e5da2c4d5beeb64b8180921c0f Mon Sep 17 00:00:00 2001 From: Travis Fields Date: Tue, 24 Feb 2015 18:09:45 -0800 Subject: [PATCH] Update sqlserver_validate_range to take array --- .../functions/sqlserver_validate_range.rb | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/lib/puppet/parser/functions/sqlserver_validate_range.rb b/lib/puppet/parser/functions/sqlserver_validate_range.rb index a507b086..c70f133b 100644 --- a/lib/puppet/parser/functions/sqlserver_validate_range.rb +++ b/lib/puppet/parser/functions/sqlserver_validate_range.rb @@ -3,15 +3,21 @@ module Puppet::Parser::Functions if (args.length < 3) or (args.length > 4) then raise Puppet::ParseError, ("validate_range(): wrong number of arguments (#{args.length}; must be 3)") end - value, lower, upper, msg = args + values, lower, upper, msg = args - msg = msg || "validate_range(): #{args[0].inspect} is not between #{args[1].inspect} and #{args[2].inspect}" - if /^\d+(|\.\d+)$/.match(value) - raise(Puppet::ParseError, msg) unless Float(value).between?(Float(lower), Float(upper)) - else - value.strip! - raise(Puppet::ParseError, msg) unless value.length >= Integer(lower) && value.length <= Integer(upper) + if values.is_a? String + values = Array.new << values + end + + values.each do |value| + msg = msg || "validate_range(): #{args[0].inspect} is not between #{args[1].inspect} and #{args[2].inspect}" + if /^\d+(|\.\d+)$/.match(value) + raise(Puppet::ParseError, msg) unless Float(value).between?(Float(lower), Float(upper)) + else + value.strip! + raise(Puppet::ParseError, msg) unless value.length >= Integer(lower) && value.length <= Integer(upper) + end end end end