独学Ruby -基礎④-
Contents
モジュールの提供するメソッドは「モジュール名.メソッド名」で参照。
外部に公開するために、module_functionを使う。
module MyModule # 定数の定義 Version = "1.0" def hello(name) print "Hello" , name, "\n" end # helloモジュールをモジュール関数として公開する module_function :hello end
使用方法1
- モジュール名:: でアクセス
require_relative "module_sample" p MyModule::Version MyModule::hello("Hoge")
使用方法2
- includeする
require_relative "module_sample" include MyModule p Version hello("Hoge")
Mix-inによる機能提供
モジュールをクラスに混ぜ合わせることをMix-inという。
クラス定義の中でincludeするとモジュールを取り込むことができる。
module MyModule # 提供したいメソッド def hello() print "Hello", "\n" end end class MyClass1 # モジュールを取り込む include MyModule end class MyClass2 # モジュールを取り込む include MyModule end
呼出し元。
require_relative "mix-in_sample" obj1 = MyClass1.new() obj1.hello() obj2 = MyClass2.new() obj2.hello()
以上。