クラスの中にモジュールをインクルードする

広告

今度はモジュールの2番目の使い方としてクラスの中にインクルードする方法を確認します。(Rubyではクラスの中にモジュールをインクルードして使用することを「Mix-in」と読んでいるようです)。

例として次のようなモジュールを作成します。

module SuuchiModule
  def minValue(x, y)
    if x < y
      return x
    else
      return y
    end
  end
end

クラスの中でモジュールを利用できるようにするにはクラスの中に次のように記述します。

include モジュール名

インクルードされたモジュールはクラス内のインスタンスメソッドと同じように実行する事が出来ます。例えば次のようなクラスを作成してみます。

class Test
  include SuuchiModule

  def dispValue(x, y)
    min = minValue(x, y)
    print("2つの値", x, "と", y, "の中で小さい値は", min, "です¥n")
  end
end

このクラスでは「SuuchiModule」モジュールをインクルードしていますのでモジュールの中に定義された「minValue」メソッドをクラス内で実行したりクラスのオブジェクトから実行することが出来るようになります。

サンプルプログラム

では実際にサンプルプログラムを作成してみます。

ModuleTest3.rb

module SuuchiModule
  def minValue(x, y)
    if x < y
      return x
    else
      return y
    end
  end
end

class Test
  include SuuchiModule

  def dispValue(x, y)
    min = minValue(x, y)
    print("2つの値", x, "と", y, "の中で小さい値は", min, "です¥n")
  end
end

test = Test.new
test.dispValue(10, 8)

上記を実行すると次のように表示されます。

モジュールを関数のように使う

( Written by Tatsuo Ikura )