Skip to content

Commit

Permalink
Minify javascript with JShrink
Browse files Browse the repository at this point in the history
  • Loading branch information
bajb committed Jul 14, 2014
1 parent 8c45ebd commit c04c9fd
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 25 deletions.
17 changes: 9 additions & 8 deletions composer.json
Original file line number Diff line number Diff line change
@@ -1,26 +1,27 @@
{
"name": "packaged/dispatch",
"license": "MIT",
"authors": [
"name": "packaged/dispatch",
"license": "MIT",
"authors": [
{
"name": "Brooke Bryan",
"email": "[email protected]"
}
],
"bin": [
"bin": [
"bin/dispatch"
],
"require": {
"require": {
"php": ">=5.4.0",
"packaged/helpers": "0.*",
"packaged/config": "0.*",
"symfony/http-kernel": "2.*",
"symfony/console": "2.*"
"symfony/console": "2.*",
"tedivm/jshrink": "~1.0"
},
"require-dev": {
"require-dev": {
"phpunit/phpunit": "*"
},
"autoload": {
"autoload": {
"psr-4": {
"Packaged\\Dispatch\\": "src"
}
Expand Down
15 changes: 2 additions & 13 deletions src/Assets/JavascriptAsset.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
<?php
namespace Packaged\Dispatch\Assets;

use JShrink\Minifier;
use Packaged\Helpers\ValueAs;

class JavascriptAsset extends AbstractDispatchableAsset
Expand Down Expand Up @@ -35,18 +36,6 @@ public function getContent()
return $data;
}

//Strip Comments
$data = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $data);
$data = preg_replace('!^(?:[\t ]+)?\/\/(?:.*)?$!m', '', $data);

//remove tabs, spaces, newlines, etc.
$data = str_replace(array("\t"), ' ', $data);
$data = str_replace(
array("\r\n", "\r", "\n", ' ', ' ', ' '),
'',
$data
);

return $data;
return Minifier::minify($data);
}
}
31 changes: 27 additions & 4 deletions tests/Assets/JavascriptAssetTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,12 @@ class JavascriptAssetTest extends PHPUnit_Framework_TestCase
{
public function testMinify()
{
$original = 'function myFunction()
{
$original = 'function myFunction(){
alert("Hello\nHow are you?");
}';

$nominify = '@' . 'do-not-minify
function myFunction()
{
function myFunction(){
alert("Hello\nHow are you?");
}';

Expand All @@ -37,4 +35,29 @@ public function testAsset()
$this->assertEquals('js', $asset->getExtension());
$this->assertEquals('text/javascript', $asset->getContentType());
}

/**
* @ref Issue 2
* @link https://github.com/packaged/dispatch/issues/2
*/
public function testSingleLineCommands()
{
$raw = '$(document).ready(function(){
$(window).scroll(function () {
var max_scroll = 273; //height to scroll before hitting nav-bar
var navbar = $(".main-nav");
});
});';

$asset = new \Packaged\Dispatch\Assets\JavascriptAsset();
$asset->setContent($raw);
$this->assertEquals(
'$(document).ready(function(){$(window).scroll(function()'
. '{var max_scroll=273;var navbar=$(".main-nav");});});',
$asset->getContent()
);
}
}

0 comments on commit c04c9fd

Please sign in to comment.