— — |
our @RUNTIME_COMMANDS = qw(setup prerun run postrun finish) ;
our $VERSION = '1.0' ;
sub run_command {
my ( $self , @argv ) = @_ ;
eval { map { $self -> $_ ( @argv ) } @RUNTIME_COMMANDS };
if ($@) {
chomp ( my $message = $@);
$self ->error( $message );
$self ->fail( @argv );
}
}
sub setup {
my ( $self , @argv ) = @_ ;
$self ->maybe:: next ::method( @argv );
}
sub prerun {
my ( $self , @argv ) = @_ ;
$self ->maybe:: next ::method( @argv );
}
sub finish {
my ( $self , @argv ) = @_ ;
$self ->maybe:: next ::method( @argv );
}
sub postrun {
my ( $self , @argv ) = @_ ;
$self ->maybe:: next ::method( @argv );
}
sub fail {
my ( $self , @argv ) = @_ ;
die sprintf ( "default fail method. error:%s. override fail method!!\n" , $self ->error);
}
1;
|