5 module Puppet::Parser::Functions
6 newfunction(:abs, :type => :rvalue, :doc => <<-EOS
7 Returns the absolute value of a number, for example -34.56 becomes
8 34.56. Takes a single integer and float value as an argument.
12 raise(Puppet::ParseError, "abs(): Wrong number of arguments " +
13 "given (#{arguments.size} for 1)") if arguments.size < 1
17 # Numbers in Puppet are often string-encoded which is troublesome ...
18 if value.is_a?(String)
19 if value.match(/^-?(?:\d+)(?:\.\d+){1}$/)
21 elsif value.match(/^-?\d+$/)
24 raise(Puppet::ParseError, 'abs(): Requires float or ' +
25 'integer to work with')
29 # We have numeric value to handle ...
36 # vim: set ts=2 sw=2 et :