@@ -30,15 +30,27 @@ public function phpSemanticVersion()
3030 */
3131 private function normalizeSemVerSuffix (string $ version ): string
3232 {
33- if (strpos ($ version , '- ' ) === true ) {
34- return $ version ;
33+ foreach (['alpha ' , 'beta ' , 'RC ' ] as $ suffix ) {
34+ if (stripos ($ version , $ suffix ) !== false ) {
35+ return str_replace ($ suffix , "- {$ suffix }" , $ version );
36+ }
3537 }
36- return str_ireplace (['alpha ' , 'beta ' , 'rc ' ], ['-alpha ' , '-beta ' , '-rc ' ], $ version );
38+ // Get rid of any remaining build nonsense
39+ return $ this ->stripLeftOf ($ version , '- ' );
3740 }
3841
3942 private function stripCustomBuilds (string $ version ): string
4043 {
41- $ fuckTildes = substr ($ version , strpos ($ version , '~ ' ));
42- return substr ($ version , strpos ($ version , '+ ' ));
44+ $ version = $ this ->stripLeftOf ($ version , '~ ' );
45+ $ version = $ this ->stripLeftOf ($ version , '+ ' );
46+ return $ version ;
47+ }
48+
49+ private function stripLeftOf (string $ subject , string $ needle ): string
50+ {
51+
52+ return strpos ($ subject , $ needle ) === false
53+ ? $ subject
54+ : substr ($ subject , 0 , strpos ($ subject , $ needle ));
4355 }
4456}
0 commit comments