марионетка: объединение списков хэшей?

Если у меня есть класс марионетки, который получает хеш-переменную, и я хочу предоставить значения по умолчанию для некоторых ключей в хэш-переменной я могу просто использовать хеш-слияние ( $ 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

Есть ли способ сделать это в манифесте марионетки?

0
задан 25 August 2017 в 00:13
1 ответ

Это оказалось проще, чем я думал. Если у меня есть:

$defaults = {
  field1 => default1,
  field2 => default2,
  field3 => default3
}

Я могу применить эти значения по умолчанию к списку хешей, подобных этому

$finalconfig = $config.map |cfg| {
  $defaults + $cfg
}
0
ответ дан 5 December 2019 в 07:28

Теги

Похожие вопросы