*/ class CoffeeScriptFilter extends BaseNodeFilter { private $coffeeBin; private $nodeBin; // coffee options private $bare; private $noHeader; public function __construct($coffeeBin = '/usr/bin/coffee', $nodeBin = null) { $this->coffeeBin = $coffeeBin; $this->nodeBin = $nodeBin; } public function setBare($bare) { $this->bare = $bare; } public function setNoHeader($noHeader) { $this->noHeader = $noHeader; } public function filterLoad(AssetInterface $asset) { $input = FilesystemUtils::createTemporaryFile('coffee'); file_put_contents($input, $asset->getContent()); $pb = $this->createProcessBuilder($this->nodeBin ? array($this->nodeBin, $this->coffeeBin) : array($this->coffeeBin)); $pb->add('-cp'); if ($this->bare) { $pb->add('--bare'); } if ($this->noHeader) { $pb->add('--no-header'); } $pb->add($input); $proc = $pb->getProcess(); $code = $proc->run(); unlink($input); if (0 !== $code) { throw FilterException::fromProcess($proc)->setInput($asset->getContent()); } $asset->setContent($proc->getOutput()); } public function filterDump(AssetInterface $asset) { } }