Как вывести отсортированный хэш в шаблоне ruby ​​

Я создаю файл конфигурации для одного из наших встроенных приложений. По сути, это файл json. У меня много проблем с получением puppet/ruby 1.8 для вывода хэша/json каждый раз одинаково.

В настоящее время я использую

<%= require "json"; JSON.pretty_generate data %>

Но при выводе удобочитаемого контента он не гарантирует каждый раз один и тот же порядок. Это означает, что puppet будет часто отправлять уведомления об изменениях для одних и тех же данных.

Я также пробовал

<%= require "json"; JSON.pretty_generate Hash[*data.sort.flatten] %>

Каждый раз будут генерироваться одни и те же данные/порядок. Проблема возникает, когда данные имеют вложенный массив.

data => { beanstalkd => [ "server1", ] }

становится

"beanstalkd": "server1",

вместо

"beanstalkd": ["server1"],

Я боролся с этим в течение нескольких дней, поэтому мне нужна помощь

7
задан Jason 26 June 2017 в 15:50
поделиться