From 4ad1da83f9326b883ef97a3642a889af068137e4 Mon Sep 17 00:00:00 2001 From: Adrien Thebo Date: Mon, 12 Aug 2013 11:00:27 -0700 Subject: (maint) Remove unneeded parens around exceptions --- lib/puppet/parser/functions/validate_slength.rb | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'lib/puppet') diff --git a/lib/puppet/parser/functions/validate_slength.rb b/lib/puppet/parser/functions/validate_slength.rb index 339a21d..22c9d52 100644 --- a/lib/puppet/parser/functions/validate_slength.rb +++ b/lib/puppet/parser/functions/validate_slength.rb @@ -21,47 +21,47 @@ module Puppet::Parser::Functions ENDHEREDOC - raise Puppet::ParseError, ("validate_slength(): Wrong number of arguments (#{args.length}; must be 2 or 3)") unless args.length == 2 or args.length == 3 + raise Puppet::ParseError, "validate_slength(): Wrong number of arguments (#{args.length}; must be 2 or 3)" unless args.length == 2 or args.length == 3 unless (args[0].is_a?(String) or args[0].is_a?(Array)) - raise Puppet::ParseError, ("validate_slength(): please pass a string, or an array of strings - what you passed didn't work for me at all - #{args[0].class}") + raise Puppet::ParseError, "validate_slength(): please pass a string, or an array of strings - what you passed didn't work for me at all - #{args[0].class}" end begin max_length = args[1].to_i rescue NoMethodError => e - raise Puppet::ParseError, ("validate_slength(): Couldn't convert whatever you passed as the max length parameter to an integer - sorry: " + e.message ) + raise Puppet::ParseError, "validate_slength(): Couldn't convert whatever you passed as the max length parameter to an integer - sorry: " + e.message end unless args.length == 2 begin min_length = Integer(args[2]) rescue StandardError => e - raise Puppet::ParseError, ("validate_slength(): Couldn't convert whatever you passed as the min length parameter to an integer - sorry: " + e.message ) + raise Puppet::ParseError, "validate_slength(): Couldn't convert whatever you passed as the min length parameter to an integer - sorry: " + e.message end else min_length = 0 end - raise Puppet::ParseError, ("validate_slength(): please pass a positive number as max_length") unless max_length > 0 - raise Puppet::ParseError, ("validate_slength(): please pass a positive number as min_length") unless min_length >= 0 - raise Puppet::ParseError, ("validate_slength(): please pass a min length that is smaller than the maximum") unless min_length <= max_length + raise Puppet::ParseError, "validate_slength(): please pass a positive number as max_length" unless max_length > 0 + raise Puppet::ParseError, "validate_slength(): please pass a positive number as min_length" unless min_length >= 0 + raise Puppet::ParseError, "validate_slength(): please pass a min length that is smaller than the maximum" unless min_length <= max_length case args[0] when String - raise Puppet::ParseError, ("validate_slength(): #{args[0].inspect} is #{args[0].length} characters. It should have been between #{min_length} and #{max_length} characters") unless args[0].length <= max_length and min_length <= args[0].length + raise Puppet::ParseError, "validate_slength(): #{args[0].inspect} is #{args[0].length} characters. It should have been between #{min_length} and #{max_length} characters" unless args[0].length <= max_length and min_length <= args[0].length when Array args[0].each do |arg| if arg.is_a?(String) unless ( arg.is_a?(String) and arg.length <= max_length and min_length <= arg.length) - raise Puppet::ParseError, ("validate_slength(): #{arg.inspect} is #{arg.length} characters. It should have been between #{min_length} and #{max_length} characters") + raise Puppet::ParseError, "validate_slength(): #{arg.inspect} is #{arg.length} characters. It should have been between #{min_length} and #{max_length} characters" end else - raise Puppet::ParseError, ("validate_slength(): #{arg.inspect} is not a string, it's a #{arg.class}") + raise Puppet::ParseError, "validate_slength(): #{arg.inspect} is not a string, it's a #{arg.class}" end end else - raise Puppet::ParseError, ("validate_slength(): please pass a string, or an array of strings - what you passed didn't work for me at all - #{args[0].class}") + raise Puppet::ParseError, "validate_slength(): please pass a string, or an array of strings - what you passed didn't work for me at all - #{args[0].class}" end end end -- cgit v1.2.3 From 2cfa408909cd8a1d465e76d0487fea204f55b844 Mon Sep 17 00:00:00 2001 From: Adrien Thebo Date: Mon, 12 Aug 2013 11:08:35 -0700 Subject: (maint) Explicitly unpack validate_slength args --- lib/puppet/parser/functions/validate_slength.rb | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'lib/puppet') diff --git a/lib/puppet/parser/functions/validate_slength.rb b/lib/puppet/parser/functions/validate_slength.rb index 22c9d52..8c8569a 100644 --- a/lib/puppet/parser/functions/validate_slength.rb +++ b/lib/puppet/parser/functions/validate_slength.rb @@ -23,19 +23,21 @@ module Puppet::Parser::Functions raise Puppet::ParseError, "validate_slength(): Wrong number of arguments (#{args.length}; must be 2 or 3)" unless args.length == 2 or args.length == 3 - unless (args[0].is_a?(String) or args[0].is_a?(Array)) - raise Puppet::ParseError, "validate_slength(): please pass a string, or an array of strings - what you passed didn't work for me at all - #{args[0].class}" + input, max_length, min_length = *args + + unless (input.is_a?(String) or input.is_a?(Array)) + raise Puppet::ParseError, "validate_slength(): please pass a string, or an array of strings - what you passed didn't work for me at all - #{input.class}" end begin - max_length = args[1].to_i + max_length = max_length.to_i rescue NoMethodError => e raise Puppet::ParseError, "validate_slength(): Couldn't convert whatever you passed as the max length parameter to an integer - sorry: " + e.message end unless args.length == 2 begin - min_length = Integer(args[2]) + min_length = Integer(min_length) rescue StandardError => e raise Puppet::ParseError, "validate_slength(): Couldn't convert whatever you passed as the min length parameter to an integer - sorry: " + e.message end @@ -47,11 +49,11 @@ module Puppet::Parser::Functions raise Puppet::ParseError, "validate_slength(): please pass a positive number as min_length" unless min_length >= 0 raise Puppet::ParseError, "validate_slength(): please pass a min length that is smaller than the maximum" unless min_length <= max_length - case args[0] + case input when String - raise Puppet::ParseError, "validate_slength(): #{args[0].inspect} is #{args[0].length} characters. It should have been between #{min_length} and #{max_length} characters" unless args[0].length <= max_length and min_length <= args[0].length + raise Puppet::ParseError, "validate_slength(): #{input.inspect} is #{input.length} characters. It should have been between #{min_length} and #{max_length} characters" unless input.length <= max_length and min_length <= input.length when Array - args[0].each do |arg| + input.each do |arg| if arg.is_a?(String) unless ( arg.is_a?(String) and arg.length <= max_length and min_length <= arg.length) raise Puppet::ParseError, "validate_slength(): #{arg.inspect} is #{arg.length} characters. It should have been between #{min_length} and #{max_length} characters" @@ -61,7 +63,7 @@ module Puppet::Parser::Functions end end else - raise Puppet::ParseError, "validate_slength(): please pass a string, or an array of strings - what you passed didn't work for me at all - #{args[0].class}" + raise Puppet::ParseError, "validate_slength(): please pass a string, or an array of strings - what you passed didn't work for me at all - #{input.class}" end end end -- cgit v1.2.3 From e63715ddaf7c2e5a742ce29e5e159b6031918963 Mon Sep 17 00:00:00 2001 From: Adrien Thebo Date: Mon, 12 Aug 2013 11:20:46 -0700 Subject: (maint) reword error messages for validate_slength --- lib/puppet/parser/functions/validate_slength.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'lib/puppet') diff --git a/lib/puppet/parser/functions/validate_slength.rb b/lib/puppet/parser/functions/validate_slength.rb index 8c8569a..68054b8 100644 --- a/lib/puppet/parser/functions/validate_slength.rb +++ b/lib/puppet/parser/functions/validate_slength.rb @@ -26,20 +26,20 @@ module Puppet::Parser::Functions input, max_length, min_length = *args unless (input.is_a?(String) or input.is_a?(Array)) - raise Puppet::ParseError, "validate_slength(): please pass a string, or an array of strings - what you passed didn't work for me at all - #{input.class}" + raise Puppet::ParseError, "validate_slength(): Expected first argument to be a String or Array, got a #{input.class}" end begin max_length = max_length.to_i rescue NoMethodError => e - raise Puppet::ParseError, "validate_slength(): Couldn't convert whatever you passed as the max length parameter to an integer - sorry: " + e.message + raise Puppet::ParseError, "validate_slength(): Expected second argument to be a positive Numeric, got a #{max_length.class}" end unless args.length == 2 begin min_length = Integer(min_length) rescue StandardError => e - raise Puppet::ParseError, "validate_slength(): Couldn't convert whatever you passed as the min length parameter to an integer - sorry: " + e.message + raise Puppet::ParseError, "validate_slength(): Expected third argument to be unset or a positive Numeric, got a #{min_length.class}" end else min_length = 0 -- cgit v1.2.3 From 6df05cbc2d6d4d85774de7ca16f1fc557f69516d Mon Sep 17 00:00:00 2001 From: Adrien Thebo Date: Mon, 12 Aug 2013 11:27:56 -0700 Subject: (maint) clean up validate_slength argument validation --- lib/puppet/parser/functions/validate_slength.rb | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) (limited to 'lib/puppet') diff --git a/lib/puppet/parser/functions/validate_slength.rb b/lib/puppet/parser/functions/validate_slength.rb index 68054b8..83c7ed0 100644 --- a/lib/puppet/parser/functions/validate_slength.rb +++ b/lib/puppet/parser/functions/validate_slength.rb @@ -30,24 +30,26 @@ module Puppet::Parser::Functions end begin - max_length = max_length.to_i - rescue NoMethodError => e - raise Puppet::ParseError, "validate_slength(): Expected second argument to be a positive Numeric, got a #{max_length.class}" + max_length = Integer(max_length) + raise ArgumentError if max_length <= 0 + rescue ArgumentError, TypeError + raise Puppet::ParseError, "validate_slength(): Expected second argument to be a positive Numeric, got #{max_length}:#{max_length.class}" end - unless args.length == 2 + if min_length begin min_length = Integer(min_length) - rescue StandardError => e - raise Puppet::ParseError, "validate_slength(): Expected third argument to be unset or a positive Numeric, got a #{min_length.class}" + raise ArgumentError if min_length < 0 + rescue ArgumentError, TypeError + raise Puppet::ParseError, "validate_slength(): Expected third argument to be unset or a positive Numeric, got #{min_length}:#{min_length.class}" end else min_length = 0 end - raise Puppet::ParseError, "validate_slength(): please pass a positive number as max_length" unless max_length > 0 - raise Puppet::ParseError, "validate_slength(): please pass a positive number as min_length" unless min_length >= 0 - raise Puppet::ParseError, "validate_slength(): please pass a min length that is smaller than the maximum" unless min_length <= max_length + if min_length > max_length + raise Puppet::ParseError, "validate_slength(): Expected second argument to be larger than third argument" + end case input when String -- cgit v1.2.3 From b41883933c1dbf1a3c9fa7fce65e273246b474ee Mon Sep 17 00:00:00 2001 From: Adrien Thebo Date: Mon, 12 Aug 2013 11:50:55 -0700 Subject: (maint) collapse String/Array validation into shared lambda --- lib/puppet/parser/functions/validate_slength.rb | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'lib/puppet') diff --git a/lib/puppet/parser/functions/validate_slength.rb b/lib/puppet/parser/functions/validate_slength.rb index 83c7ed0..259df5a 100644 --- a/lib/puppet/parser/functions/validate_slength.rb +++ b/lib/puppet/parser/functions/validate_slength.rb @@ -51,21 +51,23 @@ module Puppet::Parser::Functions raise Puppet::ParseError, "validate_slength(): Expected second argument to be larger than third argument" end + validator = lambda do |str| + unless str.length <= max_length and str.length >= min_length + raise Puppet::ParseError, "validate_slength(): Expected length of #{input.inspect} to be between #{min_length} and #{max_length}, was #{input.length}" + end + end + case input when String - raise Puppet::ParseError, "validate_slength(): #{input.inspect} is #{input.length} characters. It should have been between #{min_length} and #{max_length} characters" unless input.length <= max_length and min_length <= input.length + validator.call(input) when Array - input.each do |arg| + input.each_with_index do |arg, pos| if arg.is_a?(String) - unless ( arg.is_a?(String) and arg.length <= max_length and min_length <= arg.length) - raise Puppet::ParseError, "validate_slength(): #{arg.inspect} is #{arg.length} characters. It should have been between #{min_length} and #{max_length} characters" - end + validator.call(arg) else - raise Puppet::ParseError, "validate_slength(): #{arg.inspect} is not a string, it's a #{arg.class}" + raise Puppet::ParseError, "validate_slength(): Expected element at array position #{pos} to be a String, got a #{arg.class}" end end - else - raise Puppet::ParseError, "validate_slength(): please pass a string, or an array of strings - what you passed didn't work for me at all - #{input.class}" end end end -- cgit v1.2.3 From 1950b605fb7acaf055b922433a74c429794ee375 Mon Sep 17 00:00:00 2001 From: Adrien Thebo Date: Mon, 12 Aug 2013 11:51:36 -0700 Subject: (maint) reindent case statement to match standard indentation --- lib/puppet/parser/functions/validate_slength.rb | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'lib/puppet') diff --git a/lib/puppet/parser/functions/validate_slength.rb b/lib/puppet/parser/functions/validate_slength.rb index 259df5a..34dfcf2 100644 --- a/lib/puppet/parser/functions/validate_slength.rb +++ b/lib/puppet/parser/functions/validate_slength.rb @@ -58,16 +58,16 @@ module Puppet::Parser::Functions end case input - when String - validator.call(input) - when Array - input.each_with_index do |arg, pos| - if arg.is_a?(String) - validator.call(arg) - else - raise Puppet::ParseError, "validate_slength(): Expected element at array position #{pos} to be a String, got a #{arg.class}" - end + when String + validator.call(input) + when Array + input.each_with_index do |arg, pos| + if arg.is_a?(String) + validator.call(arg) + else + raise Puppet::ParseError, "validate_slength(): Expected element at array position #{pos} to be a String, got a #{arg.class}" end + end end end end -- cgit v1.2.3 From 24911db44ca086b00ce543f7da08e5176f7c93a8 Mon Sep 17 00:00:00 2001 From: Adrien Thebo Date: Mon, 12 Aug 2013 12:52:17 -0700 Subject: (maint) Validate input argument in a single location --- lib/puppet/parser/functions/validate_slength.rb | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'lib/puppet') diff --git a/lib/puppet/parser/functions/validate_slength.rb b/lib/puppet/parser/functions/validate_slength.rb index 34dfcf2..7d534f3 100644 --- a/lib/puppet/parser/functions/validate_slength.rb +++ b/lib/puppet/parser/functions/validate_slength.rb @@ -25,10 +25,6 @@ module Puppet::Parser::Functions input, max_length, min_length = *args - unless (input.is_a?(String) or input.is_a?(Array)) - raise Puppet::ParseError, "validate_slength(): Expected first argument to be a String or Array, got a #{input.class}" - end - begin max_length = Integer(max_length) raise ArgumentError if max_length <= 0 @@ -62,12 +58,14 @@ module Puppet::Parser::Functions validator.call(input) when Array input.each_with_index do |arg, pos| - if arg.is_a?(String) + if arg.is_a? String validator.call(arg) else - raise Puppet::ParseError, "validate_slength(): Expected element at array position #{pos} to be a String, got a #{arg.class}" + raise Puppet::ParseError, "validate_slength(): Expected element at array position #{pos} to be a String, got #{arg.class}" end end + else + raise Puppet::ParseError, "validate_slength(): Expected first argument to be a String or Array, got #{input.class}" end end end -- cgit v1.2.3