class Foo def initialize puts "*** constructor" end end def scopeme foo = Foo.new ObjectSpace.define_finalizer(foo, proc { puts "*** pseudo-destructor" }) end scopeme puts "Foo was out-scoped." GC.start puts "Gc was run."