55namespace RoadRunner \VersionChecker \Version ;
66
77use Composer \Semver \Comparator as SemverComparator ;
8+ use Composer \Semver \VersionParser ;
89
910final class Comparator implements ComparatorInterface
1011{
12+ private VersionParser $ parser ;
13+
14+ public function __construct (VersionParser $ parser = null )
15+ {
16+ $ this ->parser = $ parser ?? new VersionParser ();
17+ }
18+
1119 /**
1220 * @param non-empty-string $requested
1321 * @param non-empty-string $installed
1422 */
1523 public function greaterThan (string $ requested , string $ installed ): bool
1624 {
17- return SemverComparator::greaterThanOrEqualTo ($ installed , $ requested );
25+ return SemverComparator::greaterThanOrEqualTo (
26+ $ this ->parser ->normalize ($ installed ),
27+ $ this ->parser ->normalize ($ requested )
28+ );
1829 }
1930
2031 /**
@@ -23,7 +34,10 @@ public function greaterThan(string $requested, string $installed): bool
2334 */
2435 public function lessThan (string $ requested , string $ installed ): bool
2536 {
26- return SemverComparator::lessThanOrEqualTo ($ installed , $ requested );
37+ return SemverComparator::lessThanOrEqualTo (
38+ $ this ->parser ->normalize ($ installed ),
39+ $ this ->parser ->normalize ($ requested )
40+ );
2741 }
2842
2943 /**
@@ -32,6 +46,9 @@ public function lessThan(string $requested, string $installed): bool
3246 */
3347 public function equal (string $ requested , string $ installed ): bool
3448 {
35- return SemverComparator::equalTo ($ installed , $ requested );
49+ return SemverComparator::equalTo (
50+ $ this ->parser ->normalize ($ installed ),
51+ $ this ->parser ->normalize ($ requested )
52+ );
3653 }
3754}
0 commit comments