サーチ…


どのように郵便番号で天気を取得するコマンドラインツールを記述する

これは、コマンドラインツールに提供された郵便番号から天気を印刷するコマンドラインツールを作成する方法の比較的包括的なチュートリアルです。最初のステップは、このアクションを実行するためにルビーにプログラムを書き込むことです。メソッドweather(zip_code)作成することから始めましょう(このメソッドはyahoo_weatherman宝石が必要です。この宝石がない場合は、コマンドラインからgem install yahoo_weatherman入力してインストールできます)

require 'yahoo_weatherman'

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

私たちは現在、郵便番号が提供されるときの天気を与える非常に基本的な方法を持っています。これをコマンドラインツールにする必要があります。コマンドラインツールがシェルと関連する変数からどのように呼び出されるかを非常に素早く見てみましょう。ツールがこのtool argument other_argumentように呼び出されると、rubyには['argument', 'other_argument']と等しい配列の変数ARGVがあります。これをアプリケーションに実装しましょう

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

良い!今すぐ実行できるコマンドラインアプリケーションがあります。ファイルの先頭にあるshe-bang行( #!/usr/bin/ruby )に注目してください。これにより、ファイルを実行可能にすることができます。このファイルはweatherとして保存できます。 ( 注意 :これはweather.rbとして保存しないでください 。ファイル拡張子は必要ありません。そして、彼女があなたがルビーファイルであることを伝える必要があるものをshe-bangに伝えます)。これで、シェルでこれらのコマンドを実行できます( $入力しないでください)。

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

これが動作することをテストした後で、このコマンドを実行することによって/usr/bin/local/ sym-linkすることができるようになりました

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

現在、あなたがいるディレクトリに関係なく、コマンドラインでweatherを呼び出すことができます。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow