У меня есть программа, которая принимает входные данные командной строки. Вход похож на это:
ruby myprogram.rb --option1 --option2=foo
Прямо сейчас я разделил команду на пробелы и сохранил массив команд. Например, это будет массив для приведенного выше примера:
['option1','option2=foo']
В коде есть список допустимых команд:
valid_cmd = %w(
--option1
--option2
--option3
)
Как лучше всего проверить введенную команду, используя список проанализированных команд? В этом есть и более сложный компонент. Допустим, option2
имеет необязательные аргументы. Например, --option2=anArgument
так же действителен, как и один --option2
. С другой стороны, option3
имеет обязательные аргументы - т.е. --option3=foo
действителен, но --option3
нет. Как мы можем это объяснить?