2007-05-07 方向
HTTP::MobileAgent::Plugin::UserIDの方がいいのかも
あんまりHTTP::MobileAgentが肥大化していくのがどうなの?っていうのとユーザID取得するモジュールがないっぽかったので切り離して作ってみたんだけども、やっぱりHTTP::MobileAgentオブジェクトから$agent->user_idとか呼べた方が良いのかもしれない。
個人的には分かれてるほうが保守しやすいと思うのでHTTP::MobileUserIDはこれでおきつつ別途Pluginを作ってみたり。
package HTTP::MobileAgent::Plugin::UserID; use strict; use warnings; use HTTP::MobileUserID; our $VERSION = '0.01'; no strict 'refs'; for my $accessor (qw/user_id is_supported_user_id/) { *{"HTTP::MobileAgent::$accessor"} = sub { my ($self) = @_; $self->{mobile_userid} ||= do { my $userid = HTTP::MobileUserID->new($self); +{ user_id => $userid->id , is_supported_user_id => $userid->supported }; }; return $self->{mobile_userid}->{$accessor}; }; } 1;
さてさて。ハラ減った。
こゆこと?
http://d.hatena.ne.jp/tokuhirom/20070507/1178495922
package HTTP::MobileAgent::Plugin::UserID; use strict; use warnings; use HTTP::MobileUserID; our $VERSION = '0.01'; sub import { my $pkg = caller(0); my $getter = sub { my $self = shift; my $userid = HTTP::MobileUserID->new($self); return +{ user_id => $userid->id , supported => $userid->supported }; }; my $key = join ",", __PACKAGE__, 'user_id'; no strict 'refs'; *{"${pkg}::user_id"} = sub { my ($self, ) = @_; $self->{$key} ||= $self->$getter; return $self->{$key}->{user_id}; }; *{"${pkg}::is_supported_user_id"} = sub { my ($self, ) = @_; $self->{$key} ||= $self->$getter; return $self->{$key}->{supported}; } } 1;
ふぅむ。確かにMobileAgentから扱えたほうが便利っぽくていいのかなぁ。





