App::HacheroはClass::Component::Component::Plaggerizeで作っていて、というかApp::MadEyeからコピペして作りはじめて、じぶんでざくざくpluginを書いて自分の好きなようにlogを解析しましょう、みたいなツールです。いまでもある程度ごにょごにょできます。スピード面のことを考えてないので、id:higepon的な意味でダメな進行をしていますが、まま、まずは使えるところまで持っていこう、というところ。 ほんで、plaggerっぽくconfig.yamlに使うプラグインと設定を書いて「えいやー」、で動くんだけど、plaggerでいうplugin_pathみたいに自作のpluginをフレームワークの中に入れずに追加する方法をなんとかしてつけたいな、と思ったのですよ。IRCで相談したらid:yappoがさくっとModule::Collectというのを書いてくれて、やったー!と思ったんだけど、Class::Componentの_load_pluginのところで
$pkg->require
していて、そこでそうじゃなくてplagger的に
if ($module->isa('Plagger::Plugin')) {
$self->log(debug => "$module is loaded elsewhere ... maybe .t script?");
} elsif (my $path = $self->plugins_path->{$module}) {
eval { require $path } or die $@;
} else {
$module->require or die $@;
}
こんなかんじにしないといけないんだろうなぁ、ということがだんだんわかってきた。というところ。道長いっす。がんばるっす。
- 追記
id:yappoさんのブクマコメントを受けてModule::Collectをごにょった。ということで引き続きがんばるっす。 http://coderepos.org/share/changeset/19030