Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

Javaプログラマーが学ぶRuby応用/RubyのModule

概要

Rubyのモジュールについて。

モジュール

Moduleはインスタンスを持ちません。
Moduleはクラスにincludeして、継承関係を意識せずに利用が可能です。
用途としては

モジュールの用途1:名前空間の確保
モジュールの用途2:Mix-in
モジュールの用途3:定数クラスやユーティリティークラスの代わり

などがあります。

モジュールの構文

モジュールの構文は以下です。
内部でクラスやメソッドや定数を保持出来ます。

module モジュール名
  CONST = "定数"
  class クラス名
  
  end
  def self.メソッド名
  
  end
  def メソッド名
  
  end
end
サンプルコード

main

# encoding: Shift_JIS

module ModuleTest
  CONST = "CONST"
  def self.module_test(str)
    puts "#{str}Hello"
  end
  
  class ModuleClass
    @str
    def initialize(str)
      @str=str
    end
    def test_message ()
      return "test_message #{@str}"
    end
  end
end

puts ModuleTest::CONST
str = "Hoge"
puts ModuleTest::module_test str
module_class = ModuleTest::ModuleClass.new "test"
puts module_class.test_message