Rubyについて Part 27
■ このスレッドは過去ログ倉庫に格納されています
0644デフォルトの名無しさん
2007/07/02(月) 22:54:35GVDB = '~/.irb.globals' unless defined? GVDB
require 'pstore'
def save_var(v)
trace_var v do |value|
PStore.new(File.expand_path(GVDB)).transaction do |db|
db[v] = Marshal.dump(value)
end
end
end
gvdb_file = File.expand_path(GVDB)
if File.exists?(gvdb_file)
PStore.new(gvdb_file).transaction do |db|
db.roots.each do |gv|
eval "#{gv} = Marshal.load(db[gv])"
save_var gv
end
end
end
みたいに書いて(エラー処理とかサボり)、
$ irb
irb> save_var :$x
irb> $x = [ 1, 2, 3, 4, 5]
$ irb
irb> $x
=> [ 1, 2, 3, 4, 5]
これだと代入のたびに保存されるので、保存はKernel.at_exitで
global_variablesにたいしてイテレートするのがいいのかなぁ。
■ このスレッドは過去ログ倉庫に格納されています