]> git.vpit.fr Git - perl/modules/rgit.git/commitdiff
Revamp t/92-pod-coverage.t
authorVincent Pit <vince@profvince.com>
Wed, 24 Feb 2010 14:36:58 +0000 (15:36 +0100)
committerVincent Pit <vince@profvince.com>
Wed, 24 Feb 2010 14:36:58 +0000 (15:36 +0100)
Also rename some App::Rgit::Policy features and expand POD.

12 files changed:
bin/rgit
lib/App/Rgit/Command.pm
lib/App/Rgit/Command/Each.pm
lib/App/Rgit/Command/Once.pm
lib/App/Rgit/Config/Default.pm
lib/App/Rgit/Policy.pm
lib/App/Rgit/Policy/Default.pm
lib/App/Rgit/Policy/Interactive.pm
lib/App/Rgit/Policy/Keep.pm
t/20-each.t
t/92-pod-coverage.t
t/lib/App/Rgit/Policy/Callback.pm

index 1ee11584f152f9812634198e6ae3dbec78b7fc60..ef988520d4627d32bbfe4a9fe18f82527ceb937e 100755 (executable)
--- a/bin/rgit
+++ b/bin/rgit
@@ -36,10 +36,10 @@ if (-t && $opts{I}) {
 } elsif ($opts{K}) {
  $policy = 'Keep';
 }
-$policy = eval { App::Rgit::Policy->new(name => $policy) };
+$policy = eval { App::Rgit::Policy->new(policy => $policy) };
 if (not defined $policy) {
  print STDERR $@ if $@;
- $policy = App::Rgit::Policy->new(name => 'Default');
+ $policy = App::Rgit::Policy->new(policy => 'Default');
 }
 
 setpgrp 0, 0 if $Config{d_setpgrp};
index fa98b6ec20c8662a8d60d066bf2477b0b24cf7a6..a873b9a6a694c9d09252822a42b41b67cc1448a9 100644 (file)
@@ -94,7 +94,7 @@ Returns what policy C<report> method returned, which should be one of the policy
 sub report {
  my ($self) = @_;
 
- my $code = $self->policy->report(@_);
+ my $code = $self->policy->handle(@_);
 
  return defined $code ? $code : NEXT;
 }
