2012-03-06 2 views
19

나는 OptionParser 문서에서 this sample을 실행OptionParser가 인수 대신 bool을 반환합니까?

require 'optparse' 
options = {} 
OptionParser.new do |opts| 
    opts.banner = "Usage: example.rb [options]" 
    opts.on("-v", "--[no-]verbose", "Run verbosely") do |v| 
     options[:verbose] = v 
    end 
end.parse! 
p options 
p ARGV 

입력 : ruby test.rb -v 100, 그것은 반환

{:verbose=>true} 
["100"] 

자세한 100하지 부울 있어야하지 않나요?

나는 이것에 대해 전혀 모른다. 누구에게 조언이 있는가?

opts.on("-v n", "--verbose=n", ... 
#-----------^ 

그리고 경우를 : 당신이 당신이 그렇게 말을 다음 인수를하려면

opts.on("-v", ... 

:

+0

제공된 링크에서 최소 섹션을 실행했을 때'{: verbose => true} '도 나타납니다. – ScottJShea

+2

'- [no] verbose'는'verbose'가 부울 스위치임을 지정합니다. –

답변

48

당신은 -v 옵션은 인수가없는 것을 지정한 n을 정수로 설정하려면 다음을 입력하십시오.

opts.on('-v n', '--verbose=n', OptionParser::DecimalInteger, ... 

o make_switch 문서 (예 : 해당 문서)에서 읽기를 시작한 다음 예제를 리버스 엔지니어링하십시오.

혼란에 대해 나쁘지는 않지만 OptionParser 문서는 그다지 좋은 것이 아닙니다.

+0

나는 그것을 얻었다. ... 나는 나의 프로그램을 뒤엎다. 작동합니다. 고마워. 나는 make_switch 문서를 읽으 러 갈 것이다. 감사 ! – CrazyLion

관련 문제