diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-09-26 12:44:47 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-09-26 12:44:47 +0000 |
commit | 54ca4e2269ffd818dcd2bd36ea474c03e1ad64af (patch) | |
tree | 9c78117631ebfb93147d8e0bfe5fef7f09ee5a04 /lib/optparse.rb | |
parent | e516696847b6cbe90e581e0370b7b15ef83b68d1 (diff) |
*** empty log message ***
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9316 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/optparse.rb')
-rw-r--r-- | lib/optparse.rb | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/lib/optparse.rb b/lib/optparse.rb index 18ffe123e7..6668f30c8b 100644 --- a/lib/optparse.rb +++ b/lib/optparse.rb @@ -441,15 +441,12 @@ class OptionParser # # Raises an exception if argument is not present. # - def parse(arg, argv, &error) - opt = (val = parse_arg(val, &error))[1] - val = conv_arg(*val) - if opt and !arg - argv.shift - else - val[0] = nil + def parse(arg, argv) + unless arg + raise MissingArgument if argv.empty? + arg = argv.shift end - val + conv_arg(*parse_arg(arg) {|*exc| raise(*exc)}) end end @@ -472,7 +469,7 @@ class OptionParser # # Switch that takes an argument, which does not begin with '-'. # - class PlacedArgument < RequiredArgument + class PlacedArgument < self # # Returns nil if argument is not present or begins with '-'. # @@ -480,7 +477,14 @@ class OptionParser if !(val = arg) and (argv.empty? or /\A-/ =~ (val = argv[0])) return nil, block, nil end - super + opt = (val = parse_arg(val, &error))[1] + val = conv_arg(*val) + if opt and !arg + argv.shift + else + val[0] = nil + end + val end end end |