Ruby 2.3.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Moduleクラス > constants
constants(inherit = true) -> [Symbol]
[permalink][rdoc]そのモジュール(またはクラス)で定義されている定数名の配列を返します。
inherit に真を指定すると スーパークラスやインクルードしているモジュールの定数も含みます。 Object のサブクラスの場合、Objectやそのスーパークラスで定義されている 定数は含まれません。 Object.constants とすると Object クラスで定義された 定数の配列が得られます。
得られる定数の順序は保証されません。
[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 # => [:BAR] # 出力に FOO は含まれない p Module.constants - $clist # => [:BAR, :Bar, :Foo] class Baz # Baz は定数を含まない p constants # => [] # ネストしたクラスでは、外側のクラスで定義した定数は # 参照可能なので、BAR は、Module.constants には含まれる # (クラス Baz も Bar の定数なので同様) p Module.constants - $clist # => [:BAR, :Baz, :Foo, :Bar] end end