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.491 second using v1.01-cache-2.11-cpan-13bb782fe5a )