次のYAML構造があるとしましょう。
books:
book_one: "Some name"
book_two: "Some other name"
次のようにファイルをロードすると、次のようになります。
f = YAML.load_file("my.yml")
book_one
次のようにアクセスできますf["books"]["book_one"]
。books.book_one
のような文字列を受け入れて同じ値を返すことができるビルトインはありますか?
編集:これは私がこれまでに持っているものであり、それはうまくいくようです:
...
@yfile = YAML.load_file("my.yml")
...
def strings_for(key)
key_components = key.split(".")
container = @yfile
key_components.each_with_index do |kc,idx|
if container && container.kind_of?(Hash) && container.keys.include?(kc)
container = container[kc]
else
container = nil
end
end
container
end