Catalyst-Model-DynamicAdaptor bug
追記
id:vkgtaroさん,ハイドKさん(id:hide-K),id:hideden さんに手伝ってもらい
原因を修正し、0.02で反映しました。ありがとうございました。
不具合があった...
no strict 'refs'; for my $plugin (@plugins) { my $obj = $plugin->new($config); my $plugin_short = $plugin; $plugin_short =~ s/^$base_class\:\://g; my $classname = "${class}::$plugin_short"; *{"${classname}::ACCEPT_CONTEXT"} = sub { return $obj; }; }
このコードだと、複数の モジュールを突っ込んだ場合、return $obj; の中身が常が、つねに最初に読み込まれたモジュールになってる...
数時間、直そうとやってみたのですが、ようわからん...
no strict 'refs'; for my $plugin (@plugins) { my $plugin_short = $plugin; $plugin_short =~ s/^$base_class\:\://g; my $classname = "${class}::$plugin_short"; *{"${classname}::ACCEPT_CONTEXT"} = sub { return $plugin; }; }
newなくしてこうやると、うまくいく。この実装に変更するかな...
no strict 'refs'; for my $plugin (@plugins) { if( $plugin->can('instance') ) { $plugin->instance($config); } my $plugin_short = $plugin; $plugin_short =~ s/^$base_class\:\://g; my $classname = "${class}::$plugin_short"; *{"${classname}::ACCEPT_CONTEXT"} = sub { return $plugin; }; }
シングルトンで new できるようにとか..
>_<
help me!