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