ruby yaml не удалять заголовок% YAML 1.1 - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть массив в массиве с именем ruby, я добавил значение в файл yaml, но после в file.yml он удаляет меня% YAML 1.1, поэтому я не буду

yaml_string = File.read "file.yaml"
data = YAML.load yaml_string
array.each do |value|
        data["title"] <<"- "+value+"\n"
end
output = YAML.dump data
File.write("file.yaml", output)

перед выполнением,заголовок присутствует, но после выполнения он удаляет его (% YAML 1.1) и все строки комментируют #, поэтому я не буду

1 Ответ

0 голосов
/ 27 сентября 2018

Я думаю, что-то вроде этого вы пытаетесь сделать.

Я предполагаю, что ваш массив заголовков yaml совпадает с вашим объектом массива.

В противном случае вы можете просто использовать что-то вроде Enum # with_index , если вы просто хотите отобразить номер массива yaml на текст.

require 'psych'
filename = "sample_yaml.yml"
array = [0, 1, 2, 3]

if File.exists?(filename)
    puts "File exists. :) Parsing the yaml file."
    yaml = Psych.load_file(filename)
    array.each do |value|
        yaml[value]["title"] << " - #{value}" # find the title that matches the index number of array
    end
else
    raise ArgumentError, "bad file name"
end
puts "Outputting to reformatted yaml file"
File.open("reformatted_file.yaml", 'wb') {|f| f.write "%YAML 1.1\n" + Psych.dump(yaml)}

при условии, что файл yaml подобен

---
- title: zero
- title: one
- title: two
- title: three

Выходы

---
- title: zero - 0
- title: one - 1
- title: two - 2
- title: three - 3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...