App-Prove-Plugin-Metrics
view release on metacpan or search on metacpan
lib/TAP/Harness/Metrics.pm view on Meta::CPAN
type =>'file',
append =>1,
outfile=>'/tmp/metrics-tests.txt',
# format =>'tsv',
#
module=>undef,
f =>'save',
);
my @configurable=(qw/prefix sep subdepth label allowed rollup/); # not fully "enforced"
sub verifyCallback {
my ($module,$f)=@_;
if(!$module) { confess("'module' must be provided") }
if(!$f) { confess("'f' must be non-empty") }
eval "require $module;";
if($@) { confess($@) }
my $cb=$module->can($f);
if(!$cb) { confess("${module}::${f} not available") }
return $cb;
}
sub new {
my ($ref,@opt)=@_;
my $class=ref($ref)||$ref;
my $self=$class->SUPER::new(@opt);
while(my ($k,$v)=each(%options)) { $$self{$k}=$v }
if($$self{type} eq 'module') {
$$self{modulef}=verifyCallback($$self{module},$$self{f});
if(my $cfg=$$self{module}->can('configureHarness')) {
my %config=&$cfg();
foreach my $k (grep {exists($config{$_})} @configurable) { $options{$k}=$$self{$k}=$config{$k} }
}
}
$$self{parser_class}='TAP::Parser::Metrics';
return $self;
}
sub make_parser {
( run in 0.697 second using v1.01-cache-2.11-cpan-e1769b4cff6 )