やりたいことがいつの間にかできていた

g:dann:id:dann さんの日記読んだり、隣の人からの要望があったり、id:fbis:20080910:1221016115 を読んだりして、CA::DynamicAdaptor に $c->req とか $c->session とか $c->log とか $c->config とか、POPO に渡せるようにしたらいいと思って Catalyst::Model::DynamicAdaptor::Lazy を CM::Adaptor や dann さんの MultiLoader をパクリつつ作った。んで、POPO に渡せるものは選べると良いなぁとか思ったら dann さん本人に先をこされてたw

ラップするインスタンスのライフサイクルを設定できるようにしました。PerRequest, Prototype, Singletonの3つをサポートしています。lifecycleで指定します。

これはいいw
$c の各種メソッドを自由に渡せるようにできれば良いな、とは思ってたんだけど、これできるね。

PerRequest で無くても良いんだけど、$c->req 渡そうと思ったら PerRequest になるかなぁと。
POPO の方は $c じゃなくて個々のオブジェクトを受け付けてると考えればテストもしやすいかなぁと思ったんだよね。

#追記: >vkgtaroさん

CPANにもUpしますよー。DynamicAdaptorとはconfigの扱いが違うのとLifeCylceのサポートがないだけで、DynamicAdaptorでもLifeCycleなどの実装はまんまぱくって使えるんじゃないかと。

パクルよ! いや、もうパクってるけどw id:tomyhero さんからメンテナの権利も委譲してもらったので DynamicAdaptor::Lazy を DynamicAdaptor に頑張って統合しよう。