首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Ruby中使用Trollop进行命令行解析,如何覆盖“version”参数

在Ruby中使用Trollop进行命令行解析,如何覆盖“version”参数
EN

Stack Overflow用户
提问于 2015-01-20 17:05:26
回答 1查看 366关注 0票数 1

我有一个Ruby程序,它需要一个版本作为参数。此版本指的是程序将与之交互的资源的版本,而不是程序本身的版本。我找到了Trollop,并且对它的简单性很满意。然而,Trollop似乎会自动创建一个- version标志来打印程序的版本.我希望我的版本标志接受一个字符串作为参数。

谷歌搜索在Trollup项目的History.txt中显示了以下内容:

代码语言:javascript
复制
== 1.3 / 2007-01-31
* Wrap at (screen width - 1) instead of screen width.
* User can override --help and --version.
* Bugfix in handling of -v and -h.
* More tests to confirm the above.

因此,从历史上看,我应该能够重写--版本。但是,当我创建一个-version选项并传入它时,程序就会立即退出.

代码语言:javascript
复制
opts = Trollop::options do
  opt : version, "The version to use.  ie. 1.0.1", :type => String, :required => true
end

上面的代码正确地要求传入版本参数。但是,当我传入它时,程序就会立即退出。我认为这是印刷版(显然是零)和退出。

如何覆盖版本以在Trollop中进行争论?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-20 19:35:34

将您的选项定义为:version以外的任何选项,然后将:long:short表单配置为versionv

代码语言:javascript
复制
opts = Trollop::options do
  opt :use_version, "The version to use.  ie. 1.0.1", 
    :long => 'version', :short => 'v', :type => String, :required => false
end

当您将该选项定义为:version时,默认的:version定义将被覆盖,但Trollop在看到它的:version选项时仍然是 exception。然后,Trollop打印版本并立即退出。

同样的想法也适用于:help

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28051126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档