Timothy Hunter wrote:

> Generally speaking there is no equivalent. Like Perl, Ruby's garbage 
> collection cleans up unreferenced objects without any intervention. If 
> you want do something to clean up an external resource at the point when 
> you're finished using the instance, the cooresponding Ruby idiom is to 
> use a block. Check out http://www.rubygarden.org/ruby?RubyIdioms.

There is ObjectSpace.define_finalizer(obj) { ... }, but it should 
generally be avoided as there is trouble when the block references the 
object and that it is usually bad practice.

Using free callbacks in C extensions makes sense, but if you find 
yourself using destructors in Ruby you are usually doing something odd.