Ruby:为每个子类执行代码

时间:2013-08-22 20:43:38

标签: ruby inheritance metaprogramming subclass

鉴于父类有没有办法在加载时为每个子类插入代码?即

鉴于:ParentClass,如何插入代码如下:

class ChildClass < ParentClass
   execute_function

   ...
end

适用于ParentClass的所有子类?

1 个答案:

答案 0 :(得分:14)

ParentClass覆盖继承的方法

class ParentClass
   def self.inherited(subclass)
      execute_function
      super
   end
   ...
end

请参阅:http://ruby-doc.org/core-2.0/Class.html#method-i-inherited