ruby 1.8 feature: PStore の YAML 版です。Marshal.dump したバイナリ形式の 代わりに YAML 形式でファイルに保存します。
require "yaml/store" db = YAML::Store.new("sample.yml") db.transaction do db["hoge"] = {1 => 100, "bar" => 101} end # sample.yml hoge: 1: 100 bar: 101
PStore 同様、ユーザが定義したクラスのオブジェクトを保存することもできます。
require "yaml/store" class Foo attr_accessor :foo end db = YAML::Store.new("sample.yml") db.transaction do f = Foo.new f.foo = 777 db["bar"] = f end # sample.yml bar: !ruby/object:Foo foo: 777