我想试试OptionParse
。我对如何使用program_name=
感到困惑。来自文档:
program_name[W]
: 要在错误消息和默认横幅中发出的程序名称,默认为$0
。
我以为我可以像这样使用它:
OptionParser.new do |opts|
opts.program_name = 'xxxx'
opts.on('-i', '--int N', OptionParser::DecimalInteger,
'....'
) { |v| ... }
我预计,如果我使用-i
选项错误地调用没有整数的程序,我会看到一条错误消息,报告xxxx
作为程序名称。然而情况并非如此。我是以错误的方式使用program_name=
,还是我误解了这个属性的目的?
答案 0 :(得分:1)
您必须使用set_program_name
方法(请参阅OptionParser)。 program_name成员用于检索当前名称,默认设置为$0
。使用program_name
设置横幅的更正代码将是:
OptionParser.new do |opts|
opts.set_program_name('xxxx')
opts.banner = "Usage: #{opts.program_name} .."
opts.on('-i', '--int N', OptionParser::DecimalInteger,
'....'
) { |v| ... }