2016-10-03 3 views
3

CLI Ruby gem my_command --help 클리너의 출력을 만들려고합니다.여러 줄로 된 CLI 도움말 텍스트를 OptionParser로 수평으로 정렬하는 방법

설명을 위해 몇 가지 문장이 필요한 CLI 옵션과 플래그가 있습니다. 설명이 너무 길어서 일반 터미널 너비보기 안에 들어 가지 않으면이 열을 올바르게 정렬하는 방법을 찾지 못했습니다. , 예를 들어

ab --help as an example 순이 --help 일부 플래그는 적절한 정렬을 가진 여러 라인 설명을 얼마나주의 :

나는 이런 식으로 뭔가를 갖고 싶어. 지금

, 나는 우리가 뭔가 설명하는 여러 줄을해야 할 경우에 자신의 컬럼으로 정렬 텍스트 유지 OptionParser이 뭔가를하고있는 중이 야 :

opts.on("-d", "--directory PATH", String, "Directory to save the downloaded files into\n\t\t\t\t  Default is ./websites/ plus the domain name") do |t| 
    options[:directory] = t 
end 

그것은 일하고있어,하지만 그것은 최적하지 않는 것 강제로 서식을 지정하기 위해 도처에 \t을 가지고 있지도 않습니다. 또한 다른 터미널 구성에서 올바르게 형식이 지정되지 않은 경우를 볼 수 있습니다.

여러 줄로 된 CLI 도움말 텍스트를 OptionParser와 수평으로 정확하게 정렬하려면 어떻게합니까?

opts.on("-d", "--directory PATH", String, 
     "Directory to save the downloaded files into", 
     "Default is ./websites/ plus the domain name") do |t| 
    options[:directory] = t 
end 

이 매우 명확 공식 문서에서 설명하지,하지만 당신은 그것이 complete example에 사용되는 볼 수 있습니다

+0

ref : https://github.com/hartator/wayback-machine-downloader의 문제가있는 보석 – Hartator

+1

글쎄, 테스트 할 수는 없지만 여기를보고 시작할 것입니다 : http://ruby-doc.org /stdlib-2.3.1/libdoc/optparse/rdoc/OptionParser.html#method-i-summarize,'indent'와'width' 옵션이있을 수 있습니다. – lcguida

답변

1

당신은 opts.on 더 많은 매개 변수를 추가하여 탭을 추가 할 필요없이 줄 바꿈을 강제 할 수 있습니다.

관련 문제