ILIAS  release_5-2 Revision v5.2.25-18-g3f80b82851
Assetic\Filter\CoffeeScriptFilter Class Reference

Compiles CoffeeScript into Javascript. More...

+ Inheritance diagram for Assetic\Filter\CoffeeScriptFilter:
+ Collaboration diagram for Assetic\Filter\CoffeeScriptFilter:

Public Member Functions

 __construct ($coffeeBin='/usr/bin/coffee', $nodeBin=null)
 
 setBare ($bare)
 
 setNoHeader ($noHeader)
 
 filterLoad (AssetInterface $asset)
 Filters an asset after it has been loaded. More...
 
 filterDump (AssetInterface $asset)
 Filters an asset just before it's dumped. More...
 
- Public Member Functions inherited from Assetic\Filter\BaseNodeFilter
 getNodePaths ()
 
 setNodePaths (array $nodePaths)
 
 addNodePath ($nodePath)
 
- Public Member Functions inherited from Assetic\Filter\BaseProcessFilter
 setTimeout ($timeout)
 Set the process timeout. More...
 

Private Attributes

 $coffeeBin
 
 $nodeBin
 
 $bare
 
 $noHeader
 

Additional Inherited Members

- Protected Member Functions inherited from Assetic\Filter\BaseNodeFilter
 createProcessBuilder (array $arguments=array())
 
- Protected Member Functions inherited from Assetic\Filter\BaseProcessFilter
 createProcessBuilder (array $arguments=array())
 Creates a new process builder. More...
 
 mergeEnv (ProcessBuilder $pb)
 

Detailed Description

Compiles CoffeeScript into Javascript.

Kris Wallsmith kris..nosp@m.wall.nosp@m.smith.nosp@m.@gma.nosp@m.il.co.nosp@m.m

Definition at line 24 of file CoffeeScriptFilter.php.

Constructor & Destructor Documentation

◆ __construct()

Assetic\Filter\CoffeeScriptFilter::__construct (   $coffeeBin = '/usr/bin/coffee',
  $nodeBin = null 
)

Member Function Documentation

◆ filterDump()

Assetic\Filter\CoffeeScriptFilter::filterDump ( AssetInterface  $asset)

Filters an asset just before it's dumped.

Parameters
AssetInterface$assetAn asset

Implements Assetic\Filter\FilterInterface.

Definition at line 80 of file CoffeeScriptFilter.php.

81  {
82  }

◆ filterLoad()

Assetic\Filter\CoffeeScriptFilter::filterLoad ( AssetInterface  $asset)

Filters an asset after it has been loaded.

Parameters
AssetInterface$assetAn asset

Implements Assetic\Filter\FilterInterface.

Definition at line 49 of file CoffeeScriptFilter.php.

References $code, array, Assetic\Filter\BaseNodeFilter\createProcessBuilder(), Assetic\Util\FilesystemUtils\createTemporaryFile(), Assetic\Exception\FilterException\fromProcess(), Assetic\Asset\AssetInterface\getContent(), and Assetic\Asset\AssetInterface\setContent().

50  {
51  $input = FilesystemUtils::createTemporaryFile('coffee');
52  file_put_contents($input, $asset->getContent());
53 
54  $pb = $this->createProcessBuilder($this->nodeBin
55  ? array($this->nodeBin, $this->coffeeBin)
56  : array($this->coffeeBin));
57 
58  $pb->add('-cp');
59 
60  if ($this->bare) {
61  $pb->add('--bare');
62  }
63 
64  if ($this->noHeader) {
65  $pb->add('--no-header');
66  }
67 
68  $pb->add($input);
69  $proc = $pb->getProcess();
70  $code = $proc->run();
71  unlink($input);
72 
73  if (0 !== $code) {
74  throw FilterException::fromProcess($proc)->setInput($asset->getContent());
75  }
76 
77  $asset->setContent($proc->getOutput());
78  }
static createTemporaryFile($prefix)
Creates a temporary file.
static fromProcess(Process $proc)
$code
Definition: example_050.php:99
createProcessBuilder(array $arguments=array())
Create styles array
The data for the language used.
+ Here is the call graph for this function:

◆ setBare()

Assetic\Filter\CoffeeScriptFilter::setBare (   $bare)

Definition at line 39 of file CoffeeScriptFilter.php.

References Assetic\Filter\CoffeeScriptFilter\$bare.

40  {
41  $this->bare = $bare;
42  }

◆ setNoHeader()

Assetic\Filter\CoffeeScriptFilter::setNoHeader (   $noHeader)

Definition at line 44 of file CoffeeScriptFilter.php.

References Assetic\Filter\CoffeeScriptFilter\$noHeader.

45  {
46  $this->noHeader = $noHeader;
47  }

Field Documentation

◆ $bare

Assetic\Filter\CoffeeScriptFilter::$bare
private

Definition at line 30 of file CoffeeScriptFilter.php.

Referenced by Assetic\Filter\CoffeeScriptFilter\setBare().

◆ $coffeeBin

Assetic\Filter\CoffeeScriptFilter::$coffeeBin
private

◆ $nodeBin

Assetic\Filter\CoffeeScriptFilter::$nodeBin
private

◆ $noHeader

Assetic\Filter\CoffeeScriptFilter::$noHeader
private

The documentation for this class was generated from the following file: