Skip to content

Commit

Permalink
[AsseticBundle] moved some parameter defaults to Configuration
Browse files Browse the repository at this point in the history
  • Loading branch information
kriswallsmith committed Apr 1, 2011
1 parent 347b66a commit 2bc8c5f
Show file tree
Hide file tree
Showing 9 changed files with 39 additions and 47 deletions.
Expand Up @@ -48,11 +48,9 @@ public function load(array $configs, ContainerBuilder $container)
$container->setParameter('assetic.read_from', $config['read_from']);
$container->setParameter('assetic.write_to', $config['write_to']);

$container->setParameter('assetic.closure.jar', $config['closure']);
$container->setParameter('assetic.java.bin', $config['java']);
$container->setParameter('assetic.node.bin', $config['node']);
$container->setParameter('assetic.sass.bin', $config['sass']);
$container->setParameter('assetic.yui.jar', $config['yui']);

// register filters
foreach ($config['filters'] as $name => $filter) {
Expand Down
Expand Up @@ -25,12 +25,12 @@ public function process(ContainerBuilder $container)
{
if ($container->hasDefinition('assetic.filter.yui_css') &&
!$container->getParameterBag()->resolveValue($container->getParameter('assetic.filter.yui_css.jar'))) {
throw new \RuntimeException('The Assetic "yui_css" configuration requires a "jar" value.');
throw new \RuntimeException('The "assetic.filters.yui_css" configuration requires a "jar" value.');
}

if ($container->hasDefinition('assetic.filter.yui_js') &&
!$container->getParameterBag()->resolveValue($container->getParameter('assetic.filter.yui_js.jar'))) {
throw new \RuntimeException('The Assetic "yui_js" configuration requires a "jar" value.');
throw new \RuntimeException('The "assetic.filters.yui_js" configuration requires a "jar" value.');
}
}
}
Expand Up @@ -42,11 +42,9 @@ public function getConfigTree($debug, array $bundles)
->booleanNode('use_controller')->defaultValue($debug)->end()
->scalarNode('read_from')->defaultValue('%kernel.root_dir%/../web')->end()
->scalarNode('write_to')->defaultValue('%assetic.read_from%')->end()
->scalarNode('closure')->defaultNull()->end()
->scalarNode('java')->defaultNull()->end()
->scalarNode('node')->defaultNull()->end()
->scalarNode('sass')->defaultNull()->end()
->scalarNode('yui')->defaultNull()->end()
->scalarNode('java')->defaultValue('/usr/bin/java')->end()
->scalarNode('node')->defaultValue('/usr/bin/node')->end()
->scalarNode('sass')->defaultValue('/usr/bin/sass')->end()
->end()

// bundles
Expand Down
8 changes: 2 additions & 6 deletions src/Symfony/Bundle/AsseticBundle/Resources/config/assetic.xml
Expand Up @@ -13,13 +13,7 @@
<parameter key="assetic.directory_resource.class">Symfony\Bundle\AsseticBundle\Factory\Resource\DirectoryResource</parameter>
<parameter key="assetic.filter_manager.class">Symfony\Bundle\AsseticBundle\FilterManager</parameter>

<parameter key="assetic.closure.jar" />
<parameter key="assetic.java.bin">/usr/bin/java</parameter>
<parameter key="assetic.node.bin">/usr/bin/node</parameter>
<parameter key="assetic.node.paths" type="collection"></parameter>
<parameter key="assetic.sass.bin">/usr/bin/sass</parameter>
<parameter key="assetic.yui.jar" />

<parameter key="assetic.cache_dir">%kernel.cache_dir%/assetic</parameter>
</parameters>

Expand All @@ -40,9 +34,11 @@
<argument>%assetic.debug%</argument>
<call method="setFilterManager"><argument type="service" id="assetic.filter_manager" /></call>
</service>

<service id="assetic.config_cache" class="%assetic.config_cache.class%" public="false">
<argument>%assetic.cache_dir%/config</argument>
</service>

<service id="assetic.asset_manager_cache_warmer" class="%assetic.asset_manager_cache_warmer.class%" public="false">
<tag name="kernel.cache_warmer" priority="10" />
<argument type="service" id="assetic.asset_manager" />
Expand Down
Expand Up @@ -8,7 +8,6 @@
<parameter key="assetic.filter.closure.api.class">Assetic\Filter\GoogleClosure\CompilerApiFilter</parameter>
<parameter key="assetic.filter.closure.jar.class">Assetic\Filter\GoogleClosure\CompilerJarFilter</parameter>
<parameter key="assetic.filter.closure.java">%assetic.java.bin%</parameter>
<parameter key="assetic.filter.closure.jar">%assetic.closure.jar%</parameter>
</parameters>

