我必须仅使用ruby core或stdlib中提供的工具创建应用程序。 YAML或SQLite是否带有红宝石?有哪些其他工具可以让我将数据存储到文件中?它们的优点和缺点是什么?
答案 0 :(得分:5)
Ruby的stdlib很深。也许太深了。我知道sqlite不在那里,但我想到了什么。这是我发现的......
stdlib中最多有4个不同的简单数据库:
#to_s
或#inspect
来静默破坏它们。我现在可能会将PStore
用于小事。 SQLite可能更好,但PStore无疑更简单,所以如果工作量足够小就有意义。
您也可以使用序列化。 Marshal
将转储实际的ruby对象及其数据。 YAML
也可以这样做。使用JSON
/ YAML
/ CSV
,您可以精确控制数据的格式。所有这些都可以与File
一起使用,将其输出写入文件。
答案 1 :(得分:1)
你可以使用ruby的stdlib CSV
库来存储任何数据库数据。其格式非常有用,用于存储,导出和导入DB数据。请参阅有关CSV here的文档。例如,只需:
require 'csv'
# save
CSV.open("file.csv", "wb") do |csv|
csv << ["row", "of", "CSV", "data"]
csv << ["another", "row"]
...
end
#load
CSV.foreach("file.csv") do |row|
row # => ["row", "of", "CSV", "data"]
...
end
答案 2 :(得分:0)
File.open 'local.rbdb', 'w+' do |f|
f.write JSON.generate(write_target)
End
以典型方式构建write_target
数据,然后使用JSON作为存储格式。