Замените несколько строк, сохранив интервал и отступ с Ruby - PullRequest
0 голосов
/ 17 марта 2020

Фон

У меня есть следующий фрагмент в файле composer.json:

"extra": {
    "magento-force": "override"
}

Используя Chef, я бы хотел использовать ruby_block для замены этого содержимого на:

"extra": {
    "magento-force": "override",
    "patches-file": "m2-hotfixes/patches.json"
}

Вопрос

Какой лучший способ добиться этого, используя ruby, чтобы я сохранил правильные отступы и интервалы, и т.д. c? gsub примеры, которые я видел, приводят к тому, что все в одной строке, а это не то, что я хочу. (Например, если бы я искал: /"magento-force/": /"override"/, а затем заменил его на /"magento-force/": /"override"/, /"patches-file/": /"m2-hotfixes/patches.json/", я бы, вероятно, получил что-то вроде:

"extra": {
    "magento-force": "override", "patches-file": "m2-hotfixes/patches.json"
}

1 Ответ

0 голосов
/ 17 марта 2020

Оказывается, лучший способ достичь именно той задачи, которую я хочу, - это использовать composer сам. Использование этого в ресурсе execute дает мне именно то, что мне нужно:

config extra.patches-file m2-hotfixes/patches.json

Тем не менее, я не буду считать это чистым ответом на поставленный вопрос.

...