- Learn
- Guida Ruby
- L’interfaccia testuale
L’interfaccia testuale
Come detto prima, dato che in questa prima parte della guida non abbiamo trattato nessuna GUI, implementeremo solo l’interfaccia testuale. La nostra classe si occuperà di mostrare a video un menù dei comandi minimale e quindi in base al comando ricevuto raccogliere, o mostrare, i dati necessari. La classe che implementa tutto questo è Ongaku::Text nel file ongaku/ui/text.rb. Nel metodo Ui.main
le interfacce vengono eseguite con l’istruzione avvia che in questo caso sarà una cosa del genere:
def avvia stampa_menu comando = gets.chomp case comando when 'a' aggiungi when 'e' elimina when 'l' elenca when 'q' Ongaku::Ui.salva_cd puts "Grazie per aver utilizzato #{NOME}!" exit else puts "Comando inesistente: #{comando}" end avvia end
Innanzitutto viene stampato il menu e poi viene catturato il comando digitato dall’utente, ed in base a quest’ultimo viene eseguito il metodo associato. Il metodo stampa_menu
non fa altro che stampare a video delle stringhe che mostrano quali comandi sono possibili:
def stampa_menu puts SEPARATORE puts "Ongaku menu:" puts " (a) aggiungi CD (e) elimina CD " puts " (l) visualizza lista (q) esci da #{NOME}" print "scegli: " end
dove SEPARATORE è una stringa costante che vale 45 caratteri ‘=’. Il metodo aggiungi invece colleziona i dati necessari alla creazione di un nuovo oggetto Cd e poi chiama Ongaku::Ui.aggiungi_cd:
def aggiungi puts SEPARATORE puts "Aggiungi CD" print " Titolo: " tit = gets.chomp print " Autore: " aut = gets.chomp print " Anno di pubblicazione: " anno = gets.chomp Ongaku::Ui.aggiungi_cd(tit, aut, anno) end
Per rimuovere un cd visualizziamo la lista completa e poi chiediamo all’utente di digitare l’indice del cd da eliminare. Tale valore è passato poi a Ongaku::Ui.elimina_cd:
def elimina elenca print "Scegli il CD da eliminare: " index = gets.chomp Ongaku::Ui.elimina_cd(index.to_i - 1) end
Dove elenca è il metodo utilizzato per visualizzare la lista completa, non facciamo altro che stampare tutti gli elementi dell’array preceduti dal numero d’ordine:
def elenca puts SEPARATORE puts "Elenco dei Cd in archivio" $archivio.each_index {|i| puts "#{(i + 1).to_s.rjust(4)}: #{$archivio[i]}"} end
Infine quando si sceglie di chiudere l’applicazione con il comando q
viene scritto l’array sul file con il metodo Ongaku::Ui.salva_cd e viene stampato un messaggio d’uscita.
Ongaku::Ui.salva_cd puts "Ora la lista contiene #{$archivio.size} CD" puts "Grazie per aver utilizzato #{NOME}!" exit
Per quel che riguarda le altre due interfacce, per ora, gli facciamo solo stampare un messaggio d’errore qualora siano invocate.
Se vuoi aggiornamenti su L'interfaccia testuale inserisci la tua email nel box qui sotto:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
La tua iscrizione è andata a buon fine. Se vuoi ricevere informazioni personalizzate compila anche i seguenti campi opzionali:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
I Video di HTML.it
Convertire un DVD in AVI con Format Factory
Avere la propria filmografia a disposizione sull’hard disk è possibile grazie a Format Factory, il software in grado di convertire […]