モジュール

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 モジュール名
メソッドの定義
end

の形式でモジュールを定義することができ、

クラス内で
include モジュール名

とすることで、モジュールで定義したメソッドを埋め込むことができます。

また、モジュールで定義したメソッドは
メソッド内に
module_function :メソッド名

の形式で記入することでクラス外から
モジュール名.メソッド

の形式で呼び出すことができます。

module_functionで設定したメソッドは、クラス内で読み込んだ時にprivateとなるので、アクセス装飾子を変更したいときは上の例のように
アクセス装飾子 :メソッド名

の形式で記入してください。