8000 Also accept '-' as an optional argument (#35) · ruby/optparse@f2b8318 · GitHub
[go: up one dir, main page]

Skip to content

Commit f2b8318

Browse files
authored
Also accept '-' as an optional argument (#35)
1 parent e70e689 commit f2b8318

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

lib/optparse.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -765,15 +765,15 @@ def pretty_head # :nodoc:
765765
end
766766

767767
#
768-
# Switch that takes an argument, which does not begin with '-'.
768+
# Switch that takes an argument, which does not begin with '-' or is '-'.
769769
#
770770
class PlacedArgument < self
771771

772772
#
773-
# Returns nil if argument is not present or begins with '-'.
773+
# Returns nil if argument is not present or begins with '-' and is not '-'.
774774
#
775775
def parse(arg, argv, &error)
776-
if !(val = arg) and (argv.empty? or /\A-/ =~ (val = argv[0]))
776+
if !(val = arg) and (argv.empty? or /\A-./ =~ (val = argv[0]))
777777
return nil, block, nil
778778
end
779779
opt = (val = parse_arg(val, &error))[1]

test/optparse/test_placearg.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ def setup
1818
def test_short
1919
assert_equal(%w"", no_error {@opt.parse!(%w"-x -n")})
2020
assert_equal(nil, @flag)
21+
assert_equal(%w"", no_error {@opt.parse!(%w"-x -")})
22+
assert_equal("-", @flag)
2123
@flag = false
2224
assert_equal(%w"", no_error {@opt.parse!(%w"-x foo")})
2325
assert_equal("foo", @flag)
@@ -30,6 +32,8 @@ def test_short
3032
def test_abbrev
3133
assert_equal(%w"", no_error {@opt.parse!(%w"-o -n")})
3234
assert_equal(nil, @flag)
35+
assert_equal(%w"", no_error {@opt.parse!(%w"-o -")})
36+
assert_equal("-", @flag)
3337
@flag = false
3438
assert_equal(%w"", no_error {@opt.parse!(%w"-o foo")})
3539
assert_equal("foo", @flag)
@@ -42,6 +46,8 @@ def test_abbrev
4246
def test_long
4347
assert_equal(%w"", no_error {@opt.parse!(%w"--opt -n")})
4448
assert_equal(nil, @flag)
49+
assert_equal(%w"", no_error {@opt.parse!(%w"--opt -")})
50+
assert_equal("-", @flag)
4551
assert_equal(%w"foo", no_error {@opt.parse!(%w"--opt= foo")})
4652
assert_equal("", @flag)
4753
assert_equal(%w"", no_error {@opt.parse!(%w"--opt=foo")})

0 commit comments

Comments
 (0)
0