Att skapa ett kommandoradsverktyg (CLI) med Ruby är en fantastisk introduktion till programmering och ger en praktisk förståelse för hur man interagerar med användare via terminalen. I denna artikel kommer vi att gå igenom stegen för att skapa ett enkelt CLI-verktyg, inklusive hur man hanterar användarinmatning och ger utdata. Låt oss dyka in!
CLI står för Command Line Interface, vilket innebär att användare interagerar med programmet genom att skriva kommandon i en terminal. CLI-verktyg är ofta snabba och effektiva, och de används för allt från systemadministration till utveckling av programvara.
Innan vi börjar, se till att du har följande installerat på din dator:
Först och främst, skapa en ny Ruby-fil där vi kommer att skriva vårt CLI-verktyg. Öppna din terminal och kör följande kommando:
touch cli_tool.rb
Öppna sedan filen i din valda textredigerare.
Nu ska vi börja skriva vår Ruby-kod. Vi kommer att skapa ett enkelt CLI-verktyg som tar emot ett namn från användaren och hälsar dem. Börja med att lägga till följande kod i din cli_tool.rb
fil:
# cli_tool.rb puts "Hej! Vad heter du?" namn = gets.chomp puts "Trevligt att träffas, #{namn}!"
Här använder vi puts
för att skriva ut en fråga till användaren och gets.chomp
för att läsa in användarens svar. Vi använder sedan interpolering för att inkludera namnet i vårt hälsningsmeddelande.
För att köra ditt CLI-verktyg, gå tillbaka till terminalen och kör följande kommando:
ruby cli_tool.rb
Du bör nu se en fråga om ditt namn. Skriv in ditt namn och tryck på Enter. Programmet kommer att svara med en hälsning!
Nu när vi har en grundläggande funktionalitet, låt oss lägga till några fler funktioner för att göra vårt CLI-verktyg mer intressant. Vi kan till exempel låta användaren välja mellan olika alternativ. Låt oss utöka vår kod:
# cli_tool.rb puts "Hej! Vad heter du?" namn = gets.chomp puts "Välj ett alternativ:" puts "1. Hälsa på mig" puts "2. Berätta ett skämt" val = gets.chomp.to_i if val == 1 puts "Trevligt att träffas, #{namn}!" elsif val == 2 puts "Varför kan inte en cykel stå upp av sig själv? För att den är två-hjulig!" else puts "Ogiltigt val, försök igen." end
Här har vi lagt till en meny med två alternativ. Beroende på användarens val kommer programmet att antingen hälsa på dem eller berätta ett skämt.
Det är viktigt att hantera fel och ogiltiga inmatningar i våra CLI-verktyg. Låt oss förbättra vår kod genom att lägga till mer robust felhantering:
# cli_tool.rb puts "Hej! Vad heter du?" namn = gets.chomp puts "Välj ett alternativ:" puts "1. Hälsa på mig" puts "2. Berätta ett skämt" val = gets.chomp if val == "1" puts "Trevligt att träffas, #{namn}!" elsif val == "2" puts "Varför kan inte en cykel stå upp av sig själv? För att den är två-hjulig!" else puts "Ogiltigt val, försök igen." exit end
Genom att använda exit
kan vi avsluta programmet om användaren gör ett ogiltigt val. Detta ger en bättre användarupplevelse.
För att göra vårt CLI-verktyg mer interaktivt kan vi låta användaren göra flera val i en loop. Låt oss implementera detta:
# cli_tool.rb loop do puts "Hej! Vad heter du?" namn = gets.chomp puts "Välj ett alternativ:" puts "1. Hälsa på mig" puts "2. Berätta ett skämt" puts "3. Avsluta" val = gets.chomp if val == "1" puts "Trevligt att träffas, #{namn}!" elsif val == "2" puts "Varför kan inte en cykel stå upp av sig själv? För att den är två-hjulig!" elsif val == "3" puts "Tack för att du använde vårt CLI-verktyg! Hejdå!" break else puts "Ogiltigt val, försök igen." end end
Nu kan användaren göra flera val tills de väljer att avsluta programmet. Vi använder en loop
för att hålla programmet igång.
Grattis! Du har nu skapat ett enkelt CLI-verktyg med Ruby. Du har lärt dig hur man hanterar användarinmatning, ger utdata och implementerar grundläggande felhantering. CLI-verktyg är kraftfulla och kan användas för många olika ändamål, så fortsätt att experimentera och bygga vidare på dina färdigheter.
Här är några idéer för att utöka ditt CLI-verktyg:
tty-prompt
.Lycka till med ditt CLI-verktyg och ha kul med Ruby-programmering!
© 2024 RailsInsights. All rights reserved.