ram*_*ion 24 ruby optparse optionparser
我希望能够使用ruby的OptionParser来解析表单的子命令
COMMAND [GLOBAL FLAGS] [SUB-COMMAND [SUB-COMMAND FLAGS]]
Run Code Online (Sandbox Code Playgroud)
喜欢:
git branch -a
gem list foo
Run Code Online (Sandbox Code Playgroud)
我知道我可以切换到一个不同的选项解析器库(如Trollop),但我有兴趣从OptionParser中学习如何做到这一点,因为我想更好地学习库.
有小费吗?
ram*_*ion 39
弄清楚了.我需要用OptionParser#order!.它将从一开始就解析所有选项,ARGV直到找到非选项(不是选项参数),删除它处理的所有内容ARGV,然后它将退出.
所以我只需要做一些事情:
global = OptionParser.new do |opts|
# ...
end
subcommands = {
'foo' => OptionParser.new do |opts|
# ...
end,
# ...
'baz' => OptionParser.new do |opts|
# ...
end
}
global.order!
subcommands[ARGV.shift].order!
Run Code Online (Sandbox Code Playgroud)