Ruby Language
Aplicaciones de línea de comandos
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.