const_get(name, inherit = true) -> object
[permalink][rdoc][edit]-
name で指定される名前の定数の値を取り出します。
Module#const_defined? と違って Object を特別扱いすることはありません。
- [PARAM] name:
- 定数名。String か Symbol で指定します。完全修飾名を指定しなかった場合はモジュールに定義されている name で指定される名前の定数の値を取り出します。
- [PARAM] inherit:
- false を指定するとスーパークラスや include したモジュールで定義された定数は対象にはなりません。
- [EXCEPTION] NameError:
- 定数が定義されていないときに発生します。
module Bar BAR = 1 end class Object include Bar end # Object では include されたモジュールに定義された定数を見付ける p Object.const_get(:BAR) # => 1 class Baz include Bar end # Object以外でも同様 p Baz.const_get(:BAR) # => 1 # 定義されていない定数 p Baz.const_get(:NOT_DEFINED) #=> raise NameError # 第二引数に false を指定すると自分自身に定義された定数から探す p Baz.const_get(:BAR, false) #=> raise NameError # 完全修飾名を指定すると include や自分自身へ定義されていない場合でも参照できる p Class.const_get("Bar::BAR") # => 1