Я просто пытаюсь понять, существует ли разница в том, как мы определяем структуру атрибутов в файлах атрибутов поваренной книги.Структура атрибутов шеф-повара
Ниже приведены два примера:
// style-A
default['my_cookbook']['name'] = 'something'
default['my_cookbook']['version'] = '0.1.0'
// style-B
node.default.my_cookbook = {
:name => 'something',
:version => '0.1.0'
}
Причина, я задаю этот вопрос есть, в предыдущих версиях повара я вроде помню стиль-A настоятельно рекомендуется, и все общественные поваренные следовать этому стилю. Я также вспоминаю некоторые проблемы со стилем-B, когда я пытался переопределить атрибуты из роли или среды, я бы придумал странное поведение, которое заменяет всю структуру хэша, если я попытаюсь переопределить один атрибут в нем.
Я не вижу эту ошибку сейчас, и я нахожусь в последней версии 11 шеф-повара, но просто задавался вопросом, не стоит ли мне об этом беспокоиться. Я стараюсь соответствовать всем моим кулинарным книгам с одним стилем, и мне нужен совет, как я его структурирую. Имеет ли значение в этот момент?
Chef использует Mash, а не hash. Не уверен, что он автоматически конвертируется для вас или нет. Я бы предложил = Mash.new ({you hash}) лично. Но я не могу клясться в этом. –
Он делает, основным недостатком между A и B был доступ к методу в переопределениях, который не был переопределен из-за метода, возвращающего значение и не устанавливающего его. 'default ['test'] = {: name => 'test1'}' является совершенным и работает. Просто оставайтесь на символьном или строковом атрибуте, чтобы избежать отказа метода при переопределении. – Tensibai