如何在Ruby中的OptionParser中只获取长选项?

bla*_*0ne 6 ruby optionparser

我在Ruby中有这么简单的代码(test.rb):

#! /usr/bin/env ruby

require 'optparse'

OptionParser.new do |option|
  option.on("--sort", "Sort data") do 
    puts "--sort passed"
  end
end.parse!
Run Code Online (Sandbox Code Playgroud)

然后我运行它:./test.rb -s得到:

--sort passed
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?

我希望唯一--sort(长)选项有效,而不是短选项.

我怎么得到它?

Jon*_*rns 0

从文档来看,这似乎是不可能的。

#on方法使用 的语法#make_switch,如下所述。整个文档没有提到能够打开或关闭长或短变量。

然而,这真的是一个问题吗?惯例是可以通过长名称和短名称访问选项,强制更改该行为可能会让用户感到沮丧。

如果您确实不想允许短名称,最好的选择是查看其他一些库(例如 highline、slop、trollop)或推出您自己的库。