yaml on ruby

rubyist magazineをみてyamlを触ってみた。
こんな感じのファイルを、(実際には、-で始まる行以外はspaceでindentされてる。preがうまくできないの)

  • name: R303

bofname: AD
starttime:
endtime:
location: Plenary

  • name: R304

bofname: AD
starttime: 10:30
endtime: 11:30
location: Plenary
こんな感じのスクリプトに食わせると
#!/usr/bin/env ruby

require 'yaml'

str = ARGF.read()
data = YAML.load(str)
p data
こんな感じででてきます。
a = [{"name"=>"R303",
"endtime"=>nil,
"starttime"=>nil,
"bofname"=>"AD",
"location"=>"Plenary"},
{"name"=>"R304",
"endtime"=>690,
"starttime"=>630,
"bofname"=>"AD",
"location"=>"Plenary"}]

ほへー。簡単。
また、逆に
a = [{"name"=>"R303",
"endtime"=>nil,
"starttime"=>nil,
"bofname"=>"AD",
"location"=>"Plenary"},
{"name"=>"R304",
"endtime"=>690,
"starttime"=>630,
"bofname"=>"AD",
"location"=>"Plenary"}]
print a.to_yaml
とかすると、最初のyamlファイルが吐き出される。

データを簡単にファイルに格納したいときにはいいかも。