Ruby 3.1.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Moduleクラス > public_class_method

instance method Module#public_class_method

public_class_method(*name) -> self[permalink][rdoc]
public_class_method(names) -> self

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

[PARAM] name:
0 個以上の String または Symbol を指定します。
[PARAM] names:
0 個以上の String または SymbolArray で指定します。


class Foo
  def self.foo
    "foo"
  end

  private_class_method :foo
end

Foo.foo # NoMethodError: private method `foo' called for Foo:Class

Foo.public_class_method(:foo) # => Foo
Foo.foo # => "foo"