Skip to content

Commit

Permalink
Fixes #3720. getCurrentDirectory() return / paths and no \ paths on W…
Browse files Browse the repository at this point in the history
…indows
enebo committed Mar 9, 2016
1 parent 80daa93 commit ab20ef5
Showing 2 changed files with 12 additions and 5 deletions.
13 changes: 10 additions & 3 deletions core/src/main/java/org/jruby/embed/ScriptingContainer.java
Original file line number Diff line number Diff line change
@@ -30,6 +30,7 @@
package org.jruby.embed;

import java.io.Closeable;
import java.io.File;
import java.io.InputStream;
import java.io.PrintStream;
import java.io.Reader;
@@ -38,6 +39,7 @@
import java.util.List;
import java.util.Map;

import jnr.posix.util.Platform;
import org.jruby.CompatVersion;
import org.jruby.Profile;
import org.jruby.Ruby;
@@ -587,10 +589,14 @@ public void setEnvironment(Map environment) {
* @return a current directory.
*/
public String getCurrentDirectory() {
String path;
if (provider.isRuntimeInitialized()) {
return provider.getRuntime().getCurrentDirectory();
path = provider.getRuntime().getCurrentDirectory();
} else {
path = provider.getRubyInstanceConfig().getCurrentDirectory();
}
return provider.getRubyInstanceConfig().getCurrentDirectory();

return new File(path).getPath(); // make as File to normalize separators to / or \\ as systems might expect.
}

/**
@@ -623,7 +629,8 @@ public void setCurrentDirectory(String directory) {
* @return a JRuby home directory.
*/
public String getHomeDirectory() {
return provider.getRubyInstanceConfig().getJRubyHome();
// make as File to normalize separators to / or \\ as systems might expect.
return new File(provider.getRubyInstanceConfig().getJRubyHome()).getPath();
}

/**
Original file line number Diff line number Diff line change
@@ -2039,7 +2039,7 @@ public void testGetHomeDirectory() {
expResult = System.getProperty("java.io.tmpdir");
}
String result = instance.getHomeDirectory();
assertEquals(expResult, result);
assertEquals(new File(expResult), new File(result));

instance.terminate();
}
@@ -2057,7 +2057,7 @@ public void testSetHomeDirectory() {
instance.setWriter(writer);
instance.setErrorWriter(writer);
instance.setHomeDirectory(home);
assertEquals(System.getProperty("user.dir"), instance.getHomeDirectory());
assertEquals(new File(System.getProperty("user.dir")), new File(instance.getHomeDirectory()));

instance.terminate();
}

0 comments on commit ab20ef5

Please sign in to comment.