]> git.vpit.fr Git - perl/modules/rgit.git/blob - t/lib/App/Rgit/Policy/Callback.pm
56c6879c7ffcb1a70de615ea5292063b45bae4af
[perl/modules/rgit.git] / t / lib / App / Rgit / Policy / Callback.pm
1 package App::Rgit::Policy::Callback;
2
3 use strict;
4 use warnings;
5
6 use base qw<App::Rgit::Policy>;
7
8 sub new {
9  my $class = shift;
10  $class = ref $class || $class;
11
12  my %args = @_;
13
14  my $callback = delete $args{callback} or die 'Invalid callback';
15
16  my $self = $class->SUPER::new(%args);
17
18  $self->{callback} = $callback;
19
20  $self;
21 }
22
23 BEGIN {
24  eval "sub $_ { \$_[0]->{$_} }" for qw<callback>;
25 }
26
27 sub handle {
28  my $policy = shift;
29
30  $policy->callback->(@_);
31 }
32
33 1;