Ruby OptionParser leer Schalter "-" Verhalten

BEARBEITET:

Ich habe Code geschrieben, der OptionParser verwendet, um Befehlszeileneingaben ordnungsgemäß zu verarbeiten. Ich stehe vor zwei großen Hits.

Das Übergeben eines leeren Schalters '-' gibt keinen Fehler aus. Natürlich nehmen einige Programme das als gültig an, aber meine sollten es nicht.Das Programm benötigt zwei obligatorische Schalter, akzeptiert jedoch einen Schalter, ohne sich zu beschweren! z.B.program.ruby -f foo -b bar ist die gültige Eingabe und beide Schalter sind: ERFORDERLICH. Die Bereitstellung nur eines Schalters ist jedoch problemlos möglich, und dies ist nicht das gewünschte Verhalten.

Für den ersten Fall habe ich das getan:

<code>opts.on('-', /\A-\Z/) do
  $stderr.print "Invalid empty switch"
  exit 1
end
</code>

Es funktioniert gut. Aber ist das der richtige Weg?

Für den zweiten Fall habe ich mich nach einer Lösung innerhalb des Blocks OptionParser.new umgesehen, aber keine gefunden. z.B.

<code>unless options.foo && options.bar
  puts "Error."
  exit 2
end
</code>

Ist es normal, dies außerhalb des Blocks OptionParser.new zu tun?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage