mirror of
https://github.com/HangarMC/Hangar.git
synced 2025-01-30 14:30:08 +08:00
adjust version formatting
This commit is contained in:
parent
9c6876f2fb
commit
a54081ec84
@ -69,8 +69,8 @@ public class StringUtils {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final Pattern LAST_WHOLE_VERSION = Pattern.compile("((?<=,\\s)|^)[0-9.]{2,}(?=-\\d+$)");
|
private static final Pattern LAST_WHOLE_VERSION = Pattern.compile("((?<=,\\s)|^)[0-9.]{2,}(?=-[0-9.]+$)");
|
||||||
private static final Pattern PREV_HAS_HYPHEN = Pattern.compile("(?<=\\d-)\\d+$");
|
private static final Pattern PREV_HAS_HYPHEN = Pattern.compile("(?<=\\d-)[0-9.]+$");
|
||||||
private static final Pattern PREV_HAS_COMMA_OR_FIRST = Pattern.compile("((?<=,\\s)|^)[0-9.]+$");
|
private static final Pattern PREV_HAS_COMMA_OR_FIRST = Pattern.compile("((?<=,\\s)|^)[0-9.]+$");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -115,7 +115,8 @@ public class StringUtils {
|
|||||||
Matcher hyphen = PREV_HAS_HYPHEN.matcher(verString);
|
Matcher hyphen = PREV_HAS_HYPHEN.matcher(verString);
|
||||||
Matcher comma = PREV_HAS_COMMA_OR_FIRST.matcher(verString);
|
Matcher comma = PREV_HAS_COMMA_OR_FIRST.matcher(verString);
|
||||||
if (hyphen.find()) {
|
if (hyphen.find()) {
|
||||||
int prevVersion = Integer.parseInt(hyphen.group());
|
String[] group = hyphen.group().split("\\.");
|
||||||
|
int prevVersion = Integer.parseInt(group[group.length - 1]);
|
||||||
Matcher prevVersionMatcher = LAST_WHOLE_VERSION.matcher(verString);
|
Matcher prevVersionMatcher = LAST_WHOLE_VERSION.matcher(verString);
|
||||||
if (!prevVersionMatcher.find()) {
|
if (!prevVersionMatcher.find()) {
|
||||||
throw new IllegalArgumentException("Bad version string");
|
throw new IllegalArgumentException("Bad version string");
|
||||||
@ -123,7 +124,7 @@ public class StringUtils {
|
|||||||
List<Integer> previousWholeVersion = StringUtils.splitVersionNumber(prevVersionMatcher.group());
|
List<Integer> previousWholeVersion = StringUtils.splitVersionNumber(prevVersionMatcher.group());
|
||||||
if (previousWholeVersion.size() == versionArr.size()) {
|
if (previousWholeVersion.size() == versionArr.size()) {
|
||||||
if (versionArr.get(versionArr.size() - 1) - 1 == prevVersion) {
|
if (versionArr.get(versionArr.size() - 1) - 1 == prevVersion) {
|
||||||
return verString.replaceFirst("-\\d+$", "-" + versionArr.get(versionArr.size() - 1));
|
return verString.replaceFirst("-[0-9.]+$", "-" + version);
|
||||||
} else {
|
} else {
|
||||||
return verString + ", " + version;
|
return verString + ", " + version;
|
||||||
}
|
}
|
||||||
@ -135,7 +136,7 @@ public class StringUtils {
|
|||||||
List<Integer> prevVersion = StringUtils.splitVersionNumber(comma.group());
|
List<Integer> prevVersion = StringUtils.splitVersionNumber(comma.group());
|
||||||
if (prevVersion.size() == versionArr.size()) {
|
if (prevVersion.size() == versionArr.size()) {
|
||||||
if (versionArr.get(versionArr.size() - 1) - 1 == prevVersion.get(prevVersion.size() - 1)) {
|
if (versionArr.get(versionArr.size() - 1) - 1 == prevVersion.get(prevVersion.size() - 1)) {
|
||||||
return verString + "-" + versionArr.get(versionArr.size() - 1);
|
return verString + "-" + version;
|
||||||
} else {
|
} else {
|
||||||
return verString + ", " + version;
|
return verString + ", " + version;
|
||||||
}
|
}
|
||||||
|
@ -12,12 +12,15 @@ public class FormattedVersionsTest {
|
|||||||
void testFormattedVersions() {
|
void testFormattedVersions() {
|
||||||
List<String> list1 = List.of("1.1", "1.2", "1.3", "1.5", "1.7", "1.8");
|
List<String> list1 = List.of("1.1", "1.2", "1.3", "1.5", "1.7", "1.8");
|
||||||
|
|
||||||
Assertions.assertEquals(StringUtils.formatVersionNumbers(new ArrayList<>(list1)), "1.1-3, 1.5, 1.7-8");
|
Assertions.assertEquals("1.1-1.3, 1.5, 1.7-1.8", StringUtils.formatVersionNumbers(new ArrayList<>(list1)));
|
||||||
|
|
||||||
List<String> list2 = List.of("1.20", "1.23", "1.25", "1.30", "1.31");
|
List<String> list2 = List.of("1.20", "1.23", "1.25", "1.30", "1.31");
|
||||||
Assertions.assertEquals(StringUtils.formatVersionNumbers(new ArrayList<>(list2)), "1.20, 1.23, 1.25, 1.30-31");
|
Assertions.assertEquals("1.20, 1.23, 1.25, 1.30-1.31", StringUtils.formatVersionNumbers(new ArrayList<>(list2)));
|
||||||
|
|
||||||
List<String> list3 = List.of("1.1.0", "1.1.1", "1.2.0", "1.2.2", "1.3", "1.4");
|
List<String> list3 = List.of("1.1.0", "1.1.1", "1.2.0", "1.2.2", "1.3", "1.4");
|
||||||
Assertions.assertEquals(StringUtils.formatVersionNumbers(new ArrayList<>(list3)), "1.1.0-1, 1.2.0, 1.2.2, 1.3-4");
|
Assertions.assertEquals("1.1.0-1.1.1, 1.2.0, 1.2.2, 1.3-1.4", StringUtils.formatVersionNumbers(new ArrayList<>(list3)));
|
||||||
|
|
||||||
|
List<String> list4 = List.of("1.1", "1.2", "1.3", "1.4", "1.5", "1.7", "1.8", "1.9", "1.10", "1.12");
|
||||||
|
Assertions.assertEquals("1.1-1.5, 1.7-1.10, 1.12", StringUtils.formatVersionNumbers(new ArrayList<>(list4)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user