X-Git-Url: http://git.vpit.fr/?p=perl%2Fmodules%2Frgit.git;a=blobdiff_plain;f=lib%2FApp%2FRgit%2FPolicy.pm;h=1af0cad30cd87999ff9361a3210444e8c808147f;hp=dfd485624ea5ae9599d477f024a3360612eb03e4;hb=e833c52a64e7aac9c18d7051285bf4d9906c4faf;hpb=caf4ff14ac06ea364ea51f725d041fd715e9682f diff --git a/lib/App/Rgit/Policy.pm b/lib/App/Rgit/Policy.pm index dfd4856..1af0cad 100644 --- a/lib/App/Rgit/Policy.pm +++ b/lib/App/Rgit/Policy.pm @@ -9,11 +9,28 @@ App::Rgit::Policy - Base class for App::Rgit policies. =head1 VERSION -Version 0.06 +Version 0.08 =cut -our $VERSION = '0.06'; +our $VERSION = '0.08'; + +=head1 DESCRIPTION + +Base class for L policies. + +This is an internal class to L. + +=head1 METHODS + +=head2 C + + my $arp = App::Rgit::Policy->new(policy => $policy); + +Creates a new policy object of type C<$policy> by requiring and redispatching the method call to the module named C<$policy> if it contains C<'::'> or to C otherwise. +The class represented by C<$policy> must inherit this class. + +=cut sub new { my $class = shift; @@ -22,7 +39,7 @@ sub new { my %args = @_; if ($class eq __PACKAGE__) { - my $policy = delete $args{name}; + my $policy = delete $args{policy}; $policy = 'Default' unless defined $policy; $policy = __PACKAGE__ . "::$policy" unless $policy =~ /::/; eval "require $policy" or die $@; @@ -32,6 +49,18 @@ sub new { bless { }, $class; } +=head2 C + + my $code = $arp->handle($cmd, $config, $repo, $status, $signal); + +Make the policy handle the end of execution of the L object C<$cmd> with L configuration C<$config> in the L repository C<$repo> that exited with status C<$status> and maybe received signal C<$sigal>. + +This method must be implemented when subclassing. + +=cut + +sub handle; + =head1 SEE ALSO L.