eval not needed round can, it just returns false
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Service / WithContext.pm
CommitLineData
5fabf3ec 1package Catalyst::Service::WithContext;
2use Moose::Role;
3
4use Bread::Board::Types;
5
6with 'Bread::Board::Service';
7
8has accept_context_sub => (
9 is => 'ro',
10 isa => 'Str',
11 default => 'ACCEPT_CONTEXT',
12);
13
14around 'get' => sub {
38215fbf 15 my ( $orig, $self, %params ) = @_;
5fabf3ec 16
38215fbf 17 my $context = delete $params{context};
18
19 my $instance = $self->$orig(%params);
5fabf3ec 20 my $ac_sub = $self->accept_context_sub;
21
0d77134e 22 if ( $instance->can($ac_sub) ) {
38215fbf 23 return $instance->$ac_sub( @$context );
5fabf3ec 24 }
25
26 return $instance;
27};
28
29no Moose::Role;
301;