Если у меня есть класс марионетки, который получает хеш-переменную, и я хочу предоставить значения по умолчанию для некоторых ключей в хэш-переменной я могу просто использовать хеш-слияние ( $ hash1 + $ hash2
) для создания нового класса с желаемыми значениями по умолчанию. Т.е., учитывая:
defaults:
field1: default1
field2: default2
field3: defaul3
myconfig:
field1: val1
field3: val3
Затем $ defaults + $ myconfig
дает мне:
finalconfig:
field1: val1
field2: default2
field3: val3
Но что мне делать, если я хочу сделать то же самое с списком хешей? То есть, если я ввел:
myconfig:
- field1: custom1
field2: custom2
- field1: custom1
field3: custom3
И у меня есть значения по умолчанию, которые выглядят так:
defaults:
field1: default1
field2: default2
field3: default3
Я хочу в итоге получить:
finalconfig:
- field1: custom1
field2: custom2
field3: default3
- field1: custom1
field2: default2
field3: custom3
Есть ли способ сделать это в манифесте марионетки?
Это оказалось проще, чем я думал. Если у меня есть:
$defaults = {
field1 => default1,
field2 => default2,
field3 => default3
}
Я могу применить эти значения по умолчанию к списку хешей, подобных этому
$finalconfig = $config.map |cfg| {
$defaults + $cfg
}