Skip to content

Commit 50dca75

Browse files
committed
refactor: cleanup config and extension
1 parent 6672c09 commit 50dca75

File tree

3 files changed

+39
-27
lines changed

3 files changed

+39
-27
lines changed

src/main/java/me/qoomon/gradle/gitversioning/GitVersioningPluginConfig.java

Lines changed: 31 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -15,30 +15,30 @@ public class GitVersioningPluginConfig {
1515

1616
public boolean preferTags = false;
1717

18-
public void addBranchVersionDescription(VersionDescription versionDescription) {
19-
this.branchVersionDescriptions.add(versionDescription);
20-
}
21-
22-
public void addTagVersionDescription(VersionDescription versionDescription) {
23-
this.tagVersionDescriptions.add(versionDescription);
24-
}
25-
26-
public void commit(Closure closure) {
18+
public void commit(Closure<CommitVersionDescription> closure) {
2719
CommitVersionDescription versionDescription = new CommitVersionDescription();
2820
configure(closure, versionDescription);
2921
this.commitVersionDescription = versionDescription;
3022
}
3123

32-
public void branch(Closure closure) {
24+
public void branch(VersionDescription versionDescription) {
25+
this.branchVersionDescriptions.add(versionDescription);
26+
}
27+
28+
public void branch(Closure<VersionDescription> closure) {
3329
VersionDescription versionDescription = new VersionDescription();
3430
configure(closure, versionDescription);
35-
addBranchVersionDescription(versionDescription);
31+
branch(versionDescription);
32+
}
33+
34+
public void tag(VersionDescription versionDescription) {
35+
this.tagVersionDescriptions.add(versionDescription);
3636
}
3737

38-
public void tag(Closure closure) {
38+
public void tag(Closure<VersionDescription> closure) {
3939
VersionDescription versionDescription = new VersionDescription();
4040
configure(closure, versionDescription);
41-
addTagVersionDescription(versionDescription);
41+
tag(versionDescription);
4242
}
4343

4444
public static class VersionDescription {
@@ -47,10 +47,14 @@ public static class VersionDescription {
4747
public String versionFormat;
4848
public List<PropertyDescription> properties = new ArrayList<>();
4949

50-
public void property(Closure closure) {
50+
public void property(PropertyDescription propertyDescription) {
51+
this.properties.add(propertyDescription);
52+
}
53+
54+
public void property(Closure<PropertyDescription> closure) {
5155
PropertyDescription propertyDescription = new PropertyDescription();
5256
configure(closure, propertyDescription);
53-
this.properties.add(propertyDescription);
57+
property(propertyDescription);
5458
}
5559
}
5660

@@ -59,10 +63,14 @@ public static class CommitVersionDescription {
5963
public String versionFormat;
6064
public List<PropertyDescription> properties = new ArrayList<>();
6165

62-
public void property(Closure closure) {
66+
public void property(PropertyDescription propertyDescription) {
67+
this.properties.add(propertyDescription);
68+
}
69+
70+
public void property(Closure<PropertyDescription> closure) {
6371
PropertyDescription propertyDescription = new PropertyDescription();
6472
configure(closure, propertyDescription);
65-
this.properties.add(propertyDescription);
73+
property(propertyDescription);
6674
}
6775
}
6876

@@ -71,10 +79,14 @@ public static class PropertyDescription {
7179
public String pattern;
7280
public ValueDescription value;
7381

74-
public void value(Closure closure) {
82+
public void value(ValueDescription valueDescription) {
83+
this.value = valueDescription;
84+
}
85+
86+
public void value(Closure<ValueDescription> closure) {
7587
ValueDescription valueDescription = new ValueDescription();
7688
configure(closure, valueDescription);
77-
this.value = valueDescription;
89+
value(valueDescription);
7890
}
7991
}
8092

src/main/java/me/qoomon/gradle/gitversioning/GitVersioningPluginExtension.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,6 @@ public GitVersioningPluginExtension(Project project) {
2929
this.rootProject = project;
3030
}
3131

32-
public void apply(Closure closure) {
33-
GitVersioningPluginConfig config = new GitVersioningPluginConfig();
34-
configure(closure, config);
35-
apply(config);
36-
}
37-
3832
public void apply(GitVersioningPluginConfig config) {
3933

4034
if (parseBoolean(getCommandOption(rootProject, OPTION_NAME_DISABLE))) {
@@ -96,6 +90,12 @@ public void apply(GitVersioningPluginConfig config) {
9690
});
9791
}
9892

93+
public void apply(Closure<GitVersioningPluginConfig> closure) {
94+
GitVersioningPluginConfig config = new GitVersioningPluginConfig();
95+
configure(closure, config);
96+
apply(config);
97+
}
98+
9999
private String resolveOriginVersion(Project project, Map<String, Object> originVersionMap) {
100100
String projectVersion = originVersionMap.get(project.getPath()).toString();
101101
if (!projectVersion.equals("unspecified")) {

src/test/java/me/qoomon/gradle/gitversioning/GitVersioningPluginTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ void apply_with_extension_branch_description() throws GitAPIException {
113113
.getByName("gitVersioning");
114114

115115
GitVersioningPluginConfig config = new GitVersioningPluginConfig() {{
116-
addBranchVersionDescription(new VersionDescription() {{
116+
branch(new VersionDescription() {{
117117
versionFormat = "${branch}-gitVersioning";
118118
}});
119119
}};
@@ -143,7 +143,7 @@ void apply_with_extension_tag_description() throws GitAPIException {
143143
.getByName("gitVersioning");
144144

145145
GitVersioningPluginConfig config = new GitVersioningPluginConfig() {{
146-
addTagVersionDescription(new VersionDescription() {{
146+
tag(new VersionDescription() {{
147147
versionFormat = "${tag}-gitVersioning";
148148
}});
149149
}};

0 commit comments

Comments
 (0)