Я пытаюсь преобразовать хэш-объект ruby в формат YAML, используя YAML.dump (obj), но получаю неправильный отступ даже после использования параметров дампа.
У меня ниже исполняемый скрипт ruby:
#!/usr/bin/ruby
require "yaml"
require "erb"
context_path = ARGV[0]
context = YAML.load_file(context_path)['context']
def get_yaml(obj)
YAML.dump( obj['imports']['external_repositories']['credentials'] ).sub(/.*?\n/,'')
end
Значение - obj['imports']['external_repositories']['credentials']
равно
{"iacbox"=>{"basic"=>{"name"=>"", "password"=>""}}, "nexus"=>{"basic"=>{"name"=>"cpreader", "password"=>"swordfish"}}}
Примечание: я использовал метод sub для удаления "---" в начале вывода
Шаблон ERB вызывает приведенный выше метод get_yaml следующим образом:
credentials:
<%= get_yaml( context ) %>
Выходные данные:
credentials:
iacbox:
basic:
name: ''
password: ''
nexus:
basic:
name: cpreader
password: swordfish
, в то время как я ожидаю вывод в виде:
credentials:
iacbox:
basic:
name: ''
password: ''
nexus:
basic:
name: cpreader
password: swordfish
Как получить ожидаемый вывод из дампа?