diff options
author | Robin McCorkell <rmccorkell@karoshi.org.uk> | 2015-01-05 15:48:04 +0000 |
---|---|---|
committer | Robin McCorkell <rmccorkell@karoshi.org.uk> | 2015-01-05 15:48:04 +0000 |
commit | 2c44bc1768886d9b9693e484db37b971fc9917dd (patch) | |
tree | e051b6024e5f8380bc26f0cf2470186d72a98d14 /lib/private/assetic | |
parent | 0e17a00b62585224ddd957e6b9fa2f9096e90036 (diff) | |
download | nextcloud-server-2c44bc1768886d9b9693e484db37b971fc9917dd.tar.gz nextcloud-server-2c44bc1768886d9b9693e484db37b971fc9917dd.zip |
Fix JS asset generation
At some point SeparatorFilter should be included upstream
(kriswallsmith/assetic), then lib/private/assetic/separatorfilter.php can be
removed and the `use` in lib/private/templatelayout.php rewritten.
SeparatorFilter inserts a separator between assets, preventing issues when
files are incorrectly terminated. For JS this is a semicolon.
Diffstat (limited to 'lib/private/assetic')
-rw-r--r-- | lib/private/assetic/separatorfilter.php | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/lib/private/assetic/separatorfilter.php b/lib/private/assetic/separatorfilter.php new file mode 100644 index 00000000000..fb1a4e7f00c --- /dev/null +++ b/lib/private/assetic/separatorfilter.php @@ -0,0 +1,57 @@ +<?php + +/** + * ownCloud + * + * Copyright (C) 2014 Robin McCorkell <rmccorkell@karoshi.org.uk> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE + * License as published by the Free Software Foundation; either + * version 3 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU AFFERO GENERAL PUBLIC LICENSE for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this library. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OC\Assetic; + +use Assetic\Filter\FilterInterface; +use Assetic\Asset\AssetInterface; + +/** + * Inserts a separator between assets to prevent merge failures + * e.g. missing semicolon at the end of a JS file + */ +class SeparatorFilter implements FilterInterface +{ + /** + * @var string + */ + private $separator; + + /** + * Constructor. + * + * @param string $separator Separator to use between assets + */ + public function __construct($separator = ';') + { + $this->separator = $separator; + } + + public function filterLoad(AssetInterface $asset) + { + } + + public function filterDump(AssetInterface $asset) + { + $asset->setContent($asset->getContent() . $this->separator); + } +} |