From cf1fda7437d213a4ebf9fdd2a84e3f31d4fe2390 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A1sztor=20G=C3=A1bor?= Date: Wed, 16 Nov 2016 20:09:46 +0100 Subject: [PATCH] Allow combine scss files from command. --- modules/system/classes/CombineAssets.php | 42 ++++++++++++++---------- modules/system/console/OctoberUtil.php | 6 ++++ 2 files changed, 30 insertions(+), 18 deletions(-) diff --git a/modules/system/classes/CombineAssets.php b/modules/system/classes/CombineAssets.php index 93268c5f3..99930cde0 100644 --- a/modules/system/classes/CombineAssets.php +++ b/modules/system/classes/CombineAssets.php @@ -176,6 +176,7 @@ class CombineAssets /** * Returns the combined contents from a prepared cache identifier. + * @param string $cacheKey Cache identifier. * @return string Combined file contents. */ public function getContents($cacheKey) @@ -212,7 +213,7 @@ class CombineAssets /** * Prepares an array of assets by normalizing the collection * and processing aliases. - * @param $assets array + * @param array $assets * @return array */ protected function prepareAssets(array $assets) @@ -284,8 +285,8 @@ class CombineAssets /** * Combines asset file references of a single type to produce * a URL reference to the combined contents. - * @var array List of asset files. - * @var string File extension, used for aesthetic purposes only. + * @param array $assets List of asset files. + * @param string $localPath File extension, used for aesthetic purposes only. * @return string URL to contents. */ protected function prepareRequest(array $assets, $localPath = null) @@ -335,6 +336,8 @@ class CombineAssets /** * Returns the combined contents from a prepared cache identifier. + * @param array $assets List of asset files. + * @param string $rewritePath * @return string Combined file contents. */ protected function prepareCombiner(array $assets, $rewritePath = null) @@ -394,6 +397,7 @@ class CombineAssets /** * Returns a deep hash on filters that support it. + * @param array $assets List of asset files. * @return void */ protected function getDeepHashFromAssets($assets) @@ -442,6 +446,7 @@ class CombineAssets * /combine returns combine/ * /index.php/combine returns index-php/combine/ * + * @param string|null $path * @return string The new target path */ protected function getTargetPath($path = null) @@ -488,7 +493,7 @@ class CombineAssets * Register a filter to apply to the combining process. * @param string|array $extension Extension name. Eg: css * @param object $filter Collection of files to combine. - * @return Self + * @return self */ public function registerFilter($extension, $filter) { @@ -515,7 +520,7 @@ class CombineAssets /** * Clears any registered filters. * @param string $extension Extension name. Eg: css - * @return Self + * @return self */ public function resetFilters($extension = null) { @@ -532,7 +537,7 @@ class CombineAssets /** * Returns filters. * @param string $extension Extension name. Eg: css - * @return Self + * @return self */ public function getFilters($extension = null) { @@ -556,7 +561,7 @@ class CombineAssets * @param string $alias Alias name. Eg: framework * @param object $filter Collection of files to combine * @param string $extension Extension name. Eg: css - * @return Self + * @return self */ public function registerBundle($files, $destination = null, $extension = null) { @@ -575,11 +580,12 @@ class CombineAssets if ($destination === null) { $file = File::name($firstFile); $path = dirname($firstFile); + $preprocessors = array_except(self::$cssExtensions, 'css'); - if ($extension == 'less') { + if (in_array($extension, $preprocessors)) { $cssPath = $path.'/../css'; if ( - strtolower(basename($path)) == 'less' && + in_array(strtolower(basename($path)), $preprocessors) && File::isDirectory(File::symbolizePath($cssPath)) ) { $path = $cssPath; @@ -599,7 +605,7 @@ class CombineAssets /** * Returns bundles. * @param string $extension Extension name. Eg: css - * @return Self + * @return self */ public function getBundles($extension = null) { @@ -623,7 +629,7 @@ class CombineAssets * @param string $alias Alias name. Eg: framework * @param string $file Path to file to use for alias * @param string $extension Extension name. Eg: css - * @return Self + * @return self */ public function registerAlias($alias, $file, $extension = null) { @@ -645,7 +651,7 @@ class CombineAssets /** * Clears any registered aliases. * @param string $extension Extension name. Eg: css - * @return Self + * @return self */ public function resetAliases($extension = null) { @@ -662,7 +668,7 @@ class CombineAssets /** * Returns aliases. * @param string $extension Extension name. Eg: css - * @return Self + * @return self */ public function getAliases($extension = null) { @@ -684,8 +690,8 @@ class CombineAssets /** * Stores information about a asset collection against * a cache identifier. - * @var string Cache identifier. - * @var array List of asset files. + * @param string $cacheKey Cache identifier. + * @param array $cacheInfo List of asset files. * @return bool Successful */ protected function putCache($cacheKey, array $cacheInfo) @@ -703,7 +709,7 @@ class CombineAssets /** * Look up information about a cache identifier. - * @var string Cache identifier + * @param string $cacheKey Cache identifier * @return array Cache information */ protected function getCache($cacheKey) @@ -719,7 +725,7 @@ class CombineAssets /** * Builds a unique string based on assets - * @var array Asset files + * @param array $assets Asset files * @return string Unique identifier */ protected function getCacheKey(array $assets) @@ -765,7 +771,7 @@ class CombineAssets /** * Adds a cache identifier to the index store used for * performing a reset of the cache. - * @var string Cache identifier + * @param string $cacheKey Cache identifier * @return bool Returns false if identifier is already in store */ protected function putCacheIndex($cacheKey) diff --git a/modules/system/console/OctoberUtil.php b/modules/system/console/OctoberUtil.php index 685d6aec1..5211b97be 100644 --- a/modules/system/console/OctoberUtil.php +++ b/modules/system/console/OctoberUtil.php @@ -18,6 +18,7 @@ use System\Classes\CombineAssets; * - compile assets: Compile registered Language, LESS and JS files. * - compile js: Compile registered JS files only. * - compile less: Compile registered LESS files only. + * - compile scss: Compile registered SCSS files only. * - compile lang: Compile registered Language files only. * */ @@ -96,6 +97,11 @@ class OctoberUtil extends Command $this->utilCompileAssets('less'); } + protected function utilCompileScss() + { + $this->utilCompileAssets('scss'); + } + protected function utilCompileAssets($type = null) { $this->comment('Compiling registered asset bundles...');