Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: jruby/jruby
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: c28944599d5c
Choose a base ref
...
head repository: jruby/jruby
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 768f9fdbee39
Choose a head ref
  • 2 commits
  • 3 files changed
  • 1 contributor

Commits on Mar 14, 2016

  1. Tweaks to --disable to pass TestRubyOptions#test_disable.

    * Fix handling of "--disable foo"
    * Add did_you_mean to features
    * Use err, not out, for printing command line errors
    * Do not display usage for "--disable" with no argument
    headius committed Mar 14, 2016
    Copy the full SHA
    5de0bdd View commit details
  2. Copy the full SHA
    768f9fd View commit details
Showing with 21 additions and 5 deletions.
  1. +1 −1 core/src/main/java/org/jruby/Main.java
  2. +18 −4 core/src/main/java/org/jruby/util/cli/ArgumentProcessor.java
  3. +2 −0 test/mri/ruby/test_rubyoptions.rb
2 changes: 1 addition & 1 deletion core/src/main/java/org/jruby/Main.java
Original file line number Diff line number Diff line change
@@ -399,7 +399,7 @@ private String getRuntimeFlagValue(String prefix) {

private Status handleMainExit(MainExitException mee) {
if (!mee.isAborted()) {
config.getOutput().println(mee.getMessage());
config.getError().println(mee.getMessage());
if (mee.isUsageError()) {
doPrintUsage(true);
}
22 changes: 18 additions & 4 deletions core/src/main/java/org/jruby/util/cli/ArgumentProcessor.java
Original file line number Diff line number Diff line change
@@ -508,18 +508,28 @@ private void processArgument() {
} else if (argument.equals("--disable-gems")) {
config.setDisableGems(true);
break FOR;
} else if (argument.equals("--disable")) {
errorMissingEquals("disable");
} else if (argument.equals("--disable-did_you_mean")) {
config.setDisableDidYouMean(true);
break FOR;
} else if (argument.equals("--disable-frozen-string-literal")) {
config.setFrozenStringLiteral(false);
break FOR;
} else if (argument.startsWith("--disable=")) {
} else if (argument.startsWith("--disable")) {
if (argument.equals("--disable")) {
characterIndex = argument.length();
String feature = grabValue(getArgumentError("missing argument for --disable"), false);
argument = "--disable=" + feature;
}
for (String disable : valueListFor(argument, "disable")) {
boolean all = disable.equals("all");
if (disable.equals("gems") || all) {
config.setDisableGems(true);
continue;
}
if (disable.equals("did_you_mean") || all) {
config.setDisableDidYouMean(true);
continue;
}
if (disable.equals("rubyopt") || all) {
config.setDisableRUBYOPT(true);
continue;
@@ -722,6 +732,10 @@ public String resolveScriptUsingClassLoader(String scriptName) {
}

private String grabValue(String errorMessage) {
return grabValue(errorMessage, true);
}

private String grabValue(String errorMessage, boolean usageError) {
String optValue = grabOptionalValue();
if (optValue != null) {
return optValue;
@@ -731,7 +745,7 @@ private String grabValue(String errorMessage) {
return arguments.get(argumentIndex).originalValue;
}
MainExitException mee = new MainExitException(1, errorMessage);
mee.setUsageError(true);
if (usageError) mee.setUsageError(true);
throw mee;
}

2 changes: 2 additions & 0 deletions test/mri/ruby/test_rubyoptions.rb
Original file line number Diff line number Diff line change
@@ -127,6 +127,8 @@ def test_disable
assert_in_out_err(%w(--disable foobarbazqux -e) + [""], "", [],
/unknown argument for --disable: `foobarbazqux'/)
assert_in_out_err(%w(--disable), "", [], /missing argument for --disable/)
assert_in_out_err(%w(--disable-gems -e) + ['p defined? Gem'], "", ["nil"], [])
assert_in_out_err(%w(--disable-did_you_mean -e) + ['p defined? DidYouMean'], "", ["nil"], [])
end

def test_kanji