kylekatarnls/business-day

View on GitHub
prepare-names-files.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php

$keys = [];
foreach (glob('src/Cmixin/Holidays/*.php') as $file) {
    $keys = array_merge($keys, include $file);
}
$keys = array_keys($keys);
$length = max(array_map('strlen', $keys));
sort($keys);

foreach (glob('src/Cmixin/HolidayNames/*.php') as $file) {
    $data = include $file;
    $newData = [];

    foreach ($keys as $key) {
        $newData[$key] = isset($data[$key]) ? $data[$key] : 'Unknown';
    }

    if (true || $newData !== $data) {
        $data = str_replace('array(', 'array(', var_export($newData, true));
        $data = preg_replace_callback('/^\s*\'([^\']+)\'\s*=>/m', function ($match) use ($length) {
            $key = $match[1];
            $spaces = str_repeat(' ', $length - strlen($key));

            return "    '$key'$spaces =>";
        }, $data);
        file_put_contents($file, "<?php\n\nreturn $data;\n");
    }
}