Feature #8460
openPATCH: optparse: add `keep_unknown` option
Description
Currently people have to do very convoluted tricks, essentially making
it impossible for optparse to keep unknown options.
The safest and cleanest way is to do it in the code itself.
[1] http://www.ruby-forum.com/topic/88081
[2] http://stackoverflow.com/questions/3642331/can-optparse-skip-unknown-options-to-be-processed-later-in-a-ruby-program
Files
Updated by zzak (zzak _) over 11 years ago
- Status changed from Open to Assigned
- Assignee set to nobu (Nobuyoshi Nakada)
Updated by drbrain (Eric Hodel) over 11 years ago
I like this patch, I could use this feature in RDoc's option parser which ignores arguments that were valid for previous versions.
Updated by prijutme4ty (Ilya Vorontsov) over 11 years ago
Can anyone please take a look at a bug http://bugs.ruby-lang.org/issues/7537#change-37695 considering command-line arguments containing negative numbers (which're erroneously treated ass options) and my patch for it.
I'm afraid that keeping unknown options will silently treat negative numbers (not an exception is raised) and possibly lose their ordering. So please before accepting unknown options patch, decide which behavior for such a case is right and make a specification about negative numbers in command line(as an example, they may became non-options and in such a case this proposal will work differently).
In my bug report and a patch I proposed some specs for optparse behavior in this case, but they weren't yet accepted or declined.
Updated by felipec (Felipe Contreras) over 11 years ago
Any update on this?
Updated by nobu (Nobuyoshi Nakada) over 11 years ago
Updated by felipec (Felipe Contreras) over 3 years ago
- File 0001-optparse-add-keep_unknown-option.patch added
- File 0002-optparse-move-dash-dash-handling-to-a-case.patch added
- File 0003-optparse-properly-keep-dash-dash.patch added
Nobody had requested any tests. It would have been much easier if 7 years ago you had written the two lines of code required to test this.
Anyway, I've rebased my changes on top of the latest master, and added some tests.
Updated by felipec (Felipe Contreras) over 1 year ago
- File 0001-Add-keep_unknown-option.patch 0001-Add-keep_unknown-option.patch added
- File 0002-Move-dash-dash-handling-to-a-case.patch 0002-Move-dash-dash-handling-to-a-case.patch added
- File 0003-Properly-keep-dash-dash.patch 0003-Properly-keep-dash-dash.patch added
- Subject changed from PATCH: optparse: add keep_unknown option to PATCH: optparse: add `keep_unknown` option
Updated on top of master yet again.
Updated by felipec (Felipe Contreras) over 1 year ago
- File deleted (
0001-optparse-add-keep_unknown-option.patch)
Updated by felipec (Felipe Contreras) over 1 year ago
- File deleted (
0002-optparse-move-dash-dash-handling-to-a-case.patch)
Updated by felipec (Felipe Contreras) over 1 year ago
- File deleted (
0003-optparse-properly-keep-dash-dash.patch)