エンジニアのソフトウェア的愛情

または私は如何にして心配するのを止めてプログラムを・愛する・ようになったか

特定のモジュールをインクルードしているクラスを抽出する

探せばもっとよい方法があるかもしれない。

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.