delegateしたい場合どうするか
perlでdelegateしたい場合、Moose/Mouseをつかっていれば
hasの設定のところでhandlesを指定すればいいんですが、
Moose/Mouse使っていない場合にdelegateするときどうするのがいいのかよくわからなかったのと
暇だったのでさっくり作ってみた。
http://github.com/nekokak/p5-Method-Delegater
使い方。
package Mock; use strict; use warnings; use Method::Delegater; use Foo; sub new { my $class = shift; bless {}, $class; } delegate '_foo' => install { initialize { my $self = shift; Foo->new($self); }; handles [qw/bar baz foo/]; }; 1;
delegateの設定を行うと、
bar baz fooというメソッドを呼び出すとFoo->(bar|baz|foo)が呼び出される寸法。
中途半端だし適当なんですが、どうなんだろ。
もうMoose/Mouseつかっとけって言われそうです。
Class::Delegateてのがあるのはしってるのですが、delegateするのにClass::Delegateを継承したりAUTOLOADつかってたりときにいらなかったのでした。