モジュールで定義された定数名の一覧を取得したい
Module.constantsでモジュールで定義された定数名の一覧を取得できます。
module Test FOO = 0 VAR = 1 # 定数: ねこID KITTEN_MII = 0 KITTEN_TORA = 1 KITTEN_SHIRO = 2 KITTEN_KURO = 3 end puts Test.constants
実行結果です。
KITTEN_SHIRO KITTEN_TORA FOO KITTEN_MII KITTEN_KURO VAR
定数値をわかりやすい文字列にさくっと変換したいときに使えます。次のような関数を定義してやればOK。
module Test module_function # ねこIDをわかりやすい名前に変換する。 def to_kitten_name(value) return Test.constants.find {|name| name =~ /^KITTEN_/ && Test.const_get(name) == value } end end puts Test.to_kitten_name(0) puts Test.to_kitten_name(2)
実行結果です。
KITTEN_MII KITTEN_SHIRO