相关疑难解决方法(0)

OptionParser可以跳过未知选项,稍后在Ruby程序中处理吗?

有没有办法在一个Ruby程序中多次启动OptionParser,每个程序都有不同的选项?

例如:

$ myscript.rb --subsys1opt a --subsys2opt b
Run Code Online (Sandbox Code Playgroud)

在这里,myscript.rb将使用subsys1和subsys2,将它们的选项处理逻辑委托给它们,可能是首先处理'a'的序列,然后是单独的OptionParser对象中的'b'; 每次选择仅与该上下文相关的选项.最后阶段可以检查在每个部件处理完他们之后没有任何未知数.

用例是:

  1. 在松散耦合的前端程序中,各种组件具有不同的参数,我不希望'main'知道所有内容,只是为每个部分委派参数/选项集.

  2. 将一些更大的系统(如RSpec)嵌入到我的应用程序中,我只需通过命令行通过他们的选项,而不知道那些包装器.

我会用一些分隔符选项OK,以及像----vmargs在某些Java应用程序.

在Unix世界中有许多类似的东西的实际例子(startx/X,git plumbing和瓷器),其中一层处理一些选项但将其余部分传播到下层.

开箱即用,这似乎不起作用.每次OptionParse.parse!通话都会进行详尽的处理,对任何不知道的事情都会失败.我想我很乐意跳过未知选项.

任何提示,也许是替代方法都是受欢迎的.

ruby options getopt optparse

12
推荐指数
2
解决办法
6200
查看次数

标签 统计

getopt ×1

options ×1

optparse ×1

ruby ×1