Користите ОптионПарсер за рашчлањивање команди у Руби-у

click fraud protection

У чланак који говори о функцијама ОптионПарсер-а разговарали смо о неким разлозима због којих је употреба ОптионПарсер-а у Руби пожељно је ручно прегледати АРГВ команде ручно. Сада је време да се спустите на учење како користити ОптионПарсер и његове функције.

Следећи код плоче за бојлер користиће се за све примере у овом упутству. Да бисте испробали било који од примера, једноставно ставите пример оптс.он блок поред ТОДО коментара. Покретање програма ће исписати стање опција и АРГВ, омогућавајући вам да истражите ефекте својих склопки.

#! / уср / бин / енв рубин
захтевати 'оптпарсе'
захтевати 'пп'
# Овај хасх садржи све могућности
# рашчлањен из наредбеног ретка за
# ОптионПарсер.
оптионс = {}
оптпарсе = ОптионПарсер.нев до | оптс |
# ТОДО: Овде ставите опције командне линије
# Ово приказује екран за помоћ, сви програми су
# претпоставља се да има ову опцију.
оптс.он ('-х', '--хелп', 'Прикажи овај екран')
ставља оптс
излаз
крај
крај
# Анализа командне линије. Запамтите да постоје два облика
# методе рашчлањивања. Метода „рашчлањивања“ једноставно анализира
instagram viewer

# АРГВ, док је 'анализа!' метода анализира АРГВ и уклања
# било које опције тамо пронађене, као и било који параметар за
# опције. Остало је листа датотека за промену величине.
оптпарсе.парсе!
пп "Опције:", опције
пп "АРГВ:", АРГВ

Симпле Свитцх

Једноставно пребацивање је аргумент без опционих облика или без параметара. Ефекат ће бити једноставно постављање заставе у опцијама хасх. Ни други параметри неће бити прослеђени на на метод.

оптионс [: симпле] = фалсе
оптс.он ('-с', '--симпле', "Симпле аргумент")
оптионс [: симпле] = труе
крај

Пребаците се са обавезним параметром

Прекидачи који узимају параметар морају само навести назив параметра у дугом облику прекидача. На пример, "-ф", "--филе ФИЛЕ" значи да прекидач -ф или --филе узима један параметар који се зове ФИЛЕ, а овај параметар је обавезан. Не можете користити ни -ф или --филе, а да притом не пренесете параметар.

опције [: манд] = ""
оптс.он ('-м', '- обавезни ФИЛЕ', "обавезни аргумент") до | ф |
опције [: манд] = ф
крај

Пребаците се са опционалним параметром

Параметри пребацивања не морају бити обавезни, могу бити опционални. Да бисте параметар прекидача прогласили факултативним, ставите његово име у заграде у опису прекидача. На пример, "--логфиле [ФИЛЕ]" значи да је параметар ФИЛЕ опционалан. Ако није испоручен, програм ће преузети подразумевано подразумевано стање, као што је датотека звана лог.ткт.

У примеру, идиом а = б || ц се користи. Ово је само скраћеница за "а = б, али ако је б неистинито, н = а".

оптионс [: опт] = фалсе
оптс.он ('-о', '--оптионал [ОПТ]', "Опционални аргумент") до | ф |
оптионс [: опт] = ф || "ништа"
крај

Аутоматски Претвори у Флоат

ОптионПарсер може аутоматски претворити аргумент у неке врсте. Једна од тих врста је Флоат. Да бисте своје аргументе аутоматски претворили у преклопник на Флоат, проследите Флоат у на метода након низа описа описа.

Аутоматске конверзије су згодне. Не само да вам спремају корак претварања низа у жељени тип, већ и проверавају формат за вас и избациће изузетак ако је погрешно форматиран.

опције [: флоат] = 0.0
оптс.он ('-ф', '--флоат НУМ', Флоат, "Претвори у плутање") до | ф |
опције [: флоат] = ф
крај

Неке друге врсте које ОптионПарсер може претворити да аутоматски укључују Време и Интегер.

Листе аргумената

Аргументи се могу тумачити као спискови. Ово се може видети као претварање у низ, као што сте претворили у Флоат. Док ваш низ опција може дефинисати параметар који ће се звати "а, б, ц", ОптионПарсер ће слепо дозволити било који број елемената на листи. Ако вам је потребан одређени број елемената, обавезно сами проверите дужину низа.

опције [: лист] = []
оптс.он ('-л', '- листа а, б, ц', Арраи, "Листа параметара") до | л |
опције [: лист] = л
крај

Скуп аргумената

Понекад има смисла ограничити аргументе преласком на неколико избора. На пример, следећи прекидач ће узимати само један обавезан параметар, а параметар мора бити један од да, не или можда. Ако је параметар уопште ишта друго, бациће се изузетак.

Да бисте то учинили, проследите листу прихватљивих параметара као симбола након низова описа прекидача.

опције [: сет] =: да
оптс.он ('-с', '--сет ОПТ', [: да,: не,: можда], "Параметри из скупа") до | с |
опције [: сет] = с
крај

Негирани обрасци

Прекидачи могу имати негативан облик. Прекидач --неговарано може имати онај који има супротан ефекат, назван - негирано. Да бисте то описали у низу описа прекидача, ставите алтернативни део у заграде: - [не-] негирано. Ако се сусретне први образац, труе ће бити пренесен у блок, а фалсе ће бити блокиран ако се нађе други облик.

опције [: нег] = лажно
оптс.он ('-н', '- [не-] негиран', "Неговани обрасци") до | н |
опције [: нег] = н
крај
instagram story viewer