Log-Report
view release on metacpan or search on metacpan
lib/Log/Report.pm view on Meta::CPAN
if($syntax eq 'SHORT')
{ push @export, @reason_functions
}
elsif($syntax ne 'REPORT' && $syntax ne 'LONG')
{ error __x"syntax flag must be either SHORT or REPORT, not `{flag}' in {fn} line {line}", flag => $syntax, fn => $fn, line => $linenr;
}
}
$class->export_to_level(1+$to_level, undef, @export);
### Log::Report::Domain configuration
if(defined $textdomain)
{ pkg2domain $pkg, $textdomain, $fn, $linenr;
my $domain = textdomain $textdomain;
$domain->configure(%opts, where => [$pkg, $fn, $linenr ]) if keys %opts;
}
elsif(keys %opts)
{ error __x"no domain for configuration options in {fn} line {line}", fn => $fn, line => $linenr;
}
}
sub default_dispatcher_mode() { $default_mode }
# deprecated, since we have a ::Domain object in 1.00
sub translator($;$$$$)
{ # replaced by (textdomain $domain)->configure
my ($class, $name) = (shift, shift);
my $domain = textdomain $name
or error __x"textdomain `{domain}' for translator not defined", domain => $name;
@_ or return $domain->translator;
my ($translator, $pkg, $fn, $line) = @_;
($pkg, $fn, $line) = caller # direct call, not via import
unless defined $pkg;
$translator->isa('Log::Report::Translator')
or error __x"translator must be a {pkg} object for {domain}", pkg => 'Log::Report::Translator', domain => $name;
$domain->configure(translator => $translator, where => [$pkg, $fn, $line]);
}
sub textdomain(@)
{
if(@_==1 && blessed $_[0])
{ my $domain = shift;
$domain->isa('Log::Report::Domain') or panic;
return $reporter->{textdomains}{$domain->name} = $domain;
}
if(@_==2)
{ # used for 'maintenance' and testing
return delete $reporter->{textdomains}{$_[0]} if $_[1] eq 'DELETE';
return $reporter->{textdomains}{$_[0]} if $_[1] eq 'EXISTS';
}
my $name = (@_%2 ? shift : pkg2domain((caller)[0])) || 'default';
my $domain = $reporter->{textdomains}{$name} ||= Log::Report::Domain->new(name => $name);
$domain->configure(@_, where => [caller]) if @_;
$domain;
}
#--------------------
sub needs(@)
{ my $thing = shift;
my $self = ref $thing ? $thing : $reporter;
first {$self->{needs}{$_}} @_;
}
#--------------------
1;
( run in 0.776 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )