diff options
-rw-r--r-- | lib/slop/parser.rb | 7 | ||||
-rw-r--r-- | test/parser_test.rb | 5 |
2 files changed, 11 insertions, 1 deletions
diff --git a/lib/slop/parser.rb b/lib/slop/parser.rb index c12e2f5..246da9f 100644 --- a/lib/slop/parser.rb +++ b/lib/slop/parser.rb @@ -44,8 +44,13 @@ module Slop @arguments = strings.dup pairs.each do |flag, arg| + break if !flag + # ignore everything after '--', flag or not - break if !flag || flag == '--' + if flag == '--' + arguments.delete(flag) + break + end # support `foo=bar` if flag.include?("=") diff --git a/test/parser_test.rb b/test/parser_test.rb index 0dc361c..85ba7e0 100644 --- a/test/parser_test.rb +++ b/test/parser_test.rb @@ -61,5 +61,10 @@ describe Slop::Parser do it "returns all unparsed arguments" do assert_equal %w(foo argument), @parser.arguments end + + it "does not return --" do + @parser.parse %w(-v -- --name lee) + assert_equal %w(--name lee), @parser.arguments + end end end |