ルビィ:自己を拡張する
概要
Ruby では、extend の基本的な考え方を理解しました。しかし、コードのこの部分では何が起こっているのでしょうか?具体的には、extend は何をするのでしょうか?これはインスタンス メソッドをクラス メソッドにするための単なる便利な方法なのでしょうか?なぜ最初からクラスメソッドを指定せずにこのようにするのでしょうか?
module Rake
include Test::Unit::Assertions
def run_tests # etc.
end
# what does the next line do?
extend self
end
解決策
インスタンス メソッドをクラス メソッドにするには便利な方法です。ただし、より効率的なシングルトンとして使用することもできます。