Ruby, モジュールのインクルード(include と extend)

Ruby では、モジュールのインクルードのために、Module#include または Kernel#extend を使います。

以下に、これらの使い方をまとめます。

モジュール M にモジュール M1 をインクルードする方法

module M
  include M1
end
M.module_eval do
  include M1
end

クラス C にモジュール M1 をインクルードする方法

class C
  include M1
end
C.class_eval do
  include M1
end

オブジェクト obj の特異クラスにモジュール M1 をインクルードする方法

class << obj
  include M1
end
obj.singleton_class.class_eval do
  include M1
end
obj.extend M1