Я думаю, что-то вроде этого вы пытаетесь сделать.
Я предполагаю, что ваш массив заголовков 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