Tbpgr Blog

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

Ruby | Module | public_class_method

概要

Module#public_class_method(*name) -> self

詳細

name で指定したクラスメソッド (クラスの特異メソッド) の 可視性を public に変更する。

サンプルコード
class Hoge
  class << self
    def hoge
      print 'hoge'
    end

    private

    def private_hoge
      "private hoge"
    end
  end
end

begin
  # private なので呼び出しできない
  puts Hoge.private_hoge
rescue => e
  puts e
end

Hoge.public_class_method :private_hoge

# publicに変更したので呼び出しできる
puts Hoge.private_hoge

出力

出力

private method `private_hoge' called for Hoge:Class
private hoge