extend

extend

ri

 ---------------------------------------------------------- Object#extend
      obj.extend(module, ...)    => obj
 ------------------------------------------------------------------------
      Adds to _obj_ the instance methods from each module given as a
      parameter.
 
         module Mod
           def hello
             "Hello from Mod.\n"
           end
         end
      
         class Klass
           def hello
             "Hello from Klass.\n"
           end
         end
      
         k = Klass.new
         k.hello         #=> "Hello from Klass.\n"
         k.extend(Mod)   #=> #<Klass:0x401b3bc8>
         k.hello         #=> "Hello from Mod.\n"
 

refe

 Object#extend
 --- extend(module ... )
 
     引数で指定したモジュールで定義されているメソッドが self の
     特異メソッドとして追加されます。あるオブジェクトだけにモジュール
     の機能を追加したいときに使用します。
 
         module Foo
           def a
             'ok'
           end
         end
 
         obj = Object.new
         obj.extend Foo
         p obj.a         #=> "ok"
 
     extend の機能は、「特異クラスに対する include」
     と言い替えることもできます。
 
     ruby 1.7 feature: 引数に複数のモジュールを指定した場合、最後
     の引数から逆順に extend を行います。
 

* はてなダイアリーキーワード:extend