Branch Coverage

File:blib/lib/Config/Abstraction.pm
Coverage:71.0%

line%coveragebranch
335100TFif (scalar @_ == 1) { }
344100TFif $params->{'file'}
346100TFunless (defined $params->{'config_dirs'})
347100TFif ($params->{'config_file'} and 'File::Spec'->file_name_is_absolute($params->{'config_file'})) { }
35150TFif ($^O ne 'MSWin32') { }
356100TFif ($ENV{'HOME'}) { }
50TFelsif ($ENV{'DOCUMENT_ROOT'}) { }
367100TFif (my $dir = $ENV{'CONFIG_DIR'}) { }
377100TF$params->{'defaults'} ? :
382100TFif (my $logger = $self->{'logger'})
383100TFunless (&Scalar::Util::blessed($logger))
38650TFif ($@) { }
3910TFif ($params->{'level'} and $self->{'logger'}->can("level"))
399100TFif (my $schema = $params->{'schema'})
403100TFif (defined $self->{'config'} and scalar keys %{$$self{"config"};})
417100TFunless defined $val
418100TFif &Scalar::Util::blessed($val)
419100TFif ref $val
42550TFunless (UNIVERSAL::isa((&CORE::GLOBAL::caller())[0], __PACKAGE__))
432100TFif ($self->{'data'})
438100TFif ($logger)
443100TFif ($self->{'config_file'} and scalar @dirs > 1)
44450TFif ('File::Spec'->file_name_is_absolute($self->{'config_file'})) { }
453100TFunless defined $dir
454100TFif (length $dir and not -d $dir)
46050TFif ($logger)
463100TFunless -f $path
46450TFunless -r $path
46650TFif ($logger)
472100TFif ($file =~ /\.ya?ml$/) { }
100TFelsif ($file =~ /\.json$/) { }
100TFelsif ($file =~ /\.xml$/) { }
50TFelsif ($file =~ /\.ini$/) { }
475100TFif ($@)
47650TFif ($logger) { }
485100TFif ($@)
48650TFif ($logger) { }
49550TFif ($self->_load_driver("XML::Simple", ["XMLin"]))
4970TFif ($@) { }
0TFelsif ($rc) { }
4980TFif ($logger) { }
50850TFif (not defined $rc and $self->_load_driver("XML::PP"))
51150TFif (my $tree = $xml_pp->parse(\$data))
51250TFif ($data = $xml_pp->collapse_structure($tree))
51450TFif ($data->{'config'})
52250TFif (my $ini = 'Config::IniFiles'->new('-file', $path)) { }
5280TFif ($logger) { }
535100TFif ($data)
53650TFunless (ref $data)
5370TFif ($logger)
542100TFif (ref $data ne "HASH")
54350TFif ($logger)
54850TFif ($logger)
557100TFunless ($self->{'script_name'})
55850TFunless "File::Basename"->can("basename")
566100TFunless defined $config_file
569100TFif $config_file eq $script_name and length $dir == 0 || $dir eq 'File::Spec'->curdir
570100TFlength $dir ? :
57150TFif ($logger)
574100TFif (-f $path and -r $path)
57650TFif ($logger)
580100TFif ($data =~ /^\s*<\?xml/ or $data =~ m[</.+>]) { }
100TFelsif ($data =~ /\{.+:.\}/s) { }
58150TFif ($self->_load_driver('XML::Simple', ['XMLin'])) { }
50TFelsif ($self->_load_driver('XML::PP')) { }
5820TFif ($data = XMLin($path, "ForceArray", 0, "KeyAttr", scalar []))
58750TFif (my $tree = $xml_pp->parse(\$data))
58850TFif ($data = $xml_pp->collapse_structure($tree))
59050TFif ($data->{'config'})
60150TFif ($is_json) { }
60350TFif ($@)
60950TFif ($data)
615100TFunless ($data)
617100TFif (eval {         do {         $data = LoadFile($path) } } and ref $data eq "HASH")
62250TFunless (defined $v)
630100TFunless _is_plain_scalar($v)
63250TFif $v =~ /^".+"$/
633100TFif ($v =~ /,/)
63750TFif ($val =~ /(.+)=(.+)/) { }
64550TFif ($data)
649100TFif (not $data or ref $data ne "HASH")
651100TFif (my $ini = "Config::IniFiles"->new("-file", $path))
65650TFif ($data)
660100TFif (not $data or ref $data ne "HASH")
66250TFif ($self->_load_driver("XML::Simple", ["XMLin"]))
66550TFif (not $data or ref $data ne "HASH")
66650TFif ($self->_load_driver("Config::Abstract"))
6730TFif ($err) { }
0TFelsif ($data) { }
6770TFif (scalar keys %{$data;} == 0)
68450TFif (not $data or ref $data ne "HASH")
68750TFif ($data = $ca->parse)
69550TFif ($logger)
6960TFif ($@) { }
703100TFif (scalar keys %merged) { }
50TFelsif ($data and ref $data eq 'HASH') { }
0TFelsif (not $@ and $logger) { }
70450TFif ($data)
724100TFunless $key =~ /^$self->{'env_prefix'}(.*)$/i
726100TFif ($path =~ /__/) { }
738100TFunless $arg =~ /=/
740100TFunless $key =~ /^\-\-$self->{'env_prefix'}(.*)$/
74450TFif (scalar @parts > 0)
746100TFif (scalar @parts > 1)
753100TFif ($self->{'flatten'}) { }
760100TF$self->{'flatten'} ? :
774100TFif ($self->{'flatten'})
779100TFunless ref $ref eq "HASH"
780100TFunless exists $ref->{$part}
783100TFif (defined $ref and ref $ref eq "HASH" and not $self->{'no_fixate'})
78450TFif ($self->_load_data_reuse)
7850TFif (ref $ref eq 'HASH') { }
0TFelsif (ref $ref eq 'ARRAY') { }
7860TFunless (tied %$ref)
810100TFif $self->{'no_fixate'}
81350TFif $self->{'reuse_loaded'}
814100TFif $self->{'reuse_failed'}
82050TFif ($@)
840100TFif ($self->{'flatten'})
841100TFexists $self->{'config'}{$key} ? :
845100TFunless ref $ref eq "HASH"
846100TFunless exists $ref->{$part}
86550TFunless $self->{'config'}
872100TFscalar keys %{$$self{'config'};} ? :
924100TFif scalar @_ == 0
928100TFunless defined $defaults
933100TFif (exists $config->{'global'})
934100TFif ($params->{'deep'}) { }
941100TFif ($section and exists $config->{$section})
944100TFif ($params->{'merge'})
959100TFif $self->{'loaded'}{$driver}
960100TFif $self->{'failed'}{$driver}
963100TFif ($@)
96450TFif (my $logger = $self->{'logger'})
1012100TFif $key eq "DESTROY"
1020100TFif ($self->{'flatten'})
1021100TFif exists $data->{$key}
1029100TFif (ref $val eq 'HASH' and exists $val->{$part}) { }