Ruby - Rubyで、オブジェクトを保存する

Marshal.dumpとMarshal.loadを使ってオブジェクトを直接ファイルに保存するの。

ただし、pstoreを使う方法も内部的にMarshalを使っているようなので、 pstoreを介さずに直接Marshalを使うことで何か問題が起きるケースがあるのかもしれない。これについては未検証。

クラス側

ファイル名._save(オブジェクト) でファイルに保存、オブジェクト = ファイル名._load でファイルからロードできます。

class String
 def _load
   s = []
   if File.exist?(self) == true
     x = File.read(self)
     s = Marshal.load(x)
   end
   s
 end
 def _save(s)
   str = Marshal.dump(s)
   File.write(self,str)
 end
end

小さいモノならDBとか使うまでもなく書けて便利よ。


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-08-29 (木) 09:49:22