public function compile(\Twig_Compiler $compiler)
{
$body = $this->getNode('body');
if (null !== $this->sha) {
$output = "\$this->env->getExtension('Nelmio\\SecurityBundle\\Twig\\NelmioCSPTwigExtension')->getListener()->addSha('{$this->directive}', '{$this->sha}');\necho ob_get_clean();\n";
} elseif ($this->directive === 'script-src') {
$output = "\$script = ob_get_clean();\n\$this->env->getExtension('Nelmio\\SecurityBundle\\Twig\\NelmioCSPTwigExtension')->getListener()->addScript(\$script);\necho \$script;\n";
} elseif ($this->directive === 'style-src') {
$output = "\$style = ob_get_clean();\n\$this->env->getExtension('Nelmio\\SecurityBundle\\Twig\\NelmioCSPTwigExtension')->getListener()->addStyle(\$style);\necho \$style;\n";
} else {
throw new \InvalidArgumentException(sprintf('Unable to compile for directive "%s"', $this->directive));
}
$compiler->addDebugInfo($this)->write("ob_start();\n")->subcompile($body)->write($output);
}