From: Intransition Date: 2010-02-13T12:58:07+09:00 Subject: Re: Is there a way to get a method to always run at the end of any descendent's initialize method? Or something like: require 'facets/kernel/as' class MyClass   class << self alias _new new     def new       instance = _new ancestors.reverse_each do |anc| if anc.instance_methods(false).include?(:preinitialize)       instance.as(anc).preinitialize end end     end   end end Then define #preinitialize at any level you wish. (Note this is off the top of my head so it may need tweaking to run).