以下を含む YAML ファイルがあります。
cat:
name: Cat
description: catlike reflexes
dog:
name: Dog
description: doggy breath
私はそれを解析し、説明を次のように分割したいと思いkey1
ますkey2
:
cat:
name: Cat
description: catlike reflexes
info:
key1: catlike
key2: reflexes
dog:
name: Dog
description: doggy breath
info:
key1: doggy
key2: breath
しかし、何らかの理由で、これを正しく行うことができません。これまでに試したのは、以下のコードのバリエーションであり、複雑すぎると思います。
# to get the original file's data
some_data = YAML.load(File.open("#{Rails.root}/config/some_data.yml"))
new_data = some_data.collect do |old_animal|
animal = old_animal.second
if animal && animal["description"]
new_blocks = Hash.new
blocks = animal["description"].split(" ")
new_blocks["key1"] = blocks.first
new_blocks["key2"] = blocks.second
animal["info"] = new_blocks
end
old_animal.second = animal
old_animal
end
# to write over the original file
File.write("#{Rails.root}/config/some_data.yml", new_data.to_yaml)