diff options
-rw-r--r-- | lib/slop/options.rb | 4 | ||||
-rw-r--r-- | test/options_test.rb | 11 |
2 files changed, 13 insertions, 2 deletions
diff --git a/lib/slop/options.rb b/lib/slop/options.rb index 9a5f5cc..875fcfe 100644 --- a/lib/slop/options.rb +++ b/lib/slop/options.rb @@ -102,13 +102,13 @@ module Slop str = config[:banner] ? "#{banner}\n" : "" len = longest_flag_length - options.select(&:help?).each_with_index.sort_by{ |o,i| [o.tail, i] }.each do |opt, i| + options.select.each_with_index.sort_by{ |o,i| [o.tail, i] }.each do |opt, i| # use the index to fetch an associated separator if sep = separators[i] str << "#{sep}\n" end - str << "#{prefix}#{opt.to_s(offset: len)}\n" + str << "#{prefix}#{opt.to_s(offset: len)}\n" if opt.help? end if sep = separators[options.size] diff --git a/test/options_test.rb b/test/options_test.rb index 2f83fc4..0aa6e67 100644 --- a/test/options_test.rb +++ b/test/options_test.rb @@ -70,6 +70,17 @@ describe Slop::Options do assert_equal [""], @options.separators end + + it "correctly handles options with `help: false`" do + @options.boolean "--opt1" + @options.boolean "--opt2", help: false + @options.separator "other options" + @options.boolean "--opt3", help: false + @options.boolean "--opt4" + + _usage, help = @options.to_s.squeeze(" ").split("\n", 2) + assert_equal "--opt1 \nother options\n --opt4", help.strip + end end describe "#method_missing" do |