private function addWebLoader(\Nette\DI\ContainerBuilder $builder, $name, $config)
{
$filesServiceName = $this->prefix($name . 'Files');
$files = $builder->addDefinition($filesServiceName)->setClass('WebLoader\\FileCollection')->setArguments(array($config['sourceDir']));
foreach ($config['files'] as $file) {
// finder support
if (is_array($file) && isset($file['files']) && (isset($file['in']) || isset($file['from']))) {
$finder = \Nette\Utils\Finder::findFiles($file['files']);
unset($file['files']);
foreach ($file as $method => $params) {
call_user_func_array(array($finder, $method), array($params));
}
foreach ($finder as $foundFile) {
$files->addSetup('addFile', array((string) $foundFile));
}
} else {
$files->addSetup('addFile', array($file));
}
}
$files->addSetup('addRemoteFiles', array($config['remoteFiles']));
$compiler = $builder->addDefinition($this->prefix($name . 'Compiler'))->setClass('WebLoader\\Compiler')->setArguments(array('@' . $filesServiceName, $config['namingConvention'], $config['tempDir']));
$compiler->addSetup('setJoinFiles', array($config['joinFiles']));
foreach ($config['filters'] as $filter) {
$compiler->addSetup('addFilter', array($filter));
}
foreach ($config['fileFilters'] as $filter) {
$compiler->addSetup('addFileFilter', array($filter));
}
// todo css media
}