正規表現、スクリプト、アトムの組み合わせを含むトリプルに文字列をマップする Ruby スクリプトにデータ構造をロードしたいと考えています。ロード元のファイルは、人間が書き込み可能である必要があります。
現在、Ruby ハッシュを含むファイルを作成し、それを文字列として読み込み、eval を呼び出しています。すなわち。
データファイル
{ "key1" => [ /pattern/, "text", "text" ],
"key2" => [ "text2", :nil, "text3" ],
"key3" => [ "text4", /pattern2/, /pattern3/ ] }
脚本
def get_mapping
f = File.new path
return eval(f.read())
end
これは問題なく動作しますが、(i) ちょっとしたハックのように感じます (ii) 安全ではありません。だから私は知りたいです:これを行うより良い方法はありますか?
ほぼJSONですが、アトムや正規表現を簡単に扱えるとは思えません。ファイル形式は、人間による読み取り/書き込みが可能な状態のままである限り、変更することができます。