From: Daniel Schierbeck Date: 2006-06-15T20:19:59+09:00 Subject: Re: Why the lack of mixing-in support for Class methods? This should fix the recursion issue: class Module def class_extension(&block) @class_extension ||= Module.new do def self.included(mod); end end @class_extension.module_eval(&block) if block_given? @class_extension end def included(mod) mod.extend(class_extension) if mod.instance_of? Module unless mod.instance_variables.include? "@class_extension" mod.send(:class_extension) end other = mod.instance_variable_get(:@class_extension) other.send(:include, class_extension) end end end I'm sure there are more issues, but I'll fix them as they come. Cheers, Daniel