探せばもっとよい方法があるかもしれない。
module Hoge def hoge puts "I'm #{self.class}. I'm including Hoge." end end class Foo include Hoge end class Bar include Hoge end class Baz < Bar end ObjectSpace.each_object(Class).select {|klass| klass.included_modules.include? Hoge }.each do |class_including_hoge| class_including_hoge.new.hoge end
$ ruby hoge.rb I'm Baz. I'm including Hoge. I'm Bar. I'm including Hoge. I'm Foo. I'm including Hoge.