Update stdlib and concat to 6.1.0 both
[mirror/dsa-puppet.git] / 3rdparty / modules / stdlib / lib / puppet / parser / functions / any2bool.rb
index 17612bf..c4b20d6 100644 (file)
@@ -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