Don't treat empty string as an option description #40
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #37.
When an empty stirng was parsed in
make_switch
, it was treated as a part of the option description (and pushed todesc
). When this array was then used to print options summary, it caused issues for options with missing short version and very long long version (longer thanwidth
).In the final
while
ofSwitch#summarize
, anil
was assigned toleft
and it wasn't converted to string, becauseright
was an empty string: https://github.com/ruby/optparse/blob/master/lib/optparse.rb#L633. and an error was raised.Tests
Tested manually with `test.rb placed in the main dir of the gem:
With the result of:
Alternative solutions
I've also tried to call
to_s
on thel
variable in the place that was causing the error:but I ended up with having misaligned description for shorter long options with the short option, i.e.
instead of