ブログなんだよもんスマートフォン用の表示で見るブログなんだよもん2012-05-05Twitter製のScala向けConfigライブラリのutil-evalが素敵すぎるscala現在作ってるアプリで設定ファイルを作りたくなったので、Scalaで人気の設定ファイルライブラリであるutil-evalを使ってみた。このライブラリの特徴は何と言っても設定ファイルをScalaで記述できること。プロパティファイルじゃなくて内部DSLです。言うものの、Railsもrubyで設定を記述しているし、仕事ではPHP使って似たようなことはしているので、これだけだと絶賛するほどじゃなかったり。言われそうなので、皆さん想像してみてください。モード切替でマジックナンバーや文字列で指定している状況を。入力間違えにより容易に謎のエラーとなります。classを使うことで特定の値以外が入力されたらコンパイルエラーにできます。文字列や整数もしかり。設定値の妥当性検証をコンパイラ任せにできるのですね。内部DSLなので構造を持つ設定値もシンプルに記述できます。classを使えば定義も楽チン。いうわけで、実際の使い方は以下のとおり。SBTでインストールまずはsbtでインストールします。build.sbtに下記を追記。update」すればOKです。2.9には対応していないという記事がよく見つかりますが、バージョンが上がったせいか、特に問題なく利用できています。あと、今回は確認してないですがリポジトリ見てみるとv2.0とかv3.0とかもすでに存在はしてました。設定値の定義ファイルとなるtraitを作成します。config/config.scala設定内容は下記のように書けます。設定ファイルの読み込み設定ファイルはEvalオブジェクトを使って読み込みます。あとは普通にフィールドアクセスすればOK.config.titleconfig.buffSizeconfig.amazonPAA.accessKeyIdconfig.validationTypeこんな感じで利用方法もシンプルなので、かなり良い感じです。設定ファイルは動的に読まれてEvalされます。ここで、config.scalaの内容がMyConfigとマッチしてなければコンパイルエラーが出るし、読み込んだ値を整数とかにパースしなおす手間も不要です。Webアプリでwarを使う時とか、jarの中の設定ファイルを読むときは、getResourcesでパス取得かなぁ、と思ってたけど、別に、静的に組み込むならこのライブラリ使わなくても普通にコンパイルしてしまえばいい気がした。パスの指定も不要になるし。何にしてもこのライブラリ自体は実に良い感じ。(7)月別アーカイブはてなブログをはじめよう!pascal256さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。