Update puppetlabs/stdlib module
[mirror/dsa-puppet.git] / 3rdparty / modules / stdlib / lib / puppet / parser / functions / max.rb
index 758c42c..4715dcd 100644 (file)
@@ -1,16 +1,22 @@
+#
+# max.rb
+#
 module Puppet::Parser::Functions
-  newfunction(:max, :type => :rvalue, :doc => <<-EOS
+  newfunction(:max, :type => :rvalue, :doc => <<-DOC
     Returns the highest value of all arguments.
     Requires at least one argument.
-    EOS
-  ) do |args|
 
-    raise(Puppet::ParseError, "max(): Wrong number of arguments need at least one") if args.size == 0
+    Note: from Puppet 6.0.0, the compatible function with the same name in Puppet core
+    will be used instead of this function.
+    DOC
+             ) do |args|
+
+    raise(Puppet::ParseError, 'max(): Wrong number of arguments need at least one') if args.empty?
 
     # Sometimes we get numbers as numerics and sometimes as strings.
     # We try to compare them as numbers when possible
-    return args.max do |a,b|
-      if a.to_s =~ /\A-?\d+(.\d+)?\z/ and b.to_s =~ /\A-?\d+(.\d+)?\z/ then
+    return args.max do |a, b|
+      if a.to_s =~ %r{\A-?\d+(.\d+)?\z} && b.to_s =~ %r{\A-?\d+(.\d+)?\z}
         a.to_f <=> b.to_f
       else
         a.to_s <=> b.to_s