Update puppetlabs/stdlib module
[mirror/dsa-puppet.git] / 3rdparty / modules / stdlib / lib / puppet / parser / functions / clamp.rb
index c4503fe..cbc67dc 100644 (file)
@@ -1,12 +1,14 @@
 #
 # clamp.rb
 #
-
 module Puppet::Parser::Functions
-  newfunction(:clamp, :type => :rvalue, :arity => -2, :doc => <<-EOS
+  newfunction(:clamp, :type => :rvalue, :arity => -2, :doc => <<-DOC
     Clamps value to a range.
-    EOS
-  ) do |args|
+
+    Note: From Puppet 6.0.0 this can be done with only core Puppet like this:
+      [$minval, $maxval, $value_to_clamp].sort[1]
+    DOC
+             ) do |args|
 
     args.flatten!
 
@@ -15,15 +17,15 @@ module Puppet::Parser::Functions
     # check values out
     args.each do |value|
       case [value.class]
-        when [String]
-          raise(Puppet::ParseError, "clamp(): Required explicit numeric (#{value}:String)") unless value =~ /^\d+$/
-        when [Hash]
-          raise(Puppet::ParseError, "clamp(): The Hash type is not allowed (#{value})")
+      when [String]
+        raise(Puppet::ParseError, "clamp(): Required explicit numeric (#{value}:String)") unless value =~ %r{^\d+$}
+      when [Hash]
+        raise(Puppet::ParseError, "clamp(): The Hash type is not allowed (#{value})")
       end
     end
 
     # convert to numeric each element
     # then sort them and get a middle value
-    args.map{ |n| n.to_i }.sort[1]
+    args.map { |n| n.to_i }.sort[1]
   end
 end