読者です 読者をやめる 読者になる 読者になる
無料で使えるシステムトレードフレームワーク「Jiji」 をリリースしました!

・OANDA Trade APIを利用した、オープンソースのシステムトレードフレームワークです。
・自分だけの取引アルゴリズムで、誰でも、いますぐ、かんたんに、自動取引を開始できます。

モジュールで定義された定数名の一覧を取得したい

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