Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
0.00% covered (danger)
0.00%
0 / 1
50.00% covered (danger)
50.00%
1 / 2
CRAP
88.89% covered (warning)
88.89%
8 / 9
ScssAssetFileFilter
0.00% covered (danger)
0.00%
0 / 1
50.00% covered (danger)
50.00%
1 / 2
4.02
88.89% covered (warning)
88.89%
8 / 9
 filterContent
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
1 / 1
 getEngine
0.00% covered (danger)
0.00%
0 / 1
3.02
87.50% covered (warning)
87.50%
7 / 8
<?php
namespace AssetsBundle\AssetFile\AssetFileFilter\StyleAssetFileFilter;
class ScssAssetFileFilter extends \AssetsBundle\AssetFile\AssetFileFilter\AbstractAssetFileFilter
{
    /**
     * @var string
     */
    protected $assetFileFilterName = 'Scss';
    /**
     * Filter engine
     * @var \Leafo\ScssPhp\Compiler
     */
    protected $engine;
    
    /**
     * @param string $sContent
     * @param string $sFilePath
     * @return string
     */
    protected function filterContent(string $sContent, string $sFilePath) : string
    {
        return $this->getEngine()->compile($sContent);
    }
    
    /**
     * @return \Leafo\ScssPhp\Compiler
     */
    protected function getEngine() : \Leafo\ScssPhp\Compiler
    {
        $sClassName = '\\Leafo\\ScssPhp\\Compiler';
        if (!class_exists($sClassName)) {
            throw new \LogicException('"'. $sClassName. '" class does not exist');
        }
        if (is_a($this->engine, $sClassName)) {
            return $this->engine;
        }
        
        $oEngine = new $sClassName();
        $oEngine->setImportPaths([getcwd()]);
        return $this->engine = $oEngine;
    }
}