実際の値の代わりに特定の Ruby クラス/モジュール定数を含めたい YAML 構成ファイルがあります。
たとえば、構成ファイルに「loglevel: 0」を入れる代わりに、「loglevel: Logger::DEBUG」が必要です。
Logger::DEBUG のようなクラスまたはモジュール定数を YAML でデコードまたは解決する方法はありますか?
これは私が遊んでいたものですが、サイケ ルビー コードを見ると、これをサポートするものは見当たりません。
config.yml
loglevel: !ruby/class:fixnum Logger::DEBUG
イン・アーブ
irb>「ロガー」が必要
irb> config = YAML.load_file('config.yml')
config['loglevel'] には、実際の値ではなく文字列として "Logger::DEBUG" が含まれています。
次のように評価を行うことができます。
irb> p eval config['loglevel'] 0 ==> 0
YAMLに評価させる方法があるかどうか疑問に思っていますか? YAML ロードを行った後に自分のコードでそれを行うことは問題ありませんが、長いクエストになってしまったので、石を残さないようにしたかったのです ;-)。