line | % | coverage | branch |
317 | 100 | T | F | if (scalar @_ == 1) { } |
326 | 100 | T | F | if (not defined $$params{"config_dirs"} and $$params{"file"}) |
330 | 100 | T | F | unless (defined $$params{"config_dirs"}) |
331 | 100 | T | F | if ($$params{'config_file'} and 'File::Spec'->file_name_is_absolute($$params{'config_file'})) { } |
335 | 50 | T | F | if ($^O ne 'MSWin32') { } |
340 | 50 | T | F | if ($ENV{'HOME'}) { } |
| 0 | T | F | elsif ($ENV{'DOCUMENT_ROOT'}) { } |
351 | 50 | T | F | if (my $dir = $ENV{'CONFIG_DIR'}) { } |
361 | 50 | T | F | $$params{'defaults'} ? : |
366 | 50 | T | F | if (my $logger = $$self{"logger"}) |
367 | 0 | T | F | unless (&Scalar::Util::blessed($logger)) |
370 | 0 | T | F | if ($$params{"level"} and $$self{"logger"}->can("level")) |
377 | 100 | T | F | if (my $schema = $$params{"schema"}) |
381 | 100 | T | F | if ($$self{"config"} and scalar keys %{$$self{"config"};}) |
389 | 50 | T | F | unless (UNIVERSAL::isa((&CORE::GLOBAL::caller())[0], __PACKAGE__)) |
396 | 100 | T | F | if ($$self{"data"}) |
402 | 50 | T | F | if ($logger) |
407 | 50 | T | F | if ($$self{"config_file"} and scalar @dirs > 1) |
408 | 0 | T | F | if ('File::Spec'->file_name_is_absolute($$self{'config_file'})) { } |
417 | 50 | T | F | unless defined $dir |
421 | 50 | T | F | if ($logger) |
424 | 100 | T | F | unless -f $path |
426 | 50 | T | F | if ($logger) |
432 | 100 | T | F | if ($file =~ /\.ya?ml$/) { } |
| 100 | T | F | elsif ($file =~ /\.json$/) { } |
| 100 | T | F | elsif ($file =~ /\.xml$/) { } |
| 50 | T | F | elsif ($file =~ /\.ini$/) { } |
435 | 50 | T | F | if $@ |
438 | 50 | T | F | if $@ |
441 | 50 | T | F | if ($self->_load_driver("XML::Simple", ["XMLin"])) |
443 | 0 | T | F | if ($@) { } |
| 0 | T | F | elsif ($rc) { } |
444 | 0 | T | F | if ($logger) { } |
454 | 50 | T | F | if (not defined $rc and $self->_load_driver("XML::PP")) |
457 | 50 | T | F | if (my $tree = $xml_pp->parse(\$data)) |
458 | 50 | T | F | if ($data = $xml_pp->collapse_structure($tree)) |
460 | 50 | T | F | if ($$data{"config"}) |
468 | 50 | T | F | if (my $ini = 'Config::IniFiles'->new('-file', $path)) { } |
474 | 0 | T | F | if ($logger) { } |
481 | 50 | T | F | if ($data) |
482 | 50 | T | F | if ($logger) |
491 | 100 | T | F | unless ($$self{"script_name"}) |
492 | 50 | T | F | unless "File::Basename"->can("basename") |
500 | 100 | T | F | unless defined $config_file |
503 | 100 | T | F | if $config_file eq $script_name and length $dir == 0 || $dir eq 'File::Spec'->curdir |
504 | 100 | T | F | length $dir ? : |
505 | 50 | T | F | if ($logger) |
508 | 100 | T | F | if (-f $path and -r $path) |
510 | 50 | T | F | if ($logger) |
514 | 100 | T | F | if ($data =~ /^\s*<\?xml/ or $data =~ m[</.+>]) { } |
| 50 | T | F | elsif ($data =~ /\{.+:.\}/s) { } |
515 | 50 | T | F | if ($self->_load_driver('XML::Simple', ['XMLin'])) { } |
| 50 | T | F | elsif ($self->_load_driver('XML::PP')) { } |
516 | 0 | T | F | if ($data = XMLin($path, "ForceArray", 0, "KeyAttr", scalar [])) |
521 | 50 | T | F | if (my $tree = $xml_pp->parse(\$data)) |
522 | 50 | T | F | if ($data = $xml_pp->collapse_structure($tree)) |
524 | 50 | T | F | if ($$data{"config"}) |
535 | 0 | T | F | if ($is_json) { } |
537 | 0 | T | F | if ($@) |
543 | 0 | T | F | if ($data) |
549 | 100 | T | F | unless ($data) |
551 | 100 | T | F | if (eval {
do {
$data = LoadFile($path)
}
} and ref $data eq "HASH") |
556 | 50 | T | F | if $v =~ /^".+"$/ |
557 | 100 | T | F | if ($v =~ /,/) |
561 | 50 | T | F | if ($val =~ /(.+)=(.+)/) { } |
569 | 50 | T | F | if ($data) |
573 | 100 | T | F | if (not $data or ref $data ne "HASH") |
575 | 50 | T | F | if (my $ini = "Config::IniFiles"->new("-file", $path)) |
580 | 0 | T | F | if ($data) |
584 | 50 | T | F | if (not $data or ref $data ne "HASH") |
586 | 50 | T | F | if ($self->_load_driver("XML::Simple", ["XMLin"])) |
589 | 50 | T | F | if (not $data or ref $data ne "HASH") |
590 | 50 | T | F | if ($self->_load_driver("Config::Abstract")) |
595 | 0 | T | F | if ($@) { } |
| 0 | T | F | elsif ($data) { } |
599 | 0 | T | F | if (scalar keys %{$data;} == 0) |
607 | 50 | T | F | if (not $data or ref $data ne "HASH") |
610 | 50 | T | F | if ($data = $ca->parse) |
618 | 50 | T | F | if ($logger) |
619 | 0 | T | F | if ($@) { } |
626 | 100 | T | F | if (scalar keys %merged) { } |
| 50 | T | F | elsif ($data and ref $data eq 'HASH') { } |
| 0 | T | F | elsif (not $@ and $logger) { } |
627 | 50 | T | F | if ($data) |
647 | 100 | T | F | unless $key =~ /^$$self{"env_prefix"}(.*)$/i |
649 | 100 | T | F | if ($path =~ /__/) { } |
661 | 50 | T | F | unless $arg =~ /=/ |
663 | 50 | T | F | unless $key =~ /^\-\-$$self{"env_prefix"}(.*)$/ |
672 | 100 | T | F | if ($$self{'flatten'}) { } |
679 | 100 | T | F | $$self{'flatten'} ? : |
693 | 100 | T | F | if ($$self{"flatten"}) |
698 | 50 | T | F | unless ref $ref eq "HASH" |
701 | 100 | T | F | if (defined $ref and not $$self{"no_fixate"}) |
702 | 50 | T | F | if (ref $ref eq 'HASH') { } |
| 100 | T | F | elsif (ref $ref eq 'ARRAY') { } |
724 | 50 | T | F | $$self{'config'} && scalar keys %{$$self{'config'};} ? : |
776 | 50 | T | F | if scalar @_ == 0 |
780 | 100 | T | F | unless defined $defaults |
785 | 50 | T | F | if ($$config{"global"}) |
786 | 0 | T | F | if ($$params{'deep'}) { } |
793 | 50 | T | F | if ($section and $$config{$section}) |
796 | 100 | T | F | if ($$params{"merge"}) |
807 | 100 | T | F | if $$self{"loaded"}{$driver} |
808 | 100 | T | F | if $$self{"failed"}{$driver} |
811 | 100 | T | F | if ($@) |
812 | 50 | T | F | if (my $logger = $$self{"logger"}) |
860 | 100 | T | F | if $key eq "DESTROY" |
868 | 100 | T | F | if ($$self{"flatten"}) |
869 | 50 | T | F | if exists $data->{$key} |
877 | 100 | T | F | if (ref $val eq 'HASH' and exists $val->{$part}) { } |