Ruby 1.8.7 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Moduleクラス > constants
constants -> [String]そのモジュール(またはクラス)で定義されている定数名の配列を返します。 スーパークラスやインクルードしているモジュールの定数も含みます。
[SEE_ALSO] Module.constants, Kernel.#local_variables, Kernel.#global_variables, Object#instance_variables, Module#class_variables
Module.constants と Module#constants の違い
# 出力の簡略化のため起動時の定数一覧を取得して後で差し引く
$clist = Module.constants
class Foo
FOO = 1
end
class Bar
BAR = 1
# Bar は BAR を含む
p constants - $clist # => ["BAR"]
# 出力に FOO は含まれない
p Module.constants - $clist # => ["BAR", "Bar", "Foo"]
class Baz
# Baz は定数を含まない
p constants - $clist # => []
# ネストしたクラスでは、外側のクラスで定義した定数は
# 参照可能なので、BAR は、Module.constants には含まれる
# (クラス Baz も Bar の定数なので同様)
p Module.constants - $clist # => ["BAR", "Baz", "Bar", "Foo"]
end
end