diff options
author | Lee Jarvis <leejarvis@fastmail.com> | 2020-07-10 08:36:54 +0100 |
---|---|---|
committer | Lee Jarvis <leejarvis@fastmail.com> | 2020-07-10 08:36:54 +0100 |
commit | e5615fbdd7c4cd07e8fb0c1109fc6da56981829f (patch) | |
tree | 36f5e303143b1fe739a490cc5df0ddc75a9790c9 /lib | |
parent | 53e5d15c0493f8eaa31ea9d3a0d785dc9bb0cbc1 (diff) | |
download | slop-e5615fbdd7c4cd07e8fb0c1109fc6da56981829f.tar.gz |
Fix bug with separators around `help: false` opts
The separators rely on the indexes of the options before/after them, but
we ignore `help: false` options when building the help string, so all
of the positions are messed up.
This change avoids ignoring those options during the iteration, and
instead just doesn't append the option help to the string.
Fixes #253
Diffstat (limited to 'lib')
-rw-r--r-- | lib/slop/options.rb | 4 |
1 files changed, 2 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] |