Ruby Tips!

RubyのTipsを紹介します

PStoreでオブジェクトをファイルに保存する

PStoreはRubyオブジェクトを外部ファイルに保存するためのクラスである。トランザクションの仕組みを持ち、マルチプロセスで同じファイルにアクセスしてもデータが壊れないという特徴がある。

ファイルへのアクセスは、まずPStoreオブジェクトをファイルを指定して生成し、transactionメソッドのブロック内で行う。

PStoreはハッシュライクなインタフェースを持っている。あるキーに対して任意のオブジェクトを格納することができる。オブジェクトはMarshalを使って自動的にシリアライズ、デシリアライズされる。

以下はPStoreでファイルにオブジェクトを保存する例である。

require 'pstore'
db = PStore.new('/tmp/pstore')
db.transaction{|pstore|
	pstore["foo"] = [1, 2, 3]
}

以下はPStoreで保存したオブジェクトをファイルから復元する例である。

require 'pstore'
db = PStore.new('/tmp/pstore')
db.transaction{|pstore|
	p pstore["foo"] #=> [1, 2, 3]
}