使用纯ruby存储数据的最佳方式,无依赖关系

Mel*_*991 2 ruby

我必须只使用ruby core或stdlib中提供的工具创建一个应用程序.YAML或SQLite是否带有红宝石?有哪些其他工具可以让我将数据存储到文件中?它们的优点和缺点是什么?

Car*_*auf 5

Ruby的stdlib很深.也许太深了.我知道sqlite不在那里,但我想到了什么.这是我发现的......

stdlib中最多有4个不同的简单数据库:

  • PStore - 非常简单的持久哈希.为您处理编组,因此您可以存储红宝石树的树木.纯红宝石溶液.
  • SDBM - 基于C的键/值存储.Ruby随附整个源代码,因此它应该可以跨平台移植.仅限简单的字符串键和值.
  • GDBM - 另一个字符串键/值存储.使用GNU dbm.它的"可枚举"因此它更像哈希.可能不太便携.
  • DBM - 使用Ruby编译的平台上可用的DBM头,因此它可能是几个DBM实现之一(读取:不可移植).另一个字符串只有键/值存储.这是3.与GDBM不同,虽然这个允许你存储非字符串值,并通过调用#to_s或静默破坏它们#inspect.

我现在可能实际上PStore用于小事.SQLite可能更好,但PStore无疑更简单,所以如果工作量足够小就有意义.

您也可以使用序列化.Marshal将转储实际的ruby对象及其数据.YAML也可以这样做.使用JSON/ YAML/ CSV您可以精确控制数据的格式.所有这些都可以用于File将其输出写入文件.