У меня есть инструмент, который я обновляю и нужно иметь аргумент требует еще один аргумент, например:Как использовать optparse иметь аргумент флагов требуется еще один аргумент
require 'optparse'
OPTIONS = {}
OptionParser.new do |opts|
opts.on('-t', '--type INPUT', String, 'Verify a type'){ |o| OPTIONS[:type] = o }
end.parse!
def help_page
puts 'ruby test.rb -t dev'
end
def gather_type
case OPTIONS[:type]
when /dev/
unlock(OPTIONS[:type])
else
help_page
end
end
def unlock(type)
if type == 'unlock' #Find out what type by passing argument another argument
puts 'Unlock account'
else
puts 'Reset account'
end
end
def start
case
when OPTIONS[:type]
gather_type
else
help_page
end
end
start
Когда запускается вы получите следующее:
C:\Users\bin\ruby>ruby test.rb -t dev=unlock
Reset account
C:\Users\bin\ruby>ruby test.rb -t dev=reset
Reset account
Теперь, когда все хорошо и денди, но то, что я хочу сделать, это дать dev
Часть аргумент и идти оттуда, чтобы решить, если это разблокировать или, если это сброс:
ruby test.rb -t dev=unlock
ИЛИ ruby test.rb -t dev=reset
После того, что я хочу, чтобы метод unlock(type)
, чтобы определить, какой аргумент был дан аргумент флагов и вывести правильную информацию, так
C:\Users\bin\ruby>ruby test.rb -t dev=unlock
Unlock account
C:\Users\bin\ruby>ruby test.rb -t dev=reset
Reset account
Как я могу идти о, чтобы определить, является ли аргумент был учитывая аргумент флага?