PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB` destination = $destination; $this->codeGenerator = $codeGenerator ?: new CodeGenerator(); $this->fs = $fs ?: new Filesystem(); } /** @throws FileNotFoundException */ public function convertFile(string $yamlFile, bool $backupBeforeOverride = true): void { if (!$this->fs->exists($yamlFile)) { throw FileNotFoundException::fileNotFound($yamlFile); } $this->doConvert(Yaml::parse(file_get_contents($yamlFile)), $backupBeforeOverride); } public function convertString(string $yamlString, bool $backupBeforeOverride = true): void { $this->doConvert(Yaml::parse($yamlString), $backupBeforeOverride); } protected function doConvert(array $regexes, bool $backupBeforeOverride = true): void { $regexes = $this->sanitizeRegexes($regexes); $code = $this->codeGenerator->generateArray($regexes); $code = "destination.'/regexes.php'; if ($backupBeforeOverride && $this->fs->exists($regexesFile)) { $currentHash = hash('sha512', file_get_contents($regexesFile)); $futureHash = hash('sha512', $code); if ($futureHash === $currentHash) { return; } $backupFile = $this->destination . '/regexes-' . $currentHash . '.php'; $this->fs->copy($regexesFile, $backupFile); } $this->fs->dumpFile($regexesFile, $code); } private function sanitizeRegexes(array $regexes): array { foreach ($regexes as $groupName => $group) { $regexes[$groupName] = array_map([$this, 'sanitizeRegex'], $group); } return $regexes; } private function sanitizeRegex(array $regex): array { $regex['regex'] = '@' . str_replace('@', '\@', $regex['regex']) . '@'; if (isset($regex['regex_flag'])) { $regex['regex'] .= $regex['regex_flag']; } unset($regex['regex_flag']); return $regex; } }