2
0
mirror of https://github.com/rehlds/reapi.git synced 2025-04-13 21:10:18 +03:00
reapi/buildSrc/src/main/groovy/versioning/ReapiVersionInfo.groovy
2016-04-05 04:21:38 +06:00

42 lines
1.1 KiB
Groovy

package versioning
import groovy.transform.CompileStatic
import groovy.transform.ToString
import groovy.transform.TypeChecked
import org.joda.time.DateTime
@CompileStatic @TypeChecked
@ToString(includeNames = true)
class ReapiVersionInfo {
int majorVersion
int minorVersion
Integer maintenanceVersion
String specialVersion
Integer countCommit
DateTime lastCommitDate
String format(String versionSeparator, String suffixSeparator, boolean includeSuffix) {
StringBuilder sb = new StringBuilder()
sb.append(majorVersion).append(versionSeparator).append(minorVersion)
if (maintenanceVersion != null) {
sb.append(versionSeparator).append(maintenanceVersion)
}
if (specialVersion && includeSuffix) {
sb.append(suffixSeparator).append(specialVersion)
}
return sb.toString()
}
String asVersion() {
if (specialVersion.length() > 0) {
sprintf("%d.%d.%d-%s", majorVersion, minorVersion, countCommit, specialVersion)
}
else
sprintf("%d.%d.%d", majorVersion, minorVersion, countCommit)
}
String asMavenVersion() {
format('.', '-', true)
}
}