X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=3rdparty%2Fmodules%2Fstdlib%2Flib%2Fpuppet%2Fparser%2Ffunctions%2Fany2bool.rb;fp=3rdparty%2Fmodules%2Fstdlib%2Flib%2Fpuppet%2Fparser%2Ffunctions%2Fany2bool.rb;h=8f6d5d81aea16db5114d3eeecef097617bcd39a7;hb=131e09855e065be940e104d9ab0f18940cc76257;hp=17612bf80b26091f1914da61ec07f7f57633f3fd;hpb=407d322498f4fde815abf381007fbecfe5c10b2b;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..8f6d5d81a 100644 --- a/3rdparty/modules/stdlib/lib/puppet/parser/functions/any2bool.rb +++ b/3rdparty/modules/stdlib/lib/puppet/parser/functions/any2bool.rb @@ -1,30 +1,32 @@ # # 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 + This 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. + DOC + ) do |arguments| - raise(Puppet::ParseError, "any2bool(): Wrong number of arguments given (#{arguments.size} for 1)") if arguments.size < 1 + 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 +34,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