我使用一个定义自己的开关的库,然后传递OptionParser
对象让我添加地雷。但是,它添加了我想删除的开关,因为它们会使我的用户感到困惑。
本质上,我想撤消此操作(无需删除代码行,因为它是第 3 方):
opts.on("-p", "--port PORT", Integer, "Specify port", "(default: #{options[:port]})") do |v|
options[:port] = v
end
我尝试查看类的代码,但没有找到任何remove
机制。所以我想在通过元编程破解它之前我会问一下。
编辑- 元编程方式(非常hacky ..):
class OptionParser
attr_accessor :stack
end
...
opts.stack[2].long.reject! { |k| k == "port" }
opts.stack[2].short.reject! { |k| k == "p" }
...