2017-01-06 3 views
0

オプションを解析する際に柔軟性を持たせたいと思います。optionparseを使用して各パースオプションをargvで渡す方法

For example: 
if I run this 
> ruby some.rb -t 1 
> outputs: 1 
> ruby some.rb -t 2 
> outputs: 2 
> ruby some.rb -y 1 
> outputs: 3 
> ruby some.rb -y 2 
> outputs: 4 
> ruby some.rb -t 1 -y 2 
> outputs: 5 
> ruby some.rb -y 2 -t 1 
> outputs 5 
> ruby some.rb -t 1 -y 1 
> outputs: 4 

だから、私は何を達成したいことは質問がオプションを解析する方法であれば

ruby some.rb -t=foo -y=bar 
+0

あなたは研究しましたか?オプションをスクリプトに渡す方法は複数あります。何を試しましたか?なぜそれは動作しませんでしたか?もしあなたが試していないなら、どうしてですか?あなたは検索しましたか?もしそうなら、どこで、なぜそれらのページは役に立ちませんでしたか? "[ask]"、 "[mcve]"、http://meta.stackoverflow.com/q/261592/128421 –

+0

をお読みください。はい、私は研究をしました。私はruby doc 2.4.0ファイルを読むようになりました。しかし、医者は私が理解できる方法で説明しなかった。もちろん、多くの例があります。私はいくつか試しました。試した人のどれも私の必要性を満足させませんでした。だから私は尋ねる。質問自体の完全性を尋ねるのではなく、人々が質問をするように推奨される環境を作りましょう。 @theTinMan – Kent

+0

これは質問をする素晴らしい環境ですが、スタックオーバーフローの目的と範囲を理解することは重要です。プログラミングの問題とその解決策のオンライン参考書として考えることができます。それは自分の研究と努力の代わりではなく、あなたが疲れた後の最後の手段として役立ちます。その時点で、私たちはあなたが何を試みたのか、なぜそれが問題を解決しないのかを説明するうえで詳細な質問を期待しています。あなたの質問はそれを行うのではなく、代わりにコードの要件を与えています。ここでも、http://meta.stackoverflow.com/q/261592/128421で説明しています。 –

答えて

0

を言う能力を持つことです、あなたは次のように標準OptionParserを使用することができます。

require 'optparse' 

options = {} 
OptionParser.new do |opts| 
    opts.on("-t T", "arg t") do |t| 
    options[:t] = t 
    end 

    opts.on("-y Y", "arg y") do |y| 
    options[:y] = y 
    end 
end.parse! 

p options 

### 

ruby temp.rb -t 1 -y 2 
{:t=>"1", :y=>"2"} 
+0

ありがとうございます。私はそれが私が逃しているものだと思う。私はRuby 2.4.0のように文書を読んだ。しかし、私は正しい方法でそれを理解していませんでした。 – Kent

関連する問題