Tbpgr Blog

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

Ruby | Module | module_function

概要

Module#module_function(*name)

詳細

メソッドをモジュール関数にします。
モジュール関数とは、インスタンスのprivateであるとともにモジュールの特異メソッドであるようなメソッドです。
例えばMathモジュールのメソッドは全てモジュール関数です。

サンプルコード
# encoding: utf-8
require 'pp'

module Hogeable
  module_function

  def hoge
    "hoge"
  end

  def hige
    "hige"
  end
end

class Hoge
  include Hogeable
  def call_hoge_hige
    puts hoge
    puts hige
  end
end

puts Hogeable::hoge
puts Hogeable::hige
Hoge.new.call_hoge_hige
出力
hoge
hige
hoge
hige