2

実際の値の代わりに特定の 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 ロードを行った後に自分のコードでそれを行うことは問題ありませんが、長いクエストになってしまったので、石を残さないようにしたかったのです ;-)。

4

2 に答える 2