PhpSpec\CodeGenerator\Generator\ReturnConstantGenerator::generate PHP Метод

generate() публичный Метод

public generate ( PhpSpec\Locator\Resource $resource, array $data )
$resource PhpSpec\Locator\Resource
$data array
    public function generate(Resource $resource, array $data)
    {
        $method = $data['method'];
        $expected = $data['expected'];
        $code = $this->filesystem->getFileContents($resource->getSrcFilename());
        $values = array('%constant%' => var_export($expected, true));
        if (!($content = $this->templates->render('method', $values))) {
            $content = $this->templates->renderString($this->getTemplate(), $values);
        }
        $pattern = '/' . '(function\\s+' . preg_quote($method, '/') . '\\s*\\([^\\)]*\\))\\s+{[^}]*?}/';
        $replacement = '$1' . $content;
        $modifiedCode = preg_replace($pattern, $replacement, $code);
        $this->filesystem->putFileContents($resource->getSrcFilename(), $modifiedCode);
        $this->io->writeln(sprintf("<info>Method <value>%s::%s()</value> has been modified.</info>\n", $resource->getSrcClassname(), $method), 2);
    }