4 module Puppet::Parser::Functions
5 newfunction(:pick_default, :type => :rvalue, :doc => <<-DOC
7 This function will return the first value in a list of values that is not undefined or an empty string.
10 This function is similar to a coalesce function in SQL in that it will return
11 the first value in a list of values that is not undefined or an empty string
12 If no value is found, it will return the last argument.
14 Typically, this function is used to check for a value in the Puppet
15 Dashboard/Enterprise Console, and failover to a default value like the
18 $real_jenkins_version = pick_default($::jenkins_version, '1.449')
21 The value of $real_jenkins_version will first look for a top-scope variable
22 called 'jenkins_version' (note that parameters set in the Puppet Dashboard/
23 Enterprise Console are brought into Puppet as top-scope variables), and,
24 failing that, will use a default value of 1.449.
26 Contrary to the pick() function, the pick_default does not fail if
27 all arguments are empty. This allows pick_default to use an empty value as
31 raise 'Must receive at least one argument.' if args.empty?
33 args = args[0..-2].compact
35 args.delete(:undefined)