読者です 読者をやめる 読者になる 読者になる

opamp_sando's blog

クソザコが割りと適当なことを書くためにある備忘録です。あとたまに普通の日記も書きます

Rubyのオブジェクトの永続性...

ということで借りてきたRuby本に書いてたことによるとRubyではオブジェクトの状態をファイルに記憶し、復元できるような機能があるらしい。永続化(persist)とかいうらしい。

ということで適当にクラスをつくって実際にやってみた...

こんな具合なクラスを定義して 次のようにコードを書いてみる...

#!/usr/bin/ruby
d = Dir.pwd

require d + "/ConterClass" #さっきのクラスを書いたファイルをrequier

con = Counter.new
con.count_up
con.count_print # 1が出力される. 

File.open("filename","wb") do |file|
 Marshal.dump(con,file)
end

さっきのカウンターは0からcount_upを呼ばれると1ずつカウントするクラス...
なので con = Counter.new した時点では 0
その後count_upして 値を 1 にし それをMarshal.dumpを使ってファイルに書きこむ。

これでfilenameなファイルが出力されている。
今度はこれを読み込んでconを復元してみる。

これを実行すると

= 1

となって終了する。 こんな具合にちゃんと復元できていることがわかる。
ちなみに最初に nil で初期化しておかないとおかしなことになった。

ということで今回はこんなもんかな

Firefox ブラウザ無料ダウンロード