Pnutsを組み込む
日付・時刻表現の抽出・正規化とかしてたりするのだが、どうせなので YAML Parser と Pnutsのスクリプトエンジンを組み込み、ルールをYAMLで書いて、正規化の部分をPnutsスクリプトで記述できるようにしてみた。日付・時刻周りのライブラリはjoda-timeを使用。
で、ルールがこんな感じになった。
- patterns: - last (month) - Last (month) type: script params: format: yyyy-MM script: | if (ref.monthOfYear <= values[1]) ref.withDate(ref.year - 1, values[1], 1) else ref.withDate(ref.year, values[1], 1)
なに、このきもいの。
でも、さすがにスクリプトエンジンを組み込むとなんでもありだ。これで多分、ルールを全部ファイルに書けるな。
そういや、こういうのは BSF (Bean Scripting Framework) 経由にしたほうがいいのだろうか。いまのところ Pnuts の API を直接叩いているのだけど。