1

以下を含む 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)
4

1 に答える 1