Я использую Ruby OptionParser (require 'optparse'
), обрабатывая «подробный» параметр, который может быть либо истинным, либо ложным. Это в коде так:
parser.on('-v', '--[no-]verbose', 'Verbose mode') do |v|
self.verbose = v
end
Я поддерживаю указание параметров в переменной среды (я добавляю ее содержимое к ARGV), поэтому можно включить подробный режим в этой переменной среды и переопределить его в командной строке с помощью --no-verbose
. Однако я не могу найти способ переопределить его с помощью короткой опции. Я пробовал это без успеха:
-v-
-v0
-v=0
Я нашел исходный код по адресу https://github.com/ruby/ruby/blob/trunk/lib/optparse.rb, но не смог найти ответ.
Как я могу это сделать?
nil
), поэтому я не уверен, зачем вам нужно переопределять его с помощью короткого кода? Вы также можете инициализировать его какfalse
, например.def initialize; self.verbose = false; end
- person engineersmnky   schedule 07.02.2019rexe
. Методprepend_environment_options
, который предшествуетARGV
, находится по адресу github.com/keithrbennett. /rexe/blob/master/exe/rexe#L53-L59 на данный момент, но со временем код может измениться; если это так, найдите имя метода илиARGV
. - person Keith Bennett   schedule 10.02.2019