http://d.hatena.ne.jp/kdaiba/20070419
Gunghoのコンポーネントはオブジェクト作成時に設定されます。なので自分でinject_baseする必要はないのです。
---
components:
- Throttle::Simple
これか、これと同等の事をGungho設定時に渡すだけでOK。んで、書きながら思ったんだけどここの設計、ちょっと考え直さなくてはいけないことに気づいた。componentsはCatalystを参考に作ったのだけど、実装としてはGunghoのベースクラスを変更するって事なので、コンポーネントの変更はグローバルに適用されるのだ。でもGungho->newってしてるってことはこれってインスタンス毎の設定してるような印象を与えるし・・・
ってことで、Gungho->newはちょっとやめようかと。Gungho->setup; Gungho->runのほうが実装的には正しい。インスタンス毎に設定を変えられるようにしてもいいんだけど、どうせ1度に複数インスタンスを動かす事はありえないのでこれでよいような気がするな。で、newはsetup()へのエイリアスにする、と。
コメント求む。
use Gungho;
Gungho->setup('config.yml');
Gungho->run;
use Gungho::Inline;
Gungho::Inline->setup({
provider => sub { ... },
handler => sub { ... }
});
Gungho::Inline->run;
もしくは
use Gungho::Inline;
Gungho::Inline->run({
provider => sub { ... },
handler => sub { ... }
});
で済ませるか。