index 9cf0067706a204b590ea16e101844a15b72b9cb5..3f1948ca97d3713f88ec055a5a8afb604f6bdcc8 100644 (file)
@@ -59,6 +59,8 @@ sub run {
 
 L<rgit>.
 
+L<App::Rgit::Command>.
+
 =head1 AUTHOR
 
 Vincent Pit, C<< <perl at profvince.com> >>, L<http://profvince.com>.
index cf5a686334c21ebcc20f76b58fa97d7a8380fbbe..084cd143ae5a6112d904c79190b06832c43b6028 100644 (file)
@@ -42,6 +42,8 @@ sub run {
 
 L<rgit>.
 
+L<App::Rgit::Command>.
+
 =head1 AUTHOR
 
 Vincent Pit, C<< <perl at profvince.com> >>, L<http://profvince.com>.
index cd2160b9aa7c2f070899dab97d27bbef62cfa032..fc3152a74dcb1c81c7f1b48ce14efa682c60aabe 100644 (file)
@@ -60,6 +60,8 @@ sub repos {
 
 L<rgit>.
 
+L<App::Rgit::Config>.
+
 =head1 AUTHOR
 
 Vincent Pit, C<< <perl at profvince.com> >>, L<http://profvince.com>.
index dfd485624ea5ae9599d477f024a3360612eb03e4..2a0c760a7abecbac835a021586b336949ed2c377 100644 (file)
@@ -15,6 +15,21 @@ Version 0.06
 
 our $VERSION = '0.06';
 
+=head1 DESCRIPTION
+
+Base class for L<App::Rgit> policies.
+
+This is an internal class to L<rgit>.
+
+=head1 METHODS
+
+=head2 C<< 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<App::Rgit::Policy::$policy> otherwise.
+The class represented by C<$policy> must inherit this class.
+
+=cut
+
 sub new {
  my $class = shift;
  $class = ref $class || $class;
@@ -22,7 +37,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 +47,16 @@ sub new {
  bless { }, $class;
 }
 
+=head2 C<handle $cmd, $config, $repo, $status, $signal>
+
+Make the policy handle the end of execution of the L<App::Rgit::Command> object C<$cmd> with L<App::Rgit::Config> configuration C<$config> in the L<App::Rgit::Repository> 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<rgit>.
index d8d286bd0440b75dce5ce87ad860395a9e094f45..5d96a66bb688223636c92b662f8b627b06708c6a 100644 (file)
@@ -19,7 +19,22 @@ Version 0.06
 
 our $VERSION = '0.06';
 
-sub report {
+=head1 DESCRIPTION
+
+This is the default policy.
+It stops as soon as a run returned a non-zero status, but continues if it was signalled.
+
+=head1 METHODS
+
+This class inherits from L<App::Rgit::Policy>.
+
+It implements :
+
+=head2 C<handle>
+
+=cut
+
+sub handle {
  my ($policy, $cmd, $conf, $repo, $status, $signal) = @_;
 
  $status ? LAST : NEXT;
@@ -29,6 +44,8 @@ sub report {
 
 L<rgit>.
 
+L<App::Rgit::Policy>.
+
 =head1 AUTHOR
 
 Vincent Pit, C<< <perl at profvince.com> >>, L<http://profvince.com>.
index f6f20b501d5199059a77f1d1f15f9ec6da2669fc..fd4d9df8609aab26d41d24dc84e5a97cb8696451 100644 (file)
@@ -21,6 +21,23 @@ Version 0.06
 
 our $VERSION = '0.06';
 
+=head1 DESCRIPTION
+
+When a run exited with non-zero status, this policy asks the user whether he wants to ignore and continue with the next repository, ignore all future possible errors, retry this run or open a shell in the current repository.
+In this last case, the user will be asked again what to do when he will close the shell.
+
+=head1 METHODS
+
+This class inherits from L<App::Rgit::Policy>.
+
+It implements :
+
+=head2 C<new>
+
+The constructor will die if L<Term::ReadKey> can't be loaded.
+
+=cut
+
 my ($int_code, $shell);
 
 sub new {
@@ -46,6 +63,10 @@ sub new {
  $class->SUPER::new(@_);
 }
 
+=head2 C<handle>
+
+=cut
+
 my %codes = (
  'a' => [ LAST,        'aborting' ],
  'i' => [ NEXT,        'ignoring' ],
@@ -53,7 +74,7 @@ my %codes = (
  'r' => [ REDO,        'retrying' ],
 );
 
-sub report {
+sub handle {
  my ($policy, $cmd, $conf, $repo, $status, $signal) = @_;
 
  return NEXT unless $status;
@@ -94,6 +115,10 @@ sub report {
 
 L<rgit>.
 
+L<App::Rgit::Policy>.
+
+L<Term::ReadKey>.
+
 =head1 AUTHOR
 
 Vincent Pit, C<< <perl at profvince.com> >>, L<http://profvince.com>.
index 1bbdc5657a564108e51e86a9a3588b43773bf543..34b8f4f395aa8ca2c8bd726d4a2fbdb6ebcf7229 100644 (file)
@@ -19,12 +19,28 @@ Version 0.06
 
 our $VERSION = '0.06';
 
-sub report { NEXT }
+=head1 DESCRIPTION
+
+This policy always proceed to the next repository even when an error occurs.
+
+=head1 METHODS
+
+This class inherits from L<App::Rgit::Policy>.
+
+It implements :
+
+=head2 C<handle>
+
+=cut
+
+sub handle { NEXT }
 
 =head1 SEE ALSO
 
 L<rgit>.
 
+L<App::Rgit::Policy>.
+
 =head1 AUTHOR
 
 Vincent Pit, C<< <perl at profvince.com> >>, L<http://profvince.com>.
index 41e679a633d0a07c73205b4650c9370bc472e4f8..346f755955a98cec923acb599c0505be67791ffe 100644 (file)
@@ -124,8 +124,8 @@ sub try {
  my ($fh, $filename) = tempfile(UNLINK => 1);
 
  my $policy = App::Rgit::Policy->new(
-  @_ > 2 ? (name => 'Callback', callback => $_[2])
-         : (name => 'Default')
+  @_ > 2 ? (policy => 'Callback', callback => $_[2])
+         : (policy => 'Default')
  );
 
  my $ar = App::Rgit->new(
index 3037c13d050403195e3fc177bab7ff218e61407f..3acb46b593680e71ab5db6c66821f753f877b3f1 100644 (file)
@@ -16,4 +16,24 @@ my $min_pc = 0.18;
 eval "use Pod::Coverage $min_pc";
 plan skip_all => "Pod::Coverage $min_pc required for testing POD coverage" if $@;
 
-all_pod_coverage_ok();
+my $trustparents = { coverage_class => 'Pod::Coverage::CountParents' };
+
+plan tests => 12;
+
+pod_coverage_ok('App::Rgit');
+
+pod_coverage_ok('App::Rgit::Command');
+pod_coverage_ok('App::Rgit::Command::Each', $trustparents);
+pod_coverage_ok('App::Rgit::Command::Once', $trustparents);
+
+pod_coverage_ok('App::Rgit::Config');
+pod_coverage_ok('App::Rgit::Config::Default', $trustparents);
+
+pod_coverage_ok('App::Rgit::Policy');
+pod_coverage_ok('App::Rgit::Policy::Default',     $trustparents);
+pod_coverage_ok('App::Rgit::Policy::Interactive', $trustparents);
+pod_coverage_ok('App::Rgit::Policy::Keep',        $trustparents);
+
+pod_coverage_ok('App::Rgit::Repository');
+
+pod_coverage_ok('App::Rgit::Utils');
index 37c2764065a8240903e5ed85d6c0d14ed83126fe..3b6feb9eca8709291e1481e68741d7ee4033bb35 100644 (file)
@@ -24,7 +24,7 @@ BEGIN {
  eval "sub $_ { \$_[0]->{$_} }" for qw/callback/;
 }
 
-sub report {
+sub handle {
  my $policy = shift;
 
  $policy->callback->(@_);