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.



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow