protected function AsseticNode::compileAsset

2 calls to AsseticNode::compileAsset()
AsseticNode::compile in drupal/core/vendor/kriswallsmith/assetic/src/Assetic/Extension/Twig/AsseticNode.php
AsseticNode::compileDebug in drupal/core/vendor/kriswallsmith/assetic/src/Assetic/Extension/Twig/AsseticNode.php

File

drupal/core/vendor/kriswallsmith/assetic/src/Assetic/Extension/Twig/AsseticNode.php, line 102

Class

AsseticNode

Namespace

Assetic\Extension\Twig

Code

protected function compileAsset(\Twig_Compiler $compiler, AssetInterface $asset, $name) {
  if ($vars = $asset
    ->getVars()) {
    $compiler
      ->write("// check variable conditions\n");
    foreach ($vars as $var) {
      $compiler
        ->write("if (!isset(\$context['assetic']['vars']['{$var}'])) {\n")
        ->indent()
        ->write("throw new \\RuntimeException(sprintf('The asset \"" . $name . "\" expected variable \"" . $var . "\" to be set, but got only these vars: %s. Did you set-up a value supplier?', isset(\$context['assetic']['vars']) && \$context['assetic']['vars'] ? implode(', ', \$context['assetic']['vars']) : '# none #'));\n")
        ->outdent()
        ->write("}\n");
    }
    $compiler
      ->raw("\n");
  }
  $compiler
    ->write("// asset \"{$name}\"\n")
    ->write('$context[')
    ->repr($this
    ->getAttribute('var_name'))
    ->raw('] = ');
  $this
    ->compileAssetUrl($compiler, $asset, $name);
  $compiler
    ->raw(";\n")
    ->subcompile($this
    ->getNode('body'));
}