X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=t%2Flib%2FApp%2FRgit%2FPolicy%2FCallback.pm;fp=t%2Flib%2FApp%2FRgit%2FPolicy%2FCallback.pm;h=37c2764065a8240903e5ed85d6c0d14ed83126fe;hb=dc668e3c302569ed2b5eb2ed893247308f22528a;hp=0000000000000000000000000000000000000000;hpb=edfd59020168422fe2c1baa014f0925968a77c9a;p=perl%2Fmodules%2Frgit.git diff --git a/t/lib/App/Rgit/Policy/Callback.pm b/t/lib/App/Rgit/Policy/Callback.pm new file mode 100644 index 0000000..37c2764 --- /dev/null +++ b/t/lib/App/Rgit/Policy/Callback.pm @@ -0,0 +1,33 @@ +package App::Rgit::Policy::Callback; + +use strict; +use warnings; + +use base qw/App::Rgit::Policy/; + +sub new { + my $class = shift; + $class = ref $class || $class; + + my %args = @_; + + my $callback = delete $args{callback} or die 'Invalid callback'; + + my $self = $class->SUPER::new(%args); + + $self->{callback} = $callback; + + $self; +} + +BEGIN { + eval "sub $_ { \$_[0]->{$_} }" for qw/callback/; +} + +sub report { + my $policy = shift; + + $policy->callback->(@_); +} + +1;