方法A:方法は、修正モジュールを含みます
モジュールバーベキューは DEF self.included(ベース) base.send:含む、InstanceMethodsの base.extendのクラスメソッドの エンド モジュールInstanceMethodsの デフM1 「インスタンスメソッド」 末端 エンド モジュールクラスメソッド DEF M2は 「このクラスのメソッドである」 末端 端 端 クラスTest バーベキュー含む 端を
テスト:
IRB(メイン):030:0> Test.m2 => "これはクラスメソッドである" (メイン)IRB:031:0> Test.m1 :トレースバック(最新の呼び出し最後の) テストのためのNoMethodError(未定義のメソッド`M1' :クラス) IRB(メイン):032:0> Test.new.m1 => "インスタンスメソッド"
方法2:activesupportの::懸念をもって
必要「active_support /懸念」 モジュールBbq2はactivesupportの::懸念広がる デフM1 「インスタンスメソッド」 エンド class_methodsが行う DEF平方メートル 「これはクラスメソッドである」 エンド エンド エンド にTest2クラス Bbq2の含ま 終わりを
テスト:
IRB(メイン):019:0> Test2.m2 => "これはクラスメソッドである" IRB(メイン):020:0> Test2.m1 トレースバック(最新の呼び出しの最後): NoMethodErrorにTest2のための(未定義のメソッド`M1' :クラス) IRB(メイン):021:0> Test2.new.m1 => "インスタンスメソッド"