オブジェクトにメソッドを取り込む
特定のオブジェクトにだけ振る舞いを与える
モジュールに定義されたメソッドはextendメソッドを用いて、オブジェクトの特異メソッドとして取り込むことができる。
module Greetable def greet_to(name) puts name end end o = Object.new o.extend Greetable o.greet_to "hoge" #=> hoge
oというオブジェクトに対してGreetableモジュールをextendします。
クラス定義内でモジュールをextendすると、メソッドをクラスメソッドとして取り込むことができる。
class Alice extend Greetable end Alice.greet_to "hoge" #=> hoge