Config-Processor
view release on metacpan or search on metacpan
t/02-processing.t view on Meta::CPAN
'bar_B:val6_2_1',
'bar_B:val6_2_2',
],
param6_3 => 'bar_A:val6_3',
param6_4 => 'bar_B:val6_4',
param6_5 => [
'zoo:val6_5_1',
'zoo:val6_5_2',
],
},
},
moo => {
param1 => { var => 'foo.param3' },
param2 => { var => 'bar.param4' },
param3 => [
{ var => 'foo.param3' },
{ var => 'bar.param4' },
],
param4 => {
param4_1 => 'moo:val4_1',
param4_2 => 'moo:val4_2',
param4_3 => 'moo:val4_3',
param4_4 => 'moo:val4_4',
param4_7 => 1,
param4_8 => '',
},
param4_A => {
underlay => { var => 'moo.param4' },
param4_1 => 'moo:val4_A_1',
param4_2 => 'moo:val4_A_2',
param4_5 => 'moo:val4_A_5',
},
param4_B => {
underlay => { var => 'moo.param4' },
param4_3 => 'moo:val4_B_3',
param4_4 => 'moo:val4_B_4',
param4_5 => 'moo:val4_B_5',
},
param4_C => {
underlay => { var => 'moo.param4_A' },
param4_1 => 'moo:val4_C_1',
param4_6 => 'moo:val4_C_6',
},
param4_D => {
underlay => { var => 'moo.param4_B' },
param4_3 => 'moo:val4_D_3',
param4_6 => 'moo:val4_D_6',
},
param4_E => {
param4_1 => 'moo:val4_E_1',
param4_2 => 'moo:val4_E_2',
param4_5 => 'moo:val4_E_5',
overlay => { var => 'moo.param4' },
},
param4_F => {
param4_3 => 'moo:val4_F_3',
param4_4 => 'moo:val4_F_4',
param4_5 => 'moo:val4_F_5',
overlay => { var => 'moo.param4' },
},
param4_G => {
param4_1 => 'moo:val4_G_1',
param4_6 => 'moo:val4_G_6',
overlay => { var => 'moo.param4_E' },
},
param4_H => {
param4_3 => 'moo:val4_H_3',
param4_6 => 'moo:val4_H_6',
overlay => { var => 'moo.param4_F' },
},
param5 => {
param5_1 => { include => 'includes/moo_A.yml' },
param5_2 => { include => 'includes/moo_B.json' },
param5_3 => { include => 'includes/*' },
},
param6_A => {
underlay => [
{ var => 'foo.param6' },
{ include => 'includes/moo_C.yml' },
{ param6_1 => 'moo:val6_1',
param6_4 => 'moo:val6_4',
},
],
param6_5 => 'moo:val6_5',
param6_6 => 'moo:val6_6',
},
param6_B => {
param6_5 => 'moo:val6_5',
param6_6 => 'moo:val6_6',
overlay => [
{ var => 'foo.param6' },
{ include => 'includes/moo_C.yml' },
{ param6_1 => 'moo:val6_1',
param6_4 => 'moo:val6_4',
}
],
},
param6_C => {
underlay => [
'moo:val6_C_1',
'moo:val6_C_2',
],
param6_2 => 'moo:val6_C_2',
param6_1 => 'moo:val6_C_1',
},
param6_D => {
param6_1 => 'moo:val6_D_1',
param6_2 => 'moo:val6_D_2',
overlay => [
'moo:val6_D_1',
'moo:val6_D_2',
],
},
param6_E => {
underlay => 'moo:val6_E_3',
param6_1 => 'moo:val6_E_1',
param6_2 => 'moo:val6_E_2',
},
param6_F => {
param6_1 => 'moo:val6_F_1',
param6_2 => 'moo:val6_F_2',
overlay => 'moo:val6_F_3',
},
},
};
is_deeply( $t_config, $e_config, 'directive processing: off' );
return;
}
sub t_complete_processing {
my $config_processor = shift;
my $t_config = $config_processor->load(
qw( foo_A.yaml foo_B.yml bar_A.json bar_B.jsn zoo.yml jar.json moo.yml
yar.yml ) );
my $e_config = {
foo => {
param1 => 'foo_B:val1',
param2 => 'foo_A:val2',
param4 => [
'foo_B:val4_1',
'foo_B:val4_2',
],
param3 => {
param3_1 => 'zoo:val3_1',
param3_2 => 'foo_A:val3_2',
param3_3 => 'foo_B:val3_3',
param3_4 => 'zoo:val3_4',
},
param5 => [
'foo_B:val5_1',
{ param5_2_1 => 'foo_B:val5_2_1',
param5_2_2 => 'foo_B:val5_2_2',
}
],
param6 => {
param6_1 => 'zoo:val6_1',
param6_2 => [
'foo_B:val6_2_1',
'foo_B:val6_2_2',
],
param6_3 => 'foo_A:val6_3',
param6_4 => 'foo_B:val6_4',
param6_5 => [
'zoo:val6_5_1',
'zoo:val6_5_2',
],
},
},
bar => {
param1 => 'bar_B:val1',
param2 => 'bar_A:val2',
param3 => {
( run in 0.451 second using v1.01-cache-2.11-cpan-df04353d9ac )