Ruby 2.2.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Moduleクラス > public_constant (private)

instance method Module#public_constant

public_constant(*name) -> self[permalink][rdoc]

name で指定した定数の可視性を public に変更します。

[PARAM] name:
0 個以上の StringSymbol を指定します。
[EXCEPTION] NameError:
存在しない定数を指定した場合に発生します。
[RETURN]
self を返します。


module SampleModule
  class SampleInnerClass
  end

  # => 非公開クラスであることを明示するために private にする
  private_constant :SampleInnerClass
end

begin
  SampleModule::SampleInnerClass
rescue => e
  e # => #<NameError: private constant SampleModule::SampleInnerClass referenced>
end

module SampleModule
  # => 非公開クラスであることは承知で利用するために public にする
  public_constant :SampleInnerClass
end

SampleModule::SampleInnerClass # => SampleModule::SampleInnerClass

[SEE_ALSO] Module#private_constant, Object#untrusted?