Skip to content

Commit 8542c16

Browse files
committed
Refactored package sort
1 parent 863dea3 commit 8542c16

File tree

3 files changed

+46
-22
lines changed

3 files changed

+46
-22
lines changed

Diff for: src/components/PackageUtil.php

+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
<?php
2+
/**
3+
* Asset Packagist.
4+
*
5+
* @link https://github.com/hiqdev/asset-packagist
6+
* @package asset-packagist
7+
* @license BSD-3-Clause
8+
* @copyright Copyright (c) 2016-2017, HiQDev (http://hiqdev.com/)
9+
*/
10+
11+
namespace hiqdev\assetpackagist\components;
12+
13+
use Composer\Semver\Comparator;
14+
use Composer\Semver\VersionParser;
15+
16+
class PackageUtil
17+
{
18+
public static function sort(&$releases)
19+
{
20+
uasort($releases, function ($a, $b) {
21+
if ($a['version'] === $b['version']) {
22+
return 0;
23+
}
24+
25+
$stability_a = VersionParser::parseStability($a['version_normalized']);
26+
$stability_b = VersionParser::parseStability($b['version_normalized']);
27+
28+
// DEV versions to LAST
29+
if ($stability_a === 'dev' && $stability_b !== 'dev') {
30+
return 1;
31+
} elseif ($stability_a !== 'dev' && $stability_b === 'dev') {
32+
return -1;
33+
}
34+
35+
if (Comparator::lessThan($a['version_normalized'], $b['version_normalized'])) {
36+
return 1;
37+
}
38+
39+
return -1;
40+
});
41+
}
42+
}

Diff for: src/models/AssetPackage.php

+3
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,9 @@ public function prepareReleases($pool)
202202
}
203203
}
204204

205+
//Sort before save
206+
\hiqdev\assetpackagist\components\PackageUtil::sort($releases);
207+
205208
return $releases;
206209
}
207210

Diff for: src/views/package/details.php

+1-22
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
* @var yii\web\View
55
* @var \hiqdev\assetpackagist\models\AssetPackage $package
66
*/
7-
use Composer\Semver\Comparator;
87
use Composer\Semver\VersionParser;
98
use yii\helpers\Html;
109

@@ -13,27 +12,7 @@
1312
<?php
1413
$releases = $package->getReleases();
1514

16-
uasort($releases, function ($a, $b) {
17-
if ($a['version'] === $b['version']) {
18-
return 0;
19-
}
20-
21-
$stability_a = VersionParser::parseStability($a['version_normalized']);
22-
$stability_b = VersionParser::parseStability($b['version_normalized']);
23-
24-
// DEV versions to LAST
25-
if ($stability_a === 'dev' && $stability_b !== 'dev') {
26-
return 1;
27-
} elseif ($stability_a !== 'dev' && $stability_b === 'dev') {
28-
return -1;
29-
}
30-
31-
if (Comparator::lessThan($a['version_normalized'], $b['version_normalized'])) {
32-
return 1;
33-
}
34-
35-
return -1;
36-
});
15+
hiqdev\assetpackagist\components\PackageUtil::sort($releases);
3716

3817
$stability_colors = [
3918
'stable' => 'success',

0 commit comments

Comments
 (0)