Plagger を Catalyst アプリの中で使えるといろんな楽しいことが出来そうなので、いじってみることにしました。便宜上 Plagggr という Catalyst アプリにしました。
まず、Plagger に use base qw(Plagger); した Plagger::Configurable を作ります。Plagger 側に加える変更はこれだけです。変更にあたって clear_session など、Plagger::Server のアイディアが参考になりました。
次に、Catalyst::Plugin::Plagger を作ります。Catalyst::Plugin::Markdown とかが参考になりました。
そして、Plagger の動作を Catalyst の config で定義します。plagggr.yml-sample (動作時には plagggr.yaml にリネーム) という感じで、plagger という空間に、通常の Plagger の yaml を書けば動きます。インデントが一段下がるので、注意が必要ですね。
Catalyst アプリで、プラグインとして読み込み、Root コントローラで Plagger の run を呼んでみます。
あとは、起動スクリプト script/plagggr_server.pl で読み込むライブラリの位置をちょっといじります。
以上、毎回 Aggregator::Simple した結果を表示するアプリができました。
プラグインの動的ロード、リロードなどが出来れば、各種プラグインのデバッグ環境アプリなどができそうです。

Leave a comment