Ruby Language
コマンドラインアプリ
サーチ…
どのように郵便番号で天気を取得するコマンドラインツールを記述する
これは、コマンドラインツールに提供された郵便番号から天気を印刷するコマンドラインツールを作成する方法の比較的包括的なチュートリアルです。最初のステップは、このアクションを実行するためにルビーにプログラムを書き込むことです。メソッド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
を呼び出すことができます。