Ruby OptionParser pusty przełącznik „-” zachowanie
EDYTOWANE:
Napisałem kod, który używa OptionParser do obsługi wiersza poleceń. Stoję przed dwoma głównymi hitami.
Przekazanie pustych przełączników „-” nie powoduje błędu. Oczywiście niektóre programy uznają to za ważne, ale moje nie powinny.Program wymaga dwóch obowiązkowych przełączników, ale akceptuje jeden przełącznik bez narzekania! na przykładprogram.ruby -f foo -b bar
jest prawidłowym wejściem i oba przełączniki są: WYMAGANE. Ale dostarczenie tylko jednego przełącznika przechodzi bez problemu i nie jest to pożądane zachowanie.W pierwszym przypadku zrobiłem to:
<code>opts.on('-', /\A-\Z/) do $stderr.print "Invalid empty switch" exit 1 end </code>
To działa dobrze. Ale czy to jest właściwy sposób?
W drugim przypadku szukałem rozwiązania w bloku OptionParser.new, ale nie mogłem go znaleźć. na przykład
<code>unless options.foo && options.bar puts "Error." exit 2 end </code>
Czy to poza blokiem OptionParser.new jest normalnym sposobem?