YAML 数据库
有关以 YAML 格式保存和加载数据的稍微复杂的应用程序的示例,你可能需要查看 cd_db.rb。这里实现了一个简单的 CD 数据库。它定义了三种类型的 CD 对象 - 一个基本 CD,其中包含有关名称,艺术家和轨道数量的数据以及两个更专业的后代类 - PopCD,它添加了关于类型(例如“摇滚”或“乡村”)的数据以及 ClassicalCD 添加了导师和作曲家的数据。
当程序运行时,用户可以输入数据以创建这三种类型中的任何一种的新 CD 对象。还有一个将数据保存到磁盘的选项。随后运行应用程序时,将重新加载现有数据。
数据本身在代码中被组织得非常简单(甚至微不足道!),在创建对象本身之前将每个对象的数据读入数组。整个 CD 对象数据库被保存到全局变量 $cd_arr
中,并将其写入磁盘并使用 YAML 方法重新加载到内存中:
cd_db.rb
def saveDB
File.open( $fn, 'w' ) {
|f|
f.write($cd_arr.to_yaml)
}
end
def loadDB
input_data = File.read( $fn )
$cd_arr = YAML::load( input_data )
end
在现实世界的应用程序中,我确信你希望创建一些更优雅的数据结构来管理你的 Dolly Parton 集合!