instance method Module#const_get

const_get(name, inherit = true) -> object[permalink][rdoc][edit]

name で指定される名前の定数の値を取り出します。

Module#const_defined? と違って Object を特別扱いすることはありません。

[PARAM] name:
定数名。StringSymbol で指定します。完全修飾名を指定しなかった場合はモジュールに定義されている 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