mirror of
https://github.com/ansible-collections/community.general.git
synced 2026-05-08 06:12:51 +00:00
adds support for null values to the ternary filter (#45303)
* adds support for null values to the ternary filter
This change adds a third optional argument to the ternary filter to
handle a null value. If the third option is specified null and false
are treated differently.
For instance, take the following example:
{{ enabled | ternary('no shutdown', 'shutdown') }}
If enabled == True, then 'no shutdown' is used.
If enabled in (False, None), then 'shutdown' is used.
With this change the following is possible:
{{ enabled | ternary('no shutdown', 'shutdown', omit) }}
If enabled == True, then 'no shutdown'
If enabled == False, then 'shutdown'
If enabled == None, then omit
* update documentation with example of filter
* update filter documentation example per comments
* fix logic error in user_guide example
This commit is contained in:
@@ -178,9 +178,11 @@ def regex_search(value, regex, *args, **kwargs):
|
||||
return items
|
||||
|
||||
|
||||
def ternary(value, true_val, false_val):
|
||||
def ternary(value, true_val, false_val, none_val=None):
|
||||
''' value ? true_val : false_val '''
|
||||
if bool(value):
|
||||
if value is None and none_val is not None:
|
||||
return none_val
|
||||
elif bool(value):
|
||||
return true_val
|
||||
else:
|
||||
return false_val
|
||||
|
||||
Reference in New Issue
Block a user