diff options
author | Gianni Ceccarelli <gianni.ceccarelli@net-a-porter.com> | 2013-11-07 11:59:14 +0000 |
---|---|---|
committer | Gianni Ceccarelli <gianni.ceccarelli@net-a-porter.com> | 2013-11-07 12:06:25 +0000 |
commit | 75fe8d4a588abd4da62685ab64dfcaafc07cfae6 (patch) | |
tree | 944e055d0cc575b5c10d7b8c6d1f6498006fdb7e /lib/WebService/TFL/Bus/ResponseTypeRole.pm | |
parent | migrate to Moo: forecast client (diff) | |
download | HomePanel-75fe8d4a588abd4da62685ab64dfcaafc07cfae6.tar.gz HomePanel-75fe8d4a588abd4da62685ab64dfcaafc07cfae6.tar.bz2 HomePanel-75fe8d4a588abd4da62685ab64dfcaafc07cfae6.zip |
migrate to Moo: bus client
Diffstat (limited to 'lib/WebService/TFL/Bus/ResponseTypeRole.pm')
-rw-r--r-- | lib/WebService/TFL/Bus/ResponseTypeRole.pm | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/lib/WebService/TFL/Bus/ResponseTypeRole.pm b/lib/WebService/TFL/Bus/ResponseTypeRole.pm index 6cfd460..7f48419 100644 --- a/lib/WebService/TFL/Bus/ResponseTypeRole.pm +++ b/lib/WebService/TFL/Bus/ResponseTypeRole.pm @@ -1,16 +1,14 @@ package WebService::TFL::Bus::ResponseTypeRole; -use MooseX::Role::Parameterized; +use Package::Variant + importing => [ 'Moo::Role'], + subs => [ 'has' ]; use WebService::TFL::Bus::Fields; use WebService::TFL::Bus::Types 'DateTimeMillis'; -parameter type => ( - isa => 'Str', - required => 1, -); +sub make_variant { + my ($class,$target_package,$type) = @_; -role { - my $p = shift; - my $method = $p->type . '_return_fields'; + my $method = $type . '_return_fields'; my @fields = WebService::TFL::Bus::Fields->$method; for my $field (@fields) { @@ -18,12 +16,12 @@ role { is => 'ro', ( $field =~ /Time$/ ? ( isa => DateTimeMillis, - coerce => 1, + coerce => DateTimeMillis->coercion, ) : () ), ); } - method new_from_array => sub { + install new_from_array => sub { my ($class,$return_set,$array) = @_; my %args; @@ -35,6 +33,6 @@ role { } return $class->new(\%args); } -}; +} 1; |