Buscar..


Cómo escribir una herramienta de línea de comandos para obtener el clima por código postal

Este será un tutorial relativamente completo sobre cómo escribir una herramienta de línea de comandos para imprimir el clima desde el código postal provisto a la herramienta de línea de comandos. El primer paso es escribir el programa en ruby ​​para hacer esta acción. Comencemos escribiendo un método weather(zip_code) (este método requiere la gema yahoo_weatherman . Si no tiene esta gema, puede instalarla escribiendo gem install yahoo_weatherman desde la línea de comandos)

require 'yahoo_weatherman'

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

Ahora tenemos un método muy básico que da el clima cuando se le proporciona un código postal. Ahora necesitamos convertir esto en una herramienta de línea de comandos. Rápidamente repasemos cómo se llama una herramienta de línea de comandos desde el shell y las variables asociadas. Cuando se llama a una herramienta como esta, la tool argument other_argument , en ruby ​​hay una variable ARGV que es una matriz igual a ['argument', 'other_argument'] . Ahora vamos a implementar esto en nuestra aplicación.

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

¡Bueno! Ahora tenemos una aplicación de línea de comandos que se puede ejecutar. Observe la línea de she-bang al principio del archivo ( #!/usr/bin/ruby ). Esto permite que el archivo se convierta en un ejecutable. Podemos guardar este archivo como weather . ( Nota : no guarde esto como weather.rb , no hay necesidad de la extensión de archivo y she-bang le dice a cualquier cosa que necesite que le diga que este es un archivo ruby). Ahora podemos ejecutar estos comandos en el shell (no escriba los $ ).

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

Después de probar que esto funciona, ahora podemos vincularlo con el /usr/bin/local/ ejecutando este comando

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

Ahora se puede consultar el weather en la línea de comandos sin importar el directorio en el que se encuentre.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow