ケースクラスから得られる検証は、構成ファイルに必要な検証と同じであるため、構成の「データとしてのコード」のアイデアが気に入っています。Twitter は、これを簡単にする優れた Eval ユーティリティを作成しました ( https://github.com/twitter/util )。ユーザーが設定ファイルをリモート サービスにアップロードできるようにしたいと考えています。これにより、リモート サービスに対してコードを挿入する可能性が開かれます。
たとえば、次の構成ケース クラスがあるとします。
case class MyConfig(param1: String)
ユーザーが次のコマンドを含むファイルをアップロードできるようにしたいと思います。
MyConfig(param1 = "My Param Value")
...しかし、コマンドを含むファイルではありません:
MyConfig(param1 = {import someDangerousPackage; someDangerousCommand(); "My Param Value"})
関数が呼び出されていないことを確認するためにコンパイルを傍受する方法はありますか?