| line | % | coverage | branch |
| 335 | 100 | T | F | if (scalar @_ == 1) { } |
| 344 | 100 | T | F | if $params->{'file'} |
| 346 | 100 | T | F | unless (defined $params->{'config_dirs'}) |
| 347 | 100 | T | F | if ($params->{'config_file'} and 'File::Spec'->file_name_is_absolute($params->{'config_file'})) { } |
| 351 | 50 | T | F | if ($^O ne 'MSWin32') { } |
| 356 | 100 | T | F | if ($ENV{'HOME'}) { } |
| 50 | T | F | elsif ($ENV{'DOCUMENT_ROOT'}) { } |
| 367 | 100 | T | F | if (my $dir = $ENV{'CONFIG_DIR'}) { } |
| 377 | 100 | T | F | $params->{'defaults'} ? : |
| 382 | 100 | T | F | if (my $logger = $self->{'logger'}) |
| 383 | 100 | T | F | unless (&Scalar::Util::blessed($logger)) |
| 386 | 50 | T | F | if ($@) { } |
| 391 | 0 | T | F | if ($params->{'level'} and $self->{'logger'}->can("level")) |
| 399 | 100 | T | F | if (my $schema = $params->{'schema'}) |
| 403 | 100 | T | F | if (defined $self->{'config'} and scalar keys %{$$self{"config"};}) |
| 417 | 100 | T | F | unless defined $val |
| 418 | 100 | T | F | if &Scalar::Util::blessed($val) |
| 419 | 100 | T | F | if ref $val |
| 425 | 50 | T | F | unless (UNIVERSAL::isa((&CORE::GLOBAL::caller())[0], __PACKAGE__)) |
| 432 | 100 | T | F | if ($self->{'data'}) |
| 438 | 100 | T | F | if ($logger) |
| 443 | 100 | T | F | if ($self->{'config_file'} and scalar @dirs > 1) |
| 444 | 50 | T | F | if ('File::Spec'->file_name_is_absolute($self->{'config_file'})) { } |
| 453 | 100 | T | F | unless defined $dir |
| 454 | 100 | T | F | if (length $dir and not -d $dir) |
| 460 | 50 | T | F | if ($logger) |
| 463 | 100 | T | F | unless -f $path |
| 464 | 50 | T | F | unless -r $path |
| 466 | 50 | T | F | if ($logger) |
| 472 | 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$/) { } |
| 475 | 100 | T | F | if ($@) |
| 476 | 50 | T | F | if ($logger) { } |
| 485 | 100 | T | F | if ($@) |
| 486 | 50 | T | F | if ($logger) { } |
| 495 | 50 | T | F | if ($self->_load_driver("XML::Simple", ["XMLin"])) |
| 497 | 0 | T | F | if ($@) { } |
| 0 | T | F | elsif ($rc) { } |
| 498 | 0 | T | F | if ($logger) { } |
| 508 | 50 | T | F | if (not defined $rc and $self->_load_driver("XML::PP")) |
| 511 | 50 | T | F | if (my $tree = $xml_pp->parse(\$data)) |
| 512 | 50 | T | F | if ($data = $xml_pp->collapse_structure($tree)) |
| 514 | 50 | T | F | if ($data->{'config'}) |
| 522 | 50 | T | F | if (my $ini = 'Config::IniFiles'->new('-file', $path)) { } |
| 528 | 0 | T | F | if ($logger) { } |
| 535 | 100 | T | F | if ($data) |
| 536 | 50 | T | F | unless (ref $data) |
| 537 | 0 | T | F | if ($logger) |
| 542 | 100 | T | F | if (ref $data ne "HASH") |
| 543 | 50 | T | F | if ($logger) |
| 548 | 50 | T | F | if ($logger) |
| 557 | 100 | T | F | unless ($self->{'script_name'}) |
| 558 | 50 | T | F | unless "File::Basename"->can("basename") |
| 566 | 100 | T | F | unless defined $config_file |
| 569 | 100 | T | F | if $config_file eq $script_name and length $dir == 0 || $dir eq 'File::Spec'->curdir |
| 570 | 100 | T | F | length $dir ? : |
| 571 | 50 | T | F | if ($logger) |
| 574 | 100 | T | F | if (-f $path and -r $path) |
| 576 | 50 | T | F | if ($logger) |
| 580 | 100 | T | F | if ($data =~ /^\s*<\?xml/ or $data =~ m[</.+>]) { } |
| 100 | T | F | elsif ($data =~ /\{.+:.\}/s) { } |
| 581 | 50 | T | F | if ($self->_load_driver('XML::Simple', ['XMLin'])) { } |
| 50 | T | F | elsif ($self->_load_driver('XML::PP')) { } |
| 582 | 0 | T | F | if ($data = XMLin($path, "ForceArray", 0, "KeyAttr", scalar [])) |
| 587 | 50 | T | F | if (my $tree = $xml_pp->parse(\$data)) |
| 588 | 50 | T | F | if ($data = $xml_pp->collapse_structure($tree)) |
| 590 | 50 | T | F | if ($data->{'config'}) |
| 601 | 50 | T | F | if ($is_json) { } |
| 603 | 50 | T | F | if ($@) |
| 609 | 50 | T | F | if ($data) |
| 615 | 100 | T | F | unless ($data) |
| 617 | 100 | T | F | if (eval {
do {
$data = LoadFile($path)
}
} and ref $data eq "HASH") |
| 622 | 50 | T | F | unless (defined $v) |
| 630 | 100 | T | F | unless _is_plain_scalar($v) |
| 632 | 50 | T | F | if $v =~ /^".+"$/ |
| 633 | 100 | T | F | if ($v =~ /,/) |
| 637 | 50 | T | F | if ($val =~ /(.+)=(.+)/) { } |
| 645 | 50 | T | F | if ($data) |
| 649 | 100 | T | F | if (not $data or ref $data ne "HASH") |
| 651 | 100 | T | F | if (my $ini = "Config::IniFiles"->new("-file", $path)) |
| 656 | 50 | T | F | if ($data) |
| 660 | 100 | T | F | if (not $data or ref $data ne "HASH") |
| 662 | 50 | T | F | if ($self->_load_driver("XML::Simple", ["XMLin"])) |
| 665 | 50 | T | F | if (not $data or ref $data ne "HASH") |
| 666 | 50 | T | F | if ($self->_load_driver("Config::Abstract")) |
| 673 | 0 | T | F | if ($err) { } |
| 0 | T | F | elsif ($data) { } |
| 677 | 0 | T | F | if (scalar keys %{$data;} == 0) |
| 684 | 50 | T | F | if (not $data or ref $data ne "HASH") |
| 687 | 50 | T | F | if ($data = $ca->parse) |
| 695 | 50 | T | F | if ($logger) |
| 696 | 0 | T | F | if ($@) { } |
| 703 | 100 | T | F | if (scalar keys %merged) { } |
| 50 | T | F | elsif ($data and ref $data eq 'HASH') { } |
| 0 | T | F | elsif (not $@ and $logger) { } |
| 704 | 50 | T | F | if ($data) |
| 724 | 100 | T | F | unless $key =~ /^$self->{'env_prefix'}(.*)$/i |
| 726 | 100 | T | F | if ($path =~ /__/) { } |
| 738 | 100 | T | F | unless $arg =~ /=/ |
| 740 | 100 | T | F | unless $key =~ /^\-\-$self->{'env_prefix'}(.*)$/ |
| 744 | 50 | T | F | if (scalar @parts > 0) |
| 746 | 100 | T | F | if (scalar @parts > 1) |
| 753 | 100 | T | F | if ($self->{'flatten'}) { } |
| 760 | 100 | T | F | $self->{'flatten'} ? : |
| 774 | 100 | T | F | if ($self->{'flatten'}) |
| 779 | 100 | T | F | unless ref $ref eq "HASH" |
| 780 | 100 | T | F | unless exists $ref->{$part} |
| 783 | 100 | T | F | if (defined $ref and ref $ref eq "HASH" and not $self->{'no_fixate'}) |
| 784 | 50 | T | F | if ($self->_load_data_reuse) |
| 785 | 0 | T | F | if (ref $ref eq 'HASH') { } |
| 0 | T | F | elsif (ref $ref eq 'ARRAY') { } |
| 786 | 0 | T | F | unless (tied %$ref) |
| 810 | 100 | T | F | if $self->{'no_fixate'} |
| 813 | 50 | T | F | if $self->{'reuse_loaded'} |
| 814 | 100 | T | F | if $self->{'reuse_failed'} |
| 820 | 50 | T | F | if ($@) |
| 840 | 100 | T | F | if ($self->{'flatten'}) |
| 841 | 100 | T | F | exists $self->{'config'}{$key} ? : |
| 845 | 100 | T | F | unless ref $ref eq "HASH" |
| 846 | 100 | T | F | unless exists $ref->{$part} |
| 865 | 50 | T | F | unless $self->{'config'} |
| 872 | 100 | T | F | scalar keys %{$$self{'config'};} ? : |
| 924 | 100 | T | F | if scalar @_ == 0 |
| 928 | 100 | T | F | unless defined $defaults |
| 933 | 100 | T | F | if (exists $config->{'global'}) |
| 934 | 100 | T | F | if ($params->{'deep'}) { } |
| 941 | 100 | T | F | if ($section and exists $config->{$section}) |
| 944 | 100 | T | F | if ($params->{'merge'}) |
| 959 | 100 | T | F | if $self->{'loaded'}{$driver} |
| 960 | 100 | T | F | if $self->{'failed'}{$driver} |
| 963 | 100 | T | F | if ($@) |
| 964 | 50 | T | F | if (my $logger = $self->{'logger'}) |
| 1012 | 100 | T | F | if $key eq "DESTROY" |
| 1020 | 100 | T | F | if ($self->{'flatten'}) |
| 1021 | 100 | T | F | if exists $data->{$key} |
| 1029 | 100 | T | F | if (ref $val eq 'HASH' and exists $val->{$part}) { } |