Aastal artikkel, milles käsitletakse OptionParseri funktsioone arutasime mõningaid põhjusi, mis muudavad OptionParseri kasutamise ka siin Rubiin eelistatav on ARGV käsitsi läbi vaadata käsud käsitsi. Nüüd on aeg asuda õppima, kuidas kasutada OptionParserit ja selle funktsioone.
Järgnevat katlakivi koodi kasutatakse kõigi selle õpetuse näidete jaoks. Mõne näite proovimiseks pange lihtsalt näited valib.on blokeeri TODO kommentaari kõrval. Programmi käivitamine prindib suvandite oleku ja ARGV, mis võimaldab teil uurida oma lülitite mõju.
#! / usr / bin / env rubiin
nõuda 'optparse'
nõudma 'pp'
# See räsi sisaldab kõiki võimalusi
# parsitud käsurealt poolt
# OptionParser.
võimalused = {}
optparse = OptionParser.new tegema | valib |
# TODO: pange siia käsuridade valikud
# Kuvatakse abiekraan, kõik programmid on
# eeldatakse, et see võimalus on olemas.
opts.on ('-h', '--help', 'Kuva see ekraan') teevad
paneb valikud
väljumine
lõpp
lõpp
# Sõeluge käsurida. Pidage meeles, et on kaks vormi
# parsimismeetodi kohta. Protsessimeetod lihtsalt sõelub
# ARGV, samal ajal kui 'parsida!' meetod parsib ARGV ja eemaldab
# kõik seal leiduvad valikud ja parameetrid
# valikud. Alles on failide loend, mille suurust muuta.
optparse.parse!
lk "Valikud:", valikud
lk "ARGV:", ARGV
Lihtne lüliti
Lihtne lüliti on argument, millel pole valikulisi vorme ega parameetreid. Selle tulemuseks on lihtsalt lipu määramine suvandites räsi. Muid parameetreid ei edastata peal meetod.
suvandid [: lihtne] = vale
opts.on ('-s', '--simple', 'Simple argument') teevad
suvandid [: lihtne] = tõene
lõpp
Lülitage kohustusliku parameetriga
Lülitid, mis võtavad parameetri, peavad parameetri nime avaldama ainult lüliti pikas vormis. Näiteks, "-f", "--faili fail" tähendab, et -f või - faililüliti võtab ühe parameetri nimega FILE ja see parameeter on kohustuslik. Te ei saa kasutada kumbagi -f ega --faili, ilma et see oleks parameetrit üle andnud.
võimalused [: mand] = ""
opts.on ('-m', '- kohustuslik fail "," kohustuslik argument ") tegema | f |
suvandid [: mand] = f
lõpp
Lülitage valikulise parameetriga
Lüliti parameetrid ei pea olema kohustuslikud, need võivad olla valikulised. Lüliti parameetri valikuliseks kuulutamiseks pange selle nimi sulgudesse lüliti kirjeldusse. Näiteks, "--logifail [fail]" tähendab, et parameeter FILE on valikuline. Kui seda ei pakuta, eeldab programm mõistlikku vaikimisi, näiteks faili nimega log.txt.
Näites idioom a = b || c kasutatakse. See on lihtsalt lühend "a = b" jaoks, kuid kui b on vale või null, siis a = c ".
suvandid [: opt] = vale
opts.on ('-o', '- valikuline [OPT]', "Valikuline argument") do | f |
võimalused [: opt] = f || "mitte midagi"
lõpp
Teisenda automaatselt hõljumiseks
OptionParser suudab argumendi automaatselt mõnda tüüpi teisendada. Üks neist tüüpidest on hõljuk. Argumentide automaatseks teisendamiseks ujukiks lülitumiseks andke ujuk väärtusele peal meetod pärast teie lüliti kirjelduse stringe.
Automaatsed konversioonid on käepärased. Need mitte ainult ei säästa stringi soovitud tüübi teisendamise sammu, vaid kontrollivad ka teie jaoks vormingut ja viskavad välja erandi, kui see on valesti vormindatud.
suvandid [: float] = 0,0
opts.on ('-f', '- ujuk NUM', ujuk, "Teisenda ujukiks") do | f |
suvandid [: float] = f
lõpp
Mõni teine tüüp, mida OptionParser saab teisendada, sisaldab automaatselt aega ja täisarvu.
Argumentide loendid
Argumente saab tõlgendada loenditena. Seda võib lugeda massiiviks teisendamiseks, kui teisendasite väärtuseks Ujuk. Kuigi teie suvandistring võib määratleda parameetri, mida nimetatakse a, b, c, lubab OptionParser pimesi loendis suvalist arvu elemente. Seega, kui vajate kindlat arvu elemente, kontrollige kindlasti massiivi pikkust ise.
suvandid [: nimekiri] = []
opts.on ('-l', '- loend a, b, c', massiiv, "parameetrite loend") ei | l |
suvandid [: loend] = l
lõpp
Argumentide komplekt
Mõnikord on mõistlik piirata argumente vaid mõne valikuga. Näiteks võtab järgmine lüliti ainult ühe kohustusliku parameetri ja see parameeter peab olema üks jah, ei või võib olla. Kui parameeter on üldse midagi muud, siis tehakse erand.
Selleks andke pärast lüliti kirjeldusstringi sümbolitena vastuvõetavate parameetrite loendit.
suvandid [: seatud] =: jah
opts.on ('-s', '--set OPT', [: jah,: ei,: võib-olla], "Parameetrid komplektist") teevad | s |
suvandid [: seatud] = s
lõpp
Negatiivsed vormid
Lülititel võib olla negatiivne vorm. Lüliti - ühendatud võib olla selline, millel on vastupidine efekt, nn - eitav. Selle kirjeldamiseks lüliti kirjeldusstringis asetage alternatiivne osa sulgudesse: - [no-] eitus. Esimese vormi ilmumisel edastatakse tõene plokile ja teise vormi ilmnemisel blokeeritakse vale.
võimalused [: neg] = vale
opts.on ('-n', '- [no-] eitus', "Negatiivsed vormid") teevad | n |
valikud [: neg] = n
lõpp