共通のNagiosCheckクラスを継承するNagiosスクリプトがいくつかあります。すべてのチェックにはわずかに異なる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に関する最初の質問。私が何か間違ったことをした場合は、私が適応できるように私に知らせてください。