Loads assets from the supplied node.
array An array of asset formulae indexed by name
private function loadNode(\Twig_Node $node) {
$formulae = array();
if ($node instanceof AsseticNode) {
$formulae[$node
->getAttribute('name')] = array(
$node
->getAttribute('inputs'),
$node
->getAttribute('filters'),
array(
'output' => $node
->getAttribute('asset')
->getTargetPath(),
'name' => $node
->getAttribute('name'),
'debug' => $node
->getAttribute('debug'),
'combine' => $node
->getAttribute('combine'),
'vars' => $node
->getAttribute('vars'),
),
);
}
elseif ($node instanceof \Twig_Node_Expression_Function) {
$name = version_compare(\Twig_Environment::VERSION, '1.2.0-DEV', '<') ? $node
->getNode('name')
->getAttribute('name') : $node
->getAttribute('name');
if ($this->twig
->getFunction($name) instanceof AsseticFilterFunction) {
$arguments = array();
foreach ($node
->getNode('arguments') as $argument) {
$arguments[] = eval('return ' . $this->twig
->compile($argument) . ';');
}
$invoker = $this->twig
->getExtension('assetic')
->getFilterInvoker($name);
$inputs = isset($arguments[0]) ? (array) $arguments[0] : array();
$filters = $invoker
->getFilters();
$options = array_replace($invoker
->getOptions(), isset($arguments[1]) ? $arguments[1] : array());
if (!isset($options['name'])) {
$options['name'] = $invoker
->getFactory()
->generateAssetName($inputs, $filters, $options);
}
$formulae[$options['name']] = array(
$inputs,
$filters,
$options,
);
}
}
foreach ($node as $child) {
if ($child instanceof \Twig_Node) {
$formulae += $this
->loadNode($child);
}
}
return $formulae;
}