<services>
Expand Down
Expand Up @@ -7,7 +7,7 @@
<parameters>
<parameter key="assetic.filter.yui_css.class">Assetic\Filter\Yui\CssCompressorFilter</parameter>
<parameter key="assetic.filter.yui_css.java">%assetic.java.bin%</parameter>
<parameter key="assetic.filter.yui_css.jar">%assetic.yui.jar%</parameter>
<parameter key="assetic.filter.yui_css.jar" />
</parameters>

<services>
Expand Down
Expand Up @@ -7,7 +7,7 @@
<parameters>
<parameter key="assetic.filter.yui_js.class">Assetic\Filter\Yui\JsCompressorFilter</parameter>
<parameter key="assetic.filter.yui_js.java">%assetic.java.bin%</parameter>
<parameter key="assetic.filter.yui_js.jar">%assetic.yui.jar%</parameter>
<parameter key="assetic.filter.yui_js.jar" />
</parameters>

<services>
Expand Down
Expand Up @@ -18,7 +18,6 @@
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Dumper\PhpDumper;
use Symfony\Component\DependencyInjection\Scope;
use Symfony\Component\Finder\Finder;
use Symfony\Component\HttpFoundation\Request;

class AsseticExtensionTest extends \PHPUnit_Framework_TestCase
Expand Down Expand Up @@ -87,28 +86,33 @@ public function getDebugModes()
/**
* @dataProvider getFilterNames
*/
public function testFilterConfigs($filter)
public function testFilterConfigs($name, $config = array())
{
$config = array('filters' => array($filter => array()));

$extension = new AsseticExtension();
$extension->load(array($config), $this->container);
$extension->load(array(array('filters' => array($name => $config))), $this->container);

$this->assertSaneContainer($this->getDumpedContainer());
}

public function getFilterNames()
{
$data = array();

$finder = new Finder();
$finder->files()->name('*.xml')->in(__DIR__.'/../../Resources/config/filters');

foreach ($finder as $file) {
$data[] = array($file->getBasename('.xml'));
}

return $data;
return array(
array('closure', array('jar' => '/path/to/closure.jar')),
array('coffee'),
array('cssrewrite'),
array('jpegtran'),
array('jpegoptim'),
array('less'),
array('lessphp'),
array('optipng'),
array('pngout'),
array('sass'),
array('scss'),
array('sprockets'),
array('stylus'),
array('yui_css', array('jar' => '/path/to/yuicompressor.jar')),
array('yui_js', array('jar' => '/path/to/yuicompressor.jar')),
);
}

/**
Expand Down Expand Up @@ -145,19 +149,18 @@ public function testClosureCompilerPass($jar, $expected)
{
$this->container->addCompilerPass(new CheckClosureFilterPass());

$config = array(
'closure' => $jar,
$extension = new AsseticExtension();
$extension->load(array(array(
'filters' => array(
'closure' => array(),
'closure' => array('jar' => $jar),
),
);

$extension = new AsseticExtension();
$extension->load(array($config), $this->container);
)), $this->container);

$this->assertSaneContainer($this->getDumpedContainer());
$container = $this->getDumpedContainer();
$this->assertSaneContainer($container);

$this->assertTrue($this->container->getDefinition($expected)->hasTag('assetic.filter'));
$this->assertNotEmpty($container->getParameter('assetic.filter.closure.java'));
}

public function getClosureJarAndExpected()
Expand All @@ -170,18 +173,16 @@ public function getClosureJarAndExpected()

public function testInvalidYuiConfig()
{
$this->setExpectedException('RuntimeException');
$this->setExpectedException('RuntimeException', 'assetic.filters.yui_js');

$this->container->addCompilerPass(new CheckYuiFilterPass());

$config = array(
$extension = new AsseticExtension();
$extension->load(array(array(
'filters' => array(
'yui_js' => array(),
),
);

$extension = new AsseticExtension();
$extension->load(array($config), $this->container);
)), $this->container);

$this->getDumpedContainer();
}
Expand Down

0 comments on commit 2bc8c5f

Please sign in to comment.