保存 YAML 数据
dump
方法提供了另一种方便的方式将 Ruby 对象转换为 YAML 格式。最简单的是,它会将你的 Ruby 数据转换为 YAML 格式并将其转储为字符串:
yaml_dump1.rb
arr = ["fred", "bert", "mary"]
yaml_arr = YAML.dump( arr ) # yaml_arr is now: "--- \n- fred\n- bert\n- mary\n"
更有用的是,dump
方法可以接收第二个参数,它是某种 IO 对象,通常是文件(file)。你可以打开文件并将数据转储给它…
yaml_dump2.rb
f = File.open( 'friends.yml', 'w' )
YAML.dump( ["fred", "bert", "mary"], f )
f.close
…或者你可以打开文件(或其它类型的 IO 对象)并将其传递到关联的块中:
File.open( 'morefriends.yml', 'w' ){ |friendsfile|
YAML.dump( ["sally", "agnes", "john" ], friendsfile )
}
如果使用块,则退出块时文件将自动关闭,否则应使用 close
方法显式关闭文件。顺便提一下,你也可以以类似的方式使用块来打开文件并读入 YAML 数据:
File.open( 'morefriends.yml' ){ |f|
$arr= YAML.load(f)
}