Written by Kasumi

Rubyで定数やメソッドをまとめてmodule化する方法

Rubyで共通の箇所で使う定数やメソッドをまとめて格納・パーツ化する方法を知りたい。

本記事ではmoduleを使ってこの様な悩みを解決。

moduleの概要、実装方法について解説します。

moduleとは?

moduleとは定数やメソッドをまとめる機能の事を言います。

moduleで定義した定数やメソッドをクラスなどで共有する事ができます。

moduleとclassの違い

moduleではclassと違い、継承(親クラスを継承して子クラスを作るなど)インスタンス化(メソッドを実体化)する事が出来ません。

ただしMix-in機能(モジュールを取り込む)を使えば、クラスなどを経由してmoduleで定義したメソッドを呼び出す事ができます。

moduleの使い方

#モジュールを定義
module Greeting
  def introduction(message)
    puts "#{message}。#{@name}です。"
  end
end


# モジュールをクラスに組み込む
class Name
  #モジュールを組み込む
  include Greeting
  def initialize(name)
      @name = name
  end
end

# インスタンス化
hello = Name.new("カスミ")
hello.introduction("こんにちは")

moduleを使ったコード例です。

定義したmoduleをクラスに共有。

クラスをインスタンス化してmoduleのメソッドを実行してます。

moduleの使い方は以下の通りです。

module モジュール名
処理
end

モジュール名の頭文字は大文字にします。

モジュールにまとめたい定数・メソッドの処理を定義。

endで閉じます。

モジュールを読み込む際はincludeを使います。

include モジュール名

以上でモジュールで定義したメソッドを呼び出す事に成功しました。

まとめ

Rubyのmoduleを使って、定数やメソッドをまとめて格納。格納したメソッドを呼び出す方法について紹介しました。

以上で解説を終わります。

関連記事

Ruby

Rubyでインスタン変数の値をオブジェクトの外から参照・編集する方法

2022.08.21
49
Ruby

Rubyでif文を使い条件分岐する方法【一行に省略する方法も紹介】

2022.08.09
91
Ruby

Rubyで親クラスを継承した子クラスを作成する方法

2022.08.17
80
Ruby

RubyのHash(連想配列)で要素を追加・更新・削除する方法

2022.07.29
153