Suche…


Wie man ein Befehlszeilentool schreibt, um das Wetter anhand der Postleitzahl zu ermitteln

Dies ist ein relativ umfangreiches Tutorial, in dem beschrieben wird, wie ein Befehlszeilentool geschrieben wird, um das Wetter aus der Postleitzahl des Befehlszeilentools zu drucken. Der erste Schritt besteht darin, das Programm in Ruby zu schreiben, um diese Aktion auszuführen. Beginnen wir mit dem Schreiben einer Methode weather(zip_code) (Diese Methode erfordert den Edelstein yahoo_weatherman . Wenn Sie diesen Edelstein nicht haben, können Sie ihn installieren, indem gem install yahoo_weatherman in der Befehlszeile gem install yahoo_weatherman )

require 'yahoo_weatherman'

def weather(zip_code)
  client = Weatherman::Client.new
  client.lookup_by_location(zip_code).condition['temp']
end

Wir haben jetzt eine sehr grundlegende Methode, die das Wetter angibt, wenn eine Postleitzahl angegeben wird. Jetzt müssen wir daraus ein Befehlszeilentool machen. Gehen wir sehr schnell darauf ein, wie ein Befehlszeilentool von der Shell und den zugehörigen Variablen aufgerufen wird. Wenn ein Werkzeug wie dieses tool argument other_argument , gibt es in ruby ​​eine Variable ARGV die ein Array ist, das gleich ['argument', 'other_argument'] . Lassen Sie uns dies nun in unserer Anwendung implementieren

#!/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])

Gut! Jetzt haben wir eine Befehlszeilenanwendung, die ausgeführt werden kann. Beachten Sie die Bindestrichlinie am Anfang der Datei ( #!/usr/bin/ruby ). Dadurch kann die Datei zu einer ausführbaren Datei werden. Wir können diese Datei als weather speichern. ( Hinweis : Speichern Sie dies nicht als " weather.rb Die Dateierweiterung ist nicht erforderlich, und das She-Bang teilt Ihnen mit, was Sie benötigen, um anzugeben, dass es sich um eine Ruby-Datei handelt.) Jetzt können wir diese Befehle in der Shell ausführen (geben Sie nicht $ ).

$ chmod a+x weather
$ ./weather [ZIPCODE]

Nachdem wir getestet haben, dass dies funktioniert, können Sie dies jetzt mit /usr/bin/local/ verknüpfen, indem Sie diesen Befehl ausführen

$ sudo ln -s weather /usr/local/bin/weather

weather kann jetzt über die Befehlszeile aufgerufen werden, unabhängig von dem Verzeichnis, in dem Sie sich befinden.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow