2016-04-25 6 views
0

オプションの引数がダッシュ( - )で始まるようにするにはどうすればよいのでしょうか。私はサブコマンドが "+42"または "-123"でなければならない数字スタイルの引数を受け入れることを望んでいます。だから、コマンドラインから私はできます:ruby​​ GLIオプションの引数で始まるダッシュ( - )

gliapp show -123 

これは、gliが-123が不明なスイッチだと思うので、現在、エラーになります。 は、私は1つが

gliapp show -- -123 

を行うことができます知っているしかし、私は、ユーザーがこの問題を回避する必要はありません。 ARGVをgliに渡す前に-123自分自身を処理する必要がありますか?ここ

は最小限の例です:

#!/usr/bin/env ruby 

require 'gli' 
include GLI::App 
subcommand_option_handling :normal 
arguments :strict 

desc 'p given arg which may start with a dash (-)' 
arg "number", :optional; 
command :show do |c| 
    c.action do |global_opts,opts,args| 
    p args.first 
    end 
end 
exit run(ARGV) 
+0

command :show do |c| c.flag :number c.action do |global,options,args| puts options[:number] end end 

、その後:

あなたはそうのような値をキャプチャするためにフラグを使用することができます。 –

答えて

0

GLIは、カバーの下にOptionParserを使用し、それがダッシュで始まるすべての引数をつかむだろう。これはかなり標準的なUNIXです。これまであなたが持っているコードを含めるようにあなたの質問を編集してください

> gliapp show --number=-123 
-123 
関連する問題