Skip to content

Commit 55f8be4

Browse files
committed
refactor to handle jruby version discovery errors in ScriptFactory
1 parent 1c6b906 commit 55f8be4

File tree

2 files changed

+17
-19
lines changed

2 files changed

+17
-19
lines changed

ruby-tools/src/main/java/de/saumya/mojo/ruby/gems/GemsInstaller.java

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ private Script maybeAddArtifact(Script script, final Artifact artifact)
241241
.addArg(booleanArg(this.config.isUserInstall(), "user-install"))
242242
.addArg(booleanArg(this.config.isVerbose(), "verbose"));
243243

244-
final JRubyVersion version = this.getVersion();
244+
final JRubyVersion version = this.factory.getVersion();
245245
if (version == null || version.isLanguageLowerThan(2,6)) {
246246
script.addArg(booleanArg(this.config.isAddRdoc(), "rdoc"))
247247
.addArg(booleanArg(this.config.isAddRI(), "ri"));
@@ -258,14 +258,6 @@ private Script maybeAddArtifact(Script script, final Artifact artifact)
258258
return script;
259259
}
260260

261-
private JRubyVersion getVersion() {
262-
try {
263-
return this.factory.getVersion();
264-
} catch (Exception e) {
265-
return null;
266-
}
267-
}
268-
269261
private String booleanArg(final boolean flag, final String name) {
270262
return "--" + (flag ? "" : "no-") + name;
271263
}

ruby-tools/src/main/java/de/saumya/mojo/ruby/script/ScriptFactory.java

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -201,16 +201,22 @@ public void addEnvs(final String environmentVars) {
201201
}
202202
}
203203

204-
public JRubyVersion getVersion() throws ScriptException, IOException {
205-
final ByteArrayOutputStream os = new ByteArrayOutputStream();
206-
this.newArguments()
207-
.addArg("-v")
208-
.execute(os);
209-
final String[] versionParts = os.toString(StandardCharsets.UTF_8.toString())
210-
.split(" ");
211-
final String jrubyVersion = versionParts[1];
212-
final String languageVersion = extractLanguageVersion(versionParts[2]);
213-
return new JRubyVersion(jrubyVersion, languageVersion);
204+
/**
205+
* Returns JRuby version representation found.
206+
* {@code null} if version format could not be processed.
207+
*/
208+
public JRubyVersion getVersion() {
209+
try {
210+
final ByteArrayOutputStream os = new ByteArrayOutputStream();
211+
this.newArguments().addArg("-v").execute(os);
212+
final String[] versionParts = os.toString(StandardCharsets.UTF_8.toString()).split(" ");
213+
final String jrubyVersion = versionParts[1];
214+
final String languageVersion = extractLanguageVersion(versionParts[2]);
215+
return new JRubyVersion(jrubyVersion, languageVersion);
216+
} catch (Exception e) {
217+
logger.warn("Could not identify version: " + e.getMessage());
218+
return null;
219+
}
214220
}
215221

216222
private String extractLanguageVersion(String versionPart) {

0 commit comments

Comments
 (0)