Ruby Language
Applicazioni a riga di comando
Ricerca…
Come scrivere uno strumento da riga di comando per ottenere il meteo tramite codice di avviamento postale
Questo sarà un tutorial relativamente completo su come scrivere uno strumento da riga di comando per stampare il tempo dal codice postale fornito allo strumento da riga di comando. Il primo passo è scrivere il programma in ruby per fare questa azione. Iniziamo scrivendo un metodo weather(zip_code)
(Questo metodo richiede la gemma yahoo_weatherman
. Se non hai questa gemma puoi installarla digitando gem install yahoo_weatherman
dalla riga di comando)
require 'yahoo_weatherman'
def weather(zip_code)
client = Weatherman::Client.new
client.lookup_by_location(zip_code).condition['temp']
end
Ora abbiamo un metodo molto semplice che fornisce il tempo quando viene fornito un codice postale. Ora dobbiamo renderlo uno strumento da riga di comando. Molto rapidamente esaminiamo come viene chiamato uno strumento da riga di comando dalla shell e le variabili associate. Quando uno strumento è chiamato come questo tool argument other_argument
, in ruby c'è una variabile ARGV
che è una matrice uguale a ['argument', 'other_argument']
. Ora implementiamo questo nella nostra applicazione
#!/usr/bin/ruby
require 'yahoo_weatherman'
def weather(zip_code)
client = Weatherman::Client.new
client.lookup_by_location(zip_code).condition['temp']
end
puts weather(ARGV[0])
Buono! Ora abbiamo un'applicazione a riga di comando che può essere eseguita. Si noti la linea she-bang all'inizio del file ( #!/usr/bin/ruby
). Ciò consente al file di diventare un eseguibile. Possiamo salvare questo file come weather
. ( Nota : non salvare questo come weather.rb
, non è necessario per l'estensione del file e la she-bang dice tutto ciò che è necessario per dire che questo è un file rubino). Ora possiamo eseguire questi comandi nella shell (non digitare $
).
$ chmod a+x weather
$ ./weather [ZIPCODE]
Dopo aver verificato che questo funziona, possiamo ora collegarlo simbolicamente a /usr/bin/local/
eseguendo questo comando
$ sudo ln -s weather /usr/local/bin/weather
Ora il weather
può essere chiamato sulla riga di comando indipendentemente dalla directory in cui ci si trova.