モジュール
1
2
module TestModule def testMethod puts 1 end def testMethod2 puts 2 end module_function :testMethod public :testMethod end class Test include TestModule end TestModule.testMethod test = Test.new test.testMethod2
モジュールという機能を使用することで、同じ内容のクラスメソッドが複数あるときに何度も定義する必要がなくなります。
の形式でモジュールを定義することができ、
クラス内で
とすることで、モジュールで定義したメソッドを埋め込むことができます。
また、モジュールで定義したメソッドは
メソッド内に
の形式で記入することでクラス外から
の形式で呼び出すことができます。
module_functionで設定したメソッドは、クラス内で読み込んだ時にprivateとなるので、アクセス装飾子を変更したいときは上の例のように
の形式で記入してください。
module モジュール名
メソッドの定義
end
メソッドの定義
end
の形式でモジュールを定義することができ、
クラス内で
include モジュール名
とすることで、モジュールで定義したメソッドを埋め込むことができます。
また、モジュールで定義したメソッドは
メソッド内に
module_function :メソッド名
の形式で記入することでクラス外から
モジュール名.メソッド
の形式で呼び出すことができます。
module_functionで設定したメソッドは、クラス内で読み込んだ時にprivateとなるので、アクセス装飾子を変更したいときは上の例のように
アクセス装飾子 :メソッド名
の形式で記入してください。