我有几个 Nagios 脚本继承了一个常见的 NagiosCheck 类。由于每项检查的 getopts 选项都略有不同,我认为最好通过 NagiosCheck 类方法生成可用选项。但我被困住了...
这就是我调用该方法的方式:
class CheckFoobar < NagiosCheck
...
end
check = CheckFoobar.new
check.generate_options(
['-H', '--hostname', GetoptLong::REQUIRED_ARGUMENT],
['-P', '--port', GetoptLong::REQUIRED_ARGUMENT],
['-u', '--url', GetoptLong::REQUIRED_ARGUMENT])
方法本身:
class NagiosCheck
...
def generate_options (*args)
options = []
args.each do |arg|
options << arg
end
parser = GetoptLong.new
options.each {|arg| parser.set_options(arg)}
end
end
然后解析器只存储最后一项:
p parser # => #<GetoptLong:0x00000000e17dc8 @ordering=1, @canonical_names={"-u"=>"-u", "--url"=>"-u"}, @argument_flags={"-u"=>1, "--url"=>1}, @quiet=false, @status=0, @error=nil, @error_message=nil, @rest_singles="", @non_option_arguments=[]>
- 你对我如何让解析器存储所有参数有什么建议吗?
问候,
迈克
...关于stackoverflow的第一个问题。如果我做错了什么,请多多包涵,让我知道,以便我能够适应。