Ich denke, der einfachste Weg wäre, die versteckte Option vor dem Aufruf von parse!
auf dem Optionsparser separat zu parsen.
if ARGV.delete '--secret'
...
end
OptionParser.new do |opts|
...
end.parse!
Obwohl das bedeutet, dass Sie die verdeckte Option Parsing manuell behandeln müssen. Alternativ können Sie für die versteckten Optionen eine separate OptionParser
definieren und OptionParser::InvalidOption
bei der Analyse retten und dann mit dem normalen Parser analysieren. Aber das wäre empfindlich für die Reihenfolge, in der Optionen angegeben werden.