DBを閉じるetcがきちんとされることを保証したいが、RubyにはC++っぽいデストラクタがあるのかよく分からなかったので調べてみた。こんな感じで、できるっぽい。
class Bar attr_accessor :hoge def Bar.callback(file) proc { puts "bar" puts file } end def initialize @hoge = "aaaa" ObjectSpace.define_finalizer(self, Bar.callback(@hoge)) end end Bar.new GC.start
わーい。
/Users/syou6162/ruby% ruby gc.rb bar aaaa