X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=3rdparty%2Fmodules%2Fstdlib%2Flib%2Fpuppet%2Fparser%2Ffunctions%2Fany2bool.rb;h=c4b20d67451d8a316bd08221a60270b9cedda26d;hb=30caaa85aed7015ca0d77216bff175eebd917eb7;hp=17612bf80b26091f1914da61ec07f7f57633f3fd;hpb=6963202b4b62c2816655ac9532521b018fdf83bd;p=mirror%2Fdsa-puppet.git diff --git a/3rdparty/modules/stdlib/lib/puppet/parser/functions/any2bool.rb b/3rdparty/modules/stdlib/lib/puppet/parser/functions/any2bool.rb index 17612bf80..c4b20d674 100644 --- a/3rdparty/modules/stdlib/lib/puppet/parser/functions/any2bool.rb +++ b/3rdparty/modules/stdlib/lib/puppet/parser/functions/any2bool.rb @@ -1,30 +1,36 @@ # # any2bool.rb # - module Puppet::Parser::Functions - newfunction(:any2bool, :type => :rvalue, :doc => <<-EOS -This converts 'anything' to a boolean. In practise it does the following: + newfunction(:any2bool, :type => :rvalue, :doc => <<-DOC + @summary + Converts 'anything' to a boolean. + + In practise it does the following: + * Strings such as Y,y,1,T,t,TRUE,yes,'true' will return true + * Strings such as 0,F,f,N,n,FALSE,no,'false' will return false + * Booleans will just return their original value + * Number (or a string representation of a number) > 0 will return true, otherwise false + * undef will return false + * Anything else will return true -* Strings such as Y,y,1,T,t,TRUE,yes,'true' will return true -* Strings such as 0,F,f,N,n,FALSE,no,'false' will return false -* Booleans will just return their original value -* Number (or a string representation of a number) > 0 will return true, otherwise false -* undef will return false -* Anything else will return true - EOS - ) do |arguments| + Also see the built-in [`Boolean.new`](https://puppet.com/docs/puppet/latest/function.html#conversion-to-boolean) + function. - raise(Puppet::ParseError, "any2bool(): Wrong number of arguments given (#{arguments.size} for 1)") if arguments.size < 1 + @return [Boolean] The boolean value of the object that was given + DOC + ) do |arguments| + + raise(Puppet::ParseError, "any2bool(): Wrong number of arguments given (#{arguments.size} for 1)") if arguments.empty? # If argument is already Boolean, return it - if !!arguments[0] == arguments[0] + if !!arguments[0] == arguments[0] # rubocop:disable Style/DoubleNegation : Could not find a better way to check if a boolean return arguments[0] end arg = arguments[0] - if arg == nil + if arg.nil? return false end @@ -32,22 +38,22 @@ This converts 'anything' to a boolean. In practise it does the following: return false end - valid_float = !!Float(arg) rescue false + valid_float = begin + !!Float(arg) # rubocop:disable Style/DoubleNegation : Could not find a better way to check if a boolean + rescue + false + end if arg.is_a?(Numeric) - return function_num2bool( [ arguments[0] ] ) + return function_num2bool([arguments[0]]) end if arg.is_a?(String) - if valid_float - return function_num2bool( [ arguments[0] ] ) - else - return function_str2bool( [ arguments[0] ] ) - end + return function_num2bool([arguments[0]]) if valid_float + return function_str2bool([arguments[0]]) end return true - end end