Ruby 2.4.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Moduleクラス > extend_object (private)

instance method Module#extend_object

extend_object(obj) -> object[permalink][rdoc]

Object#extend の実体です。オブジェクトにモジュールの機能を追加します。

Object#extend は、Ruby で書くと以下のように定義できます。

def extend(*modules)
  modules.reverse_each do |mod|
    # extend_object や extended はプライベートメソッドなので
    # 直接 mod.extend_object(self) などとは書けない
    mod.__send__(:extend_object, self)
    mod.__send__(:extended, self)
  end
end

extend_object のデフォルトの実装では、self に定義されて いるインスタンスメソッドを obj の特異メソッドとして追加します。

[PARAM] obj:
self の機能を追加するオブジェクトを指定します。
[RETURN]
obj で指定されたオブジェクトを返します。

[SEE_ALSO] Module#extended