File Coverage

blib/lib/App/Rgit/Policy.pm
Criterion Covered Total %
statement 16 16 100.0
branch 5 8 62.5
condition 1 3 33.3
subroutine 3 3 100.0
pod 1 1 100.0
total 26 31 83.8


line stmt bran cond sub pod time code
1             package App::Rgit::Policy;
2              
3 2     2   6628 use strict;
  2         4  
  2         62  
4 2     2   10 use warnings;
  2         3  
  2         389  
5              
6             =head1 NAME
7              
8             App::Rgit::Policy - Base class for App::Rgit policies.
9              
10             =head1 VERSION
11              
12             Version 0.08
13              
14             =cut
15              
16             our $VERSION = '0.08';
17              
18             =head1 DESCRIPTION
19              
20             Base class for L policies.
21              
22             This is an internal class to L.
23              
24             =head1 METHODS
25              
26             =head2 C<< new policy => $policy >>
27              
28             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.
29             The class represented by C<$policy> must inherit this class.
30              
31             =cut
32              
33             sub new {
34 8     8 1 92857 my $class = shift;
35 8   33     73 $class = ref $class || $class;
36              
37 8         38 my %args = @_;
38              
39 8 100       29 if ($class eq __PACKAGE__) {
40 4         38 my $policy = delete $args{policy};
41 4 50       19 $policy = 'Default' unless defined $policy;
42 4 50       28 $policy = __PACKAGE__ . "::$policy" unless $policy =~ /::/;
43 4 50       373 eval "require $policy" or die $@;
44 4         54 return $policy->new(%args);
45             }
46              
47 4         28 bless { }, $class;
48             }
49              
50             =head2 C
51              
52             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>.
53              
54             This method must be implemented when subclassing.
55              
56             =cut
57              
58             sub handle;
59              
60             =head1 SEE ALSO
61              
62             L.
63              
64             =head1 AUTHOR
65              
66             Vincent Pit, C<< >>, L.
67              
68             You can contact me by mail or on C (vincent).
69              
70             =head1 BUGS
71              
72             Please report any bugs or feature requests to C, or through the web interface at L.
73             I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
74              
75             =head1 SUPPORT
76              
77             You can find documentation for this module with the perldoc command.
78              
79             perldoc App::Rgit::Policy
80              
81             =head1 COPYRIGHT & LICENSE
82              
83             Copyright 2008,2009,2010 Vincent Pit, all rights reserved.
84              
85             This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
86              
87             =cut
88              
89             1; # End of App::Rgit::Policy