private なクラスメソッドを定義する (Ruby)
Ruby
Published: 2019-10-06

やったこと

private なクラスメソッドを定義する方法を調べました。

確認環境

$ ruby --version
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin17]

調査

private.rb

class Sample
  private

  def self.hoge1
    'hoge1'
  end

  def self.hoge2
    'hoge2'
  end
  private_class_method :hoge2

  class << self
    private

    def hoge3
      'hoge3'
    end
  end
end

# 呼び出せる
p Sample.hoge1

# 例外発生
# p Sample.hoge2

# 例外発生
# p Sample.hoge3

出力結果

$ ruby private.rb
"hoge1"

参考

  • プロを目指す人のためのRuby入門