Issue #22574 has been updated by Henrik Lindberg.

Status changed from Unreviewed to In Topic Branch Pending Review

----------------------------------------
Feature #22574: the loookup() function should support default value (and 
possibly other options)
https://projects.puppetlabs.com/issues/22574#change-97890

* Author: Henrik Lindberg
* Status: In Topic Branch Pending Review
* Priority: Normal
* Assignee: 
* Category: databinding
* Target version: 
* Affected Puppet version: 
* Keywords: databinding lookup default
* Branch: https://github.com/puppetlabs/puppet/pull/1930
----------------------------------------
The lookup function currently has the signature(s)
<pre>
lookup(key)
lookup(key, type)
lookup(...) lambda
</pre>

For people not using future parser there is no good way to handle default 
values. And when future parser is used it is a bit klunky having
to write the following:

<pre>
$a = lookup(key) {|$x| $x ? { undef => 'when missing', default => $x }}
</pre>

It has been suggested that options can be passed to the function (i.e. a hash), 
and/or default given as the third parameter.
Propose the signature is changed as follows:

<pre>
lookup(key)
lookup(key, type)
lookup(...) lambda

lookup(key, type, default_value)
lookup(option_hash)
lookup(key, option_hash)
</pre>

The option hash could accept:
* `default` - the expression to use if nothing is found
* `type` - the type to assert
* `first_found` - a single key, or an array of keys to lookup in turn
</pre>




-- 
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://projects.puppetlabs.com/my/account

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Bugs" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/puppet-bugs.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to