的YAML documentation不包括它的方法非常好,但是嗎? ay
底層實現是libyaml wrapper Psych。
作爲YAML基礎的Psych documentation涵蓋了閱讀,解析和發射YAML。
這裏的基本流程:
require 'yaml'
foo = {"file.yaml" => ["extra","intra","lateral"]}
bar = foo.to_yaml
# => "---\nfile.yaml:\n- extra\n- intra\n- lateral\n"
而這裏的產生,系列化bar
變量是什麼樣子,如果寫的:
puts bar
# >> ---
# >> file.yaml:
# >> - extra
# >> - intra
# >> - lateral
這是一個YAML解析器需要的格式:
baz = YAML.load(bar)
baz
# => {"file.yaml"=>["extra", "intra", "lateral"]}
在這一點上,散列已經從Ruby散列中往返,到YAML序列化的字符串,回到Ruby哈希。
寫YAML的文件很容易使用Ruby的File.write
方法:
File.write(foo.keys.first, foo.values.first.to_yaml)
或
foo.each do |k, v|
File.write(k, v.to_yaml)
end
這將導致一個名爲 「file.yaml」 文件,其中包含:
---
- extra
- intra
- lateral
要讀取和解析文件,請使用YAML的load_file
方法。
foo = YAML.load_file('file.yaml')
# => ["extra", "intra", "lateral"]
「How do I parse a YAML file?」可能是使用的,以及在本頁面右側的其他「相關」鏈接。
這是不明確的,你要做什麼。 'trg :: azimuth:'從哪裏來?它不在你的示例散列中,並且在任何地方都沒有解釋。 – 2014-09-25 17:41:27
trg :: azimuth:是一個靜態值,我期望在yaml中看到不會改變 – 2014-09-26 05:23:21