Rubyリファレンス: Home

public_class_method (Module)

Edit   History

標準クラス・モジュール > Module > public_class_method

mod.public_class_method(name, ...)

public_class_methodメソッドは、クラスやモジュールのクラスメソッドをpublicなメソッドに変えます。引数にはメソッド名をシンボルか文字列で指定します。ここで言う「クラスメソッド」とは、クラスやモジュールの特異メソッドか、ModuleクラスやClassクラスのインスタンスメソッドです。

引数のメソッド名は複数指定できます。定義されていないメソッド名を指定すると例外NameErrorが発生します。戻り値はレシーバ(クラスやモジュール)自身です。

次の例では、親クラスProductprivateにしたnewメソッドをサブクラスBookpublicに戻しています。

class Product
  private_class_method :new
end
 
class Book < Product
  public_class_method :new
end
 
p Book.new
#<Book:0x2515b30>

関連項目