Net-Z3950-FOLIO
view release on metacpan or search on metacpan
lib/Net/Z3950/FOLIO/Config.pm view on Meta::CPAN
sub _compileConfig {
my($cfgbase, @extras) = @_;
my $cfg = _compileConfigFile($cfgbase, undef, MISSING_ERROR);
my $isFirst = 1;
while (@extras) {
my $extra = shift @extras;
my $overlay = _compileConfigFile($cfgbase, $extra, $isFirst ? MISSING_TENANT : MISSING_FILTER);
$isFirst = 0;
_mergeConfig($cfg, $overlay);
}
my $gqlfile = $cfg->{graphqlQuery}
or die "$0: no GraphQL query file defined";
my $path = $cfgbase;
if ($path =~ /\//) {
$path =~ s/(.*)?\/.*/$1/;
$gqlfile = "$path/$gqlfile";
}
lib/Net/Z3950/FOLIO/Config.pm view on Meta::CPAN
$env = '';
}
$val = "$pre$env$post";
}
return $val;
}
sub _mergeConfig {
my($base, $overlay) = @_;
my %complex_keys = (
okapi => 1,
login => 1,
indexMap => 1,
marcHoldings => 1,
fieldDefinitions => {
holding => 1,
circulation => 1,
},
);
foreach my $key (keys (%complex_keys)) {
if (defined $overlay->{$key}) {
if (ref $base->{$key} eq 'HASH') {
_mergeHash($base->{$key}, $overlay->{$key}, $complex_keys{$key});
} else {
$base->{$key} = $overlay->{$key};
}
}
}
foreach my $key (sort keys %$overlay) {
if (!$complex_keys{$key}) {
$base->{$key} = $overlay->{$key};
}
}
}
sub _mergeHash {
my($base, $overlay, $keysOfsubStructures) = @_;
foreach my $key (sort keys %$overlay) {
if (ref $keysOfsubStructures eq 'HASH' && $keysOfsubStructures->{$key}) {
_mergeHash($base->{$key}, $overlay->{$key}, $keysOfsubStructures->{$key});
} else {
$base->{$key} = $overlay->{$key};
}
}
}
=encoding utf-8
=head1 NAME
Net::Z3950::FOLIO::Config - configuration file for the FOLIO Z39.50 gateway
( run in 0.229 second using v1.01-cache-2.11-cpan-26ccb49234f )