在Ruby中使用Trollop进行命令行解析,如何覆盖'version'参数
Using Trollop for command line parsing in Ruby, how do I override the 'version' parameter
我有一个Ruby程序需要把一个版本作为参数。这个版本是指程序将与之交互的资源的版本,而不是程序本身的版本。我找到了 Trollop,并且对它的简单性感到满意。但是,Trollop 似乎自动创建了一个 --version 标志来打印出程序的版本。我希望我的版本标志以字符串作为参数。
Google 搜索在 Trollup 项目的 History.txt 中发现了以下内容:
== 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。
但是,当我创建一个 --version 选项并将其传入时,程序会立即退出。
opts = Trollop::options do
opt : version, "The version to use. ie. 1.0.1", :type => String, :required => true
end
上面的代码正确地要求传入版本参数。但是,当我传入它时,程序立即退出。我认为它是打印版本(显然是 nil)并正在退出。
如何覆盖版本以在 Trollop 中接受参数?
将您的选项定义为 :version
以外的任何选项,然后将 :long
和 :short
形式配置为 version
和 v
。
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 仍然 throws a VersionNeeded
exception 当它看到 :version
选项已被提供时。 Trollop 然后打印版本并立即退出。
同样的想法也适用于 :help
。
我有一个Ruby程序需要把一个版本作为参数。这个版本是指程序将与之交互的资源的版本,而不是程序本身的版本。我找到了 Trollop,并且对它的简单性感到满意。但是,Trollop 似乎自动创建了一个 --version 标志来打印出程序的版本。我希望我的版本标志以字符串作为参数。
Google 搜索在 Trollup 项目的 History.txt 中发现了以下内容:
== 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。 但是,当我创建一个 --version 选项并将其传入时,程序会立即退出。
opts = Trollop::options do
opt : version, "The version to use. ie. 1.0.1", :type => String, :required => true
end
上面的代码正确地要求传入版本参数。但是,当我传入它时,程序立即退出。我认为它是打印版本(显然是 nil)并正在退出。
如何覆盖版本以在 Trollop 中接受参数?
将您的选项定义为 :version
以外的任何选项,然后将 :long
和 :short
形式配置为 version
和 v
。
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 仍然 throws a VersionNeeded
exception 当它看到 :version
选项已被提供时。 Trollop 然后打印版本并立即退出。
同样的想法也适用于 :help
。