This repository was archived by the owner on Aug 22, 2023. It is now read-only.
File tree Expand file tree Collapse file tree 2 files changed +53
-0
lines changed
Expand file tree Collapse file tree 2 files changed +53
-0
lines changed Original file line number Diff line number Diff line change 1616 "illuminate/support" : " ~5" ,
1717 "cartalyst/sentinel" : " 2.0.*" ,
1818 "cyrildewit/eloquent-viewable" : " ^3.0" ,
19+ "composer/semver" : " ^1.4" ,
1920 "danielme85/laravel-cconverter" : " ^0.2.1" ,
2021 "ext-zip" : " *" ,
2122 "ext-json" : " *" ,
2223 "intervention/image" : " ^2.4" ,
2324 "intervention/imagecache" : " ^2.3" ,
25+ "knplabs/packagist-api" : " ^1.5" ,
2426 "laravel/scout" : " ^7.1" ,
2527 "league/fractal" : " ^0.17.0" ,
2628 "mcamara/laravel-localization" : " ^1.3" ,
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace Mckenziearts \Shopper \Core ;
4+
5+ use Composer \Semver \Semver ;
6+ use Composer \Semver \Comparator ;
7+ use Composer \Semver \VersionParser ;
8+
9+ class Version extends Semver
10+ {
11+ /**
12+ * Normalize the version number.
13+ *
14+ * @param string $version
15+ *
16+ * @return string
17+ */
18+ public static function normalize ($ version )
19+ {
20+ $ version = preg_replace ('/^(v|\^|~)/ ' , '' , $ version );
21+ if (preg_match ('/^\d\.\d$/ ' , $ version )) {
22+ $ version .= '.0 ' ;
23+ }
24+
25+ return $ version ;
26+ }
27+ /**
28+ * Get the last version number from a list of versions.
29+ *
30+ * @param array $versions
31+ *
32+ * @return string
33+ */
34+ public static function latest (array $ versions )
35+ {
36+ // Normalize version numbers.
37+ $ versions = array_map (function ($ version ) {
38+ return static ::normalize ($ version );
39+ }, $ versions );
40+ // Get the highest version number.
41+ $ latest = array_reduce ($ versions , function ($ carry , $ item ) {
42+ // Skip unstable versions.
43+ if (VersionParser::parseStability ($ item ) !== 'stable ' ) {
44+ return $ carry ;
45+ }
46+ return Comparator::greaterThan ($ carry , $ item ) ? $ carry : $ item ;
47+ }, '0.0.0 ' );
48+
49+ return $ latest ;
50+ }
51+ }
You can’t perform that action at this time.
0 commit comments