Puppet Function: clamp
- Defined in:
- puppet/modules/stdlib/lib/puppet/parser/functions/clamp.rb
- Function type:
- Ruby 3.x API
Overview
Clamps value to a range.
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'puppet/modules/stdlib/lib/puppet/parser/functions/clamp.rb', line 6 newfunction(:clamp, :type => :rvalue, :arity => -2, :doc => <<-EOS Clamps value to a range. EOS ) do |args| args.flatten! raise(Puppet::ParseError, 'clamp(): Wrong number of arguments, ' + 'need three to clamp') if args.size != 3 # 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})") end end # convert to numeric each element # then sort them and get a middle value args.map{ |n| n.to_i }.sort[1] end |